diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..210c47a90 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +node_modules +Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..4f7efd3ed --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +# This image is based on the fat node 14 image. +# We require fat images as neither alpine, or slim, include git binaries. +FROM node:14 + +# Port 8100 for ionic dev server. +EXPOSE 8100 + +# Port 35729 is the live-reload server. +EXPOSE 35729 + +# Port 53703 is the Chrome dev logger port. +EXPOSE 53703 + +WORKDIR /app + +COPY . /app + +# Install npm libraries. +RUN npm install && rm -rf /root/.npm + +# Run gulp before starting. +RUN npx gulp + +# Provide a Healthcheck command for easier use in CI. +HEALTHCHECK --interval=10s --timeout=3s --start-period=30s CMD curl -f http://localhost:8100 || exit 1 + +CMD ["npm", "run", "ionic:serve"] diff --git a/package-lock.json b/package-lock.json index f4fe50746..934915657 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4507,6 +4507,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/android-versions/-/android-versions-1.6.0.tgz", "integrity": "sha512-ojC2Ig7b/KJ6iNtR8e4bacmOsJyEkoERk3CKMIsnH7kJz5z6551NMbrVaRb7KXYavu1d74Uhml/bfcmqT3nAcg==", + "dev": true, "requires": { "semver": "^5.7.1" }, @@ -4514,7 +4515,8 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } } }, @@ -4725,11 +4727,6 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, - "array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=" - }, "array-includes": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", @@ -7054,30 +7051,6 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, - "compare-func": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz", - "integrity": "sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q==", - "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^3.0.0" - }, - "dependencies": { - "dot-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", - "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", - "requires": { - "is-obj": "^1.0.0" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - } - } - }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -7403,116 +7376,30 @@ } }, "cordova-android": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-8.1.0.tgz", - "integrity": "sha512-eAY6g9q3raJ4P03wNdSWC5MOW1EfxoomWNXsPhi7T6Q9yAqmxqn0sLEUjLL1Ib0LCH3nKQWBXdxapQ5LgbHu+g==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-9.1.0.tgz", + "integrity": "sha512-bzOX9E4eQsOSpa06oZZ7XAGq3DwB73juhhj0oPqHH/khWk0mkCD4aiVYMFoc0fmIaSQvzbY1ww7L6UBW5pyGfg==", + "dev": true, "requires": { - "android-versions": "^1.4.0", - "compare-func": "^1.3.2", - "cordova-common": "^3.2.0", - "nopt": "^4.0.1", + "android-versions": "^1.5.0", + "cordova-common": "^4.0.1", + "execa": "^4.0.2", + "fast-glob": "^3.2.4", + "fs-extra": "^9.0.1", + "is-path-inside": "^3.0.2", + "nopt": "^4.0.3", "properties-parser": "^0.3.1", - "q": "^1.5.1", - "shelljs": "^0.5.3" + "semver": "^7.3.4", + "which": "^2.0.2" }, "dependencies": { - "bplist-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz", - "integrity": "sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=", - "requires": { - "big-integer": "^1.6.7" - } - }, - "cordova-common": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-3.2.1.tgz", - "integrity": "sha512-xg0EnjnA6EipxXG8cupdlYQYeDA6+ghbN+Pjq88xN1LInwP6Bo7IyGBdSV5QnfjOvzShF9BBwSxBAv0FOO0C2Q==", - "requires": { - "ansi": "^0.3.1", - "bplist-parser": "^0.1.0", - "cross-spawn": "^6.0.5", - "elementtree": "0.1.7", - "endent": "^1.1.1", - "fs-extra": "^8.0.0", - "glob": "^7.1.2", - "minimatch": "^3.0.0", - "plist": "^3.0.1", - "q": "^1.4.1", - "strip-bom": "^3.0.0", - "underscore": "^1.8.3", - "which": "^1.3.0" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" + "lru-cache": "^6.0.0" } } } @@ -7604,126 +7491,50 @@ } }, "cordova-ios": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/cordova-ios/-/cordova-ios-5.1.1.tgz", - "integrity": "sha512-asZMCj44JMe/PMrDIRC97GStPCH+GpaMNVe8hdmu8WWXJzMzRNRRJ339YYU89jitWf9ZKMdyBgrnSnQi5bJ/ZQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/cordova-ios/-/cordova-ios-6.2.0.tgz", + "integrity": "sha512-sLjZg2QBI1SpQVwfe0MSn89YNVkBGLW9Q1vcFJBsqKBrhvoEOJ5Ytq0gwqdhgTOGzlwJUfxC6OHM3jcsRjtYrw==", "requires": { - "cordova-common": "^3.1.0", - "ios-sim": "^8.0.1", - "nopt": "^4.0.1", + "cordova-common": "^4.0.2", + "fs-extra": "^9.1.0", + "ios-sim": "^8.0.2", + "nopt": "^5.0.0", "plist": "^3.0.1", - "q": "^1.5.1", - "semver": "^6.3.0", - "shelljs": "^0.5.3", - "unorm": "^1.4.1", - "xcode": "^2.0.0", + "semver": "^7.3.4", + "unorm": "^1.6.0", + "which": "^2.0.2", + "xcode": "^3.0.1", "xml-escape": "^1.1.0" }, "dependencies": { - "bplist-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz", - "integrity": "sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=", + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "requires": { - "big-integer": "^1.6.7" + "abbrev": "1" } }, - "cordova-common": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-3.2.1.tgz", - "integrity": "sha512-xg0EnjnA6EipxXG8cupdlYQYeDA6+ghbN+Pjq88xN1LInwP6Bo7IyGBdSV5QnfjOvzShF9BBwSxBAv0FOO0C2Q==", - "requires": { - "ansi": "^0.3.1", - "bplist-parser": "^0.1.0", - "cross-spawn": "^6.0.5", - "elementtree": "0.1.7", - "endent": "^1.1.1", - "fs-extra": "^8.0.0", - "glob": "^7.1.2", - "minimatch": "^3.0.0", - "plist": "^3.0.1", - "q": "^1.4.1", - "strip-bom": "^3.0.0", - "underscore": "^1.8.3", - "which": "^1.3.0" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "requires": { - "shebang-regex": "^1.0.0" + "lru-cache": "^6.0.0" } }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + "uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "xcode": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", + "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", "requires": { - "isexe": "^2.0.0" + "simple-plist": "^1.1.0", + "uuid": "^7.0.3" } } } @@ -7776,9 +7587,9 @@ } }, "cordova-plugin-advanced-http": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/cordova-plugin-advanced-http/-/cordova-plugin-advanced-http-2.4.1.tgz", - "integrity": "sha512-6G8MTy/d02jE6n3Y9CVyCtD5hZGiBb+/dR2AIzhKN1RGGz38g1D2C8yE4MqHRvnmry6k/KHQWT1MsHNXrjouXQ==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-advanced-http/-/cordova-plugin-advanced-http-3.1.0.tgz", + "integrity": "sha512-zlTlNJyTttE7TV5vW2WGvHqpbKMDVrr1meZU0fy4y3ObrI/hGk2UDcDNwpZdMfaytNZwDKU4sRgsTgQYdFNBew==" }, "cordova-plugin-badge": { "version": "0.8.8", @@ -7786,9 +7597,9 @@ "integrity": "sha512-RhIBtd5xhD/iLnxjt35jvOae28oNW/wtMZBOmQR3Rf0y4wirvA1bpAZEhBoFqL+rZGhsd6ddOdQXdex1T0DRyQ==" }, "cordova-plugin-camera": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cordova-plugin-camera/-/cordova-plugin-camera-4.1.0.tgz", - "integrity": "sha512-fCLhWjWYn49q3X5xaypAPgTz6MAWSKFFQvD2Gpi5SuVlrRPRphtX2jIqR2zCBuDTBR082QVnlc+yUDXt65Mjgw==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/cordova-plugin-camera/-/cordova-plugin-camera-5.0.1.tgz", + "integrity": "sha512-9gXyZvI8u9KzsZuqmB8Yw+uheF+7f+usMAwvOMw7L7pqbykg+bm9US5zjhJbwit3A1cSblgZkpBafe5cFiMcTA==" }, "cordova-plugin-chooser": { "version": "1.3.2", @@ -7796,9 +7607,9 @@ "integrity": "sha512-GfAibvrPdWe/ri+h3e3xkmq5bietY6yJRBIZawYDE7w600j2mtRsxgat7siWZtjRRhJuVsVwUG6H86Hyp3WKvA==" }, "cordova-plugin-customurlscheme": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/cordova-plugin-customurlscheme/-/cordova-plugin-customurlscheme-5.0.1.tgz", - "integrity": "sha512-Nn3+MUrEGfBSFzkC9s5izzOcmpVy8Pya5oYF+CkcdqAlsqL7EqpUan3Q0Eold4EWFisVG5jRCg0XjyxL4uHGfw==" + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/cordova-plugin-customurlscheme/-/cordova-plugin-customurlscheme-5.0.2.tgz", + "integrity": "sha512-g139Av7iYD3xcSsCd5S6a7B7dp4GTqGYtvdhh44g4OS38+aX6XkC1lsCRmROuhLIs4fkwJqkrvxacH9H4U9Gsg==" }, "cordova-plugin-device": { "version": "2.0.3", @@ -7811,18 +7622,18 @@ "integrity": "sha512-m7cughw327CjONN/qjzsTpSesLaeybksQh420/gRuSXJX5Zt9NfgsSbqqKDon6jnQ9Mm7h7imgyO2uJ34XMBtA==" }, "cordova-plugin-file-opener2": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/cordova-plugin-file-opener2/-/cordova-plugin-file-opener2-3.0.4.tgz", - "integrity": "sha512-bd1aCx62X2RwpC+KUiuB7quoxL/8RnPMEJU7x38Tvs+cUGLWBvsmR9+/LqGBsSns2CIqgnJ34TW0Vazoqu7Ieg==" + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/cordova-plugin-file-opener2/-/cordova-plugin-file-opener2-3.0.5.tgz", + "integrity": "sha512-tjLHDamH5+y0bJZYVe2967L1S4R8tL4Y0rJUzJGoxsyiw3FUlrJNS199POOpzZZ6Xhlntn9a2o7+84r1dMN21A==" }, "cordova-plugin-file-transfer": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/cordova-plugin-file-transfer/-/cordova-plugin-file-transfer-1.7.1.tgz", - "integrity": "sha1-p12L4uvDu5sjxbG70ZkhTsJnWGs=" + "version": "git+https://github.com/moodlemobile/cordova-plugin-file-transfer.git#648b57792f2f33ffc9da6d2fa020d26a48799048", + "from": "git+https://github.com/moodlemobile/cordova-plugin-file-transfer.git" }, "cordova-plugin-geolocation": { - "version": "git+https://github.com/apache/cordova-plugin-geolocation.git#89cf51d222e8f225bdfb661965b3007d669c40ff", - "from": "git+https://github.com/apache/cordova-plugin-geolocation.git#89cf51d222e8f225bdfb661965b3007d669c40ff" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-geolocation/-/cordova-plugin-geolocation-4.1.0.tgz", + "integrity": "sha512-y5io/P10xGMxSn2KEqfv/fExK47eA1pmSonJdmDqDsaSADV9JpgdPx0mUSA08+5pzma/OS9R0LoODeDPx7Jvjg==" }, "cordova-plugin-globalization": { "version": "1.11.0", @@ -7830,18 +7641,19 @@ "integrity": "sha1-6sMVgQAphJOvowvolA5pj2HvvP4=" }, "cordova-plugin-inappbrowser": { - "version": "git+https://github.com/moodlemobile/cordova-plugin-inappbrowser.git#715c858975cc1cb5d140afaa7973938511d38509", - "from": "git+https://github.com/moodlemobile/cordova-plugin-inappbrowser.git#moodle" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-inappbrowser/-/cordova-plugin-inappbrowser-5.0.0.tgz", + "integrity": "sha512-MqnpmUQ/iy6hxtIGDdlIhy8aNi1pNanLATpbnkk7uCqW9YQ4rH/dGK9zESbZ50pUi2A2D2QMjBXNV175TJK5OQ==" }, "cordova-plugin-ionic-keyboard": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cordova-plugin-ionic-keyboard/-/cordova-plugin-ionic-keyboard-2.1.3.tgz", - "integrity": "sha512-6ucQ6FdlLdBm8kJfFnzozmBTjru/0xekHP/dAhjoCZggkGRlgs8TsUJFkxa/bV+qi7Dlo50JjmpE4UMWAO+aOQ==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-ionic-keyboard/-/cordova-plugin-ionic-keyboard-2.2.0.tgz", + "integrity": "sha512-yDUG+9ieKVRitq5mGlNxjaZh/MgEhFFIgTIPhqSbUaQ8UuZbawy5mhJAVClqY97q8/rcQtL6dCDa7x2sEtCLcA==" }, "cordova-plugin-ionic-webview": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/cordova-plugin-ionic-webview/-/cordova-plugin-ionic-webview-4.2.1.tgz", - "integrity": "sha512-7KrmqLaOGq1RP8N2z1ezN1kqkWFzTwwMvQ3/qAkd+exxFZuOe3DIN4eaU1gdNphsxdirI8Ajnr9q4So5vQbWqw==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-ionic-webview/-/cordova-plugin-ionic-webview-5.0.0.tgz", + "integrity": "sha512-Wq0kCanxubK/JroTW4Mp5soayScnRyiY1eCkbwiz1Dyt1xHOiOW/v+1miqtBHtnZhcXw25TulCKAVJzkNBdmyg==" }, "cordova-plugin-local-notification": { "version": "git+https://github.com/moodlemobile/cordova-plugin-local-notification.git#0bb96b757fb484553ceabf35a59802f7983a2836", @@ -7916,17 +7728,17 @@ } }, "cordova-sqlite-storage": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cordova-sqlite-storage/-/cordova-sqlite-storage-4.0.0.tgz", - "integrity": "sha512-/n5KT3TyRAC7QRe9A4Sn7bMpdsBJ6aMmHat2PsMxFZBot45SOxbAEgfGmXtq0e7OEdVzk573sIn42bLS6lNLjQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cordova-sqlite-storage/-/cordova-sqlite-storage-6.0.0.tgz", + "integrity": "sha512-njRloA3AICaUFztKHXoFfVcwlL7zbvyFxtdZIkK7P+MA3umILXtSKhYAQkSe2GtHr0LBNzJI5xUUqAlZl/Js0A==", "requires": { - "cordova-sqlite-storage-dependencies": "2.1.1" + "cordova-sqlite-storage-dependencies": "4.0.0" } }, "cordova-sqlite-storage-dependencies": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cordova-sqlite-storage-dependencies/-/cordova-sqlite-storage-dependencies-2.1.1.tgz", - "integrity": "sha512-1lV5Pg1FttjBmGO8z4gxtuA4BbPKtgTfUEh1Vx4boa41inizyxaowRyTeaaqEhi5gmYAaX8sRTABm9U/XckRFg==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cordova-sqlite-storage-dependencies/-/cordova-sqlite-storage-dependencies-4.0.0.tgz", + "integrity": "sha512-dTBxYaX/RGzH6+pp49o4sb3FuHCvhrssaKn1XMJ4LL3f9dnvz3rhFK2LdcWrdFkhOLOndnW/azUkbzZd+WWhRA==" }, "cordova-support-google-services": { "version": "1.3.2", @@ -18025,6 +17837,7 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/properties-parser/-/properties-parser-0.3.1.tgz", "integrity": "sha1-ExbpU5/7/ZOEXjabIRAiq9R4dxo=", + "dev": true, "requires": { "string.prototype.codepointat": "^0.2.0" } @@ -19686,11 +19499,6 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, - "shelljs": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz", - "integrity": "sha1-xUmCuZbHbvDB5rWfvcWCX1txMRM=" - }, "shellwords": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", @@ -20522,7 +20330,8 @@ "string.prototype.codepointat": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz", - "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==" + "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==", + "dev": true }, "string.prototype.trimend": { "version": "1.0.1", diff --git a/package.json b/package.json index 606761052..39c44d1d2 100644 --- a/package.json +++ b/package.json @@ -75,25 +75,25 @@ "chart.js": "^2.9.4", "com-darryncampbell-cordova-plugin-intent": "^1.3.0", "cordova": "^10.0.0", - "cordova-android": "^8.1.0", + "cordova-android": "^9.1.0", "cordova-android-support-gradle-release": "^3.0.1", "cordova-clipboard": "^1.3.0", - "cordova-ios": "^5.1.1", + "cordova-ios": "^6.2.0", "cordova-plugin-add-swift-support": "^2.0.2", - "cordova-plugin-advanced-http": "^2.4.1", + "cordova-plugin-advanced-http": "^3.1.0", "cordova-plugin-badge": "^0.8.8", - "cordova-plugin-camera": "^4.1.0", + "cordova-plugin-camera": "^5.0.1", "cordova-plugin-chooser": "^1.3.2", - "cordova-plugin-customurlscheme": "^5.0.1", + "cordova-plugin-customurlscheme": "^5.0.2", "cordova-plugin-device": "^2.0.3", "cordova-plugin-file": "^6.0.2", - "cordova-plugin-file-opener2": "^3.0.4", - "cordova-plugin-file-transfer": "1.7.1", - "cordova-plugin-geolocation": "git+https://github.com/apache/cordova-plugin-geolocation.git#89cf51d222e8f225bdfb661965b3007d669c40ff", + "cordova-plugin-file-opener2": "^3.0.5", + "cordova-plugin-file-transfer": "git+https://github.com/moodlemobile/cordova-plugin-file-transfer.git", + "cordova-plugin-geolocation": "^4.1.0", "cordova-plugin-globalization": "^1.11.0", - "cordova-plugin-inappbrowser": "git+https://github.com/moodlemobile/cordova-plugin-inappbrowser.git#moodle", - "cordova-plugin-ionic-keyboard": "2.1.3", - "cordova-plugin-ionic-webview": "^4.2.1", + "cordova-plugin-inappbrowser": "^5.0.0", + "cordova-plugin-ionic-keyboard": "^2.2.0", + "cordova-plugin-ionic-webview": "^5.0.0", "cordova-plugin-local-notification": "git+https://github.com/moodlemobile/cordova-plugin-local-notification.git#moodle", "cordova-plugin-media": "^5.0.3", "cordova-plugin-media-capture": "^3.0.3", @@ -106,7 +106,7 @@ "cordova-plugin-wkuserscript": "git+https://github.com/moodlemobile/cordova-plugin-wkuserscript.git", "cordova-plugin-wkwebview-cookies": "git+https://github.com/moodlemobile/cordova-plugin-wkwebview-cookies.git", "cordova-plugin-zip": "^3.1.0", - "cordova-sqlite-storage": "^4.0.0", + "cordova-sqlite-storage": "^6.0.0", "cordova-support-google-services": "^1.2.1", "cordova.plugins.diagnostic": "^5.0.2", "core-js": "^3.9.1", @@ -176,9 +176,7 @@ "ios" ], "plugins": { - "cordova-plugin-advanced-http": { - "OKHTTP_VERSION": "3.10.0" - }, + "cordova-plugin-advanced-http": {}, "cordova-clipboard": {}, "cordova-plugin-badge": {}, "cordova-plugin-camera": { @@ -196,7 +194,7 @@ "ANDROID_SUPPORT_V4_VERSION": "27.+" }, "cordova-plugin-geolocation": { - "GPS_REQUIRED": "true" + "GPS_REQUIRED": "false" }, "cordova-plugin-inappbrowser": {}, "cordova-plugin-ionic-keyboard": {}, diff --git a/src/core/features/fileuploader/services/fileuploader-helper.ts b/src/core/features/fileuploader/services/fileuploader-helper.ts index e0e939f57..6a159e0fc 100644 --- a/src/core/features/fileuploader/services/fileuploader-helper.ts +++ b/src/core/features/fileuploader/services/fileuploader-helper.ts @@ -504,9 +504,9 @@ export class CoreFileUploaderHelperProvider { * @param defaultMessage Key of the default message to show. * @return Rejected promise. If it doesn't have an error message it means it was cancelled. */ - protected treatImageError(error: string | CoreError | CoreCaptureError, defaultMessage: string): CoreError { + protected treatImageError(error: number | string | CoreError | CoreCaptureError, defaultMessage: string): CoreError { // Cancelled or error. - if (!error) { + if (!error || typeof error == 'number') { return new CoreError(defaultMessage); } @@ -675,7 +675,7 @@ export class CoreFileUploaderHelperProvider { } catch (error) { const defaultError = fromAlbum ? 'core.fileuploader.errorgettingimagealbum' : 'core.fileuploader.errorcapturingimage'; - throw this.treatImageError(error, defaultError); + throw this.treatImageError(error, Translate.instant(defaultError)); } const error = CoreFileUploader.isInvalidMimetype(mimetypes, path); // Verify that the mimetype is supported. diff --git a/src/core/initializers/override-window-open.ts b/src/core/initializers/override-window-open.ts index af2eb11e9..2dc7c5ba4 100644 --- a/src/core/initializers/override-window-open.ts +++ b/src/core/initializers/override-window-open.ts @@ -21,5 +21,6 @@ export default async function(): Promise { return; } - window.open = window.cordova.InAppBrowser.open; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + ( window).open = window.cordova.InAppBrowser.open; } diff --git a/src/core/services/navigator.ts b/src/core/services/navigator.ts index 3df8f454b..aa808443a 100644 --- a/src/core/services/navigator.ts +++ b/src/core/services/navigator.ts @@ -167,7 +167,10 @@ export class CoreNavigatorService { * @return Whether navigation suceeded. */ async navigateToSiteHome(options: Omit & { siteId?: string } = {}): Promise { - return this.navigateToSitePath(DEFAULT_MAIN_MENU_TAB, options); + return this.navigateToSitePath(DEFAULT_MAIN_MENU_TAB, { + ...options, + reset: true, + }); } /** @@ -179,7 +182,7 @@ export class CoreNavigatorService { */ async navigateToSitePath( path: string, - options: Omit & { siteId?: string } = {}, + options: CoreNavigationOptions & { siteId?: string } = {}, ): Promise { const siteId = options.siteId ?? CoreSites.getCurrentSiteId(); const navigationOptions: CoreNavigationOptions = CoreObject.without(options, ['siteId']); @@ -391,7 +394,7 @@ export class CoreNavigatorService { * @param options Navigation options. * @return Whether navigation suceeded. */ - protected async navigateToMainMenuPath(path: string, options: Omit = {}): Promise { + protected async navigateToMainMenuPath(path: string, options: CoreNavigationOptions = {}): Promise { // Due to DeepLinker, we need to remove the path from the URL before going to main menu. // IonTabs checks the URL to determine which path to load for deep linking, so we clear the URL. // @todo this.location.replaceState(''); diff --git a/src/core/services/tests/navigator.test.ts b/src/core/services/tests/navigator.test.ts index cc55954f9..5dffe7899 100644 --- a/src/core/services/tests/navigator.test.ts +++ b/src/core/services/tests/navigator.test.ts @@ -146,7 +146,7 @@ describe('CoreNavigator', () => { const success = await navigator.navigateToSiteHome(); expect(success).toBe(true); - expect(navControllerMock.navigateForward).toHaveBeenCalledWith(['/main/home'], {}); + expect(navControllerMock.navigateRoot).toHaveBeenCalledWith(['/main/home'], {}); }); it.todo('navigates to a different site');