From af5b72db6472dc88f28316a3dc4c248b23f3dd5c Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Wed, 23 Mar 2022 08:12:05 +0100 Subject: [PATCH 1/7] MOBILE-3833 config: Lock plugins and libraries for 4.0.0 --- package-lock.json | 246 +++++++++++++++++++++++----------------------- package.json | 246 +++++++++++++++++++++++----------------------- 2 files changed, 246 insertions(+), 246 deletions(-) diff --git a/package-lock.json b/package-lock.json index d336ccd2c..53b5ea119 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,40 +9,40 @@ "version": "4.0.0-dev", "license": "Apache-2.0", "dependencies": { - "@angular/animations": "~10.0.14", - "@angular/common": "~10.0.14", - "@angular/core": "~10.0.14", - "@angular/forms": "~10.0.14", - "@angular/platform-browser": "~10.0.14", - "@angular/platform-browser-dynamic": "~10.0.14", - "@angular/router": "~10.0.14", - "@ionic-native/badge": "^5.33.0", - "@ionic-native/camera": "^5.33.0", - "@ionic-native/chooser": "^5.33.0", - "@ionic-native/clipboard": "^5.33.0", - "@ionic-native/core": "^5.33.0", - "@ionic-native/device": "^5.33.0", - "@ionic-native/diagnostic": "^5.33.0", - "@ionic-native/file": "^5.33.0", - "@ionic-native/file-opener": "^5.33.0", - "@ionic-native/file-transfer": "^5.33.0", - "@ionic-native/geolocation": "^5.33.0", - "@ionic-native/http": "^5.33.0", - "@ionic-native/in-app-browser": "^5.33.0", - "@ionic-native/ionic-webview": "^5.33.0", - "@ionic-native/keyboard": "^5.33.0", - "@ionic-native/local-notifications": "^5.33.0", - "@ionic-native/media": "^5.33.0", - "@ionic-native/media-capture": "^5.33.0", - "@ionic-native/network": "^5.33.0", - "@ionic-native/push": "^5.33.0", - "@ionic-native/qr-scanner": "^5.33.0", - "@ionic-native/splash-screen": "^5.33.0", - "@ionic-native/sqlite": "^5.33.0", - "@ionic-native/status-bar": "^5.33.0", - "@ionic-native/web-intent": "^5.33.0", - "@ionic-native/zip": "^5.33.0", - "@ionic/angular": "^5.9.2", + "@angular/animations": "10.0.14", + "@angular/common": "10.0.14", + "@angular/core": "10.0.14", + "@angular/forms": "10.0.14", + "@angular/platform-browser": "10.0.14", + "@angular/platform-browser-dynamic": "10.0.14", + "@angular/router": "10.0.14", + "@ionic-native/badge": "5.33.0", + "@ionic-native/camera": "5.33.0", + "@ionic-native/chooser": "5.33.0", + "@ionic-native/clipboard": "5.33.0", + "@ionic-native/core": "5.33.0", + "@ionic-native/device": "5.33.0", + "@ionic-native/diagnostic": "5.33.0", + "@ionic-native/file": "5.33.0", + "@ionic-native/file-opener": "5.33.0", + "@ionic-native/file-transfer": "5.33.0", + "@ionic-native/geolocation": "5.33.0", + "@ionic-native/http": "5.33.0", + "@ionic-native/in-app-browser": "5.33.0", + "@ionic-native/ionic-webview": "5.33.0", + "@ionic-native/keyboard": "5.33.0", + "@ionic-native/local-notifications": "5.33.0", + "@ionic-native/media": "5.33.0", + "@ionic-native/media-capture": "5.33.0", + "@ionic-native/network": "5.33.0", + "@ionic-native/push": "5.33.0", + "@ionic-native/qr-scanner": "5.33.0", + "@ionic-native/splash-screen": "5.33.0", + "@ionic-native/sqlite": "5.33.0", + "@ionic-native/status-bar": "5.33.0", + "@ionic-native/web-intent": "5.33.0", + "@ionic-native/zip": "5.33.0", + "@ionic/angular": "5.9.2", "@moodlehq/cordova-plugin-file-transfer": "1.7.1-moodle.5", "@moodlehq/cordova-plugin-inappbrowser": "5.0.0-moodle.3", "@moodlehq/cordova-plugin-ionic-webview": "5.0.0-moodle.1", @@ -50,105 +50,105 @@ "@moodlehq/cordova-plugin-qrscanner": "3.0.1-moodle.2", "@moodlehq/cordova-plugin-zip": "3.1.0-moodle.1", "@moodlehq/phonegap-plugin-push": "2.0.0-moodle.2", - "@ngx-translate/core": "^13.0.0", - "@ngx-translate/http-loader": "^6.0.0", - "@types/chart.js": "^2.9.31", + "@ngx-translate/core": "13.0.0", + "@ngx-translate/http-loader": "6.0.0", + "@types/chart.js": "2.9.31", "@types/cordova": "0.0.34", - "@types/dom-mediacapture-record": "^1.0.7", - "chart.js": "^2.9.4", - "com-darryncampbell-cordova-plugin-intent": "^2.2.0", - "cordova": "^11.0.0", - "cordova-android": "^10.1.1", - "cordova-clipboard": "^1.3.0", - "cordova-ios": "^6.2.0", - "cordova-plugin-add-swift-support": "^2.0.2", - "cordova-plugin-advanced-http": "^3.2.2", - "cordova-plugin-badge": "^0.8.8", - "cordova-plugin-camera": "^6.0.0", - "cordova-plugin-chooser": "^1.3.2", - "cordova-plugin-customurlscheme": "^5.0.2", - "cordova-plugin-device": "^2.0.3", - "cordova-plugin-file": "^6.0.2", - "cordova-plugin-file-opener2": "^3.0.5", - "cordova-plugin-geolocation": "^4.1.0", - "cordova-plugin-globalization": "^1.11.0", - "cordova-plugin-ionic-keyboard": "^2.2.0", - "cordova-plugin-media": "^5.0.4", - "cordova-plugin-media-capture": "^3.0.3", - "cordova-plugin-network-information": "^3.0.0", - "cordova-plugin-prevent-override": "^1.0.1", - "cordova-plugin-splashscreen": "^6.0.0", - "cordova-plugin-statusbar": "^3.0.0", - "cordova-plugin-wkuserscript": "^1.0.1", - "cordova-plugin-wkwebview-cookies": "^1.0.1", - "cordova-sqlite-storage": "^6.0.0", - "cordova.plugins.diagnostic": "^6.1.1", - "core-js": "^3.9.1", - "es6-promise-plugin": "^4.2.2", - "hammerjs": "^2.0.8", - "jszip": "^3.5.0", + "@types/dom-mediacapture-record": "1.0.7", + "chart.js": "2.9.4", + "com-darryncampbell-cordova-plugin-intent": "2.2.0", + "cordova": "11.0.0", + "cordova-android": "10.1.1", + "cordova-clipboard": "1.3.0", + "cordova-ios": "6.2.0", + "cordova-plugin-add-swift-support": "2.0.2", + "cordova-plugin-advanced-http": "3.2.2", + "cordova-plugin-badge": "0.8.8", + "cordova-plugin-camera": "6.0.0", + "cordova-plugin-chooser": "1.3.2", + "cordova-plugin-customurlscheme": "5.0.2", + "cordova-plugin-device": "2.0.3", + "cordova-plugin-file": "6.0.2", + "cordova-plugin-file-opener2": "3.0.5", + "cordova-plugin-geolocation": "4.1.0", + "cordova-plugin-globalization": "1.11.0", + "cordova-plugin-ionic-keyboard": "2.2.0", + "cordova-plugin-media": "5.0.4", + "cordova-plugin-media-capture": "3.0.3", + "cordova-plugin-network-information": "3.0.0", + "cordova-plugin-prevent-override": "1.0.1", + "cordova-plugin-splashscreen": "6.0.0", + "cordova-plugin-statusbar": "3.0.0", + "cordova-plugin-wkuserscript": "1.0.1", + "cordova-plugin-wkwebview-cookies": "1.0.1", + "cordova-sqlite-storage": "6.0.0", + "cordova.plugins.diagnostic": "6.1.1", + "core-js": "3.9.1", + "es6-promise-plugin": "4.2.2", + "hammerjs": "2.0.8", + "jszip": "3.5.0", "mathjax": "2.7.7", - "moment": "^2.29.0", - "nl.kingsquare.cordova.background-audio": "^1.0.1", - "rxjs": "~6.5.5", - "ts-md5": "^1.2.7", - "tslib": "^2.3.1", - "zone.js": "~0.10.3" + "moment": "2.29.0", + "nl.kingsquare.cordova.background-audio": "1.0.1", + "rxjs": "6.5.5", + "ts-md5": "1.2.7", + "tslib": "2.3.1", + "zone.js": "0.10.3" }, "devDependencies": { - "@angular-builders/custom-webpack": "^10.0.1", - "@angular-devkit/architect": "^0.1202.7", - "@angular-devkit/build-angular": "~0.1000.8", - "@angular-eslint/builder": "^4.2.0", - "@angular-eslint/eslint-plugin": "^4.2.0", - "@angular-eslint/eslint-plugin-template": "^4.2.0", - "@angular-eslint/schematics": "^4.2.0", - "@angular-eslint/template-parser": "^4.2.0", - "@angular/cli": "~10.0.8", - "@angular/compiler": "~10.0.14", - "@angular/compiler-cli": "~10.0.14", - "@angular/language-service": "~10.0.14", - "@ionic/angular-toolkit": "^2.3.3", - "@ionic/cli": "^6.14.1", - "@types/faker": "^5.1.3", - "@types/node": "^12.12.64", - "@types/resize-observer-browser": "^0.1.5", - "@types/webpack-env": "^1.16.0", - "@typescript-eslint/eslint-plugin": "^4.22.0", - "@typescript-eslint/parser": "^4.22.0", - "check-es-compat": "^1.1.1", - "cordova-plugin-androidx-adapter": "^1.1.3", - "eslint": "^7.25.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jest": "^24.3.6", - "eslint-plugin-jsdoc": "^32.3.3", - "eslint-plugin-prefer-arrow": "^1.2.3", - "eslint-plugin-promise": "^5.1.0", - "faker": "^5.1.0", - "fs-extra": "^9.1.0", + "@angular-builders/custom-webpack": "10.0.1", + "@angular-devkit/architect": "0.1202.7", + "@angular-devkit/build-angular": "0.1000.8", + "@angular-eslint/builder": "4.2.0", + "@angular-eslint/eslint-plugin": "4.2.0", + "@angular-eslint/eslint-plugin-template": "4.2.0", + "@angular-eslint/schematics": "4.2.0", + "@angular-eslint/template-parser": "4.2.0", + "@angular/cli": "10.0.8", + "@angular/compiler": "10.0.14", + "@angular/compiler-cli": "10.0.14", + "@angular/language-service": "10.0.14", + "@ionic/angular-toolkit": "2.3.3", + "@ionic/cli": "6.14.1", + "@types/faker": "5.1.3", + "@types/node": "12.12.64", + "@types/resize-observer-browser": "0.1.5", + "@types/webpack-env": "1.16.0", + "@typescript-eslint/eslint-plugin": "4.22.0", + "@typescript-eslint/parser": "4.22.0", + "check-es-compat": "1.1.1", + "cordova-plugin-androidx-adapter": "1.1.3", + "eslint": "7.25.0", + "eslint-config-prettier": "8.3.0", + "eslint-plugin-header": "3.1.1", + "eslint-plugin-import": "2.22.1", + "eslint-plugin-jest": "24.3.6", + "eslint-plugin-jsdoc": "32.3.3", + "eslint-plugin-prefer-arrow": "1.2.3", + "eslint-plugin-promise": "5.1.0", + "faker": "5.1.0", + "fs-extra": "9.1.0", "gulp": "4.0.2", - "gulp-clip-empty-files": "^0.1.2", - "gulp-concat": "^2.6.1", - "gulp-flatten": "^0.4.0", - "gulp-htmlmin": "^5.0.1", - "gulp-rename": "^2.0.0", - "gulp-slash": "^1.1.3", - "jest": "^26.5.2", - "jest-preset-angular": "^8.3.1", - "jsonc-parser": "^2.3.1", - "native-run": "^1.4.0", - "terser-webpack-plugin": "^4.2.3", - "ts-jest": "^26.4.1", - "ts-node": "~8.3.0", - "typescript": "^3.9.9" + "gulp-clip-empty-files": "0.1.2", + "gulp-concat": "2.6.1", + "gulp-flatten": "0.4.0", + "gulp-htmlmin": "5.0.1", + "gulp-rename": "2.0.0", + "gulp-slash": "1.1.3", + "jest": "26.5.2", + "jest-preset-angular": "8.3.1", + "jsonc-parser": "2.3.1", + "native-run": "1.4.0", + "terser-webpack-plugin": "4.2.3", + "ts-jest": "26.4.1", + "ts-node": "8.3.0", + "typescript": "3.9.9" }, "engines": { "node": ">=14.15.0 <15" }, "optionalDependencies": { - "keytar": "^7.2.0" + "keytar": "7.2.0" } }, "node_modules/@angular-builders/custom-webpack": { diff --git a/package.json b/package.json index 5dabe13ec..38a39b560 100644 --- a/package.json +++ b/package.json @@ -38,40 +38,40 @@ "ionic:build:before": "gulp" }, "dependencies": { - "@angular/animations": "~10.0.14", - "@angular/common": "~10.0.14", - "@angular/core": "~10.0.14", - "@angular/forms": "~10.0.14", - "@angular/platform-browser": "~10.0.14", - "@angular/platform-browser-dynamic": "~10.0.14", - "@angular/router": "~10.0.14", - "@ionic-native/badge": "^5.33.0", - "@ionic-native/camera": "^5.33.0", - "@ionic-native/chooser": "^5.33.0", - "@ionic-native/clipboard": "^5.33.0", - "@ionic-native/core": "^5.33.0", - "@ionic-native/device": "^5.33.0", - "@ionic-native/diagnostic": "^5.33.0", - "@ionic-native/file": "^5.33.0", - "@ionic-native/file-opener": "^5.33.0", - "@ionic-native/file-transfer": "^5.33.0", - "@ionic-native/geolocation": "^5.33.0", - "@ionic-native/http": "^5.33.0", - "@ionic-native/in-app-browser": "^5.33.0", - "@ionic-native/ionic-webview": "^5.33.0", - "@ionic-native/keyboard": "^5.33.0", - "@ionic-native/local-notifications": "^5.33.0", - "@ionic-native/media": "^5.33.0", - "@ionic-native/media-capture": "^5.33.0", - "@ionic-native/network": "^5.33.0", - "@ionic-native/push": "^5.33.0", - "@ionic-native/qr-scanner": "^5.33.0", - "@ionic-native/splash-screen": "^5.33.0", - "@ionic-native/sqlite": "^5.33.0", - "@ionic-native/status-bar": "^5.33.0", - "@ionic-native/web-intent": "^5.33.0", - "@ionic-native/zip": "^5.33.0", - "@ionic/angular": "^5.9.2", + "@angular/animations": "10.0.14", + "@angular/common": "10.0.14", + "@angular/core": "10.0.14", + "@angular/forms": "10.0.14", + "@angular/platform-browser": "10.0.14", + "@angular/platform-browser-dynamic": "10.0.14", + "@angular/router": "10.0.14", + "@ionic-native/badge": "5.33.0", + "@ionic-native/camera": "5.33.0", + "@ionic-native/chooser": "5.33.0", + "@ionic-native/clipboard": "5.33.0", + "@ionic-native/core": "5.33.0", + "@ionic-native/device": "5.33.0", + "@ionic-native/diagnostic": "5.33.0", + "@ionic-native/file": "5.33.0", + "@ionic-native/file-opener": "5.33.0", + "@ionic-native/file-transfer": "5.33.0", + "@ionic-native/geolocation": "5.33.0", + "@ionic-native/http": "5.33.0", + "@ionic-native/in-app-browser": "5.33.0", + "@ionic-native/ionic-webview": "5.33.0", + "@ionic-native/keyboard": "5.33.0", + "@ionic-native/local-notifications": "5.33.0", + "@ionic-native/media": "5.33.0", + "@ionic-native/media-capture": "5.33.0", + "@ionic-native/network": "5.33.0", + "@ionic-native/push": "5.33.0", + "@ionic-native/qr-scanner": "5.33.0", + "@ionic-native/splash-screen": "5.33.0", + "@ionic-native/sqlite": "5.33.0", + "@ionic-native/status-bar": "5.33.0", + "@ionic-native/web-intent": "5.33.0", + "@ionic-native/zip": "5.33.0", + "@ionic/angular": "5.9.2", "@moodlehq/cordova-plugin-file-transfer": "1.7.1-moodle.5", "@moodlehq/cordova-plugin-inappbrowser": "5.0.0-moodle.3", "@moodlehq/cordova-plugin-ionic-webview": "5.0.0-moodle.1", @@ -79,99 +79,99 @@ "@moodlehq/cordova-plugin-qrscanner": "3.0.1-moodle.2", "@moodlehq/cordova-plugin-zip": "3.1.0-moodle.1", "@moodlehq/phonegap-plugin-push": "2.0.0-moodle.2", - "@ngx-translate/core": "^13.0.0", - "@ngx-translate/http-loader": "^6.0.0", - "@types/chart.js": "^2.9.31", + "@ngx-translate/core": "13.0.0", + "@ngx-translate/http-loader": "6.0.0", + "@types/chart.js": "2.9.31", "@types/cordova": "0.0.34", - "@types/dom-mediacapture-record": "^1.0.7", - "chart.js": "^2.9.4", - "com-darryncampbell-cordova-plugin-intent": "^2.2.0", - "cordova": "^11.0.0", - "cordova-android": "^10.1.1", - "cordova-clipboard": "^1.3.0", - "cordova-ios": "^6.2.0", - "cordova-plugin-add-swift-support": "^2.0.2", - "cordova-plugin-advanced-http": "^3.2.2", - "cordova-plugin-badge": "^0.8.8", - "cordova-plugin-camera": "^6.0.0", - "cordova-plugin-chooser": "^1.3.2", - "cordova-plugin-customurlscheme": "^5.0.2", - "cordova-plugin-device": "^2.0.3", - "cordova-plugin-file": "^6.0.2", - "cordova-plugin-file-opener2": "^3.0.5", - "cordova-plugin-geolocation": "^4.1.0", - "cordova-plugin-globalization": "^1.11.0", - "cordova-plugin-ionic-keyboard": "^2.2.0", - "cordova-plugin-media": "^5.0.4", - "cordova-plugin-media-capture": "^3.0.3", - "cordova-plugin-network-information": "^3.0.0", - "cordova-plugin-prevent-override": "^1.0.1", - "cordova-plugin-splashscreen": "^6.0.0", - "cordova-plugin-statusbar": "^3.0.0", - "cordova-plugin-wkuserscript": "^1.0.1", - "cordova-plugin-wkwebview-cookies": "^1.0.1", - "cordova-sqlite-storage": "^6.0.0", - "cordova.plugins.diagnostic": "^6.1.1", - "core-js": "^3.9.1", - "es6-promise-plugin": "^4.2.2", - "hammerjs": "^2.0.8", - "jszip": "^3.5.0", + "@types/dom-mediacapture-record": "1.0.7", + "chart.js": "2.9.4", + "com-darryncampbell-cordova-plugin-intent": "2.2.0", + "cordova": "11.0.0", + "cordova-android": "10.1.1", + "cordova-clipboard": "1.3.0", + "cordova-ios": "6.2.0", + "cordova-plugin-add-swift-support": "2.0.2", + "cordova-plugin-advanced-http": "3.2.2", + "cordova-plugin-badge": "0.8.8", + "cordova-plugin-camera": "6.0.0", + "cordova-plugin-chooser": "1.3.2", + "cordova-plugin-customurlscheme": "5.0.2", + "cordova-plugin-device": "2.0.3", + "cordova-plugin-file": "6.0.2", + "cordova-plugin-file-opener2": "3.0.5", + "cordova-plugin-geolocation": "4.1.0", + "cordova-plugin-globalization": "1.11.0", + "cordova-plugin-ionic-keyboard": "2.2.0", + "cordova-plugin-media": "5.0.4", + "cordova-plugin-media-capture": "3.0.3", + "cordova-plugin-network-information": "3.0.0", + "cordova-plugin-prevent-override": "1.0.1", + "cordova-plugin-splashscreen": "6.0.0", + "cordova-plugin-statusbar": "3.0.0", + "cordova-plugin-wkuserscript": "1.0.1", + "cordova-plugin-wkwebview-cookies": "1.0.1", + "cordova-sqlite-storage": "6.0.0", + "cordova.plugins.diagnostic": "6.1.1", + "core-js": "3.9.1", + "es6-promise-plugin": "4.2.2", + "hammerjs": "2.0.8", + "jszip": "3.5.0", "mathjax": "2.7.7", - "moment": "^2.29.0", - "nl.kingsquare.cordova.background-audio": "^1.0.1", - "rxjs": "~6.5.5", - "ts-md5": "^1.2.7", - "tslib": "^2.3.1", - "zone.js": "~0.10.3" + "moment": "2.29.0", + "nl.kingsquare.cordova.background-audio": "1.0.1", + "rxjs": "6.5.5", + "ts-md5": "1.2.7", + "tslib": "2.3.1", + "zone.js": "0.10.3" }, "devDependencies": { - "@angular-builders/custom-webpack": "^10.0.1", - "@angular-devkit/architect": "^0.1202.7", - "@angular-devkit/build-angular": "~0.1000.8", - "@angular-eslint/builder": "^4.2.0", - "@angular-eslint/eslint-plugin": "^4.2.0", - "@angular-eslint/eslint-plugin-template": "^4.2.0", - "@angular-eslint/schematics": "^4.2.0", - "@angular-eslint/template-parser": "^4.2.0", - "@angular/cli": "~10.0.8", - "@angular/compiler": "~10.0.14", - "@angular/compiler-cli": "~10.0.14", - "@angular/language-service": "~10.0.14", - "@ionic/angular-toolkit": "^2.3.3", - "@ionic/cli": "^6.14.1", - "@types/faker": "^5.1.3", - "@types/node": "^12.12.64", - "@types/resize-observer-browser": "^0.1.5", - "@types/webpack-env": "^1.16.0", - "@typescript-eslint/eslint-plugin": "^4.22.0", - "@typescript-eslint/parser": "^4.22.0", - "check-es-compat": "^1.1.1", - "cordova-plugin-androidx-adapter": "^1.1.3", - "eslint": "^7.25.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jest": "^24.3.6", - "eslint-plugin-jsdoc": "^32.3.3", - "eslint-plugin-prefer-arrow": "^1.2.3", - "eslint-plugin-promise": "^5.1.0", - "faker": "^5.1.0", - "fs-extra": "^9.1.0", + "@angular-builders/custom-webpack": "10.0.1", + "@angular-devkit/architect": "0.1202.7", + "@angular-devkit/build-angular": "0.1000.8", + "@angular-eslint/builder": "4.2.0", + "@angular-eslint/eslint-plugin": "4.2.0", + "@angular-eslint/eslint-plugin-template": "4.2.0", + "@angular-eslint/schematics": "4.2.0", + "@angular-eslint/template-parser": "4.2.0", + "@angular/cli": "10.0.8", + "@angular/compiler": "10.0.14", + "@angular/compiler-cli": "10.0.14", + "@angular/language-service": "10.0.14", + "@ionic/angular-toolkit": "2.3.3", + "@ionic/cli": "6.14.1", + "@types/faker": "5.1.3", + "@types/node": "12.12.64", + "@types/resize-observer-browser": "0.1.5", + "@types/webpack-env": "1.16.0", + "@typescript-eslint/eslint-plugin": "4.22.0", + "@typescript-eslint/parser": "4.22.0", + "check-es-compat": "1.1.1", + "cordova-plugin-androidx-adapter": "1.1.3", + "eslint": "7.25.0", + "eslint-config-prettier": "8.3.0", + "eslint-plugin-header": "3.1.1", + "eslint-plugin-import": "2.22.1", + "eslint-plugin-jest": "24.3.6", + "eslint-plugin-jsdoc": "32.3.3", + "eslint-plugin-prefer-arrow": "1.2.3", + "eslint-plugin-promise": "5.1.0", + "faker": "5.1.0", + "fs-extra": "9.1.0", "gulp": "4.0.2", - "gulp-clip-empty-files": "^0.1.2", - "gulp-concat": "^2.6.1", - "gulp-flatten": "^0.4.0", - "gulp-htmlmin": "^5.0.1", - "gulp-rename": "^2.0.0", - "gulp-slash": "^1.1.3", - "jest": "^26.5.2", - "jest-preset-angular": "^8.3.1", - "jsonc-parser": "^2.3.1", - "native-run": "^1.4.0", - "terser-webpack-plugin": "^4.2.3", - "ts-jest": "^26.4.1", - "ts-node": "~8.3.0", - "typescript": "^3.9.9" + "gulp-clip-empty-files": "0.1.2", + "gulp-concat": "2.6.1", + "gulp-flatten": "0.4.0", + "gulp-htmlmin": "5.0.1", + "gulp-rename": "2.0.0", + "gulp-slash": "1.1.3", + "jest": "26.5.2", + "jest-preset-angular": "8.3.1", + "jsonc-parser": "2.3.1", + "native-run": "1.4.0", + "terser-webpack-plugin": "4.2.3", + "ts-jest": "26.4.1", + "ts-node": "8.3.0", + "typescript": "3.9.9" }, "engines": { "node": ">=14.15.0 <15" @@ -242,6 +242,6 @@ } }, "optionalDependencies": { - "keytar": "^7.2.0" + "keytar": "7.2.0" } } From 82afb28901a30c008a4ae1b19f3547ef8cd343e2 Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Wed, 23 Mar 2022 09:34:52 +0100 Subject: [PATCH 2/7] MOBILE-3833 npm: Fix vulnerabilities detected by dependabot --- package-lock.json | 103 ++++++++++++++++++++++++---------------------- 1 file changed, 53 insertions(+), 50 deletions(-) diff --git a/package-lock.json b/package-lock.json index 53b5ea119..fd57e55ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7987,9 +7987,23 @@ } }, "node_modules/base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/batch": { "version": "0.6.1", @@ -14880,9 +14894,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", - "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", "dev": true, "funding": [ { @@ -14892,6 +14906,11 @@ ], "engines": { "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, "node_modules/for-in": { @@ -23128,9 +23147,9 @@ } }, "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-root": { "version": "0.1.1", @@ -23369,13 +23388,12 @@ } }, "node_modules/plist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", - "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz", + "integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==", "dependencies": { - "base64-js": "^1.2.3", - "xmlbuilder": "^9.0.7", - "xmldom": "0.1.x" + "base64-js": "^1.5.1", + "xmlbuilder": "^9.0.7" }, "engines": { "node": ">=6" @@ -29575,9 +29593,9 @@ } }, "node_modules/url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dev": true, "dependencies": { "querystringify": "^2.1.1", @@ -31206,15 +31224,6 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, - "node_modules/xmldom": { - "version": "0.1.31", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", - "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==", - "deprecated": "Deprecated due to CVE-2021-21366 resolved in 0.5.0", - "engines": { - "node": ">=0.1" - } - }, "node_modules/xregexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", @@ -37446,9 +37455,9 @@ } }, "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "batch": { "version": "0.6.1", @@ -42810,9 +42819,9 @@ } }, "follow-redirects": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", - "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", "dev": true }, "for-in": { @@ -49379,9 +49388,9 @@ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-root": { "version": "0.1.1", @@ -49558,13 +49567,12 @@ } }, "plist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", - "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz", + "integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==", "requires": { - "base64-js": "^1.2.3", - "xmlbuilder": "^9.0.7", - "xmldom": "0.1.x" + "base64-js": "^1.5.1", + "xmlbuilder": "^9.0.7" } }, "plugin-error": { @@ -54564,9 +54572,9 @@ } }, "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dev": true, "requires": { "querystringify": "^2.1.1", @@ -55888,11 +55896,6 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, - "xmldom": { - "version": "0.1.31", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", - "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==" - }, "xregexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", From 0bc6568f1f8bef6b00edcbe8c2e8a465ecb42b60 Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Wed, 23 Mar 2022 10:31:55 +0100 Subject: [PATCH 3/7] MOBILE-3833 core: Fix 'undefined' handler in log --- src/core/services/plugin-file-delegate.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/core/services/plugin-file-delegate.ts b/src/core/services/plugin-file-delegate.ts index ef78e78ae..cf5602af8 100644 --- a/src/core/services/plugin-file-delegate.ts +++ b/src/core/services/plugin-file-delegate.ts @@ -29,8 +29,6 @@ import { CoreFileHelper } from './file-helper'; @Injectable({ providedIn: 'root' }) export class CorePluginFileDelegateService extends CoreDelegate { - protected handlerNameProperty = 'component'; - constructor() { super('CorePluginFileDelegate', true); } From e0309cf32077f616bf1abc39951e1aa67d5be03c Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Wed, 23 Mar 2022 10:34:57 +0100 Subject: [PATCH 4/7] MOBILE-3833 compile: Increase log severity of inject error --- src/core/features/compile/services/compile.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/features/compile/services/compile.ts b/src/core/features/compile/services/compile.ts index 4be7f3875..5f6cd1c4c 100644 --- a/src/core/features/compile/services/compile.ts +++ b/src/core/features/compile/services/compile.ts @@ -325,7 +325,7 @@ export class CoreCompileProvider { // Inject the provider to the instance. We use the class name as the property name. instance[providerDef.name.replace(/DelegateService$/, 'Delegate')] = this.injector.get(providerDef); } catch (ex) { - this.logger.warn('Error injecting provider', providerDef.name, ex); + this.logger.error('Error injecting provider', providerDef.name, ex); } } } From 05ffa6f80768105c5d75c81016f93f57b55b2d3e Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Wed, 23 Mar 2022 12:59:53 +0100 Subject: [PATCH 5/7] MOBILE-3833 database: Fix log view not called when not open --- src/addons/mod/data/components/index/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/addons/mod/data/components/index/index.ts b/src/addons/mod/data/components/index/index.ts index 164be2986..4708f24c7 100644 --- a/src/addons/mod/data/components/index/index.ts +++ b/src/addons/mod/data/components/index/index.ts @@ -243,6 +243,8 @@ export class AddonModDataIndexComponent extends CoreCourseModuleMainActivityComp this.isEmpty = true; this.groupInfo = undefined; + + return; } else { canSearch = true; canAdd = this.access.canaddentry; From 147df9b58ed0c157d8641ee5d5e63aa837322563 Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Wed, 23 Mar 2022 15:02:24 +0100 Subject: [PATCH 6/7] MOBILE-3833 course: Improve getCoursesAdminAndNavOptions performance --- src/core/features/courses/services/courses.ts | 23 +++++-------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/src/core/features/courses/services/courses.ts b/src/core/features/courses/services/courses.ts index a724803f0..8466592eb 100644 --- a/src/core/features/courses/services/courses.ts +++ b/src/core/features/courses/services/courses.ts @@ -20,6 +20,7 @@ import { CoreStatusWithWarningsWSResponse, CoreWarningsWSResponse, CoreWSExterna import { CoreEvents } from '@singletons/events'; import { CoreWSError } from '@classes/errors/wserror'; import { CoreCourseAnyCourseDataWithExtraInfoAndOptions, CoreCourseWithImageAndColor } from './courses-helper'; +import { CoreUtils } from '@services/utils/utils'; const ROOT_CACHE_KEY = 'mmCourses:'; @@ -625,25 +626,13 @@ export class CoreCoursesProvider { // Get the list of courseIds to use based on the param. courseIds = await this.getCourseIdsForAdminAndNavOptions(courseIds, siteId); - let navOptions: CoreCourseUserAdminOrNavOptionCourseIndexed; - let admOptions: CoreCourseUserAdminOrNavOptionCourseIndexed; - // Get user navigation and administration options. - try { - navOptions = await this.getUserNavigationOptions(courseIds, siteId); - } catch { - // Couldn't get it, return empty options. - navOptions = {}; - } + const [navOptions, admOptions] = await Promise.all([ + CoreUtils.ignoreErrors(this.getUserNavigationOptions(courseIds, siteId), {}), + CoreUtils.ignoreErrors(this.getUserAdministrationOptions(courseIds, siteId), {}), + ]); - try { - admOptions = await this.getUserAdministrationOptions(courseIds, siteId); - } catch { - // Couldn't get it, return empty options. - admOptions = {}; - } - - return ({ navOptions: navOptions, admOptions: admOptions }); + return { navOptions: navOptions, admOptions: admOptions }; } /** From b86cf8d93c5a246446fafaec6787e10749ab50f1 Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Thu, 24 Mar 2022 11:12:21 +0100 Subject: [PATCH 7/7] MOBILE-3833 course: Decrease WS calls to get_courses_by_fields --- .../components/myoverview/myoverview.ts | 15 ++++++++++--- .../recentlyaccessedcourses.ts | 21 ++++++++++++------- .../starredcourses/starredcourses.ts | 13 ++++++++++-- 3 files changed, 37 insertions(+), 12 deletions(-) diff --git a/src/addons/block/myoverview/components/myoverview/myoverview.ts b/src/addons/block/myoverview/components/myoverview/myoverview.ts index c1f84f909..8c97fa6c6 100644 --- a/src/addons/block/myoverview/components/myoverview/myoverview.ts +++ b/src/addons/block/myoverview/components/myoverview/myoverview.ts @@ -203,6 +203,15 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem await this.invalidateCourses(courseIds); } + /** + * Invalidate list of courses. + * + * @return Promise resolved when done. + */ + protected invalidateCourseList(): Promise { + return CoreCourses.invalidateUserCourses(); + } + /** * Helper function to invalidate only selected courses. * @@ -213,7 +222,7 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem const promises: Promise[] = []; // Invalidate course completion data. - promises.push(CoreCourses.invalidateUserCourses().finally(() => + promises.push(this.invalidateCourseList().finally(() => CoreUtils.allPromises(courseIds.map((courseId) => AddonCourseCompletion.invalidateCourseCompletion(courseId))))); @@ -397,7 +406,7 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem course.hidden = !!data.value; } - await this.invalidateCourses([course.id]); + await this.invalidateCourseList(); await this.filterCourses(); } @@ -409,7 +418,7 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem course.lastaccess = CoreTimeUtils.timestamp(); - await this.invalidateCourses([course.id]); + await this.invalidateCourseList(); await this.filterCourses(); } } diff --git a/src/addons/block/recentlyaccessedcourses/components/recentlyaccessedcourses/recentlyaccessedcourses.ts b/src/addons/block/recentlyaccessedcourses/components/recentlyaccessedcourses/recentlyaccessedcourses.ts index eefd70ac4..ef7d67f3b 100644 --- a/src/addons/block/recentlyaccessedcourses/components/recentlyaccessedcourses/recentlyaccessedcourses.ts +++ b/src/addons/block/recentlyaccessedcourses/components/recentlyaccessedcourses/recentlyaccessedcourses.ts @@ -85,6 +85,17 @@ export class AddonBlockRecentlyAccessedCoursesComponent extends CoreBlockBaseCom await this.invalidateCourses(courseIds); } + /** + * Invalidate list of courses. + * + * @return Promise resolved when done. + */ + protected async invalidateCourseList(): Promise { + return this.site.isVersionGreaterEqualThan('3.8') + ? CoreCourses.invalidateRecentCourses() + : CoreCourses.invalidateUserCourses(); + } + /** * Helper function to invalidate only selected courses. * @@ -94,12 +105,8 @@ export class AddonBlockRecentlyAccessedCoursesComponent extends CoreBlockBaseCom protected async invalidateCourses(courseIds: number[]): Promise { const promises: Promise[] = []; - const invalidateCoursePromise = this.site.isVersionGreaterEqualThan('3.8') - ? CoreCourses.invalidateRecentCourses() - : CoreCourses.invalidateUserCourses(); - // Invalidate course completion data. - promises.push(invalidateCoursePromise.finally(() => + promises.push(this.invalidateCourseList().finally(() => CoreUtils.allPromises(courseIds.map((courseId) => AddonCourseCompletion.invalidateCourseCompletion(courseId))))); @@ -179,13 +186,13 @@ export class AddonBlockRecentlyAccessedCoursesComponent extends CoreBlockBaseCom this.courses.splice(courseIndex, 1); this.courses.unshift(course); - await this.invalidateCourses([course.id]); + await this.invalidateCourseList(); } if (data.action == CoreCoursesProvider.ACTION_STATE_CHANGED && data.state == CoreCoursesProvider.STATE_FAVOURITE && course) { course.isfavourite = !!data.value; - await this.invalidateCourses([course.id]); + await this.invalidateCourseList(); } } diff --git a/src/addons/block/starredcourses/components/starredcourses/starredcourses.ts b/src/addons/block/starredcourses/components/starredcourses/starredcourses.ts index c6e6fc447..c82a896dc 100644 --- a/src/addons/block/starredcourses/components/starredcourses/starredcourses.ts +++ b/src/addons/block/starredcourses/components/starredcourses/starredcourses.ts @@ -81,6 +81,15 @@ export class AddonBlockStarredCoursesComponent extends CoreBlockBaseComponent im await this.invalidateCourses(courseIds); } + /** + * Invalidate list of courses. + * + * @return Promise resolved when done. + */ + protected async invalidateCourseList(): Promise { + return AddonBlockStarredCourses.invalidateStarredCourses(); + } + /** * Helper function to invalidate only selected courses. * @@ -91,7 +100,7 @@ export class AddonBlockStarredCoursesComponent extends CoreBlockBaseComponent im const promises: Promise[] = []; // Invalidate course completion data. - promises.push(AddonBlockStarredCourses.invalidateStarredCourses().finally(() => + promises.push(this.invalidateCourseList().finally(() => CoreUtils.allPromises(courseIds.map((courseId) => AddonCourseCompletion.invalidateCourseCompletion(courseId))))); @@ -172,7 +181,7 @@ export class AddonBlockStarredCoursesComponent extends CoreBlockBaseComponent im this.courses.unshift(course); } - await this.invalidateCourses([course.id]); + await this.invalidateCourseList(); } }