diff --git a/build/dockerfile b/build/dockerfile index 2f4b762e88..d70a1f684d 100644 --- a/build/dockerfile +++ b/build/dockerfile @@ -74,21 +74,19 @@ RUN build/console/generate-grpc.sh FROM scratch as npm-copy COPY --from=npm-base /console/src/app/proto/generated ./console/src/app/proto/generated - ####################### -## anular dev build +## angular dev build ####################### FROM npm-base as dev-angular-build RUN npm install -g @angular/cli - ####################### -## anular prod build +## angular lint workspace and prod build ####################### FROM npm-base as prod-angular-build +RUN npm run lint RUN npm run prodbuild - ####################### ## Go dependencies ## Speed up this step by mounting your local go mod pkg directory diff --git a/console/angular.json b/console/angular.json index b5c0c4a797..9294a814fc 100644 --- a/console/angular.json +++ b/console/angular.json @@ -115,7 +115,8 @@ "tsconfig.spec.json" ], "exclude": [ - "**/node_modules/**" + "**/node_modules/**", + "**/proto/generated/**" ] } }, diff --git a/console/package-lock.json b/console/package-lock.json index 9191f77724..649fd7ce9b 100644 --- a/console/package-lock.json +++ b/console/package-lock.json @@ -5,25 +5,42 @@ "requires": true, "dependencies": { "@angular-devkit/architect": { - "version": "0.1102.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1102.7.tgz", - "integrity": "sha512-55SduK1ZpoHDSNd5ACBFVUQ5dMNVLOznJDoec76acrDuY7EZ6bptfjcK329fBQME0Ne6Jvip7zzrmec+PBXS+g==", + "version": "0.1102.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1102.8.tgz", + "integrity": "sha512-EMl81SRyTntjE9U9m4piGvlbs2PdmBTVl2LS8GK3fimunlIzebu9WhDwAmqZdm4HEXiYmiBcCbVaHkYTU8k0Kg==", "dev": true, "requires": { - "@angular-devkit/core": "11.2.7", + "@angular-devkit/core": "11.2.8", "rxjs": "6.6.3" + }, + "dependencies": { + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } } }, "@angular-devkit/build-angular": { - "version": "0.1102.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1102.7.tgz", - "integrity": "sha512-SDAqqJmX7EP8KIGopZJRTpOWnAAicRbE43pe/D/6Q9nzqN0RA44SP9SIyTAMRYFpRWtgskWf2MOtf5Xt/s83yw==", + "version": "0.1102.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1102.8.tgz", + "integrity": "sha512-rSGSa5jK/Fsh7PbJz9FnxLQn7zA91yquwd+x4n/VNNqMGuAIAvicBi6SCGUD5LFjMbCjWtyAMqjyqFTpU3c3qw==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1102.7", - "@angular-devkit/build-optimizer": "0.1102.7", - "@angular-devkit/build-webpack": "0.1102.7", - "@angular-devkit/core": "11.2.7", + "@angular-devkit/architect": "0.1102.8", + "@angular-devkit/build-optimizer": "0.1102.8", + "@angular-devkit/build-webpack": "0.1102.8", + "@angular-devkit/core": "11.2.8", "@babel/core": "7.12.10", "@babel/generator": "7.12.11", "@babel/plugin-transform-async-to-generator": "7.12.1", @@ -33,7 +50,7 @@ "@babel/template": "7.12.7", "@discoveryjs/json-ext": "0.5.2", "@jsdevtools/coverage-istanbul-loader": "3.0.5", - "@ngtools/webpack": "11.2.7", + "@ngtools/webpack": "11.2.8", "ansi-colors": "4.1.1", "autoprefixer": "10.2.4", "babel-loader": "8.2.2", @@ -45,7 +62,7 @@ "core-js": "3.8.3", "critters": "0.0.7", "css-loader": "5.0.1", - "cssnano": "4.1.10", + "cssnano": "4.1.11", "file-loader": "6.2.0", "find-cache-dir": "3.3.1", "glob": "7.1.6", @@ -321,9 +338,9 @@ } }, "@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", + "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==", "dev": true }, "@babel/template": { @@ -338,17 +355,17 @@ } }, "@babel/traverse": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", - "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz", + "integrity": "sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", "@babel/generator": "^7.13.9", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.13", - "@babel/types": "^7.13.13", + "@babel/parser": "^7.13.15", + "@babel/types": "^7.13.14", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -420,9 +437,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001207", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001207.tgz", - "integrity": "sha512-UPQZdmAsyp2qfCTiMU/zqGSWOYaY9F9LL61V8f+8MrubsaDGpaHD9HRV/EWZGULZn0Hxu48SKzI5DgFwTvHuYw==", + "version": "1.0.30001208", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz", + "integrity": "sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA==", "dev": true } } @@ -437,9 +454,9 @@ } }, "electron-to-chromium": { - "version": "1.3.709", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.709.tgz", - "integrity": "sha512-LolItk2/ikSGQ7SN8UkuKVNMBZp3RG7Itgaxj1npsHRzQobj9JjMneZOZfLhtwlYBe5fCJ75k+cVCiDFUs23oA==", + "version": "1.3.712", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.712.tgz", + "integrity": "sha512-3kRVibBeCM4vsgoHHGKHmPocLqtFAGTrebXxxtgKs87hNUzXrX2NuS3jnBys7IozCnw7viQlozxKkmty2KNfrw==", "dev": true }, "escalade": { @@ -492,6 +509,15 @@ "glob": "^7.1.3" } }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "semver": { "version": "7.3.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", @@ -506,13 +532,19 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, "@angular-devkit/build-optimizer": { - "version": "0.1102.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1102.7.tgz", - "integrity": "sha512-OC+2TmkBon7KxeBurtYBmzecUsRMKP8JI0c39HnWePPoQU6yMnYmEeU/3zuIX5hOaxriQwPAx76R7u+9N1dF9w==", + "version": "0.1102.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1102.8.tgz", + "integrity": "sha512-a5IK3yc7XXHc3obdFc8rhm9neO9LHSJZ1AqusLq/2tmHhFBrLevG4ylG+n9ZnM+bh4PIoUwFN82dneH9C7IBpA==", "dev": true, "requires": { "loader-utils": "2.0.0", @@ -543,20 +575,37 @@ } }, "@angular-devkit/build-webpack": { - "version": "0.1102.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1102.7.tgz", - "integrity": "sha512-+Z0HCa5tuhN5az3+3zWNFsJEkU6FawPU4kp+pdqQXD8Bzwo7jlsDXfSB2UN50RmveqrZNJxszIvhIjFyVDKXVQ==", + "version": "0.1102.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1102.8.tgz", + "integrity": "sha512-iyFgrU3VPbUl7/JhxRljkqfvIIwzH5HJaYaObo3QVrvL9vAsRhVk6gQRYxGpSmeTwu64fBE5W3reL2uja7KEoA==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1102.7", - "@angular-devkit/core": "11.2.7", + "@angular-devkit/architect": "0.1102.8", + "@angular-devkit/core": "11.2.8", "rxjs": "6.6.3" + }, + "dependencies": { + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } } }, "@angular-devkit/core": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.7.tgz", - "integrity": "sha512-oflo+LsUob5nF0PknivtRdkHH/iMbVNIPRnv/c52Nk7+FUlEx53pkLWBc2rdhTrEptBFMmrpNaa30P+TQrFNkQ==", + "version": "11.2.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.8.tgz", + "integrity": "sha512-iNodaySWW1JrF+oGZCi0rYDJXO96T4K7H6BLz6xapSwFxkY+Xr4CBuTqEp2DKzAZ+sjYFmsItLmNedwOOBnwfA==", "dev": true, "requires": { "ajv": "6.12.6", @@ -578,29 +627,44 @@ "uri-js": "^4.2.2" } }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, "@angular-devkit/schematics": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.2.7.tgz", - "integrity": "sha512-cnORKnyVtsdVZ180ZZyrmCMeSH1IGK2apfgGGW3UaUZvTAtolQPrqT0RQUK8qLF/RC85xy9QYXApiAaLDUixIw==", + "version": "11.2.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.2.8.tgz", + "integrity": "sha512-EoCgDPr4VfDajoCW5/XDTyxEnaNjE+9XXVp9mXWYMMSBxKCZIrbieN4+SpjxyKDBl2ZKtTtZU1zWJ2Yerk66Cg==", "dev": true, "requires": { - "@angular-devkit/core": "11.2.7", + "@angular-devkit/core": "11.2.8", "ora": "5.3.0", "rxjs": "6.6.3" }, "dependencies": { "@angular-devkit/core": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.7.tgz", - "integrity": "sha512-oflo+LsUob5nF0PknivtRdkHH/iMbVNIPRnv/c52Nk7+FUlEx53pkLWBc2rdhTrEptBFMmrpNaa30P+TQrFNkQ==", + "version": "11.2.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.8.tgz", + "integrity": "sha512-iNodaySWW1JrF+oGZCi0rYDJXO96T4K7H6BLz6xapSwFxkY+Xr4CBuTqEp2DKzAZ+sjYFmsItLmNedwOOBnwfA==", "dev": true, "requires": { "ajv": "6.12.6", @@ -622,11 +686,26 @@ "uri-js": "^4.2.2" } }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, @@ -648,16 +727,16 @@ } }, "@angular/cli": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-11.2.7.tgz", - "integrity": "sha512-+0uC485NHE5Z8FCyCAeZnb7OCOZSGzEsUxGS5pEs8V9+c02/FmMg5aFBmxoXJhCWMJnb2QrJgAjb6rgka8e4Hg==", + "version": "11.2.8", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-11.2.8.tgz", + "integrity": "sha512-9TWNPKqaOrg+C5DR8jz4LNVzu/wCV0Hqt3JF4ILm9fv93bh2MgqetUKyHdQNAijtHMlOO1uh0EM2Emjlp5JvXQ==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1102.7", - "@angular-devkit/core": "11.2.7", - "@angular-devkit/schematics": "11.2.7", - "@schematics/angular": "11.2.7", - "@schematics/update": "0.1102.7", + "@angular-devkit/architect": "0.1102.8", + "@angular-devkit/core": "11.2.8", + "@angular-devkit/schematics": "11.2.8", + "@schematics/angular": "11.2.8", + "@schematics/update": "0.1102.8", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.1", "debug": "4.3.1", @@ -678,19 +757,30 @@ }, "dependencies": { "@angular-devkit/architect": { - "version": "0.1102.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1102.7.tgz", - "integrity": "sha512-55SduK1ZpoHDSNd5ACBFVUQ5dMNVLOznJDoec76acrDuY7EZ6bptfjcK329fBQME0Ne6Jvip7zzrmec+PBXS+g==", + "version": "0.1102.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1102.8.tgz", + "integrity": "sha512-EMl81SRyTntjE9U9m4piGvlbs2PdmBTVl2LS8GK3fimunlIzebu9WhDwAmqZdm4HEXiYmiBcCbVaHkYTU8k0Kg==", "dev": true, "requires": { - "@angular-devkit/core": "11.2.7", + "@angular-devkit/core": "11.2.8", "rxjs": "6.6.3" + }, + "dependencies": { + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } } }, "@angular-devkit/core": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.7.tgz", - "integrity": "sha512-oflo+LsUob5nF0PknivtRdkHH/iMbVNIPRnv/c52Nk7+FUlEx53pkLWBc2rdhTrEptBFMmrpNaa30P+TQrFNkQ==", + "version": "11.2.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.8.tgz", + "integrity": "sha512-iNodaySWW1JrF+oGZCi0rYDJXO96T4K7H6BLz6xapSwFxkY+Xr4CBuTqEp2DKzAZ+sjYFmsItLmNedwOOBnwfA==", "dev": true, "requires": { "ajv": "6.12.6", @@ -698,6 +788,17 @@ "magic-string": "0.25.7", "rxjs": "6.6.3", "source-map": "0.7.3" + }, + "dependencies": { + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } } }, "ajv": { @@ -760,6 +861,12 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, @@ -909,9 +1016,9 @@ } }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yargs": { @@ -962,9 +1069,9 @@ } }, "@angular/language-service": { - "version": "11.2.8", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-11.2.8.tgz", - "integrity": "sha512-OOBexa5Wap3NnH5Z/i94qhyh3lf0OajDPhqCvVdBjL0fG62lgcU12EKClq4CnXQyEbihYIrF2uKZ9PP67wWGYA==", + "version": "11.2.9", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-11.2.9.tgz", + "integrity": "sha512-W7MrMnwjJC0XF/jhKcEcYu0PJoNsxTMR+6lDuLNtLtdl74PnHnhf5SS/Owt1KKmyxeHCx1BrAuWqlfh+cR+dAA==", "dev": true }, "@angular/material": { @@ -1025,9 +1132,9 @@ } }, "@babel/compat-data": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.12.tgz", - "integrity": "sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz", + "integrity": "sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==", "dev": true }, "@babel/core": { @@ -1174,15 +1281,15 @@ } }, "caniuse-lite": { - "version": "1.0.30001207", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001207.tgz", - "integrity": "sha512-UPQZdmAsyp2qfCTiMU/zqGSWOYaY9F9LL61V8f+8MrubsaDGpaHD9HRV/EWZGULZn0Hxu48SKzI5DgFwTvHuYw==", + "version": "1.0.30001208", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz", + "integrity": "sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA==", "dev": true }, "electron-to-chromium": { - "version": "1.3.709", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.709.tgz", - "integrity": "sha512-LolItk2/ikSGQ7SN8UkuKVNMBZp3RG7Itgaxj1npsHRzQobj9JjMneZOZfLhtwlYBe5fCJ75k+cVCiDFUs23oA==", + "version": "1.3.712", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.712.tgz", + "integrity": "sha512-3kRVibBeCM4vsgoHHGKHmPocLqtFAGTrebXxxtgKs87hNUzXrX2NuS3jnBys7IozCnw7viQlozxKkmty2KNfrw==", "dev": true }, "escalade": { @@ -1315,9 +1422,9 @@ } }, "@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", + "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==", "dev": true }, "@babel/template": { @@ -1332,17 +1439,17 @@ } }, "@babel/traverse": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", - "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz", + "integrity": "sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", "@babel/generator": "^7.13.9", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.13", - "@babel/types": "^7.13.13", + "@babel/parser": "^7.13.15", + "@babel/types": "^7.13.14", "debug": "^4.1.0", "globals": "^11.1.0" } @@ -1543,9 +1650,9 @@ } }, "@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", + "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==", "dev": true }, "@babel/template": { @@ -1560,17 +1667,17 @@ } }, "@babel/traverse": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", - "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz", + "integrity": "sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", "@babel/generator": "^7.13.9", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.13", - "@babel/types": "^7.13.13", + "@babel/parser": "^7.13.15", + "@babel/types": "^7.13.14", "debug": "^4.1.0", "globals": "^11.1.0" } @@ -1897,9 +2004,9 @@ } }, "@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", + "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==", "dev": true }, "@babel/template": { @@ -1914,17 +2021,17 @@ } }, "@babel/traverse": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", - "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz", + "integrity": "sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", "@babel/generator": "^7.13.9", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.13", - "@babel/types": "^7.13.13", + "@babel/parser": "^7.13.15", + "@babel/types": "^7.13.14", "debug": "^4.1.0", "globals": "^11.1.0" } @@ -2019,9 +2126,9 @@ "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz", - "integrity": "sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz", + "integrity": "sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.13.0", @@ -2439,9 +2546,9 @@ } }, "@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", + "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==", "dev": true }, "@babel/template": { @@ -2456,17 +2563,17 @@ } }, "@babel/traverse": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", - "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz", + "integrity": "sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", "@babel/generator": "^7.13.9", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.13", - "@babel/types": "^7.13.13", + "@babel/parser": "^7.13.15", + "@babel/types": "^7.13.14", "debug": "^4.1.0", "globals": "^11.1.0" } @@ -2612,9 +2719,9 @@ } }, "@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", + "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==", "dev": true }, "@babel/template": { @@ -2801,9 +2908,9 @@ } }, "@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", + "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==", "dev": true }, "@babel/template": { @@ -2818,17 +2925,17 @@ } }, "@babel/traverse": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", - "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz", + "integrity": "sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", "@babel/generator": "^7.13.9", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.13", - "@babel/types": "^7.13.13", + "@babel/parser": "^7.13.15", + "@babel/types": "^7.13.14", "debug": "^4.1.0", "globals": "^11.1.0" } @@ -3004,9 +3111,9 @@ } }, "@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", + "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==", "dev": true }, "@babel/template": { @@ -3021,17 +3128,17 @@ } }, "@babel/traverse": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", - "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz", + "integrity": "sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", "@babel/generator": "^7.13.9", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.13", - "@babel/types": "^7.13.13", + "@babel/parser": "^7.13.15", + "@babel/types": "^7.13.14", "debug": "^4.1.0", "globals": "^11.1.0" } @@ -3208,9 +3315,9 @@ } }, "@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", + "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==", "dev": true }, "@babel/template": { @@ -3225,17 +3332,17 @@ } }, "@babel/traverse": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", - "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz", + "integrity": "sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", "@babel/generator": "^7.13.9", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.13", - "@babel/types": "^7.13.13", + "@babel/parser": "^7.13.15", + "@babel/types": "^7.13.14", "debug": "^4.1.0", "globals": "^11.1.0" } @@ -3409,9 +3516,9 @@ } }, "@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", + "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==", "dev": true }, "@babel/template": { @@ -3426,17 +3533,17 @@ } }, "@babel/traverse": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", - "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz", + "integrity": "sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", "@babel/generator": "^7.13.9", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.13", - "@babel/types": "^7.13.13", + "@babel/parser": "^7.13.15", + "@babel/types": "^7.13.14", "debug": "^4.1.0", "globals": "^11.1.0" } @@ -3594,9 +3701,9 @@ } }, "@babel/parser": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", - "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", + "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==", "dev": true }, "@babel/template": { @@ -3611,17 +3718,17 @@ } }, "@babel/traverse": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", - "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz", + "integrity": "sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", "@babel/generator": "^7.13.9", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.13", - "@babel/types": "^7.13.13", + "@babel/parser": "^7.13.15", + "@babel/types": "^7.13.14", "debug": "^4.1.0", "globals": "^11.1.0" } @@ -3673,9 +3780,9 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz", - "integrity": "sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz", + "integrity": "sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==", "dev": true, "requires": { "regenerator-transform": "^0.14.2" @@ -4031,12 +4138,12 @@ } }, "@ngtools/webpack": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-11.2.7.tgz", - "integrity": "sha512-TxvyCZHkNBlEXdacMi8iuFEs4dU78FUlf195DoEggBtTIP0RUhj3PYL5vUxutJSZ0vaIuSnfgOgJlHqinFx8/w==", + "version": "11.2.8", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-11.2.8.tgz", + "integrity": "sha512-ONn/MLJF8ieXrvvmmnDwga1sredsfedAsCLNmRpyDdamQwzqIErHuMmQhP4kuTw2+9Lj3V1gQOHyxdayO0d91A==", "dev": true, "requires": { - "@angular-devkit/core": "11.2.7", + "@angular-devkit/core": "11.2.8", "enhanced-resolve": "5.7.0", "webpack-sources": "2.2.0" } @@ -4274,20 +4381,20 @@ "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" }, "@schematics/angular": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-11.2.7.tgz", - "integrity": "sha512-LI6FkFHmwS/MCt+QENpGT/xl1Y6RMvcDqQ/efbZ3qz2W+0W0DkaPSlDmVbbNzgol+eJ7eHx4kmJr2U2r9ZOQgg==", + "version": "11.2.8", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-11.2.8.tgz", + "integrity": "sha512-5iJSzkFC3P4t47I9cbIuiaIm3Hkmr6YsXSPE6t8lmUjdcG+sX/AXlSgHmvE9RqoEWAlo1YiXPmQsQH/QIE0qPQ==", "dev": true, "requires": { - "@angular-devkit/core": "11.2.7", - "@angular-devkit/schematics": "11.2.7", + "@angular-devkit/core": "11.2.8", + "@angular-devkit/schematics": "11.2.8", "jsonc-parser": "3.0.0" }, "dependencies": { "@angular-devkit/core": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.7.tgz", - "integrity": "sha512-oflo+LsUob5nF0PknivtRdkHH/iMbVNIPRnv/c52Nk7+FUlEx53pkLWBc2rdhTrEptBFMmrpNaa30P+TQrFNkQ==", + "version": "11.2.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.8.tgz", + "integrity": "sha512-iNodaySWW1JrF+oGZCi0rYDJXO96T4K7H6BLz6xapSwFxkY+Xr4CBuTqEp2DKzAZ+sjYFmsItLmNedwOOBnwfA==", "dev": true, "requires": { "ajv": "6.12.6", @@ -4295,6 +4402,17 @@ "magic-string": "0.25.7", "rxjs": "6.6.3", "source-map": "0.7.3" + }, + "dependencies": { + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } } }, "ajv": { @@ -4314,17 +4432,23 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, "@schematics/update": { - "version": "0.1102.7", - "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1102.7.tgz", - "integrity": "sha512-aSuG4VtGlcEGNIhcRS+99Sbhs+IRJn1JLOG1rWV5U5d40M/kLDsNx5O5JCXE062ga209sJc++sgLXRXn5yrEiQ==", + "version": "0.1102.8", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1102.8.tgz", + "integrity": "sha512-advLOzXtlA71XP+XCkvN4HCDTFfSUAfUcEFWLSxIFu456ED6smGex8ydkH6YcWx9LM+auhyHiJmTNYFDI0vxig==", "dev": true, "requires": { - "@angular-devkit/core": "11.2.7", - "@angular-devkit/schematics": "11.2.7", + "@angular-devkit/core": "11.2.8", + "@angular-devkit/schematics": "11.2.8", "@yarnpkg/lockfile": "1.1.0", "ini": "2.0.0", "npm-package-arg": "^8.0.0", @@ -4334,9 +4458,9 @@ }, "dependencies": { "@angular-devkit/core": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.7.tgz", - "integrity": "sha512-oflo+LsUob5nF0PknivtRdkHH/iMbVNIPRnv/c52Nk7+FUlEx53pkLWBc2rdhTrEptBFMmrpNaa30P+TQrFNkQ==", + "version": "11.2.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.8.tgz", + "integrity": "sha512-iNodaySWW1JrF+oGZCi0rYDJXO96T4K7H6BLz6xapSwFxkY+Xr4CBuTqEp2DKzAZ+sjYFmsItLmNedwOOBnwfA==", "dev": true, "requires": { "ajv": "6.12.6", @@ -4344,6 +4468,17 @@ "magic-string": "0.25.7", "rxjs": "6.6.3", "source-map": "0.7.3" + }, + "dependencies": { + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } } }, "ajv": { @@ -4378,6 +4513,12 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, @@ -4440,9 +4581,9 @@ "dev": true }, "@types/file-saver": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.1.tgz", - "integrity": "sha512-g1QUuhYVVAamfCifK7oB7G3aIl4BbOyzDOqVyUfEr4tfBKrXfeH+M+Tg7HKCXSrbzxYdhyCP7z9WbKo0R2hBCw==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.2.tgz", + "integrity": "sha512-xbqnZmGrCEqi/KUzOkeUSe77p7APvLuyellGaAoeww3CHJ1AbjQWjPSCFtKIzZn8L7LpEax4NXnC+gfa6nM7IA==" }, "@types/glob": { "version": "7.1.3", @@ -4460,9 +4601,9 @@ "integrity": "sha512-6PjMFKl13cgB4kRdYtvyjKl8VVa0PXS2IdVxHhQ8GEKbxBkyJtSbaIeK1eZGjDKN7dvUh4vkOvU9FMwYNv4GQQ==" }, "@types/jasmine": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.6.3.tgz", - "integrity": "sha512-5QKAG8WfC9XrOgYLXPrxv1G2IIUE6zDyzTWamhNWJO0LqPRUbZ0q0zGHDhDJ7MpFloUuyME/jpBIdPjq3/P3jA==", + "version": "3.6.9", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.6.9.tgz", + "integrity": "sha512-B53NIwMj/AO0O+xfSWLYmKB0Mo6TYxfv2Mk8/c1T2w/e38t55iaPR6p7pHXTTtqfTmevPK3i8T1YweYFTZlxDw==", "dev": true }, "@types/jasminewd2": { @@ -5907,21 +6048,10 @@ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true }, "cipher-base": { "version": "1.0.4", @@ -6496,9 +6626,9 @@ "dev": true }, "core-js-compat": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.10.0.tgz", - "integrity": "sha512-9yVewub2MXNYyGvuLnMHcN1k9RkvB7/ofktpeKTIaASyB88YYqGzUnu0ywMMhJrDHOMiTjSHWGzR+i7Wb9Z1kQ==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.10.1.tgz", + "integrity": "sha512-ZHQTdTPkqvw2CeHiZC970NNJcnwzT6YIueDMASKt+p3WbZsLXOcoD392SkcWhkC0wBBHhlfhqGKKsNCQUozYtg==", "dev": true, "requires": { "browserslist": "^4.16.3", @@ -6519,15 +6649,15 @@ } }, "caniuse-lite": { - "version": "1.0.30001207", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001207.tgz", - "integrity": "sha512-UPQZdmAsyp2qfCTiMU/zqGSWOYaY9F9LL61V8f+8MrubsaDGpaHD9HRV/EWZGULZn0Hxu48SKzI5DgFwTvHuYw==", + "version": "1.0.30001208", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz", + "integrity": "sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA==", "dev": true }, "electron-to-chromium": { - "version": "1.3.709", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.709.tgz", - "integrity": "sha512-LolItk2/ikSGQ7SN8UkuKVNMBZp3RG7Itgaxj1npsHRzQobj9JjMneZOZfLhtwlYBe5fCJ75k+cVCiDFUs23oA==", + "version": "1.3.712", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.712.tgz", + "integrity": "sha512-3kRVibBeCM4vsgoHHGKHmPocLqtFAGTrebXxxtgKs87hNUzXrX2NuS3jnBys7IozCnw7viQlozxKkmty2KNfrw==", "dev": true }, "escalade": { @@ -6820,9 +6950,9 @@ "dev": true }, "postcss": { - "version": "8.2.9", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.9.tgz", - "integrity": "sha512-b+TmuIL4jGtCHtoLi+G/PisuIl9avxs8IZMSmlABRwNz5RLUUACrC+ws81dcomz1nRezm5YPdXiMEzBEKgYn+Q==", + "version": "8.2.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.10.tgz", + "integrity": "sha512-b/h7CPV7QEdrqIxtAf2j31U5ef05uBDuvoXv6L51Q4rcS1jdlXAVKJv+atCFdUXYl9dyTHGyoMzIepwowRJjFw==", "dev": true, "requires": { "colorette": "^1.2.2", @@ -6948,13 +7078,13 @@ "dev": true }, "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", + "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", "dev": true, "requires": { "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", + "cssnano-preset-default": "^4.0.8", "is-resolvable": "^1.0.0", "postcss": "^7.0.0" }, @@ -8823,9 +8953,9 @@ } }, "google-protobuf": { - "version": "3.15.7", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.15.7.tgz", - "integrity": "sha512-S/kTHcT98AV2FxEwtT5lvgffeS87BB6hloZm+pYKkpzwtySwNiKcqXZbxpq/Odh3Wib1RdOe/oY2EHdi17YrlQ==" + "version": "3.15.8", + "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.15.8.tgz", + "integrity": "sha512-2jtfdqTaSxk0cuBJBtTTWsot4WtR9RVr2rXg7x7OoqiuOKopPrwXpM1G4dXIkLcUNRh3RKzz76C8IOkksZSeOw==" }, "graceful-fs": { "version": "4.2.3", @@ -10163,15 +10293,15 @@ } }, "jasmine-core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz", - "integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.7.1.tgz", + "integrity": "sha512-DH3oYDS/AUvvr22+xUBW62m1Xoy7tUlY1tsxKEJvl5JeJ7q8zd1K5bUwiOxdH+erj6l2vAMM3hV25Xs9/WrmuQ==", "dev": true }, "jasmine-spec-reporter": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-6.0.0.tgz", - "integrity": "sha512-MvTOVoMxDZAftQYBApIlSfKnGMzi9cj351nXeqtnZTuXffPlbONN31+Es7F+Ke4okUeQ2xISukt4U1npfzLVrQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-7.0.0.tgz", + "integrity": "sha512-OtC7JRasiTcjsaCBPtMO0Tl8glCejM4J4/dNuOJdA8lBjz4PmWjYQ6pzb0uzpBNAWJMDudYuj9OdXJWqM2QTJg==", "dev": true, "requires": { "colors": "1.4.0" @@ -10687,9 +10817,9 @@ } }, "libphonenumber-js": { - "version": "1.9.13", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.13.tgz", - "integrity": "sha512-DOvAj9Now6KqP+L1Q3JrM3iNhH/mXiOPTj6kxb9OnJbYsVYRlVdvRY1kCpU3Tz9VegIEi6MgDrviBaAnvB3aSw==" + "version": "1.9.16", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.16.tgz", + "integrity": "sha512-PaHT7nTtnejZ0HHekAaA0olv6BUTKZGtKM4SCQS0yE3XjFuVo/tjePMHUAr32FKwIZfyPky1ExMUuaiBAUmV6w==" }, "license-webpack-plugin": { "version": "2.3.11", @@ -12722,9 +12852,9 @@ "dev": true }, "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dev": true, "requires": { "create-hash": "^1.1.2", @@ -13867,9 +13997,9 @@ } }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yargs": { @@ -14477,9 +14607,9 @@ "dev": true }, "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", "dev": true }, "repeat-string": { @@ -14809,17 +14939,17 @@ } }, "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "requires": { "tslib": "^1.9.0" }, "dependencies": { "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, @@ -18036,9 +18166,9 @@ } }, "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", "dev": true, "requires": { "figgy-pudding": "^3.5.1" @@ -18108,9 +18238,9 @@ } }, "y18n": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.2.tgz", - "integrity": "sha512-DnBDwcL54b5xWMM/7RfFg4xs5amYxq2ot49aUfLjQSAracXkGvlZq0txzqr3Pa6Q0ayuCxBcwTzrPUScKY0O8w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yallist": { @@ -18521,9 +18651,9 @@ } }, "y18n": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.2.tgz", - "integrity": "sha512-DnBDwcL54b5xWMM/7RfFg4xs5amYxq2ot49aUfLjQSAracXkGvlZq0txzqr3Pa6Q0ayuCxBcwTzrPUScKY0O8w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yargs": { diff --git a/console/package.json b/console/package.json index 94c5af3662..260b9aee74 100644 --- a/console/package.json +++ b/console/package.json @@ -24,7 +24,7 @@ "@angular/service-worker": "~11.0.0", "@ngx-translate/core": "^13.0.0", "@ngx-translate/http-loader": "^6.0.0", - "@types/file-saver": "^2.0.1", + "@types/file-saver": "^2.0.2", "@types/google-protobuf": "^3.7.4", "@types/uuid": "^8.3.0", "angular-oauth2-oidc": "^10.0.3", @@ -32,29 +32,29 @@ "cors": "^2.8.5", "file-saver": "^2.0.5", "google-proto-files": "^2.4.0", - "google-protobuf": "^3.15.7", + "google-protobuf": "^3.15.8", "grpc": "^1.24.5", "grpc-web": "^1.2.1", - "libphonenumber-js": "^1.9.13", + "libphonenumber-js": "^1.9.16", "moment": "^2.29.1", "ngx-quicklink": "^0.2.6", - "rxjs": "~6.6.3", + "rxjs": "~6.6.7", "ts-protoc-gen": "^0.14.0", "tslib": "^2.2.0", "uuid": "^8.3.2", "zone.js": "~0.11.3" }, "devDependencies": { - "@angular/cli": "~11.2.7", - "@angular-devkit/build-angular": "~0.1102.7", + "@angular-devkit/build-angular": "~0.1102.8", + "@angular/cli": "~11.2.8", "@angular/compiler-cli": "~11.0.0", - "@types/jasmine": "~3.6.3", - "@angular/language-service": "~11.2.8", + "@types/jasmine": "~3.6.9", + "@angular/language-service": "~11.2.9", "@types/jasminewd2": "~2.0.3", "@types/node": "^14.14.37", "codelyzer": "^6.0.0", - "jasmine-core": "~3.6.0", - "jasmine-spec-reporter": "~6.0.0", + "jasmine-core": "~3.7.1", + "jasmine-spec-reporter": "~7.0.0", "karma": "~6.3.2", "karma-chrome-launcher": "~3.1.0", "karma-coverage-istanbul-reporter": "~3.0.2", diff --git a/console/src/app/app-routing.module.ts b/console/src/app/app-routing.module.ts index 2db6941e5d..0ed3ae8f64 100644 --- a/console/src/app/app-routing.module.ts +++ b/console/src/app/app-routing.module.ts @@ -18,7 +18,7 @@ const routes: Routes = [ canActivate: [AuthGuard, RoleGuard], data: { roles: ['iam.write'], - } + }, }, { path: 'granted-projects', diff --git a/console/src/app/app.component.html b/console/src/app/app.component.html index aa50442b3c..5a70dca734 100644 --- a/console/src/app/app.component.html +++ b/console/src/app/app.component.html @@ -179,8 +179,12 @@
diff --git a/console/src/app/app.component.scss b/console/src/app/app.component.scss index 7da225b4ca..cb4be66673 100644 --- a/console/src/app/app.component.scss +++ b/console/src/app/app.component.scss @@ -12,8 +12,8 @@ right: 0; .org-button { - font-weight: bold; - padding-right: .5rem; + font-weight: bold; + padding-right: .5rem; } .logo { @@ -168,36 +168,18 @@ margin: 2rem 2rem; .toc { - font-size: 12px; - color: var(--grey); - text-decoration: none; + font-size: 12px; + color: var(--grey); + text-decoration: none; - &:hover { - text-decoration: underline; - } + &:hover { + text-decoration: underline; + } } - .sp-status { - font-size: 12px; - color: var(--grey); - text-decoration: none; - - &:hover { - text-decoration: underline; - } - } - - .sp-status .sp-status-badge.sp-status-ok { - background: darkgreen; - } - .sp-status .sp-status-badge.sp-status-scheduled { - background: darkblue; - } - .sp-status .sp-status-badge.sp-status-minor { - background: darkorange; - } - .sp-status .sp-status-badge.sp-status-major { - background: darkred; + .slash { + margin: 0 .5rem; + color: var(--grey); } } diff --git a/console/src/app/app.component.ts b/console/src/app/app.component.ts index 860cf7327a..a4d710da2c 100644 --- a/console/src/app/app.component.ts +++ b/console/src/app/app.component.ts @@ -58,6 +58,7 @@ export class AppComponent implements OnDestroy { private orgSub: Subscription = new Subscription(); public hideAdminWarn: boolean = true; + public language: string = 'en'; constructor( public viewPortScroller: ViewportScroller, @Inject('windowObject') public window: Window, @@ -196,6 +197,7 @@ export class AppComponent implements OnDestroy { this.translate.onLangChange.subscribe((language: LangChangeEvent) => { this.document.documentElement.lang = language.lang; + this.language = language.lang; }); this.filterControl.valueChanges.pipe(debounceTime(300)).subscribe(value => { @@ -266,8 +268,12 @@ export class AppComponent implements OnDestroy { const cropped = navigator.language.split('-')[0] ?? 'en'; const fallbackLang = cropped.match(/en|de/) ? cropped : 'en'; - const lang = userprofile?.human?.profile?.preferredLanguage.match(/en|de/) ? userprofile.human.profile?.preferredLanguage : fallbackLang; + const lang = + userprofile?.human?.profile?.preferredLanguage.match(/en|de/) ? + userprofile.human.profile?.preferredLanguage : + fallbackLang; this.translate.use(lang); + this.language = lang; this.document.documentElement.lang = lang; } }); diff --git a/console/src/app/modules/add-key-dialog/add-key-dialog.component.ts b/console/src/app/modules/add-key-dialog/add-key-dialog.component.ts index ae3bf7a567..9fcbe11581 100644 --- a/console/src/app/modules/add-key-dialog/add-key-dialog.component.ts +++ b/console/src/app/modules/add-key-dialog/add-key-dialog.component.ts @@ -4,8 +4,8 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { KeyType } from 'src/app/proto/generated/zitadel/auth_n_key_pb'; export enum AddKeyDialogType { - MACHINE = "MACHINE", - AUTHNKEY = "AUTHNKEY", + MACHINE = 'MACHINE', + AUTHNKEY = 'AUTHNKEY', } @Component({ diff --git a/console/src/app/modules/add-member-dialog/member-create-dialog.component.ts b/console/src/app/modules/add-member-dialog/member-create-dialog.component.ts index df508d9578..2d7fe4092b 100644 --- a/console/src/app/modules/add-member-dialog/member-create-dialog.component.ts +++ b/console/src/app/modules/add-member-dialog/member-create-dialog.component.ts @@ -100,8 +100,7 @@ export class MemberCreateDialogComponent { if (project.projectId && project.grantId) { this.projectId = project.projectId; this.grantId = project.grantId; - } - else if (project.id) { + } else if (project.id) { this.projectId = project.id; } } diff --git a/console/src/app/modules/app-card/app-card.component.scss b/console/src/app/modules/app-card/app-card.component.scss index 437710b84b..cd3024e4fe 100644 --- a/console/src/app/modules/app-card/app-card.component.scss +++ b/console/src/app/modules/app-card/app-card.component.scss @@ -10,46 +10,46 @@ /* stylelint-enable */ .cnsl-app-card { - padding: 1rem; - box-sizing: border-box; - cursor: pointer; - animation: all .2s; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - font-size: 2rem; - height: 80px; - width: 80px; - margin: 1rem; - text-transform: uppercase; - border-radius: .5rem; - font-weight: 800; - background-color: $primary-dark; - transition: background-color box-shadow .3s ease-in; + padding: 1rem; + box-sizing: border-box; + cursor: pointer; + animation: all .2s; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + font-size: 2rem; + height: 80px; + width: 80px; + margin: 1rem; + text-transform: uppercase; + border-radius: .5rem; + font-weight: 800; + background-color: $primary-dark; + transition: background-color box-shadow .3s ease-in; - &.web { - background-color: rgb(80, 110, 110); - color: white; - border: none; - } - - &.native { - background-color: #595d80; - color: white; - border: none; - } - - &.useragent { - background-color: #6a506e; - color: white; - border: none; - } - - &.api { - background-color: #333; - color: white; - border: none; - } + &.web { + background-color: rgb(80, 110, 110); + color: white; + border: none; } + + &.native { + background-color: #595d80; + color: white; + border: none; + } + + &.useragent { + background-color: #6a506e; + color: white; + border: none; + } + + &.api { + background-color: #333; + color: white; + border: none; + } + } } diff --git a/console/src/app/modules/app-radio/app-auth-method-radio/app-auth-method-radio.component.scss b/console/src/app/modules/app-radio/app-auth-method-radio/app-auth-method-radio.component.scss index 5d40448069..6ff5ca2883 100644 --- a/console/src/app/modules/app-radio/app-auth-method-radio/app-auth-method-radio.component.scss +++ b/console/src/app/modules/app-radio/app-auth-method-radio/app-auth-method-radio.component.scss @@ -2,14 +2,14 @@ @import '~@angular/material/theming'; .radio-button-wrapper { - display: flex; - flex-direction: row; - flex-wrap: nowrap; - overflow-x: auto; - overflow-y: hidden; - margin: 0; - padding-bottom: .5rem; - padding-top: 1rem; + display: flex; + flex-direction: row; + flex-wrap: nowrap; + overflow-x: auto; + overflow-y: hidden; + margin: 0; + padding-bottom: .5rem; + padding-top: 1rem; } @mixin app-auth-method-radio-theme($theme) { @@ -17,7 +17,7 @@ $primary-color: mat-color($primary, 500); $is-dark-theme: map-get($theme, is-dark); - input[type="radio"]{ + input[type="radio"] { appearance: none; opacity: 0; display: none; @@ -27,7 +27,7 @@ border-color: if($is-dark-theme, white, var(--grey)); .cnsl-radio-header span { - color: if($is-dark-theme, white, white); + color: if($is-dark-theme, white, white); } } @@ -43,98 +43,98 @@ padding-bottom: 1rem; box-shadow: inset 0 0 6px rgba(0, 0, 0, .1); - &.first { - margin-left: 0; + &.first { + margin-left: 0; } &.last { - margin-right: 0; + margin-right: 0; } .recommended { - position: absolute; - bottom: 0; - left: 50%; - transform: translateY(50%) translateX(-50%); - border-radius: 50vw; - font-size: 11px; - background: white; - color: black; - padding: 3px 1rem; - box-shadow: 0 0 6px rgb(0 0 0 / 10%); - white-space: nowrap; + position: absolute; + bottom: 0; + left: 50%; + transform: translateY(50%) translateX(-50%); + border-radius: 50vw; + font-size: 11px; + background: white; + color: black; + padding: 3px 1rem; + box-shadow: 0 0 6px rgb(0 0 0 / 10%); + white-space: nowrap; - &.not { - background: rgb(144 75 75); - color: white; - } + &.not { + background: rgb(144 75 75); + color: white; + } } .cnsl-radio-header { - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; - background: rgb(80, 110, 110); - border-top-left-radius: 6px; - border-top-right-radius: 6px; - position: relative; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + background: rgb(80, 110, 110); + border-top-left-radius: 6px; + border-top-right-radius: 6px; + position: relative; - .current { - position: absolute; - bottom: .5rem; - left: 50%; - transform: translateX(-50%); - display: block; - color: #ffffff60; - white-space: nowrap; - font-size: 12px; - } + .current { + position: absolute; + bottom: .5rem; + left: 50%; + transform: translateX(-50%); + display: block; + color: #ffffff60; + white-space: nowrap; + font-size: 12px; + } - span { - margin: 2rem; - font-size: 30px; - color: if($is-dark-theme,#21222450, #ffffff50); - } + span { + margin: 2rem; + font-size: 30px; + color: if($is-dark-theme, #21222450, #ffffff50); + } } p { - text-align: center; - padding: 0 1rem; + text-align: center; + padding: 0 1rem; } - + .type-desc { - font-size: 14px; - color: var(--grey); + font-size: 14px; + color: var(--grey); } .fill-space { - flex: 1; + flex: 1; } .app-specs { - display: block; - padding: 1rem 0; - margin: 0 1rem; + display: block; + padding: 1rem 0; + margin: 0 1rem; - .row { - display: flex; - justify-content: space-between; - align-items: center; - font-size: 12px; - color: var(--grey); - margin: 3px 0; + .row { + display: flex; + justify-content: space-between; + align-items: center; + font-size: 12px; + color: var(--grey); + margin: 3px 0; - span { - white-space: nowrap; - } - - :first-child { - margin-right: 1rem; - overflow: hidden; - text-overflow: ellipsis; - } + span { + white-space: nowrap; } + + :first-child { + margin-right: 1rem; + overflow: hidden; + text-overflow: ellipsis; + } + } } } } diff --git a/console/src/app/modules/app-radio/app-auth-method-radio/app-auth-method-radio.component.ts b/console/src/app/modules/app-radio/app-auth-method-radio/app-auth-method-radio.component.ts index 314e54767f..2a2002913c 100644 --- a/console/src/app/modules/app-radio/app-auth-method-radio/app-auth-method-radio.component.ts +++ b/console/src/app/modules/app-radio/app-auth-method-radio/app-auth-method-radio.component.ts @@ -10,7 +10,7 @@ export interface RadioItemAuthType { key: string; titleI18nKey: string; descI18nKey: string; - disabled: boolean, + disabled: boolean; prefix: string; background: string; responseType?: OIDCResponseType; @@ -36,4 +36,4 @@ export class AppAuthMethodRadioComponent { public emitChange(): void { this.selectedMethod.emit(this.selected); } -} \ No newline at end of file +} diff --git a/console/src/app/modules/app-radio/app-type-radio/app-type-radio.component.scss b/console/src/app/modules/app-radio/app-type-radio/app-type-radio.component.scss index 50aaa663d6..3c9c7ece1a 100644 --- a/console/src/app/modules/app-radio/app-type-radio/app-type-radio.component.scss +++ b/console/src/app/modules/app-radio/app-type-radio/app-type-radio.component.scss @@ -2,18 +2,18 @@ @import '~@angular/material/theming'; .radio-button-wrapper { - display: flex; - flex-direction: row; - flex-wrap: wrap; - margin: 0 -0.5rem; + display: flex; + flex-direction: row; + flex-wrap: wrap; + margin: 0 -.5rem; } - + @mixin app-type-radio-theme($theme) { $primary: map-get($theme, primary); $primary-color: mat-color($primary, 500); $is-dark-theme: map-get($theme, is-dark); - input[type="radio"]{ + input[type="radio"] { appearance: none; opacity: 0; display: none; @@ -23,7 +23,7 @@ border-color: if($is-dark-theme, white, var(--grey)); .cnsl-type-radio-header span { - color: if($is-dark-theme, white, white); + color: if($is-dark-theme, white, white); } } @@ -40,29 +40,29 @@ box-shadow: inset 0 0 6px rgba(0, 0, 0, .1); .cnsl-type-radio-header { - display: flex; - align-items: center; - justify-content: center; - background: rgb(80, 110, 110); - margin-bottom: 1rem; - border-top-left-radius: 6px; - border-top-right-radius: 6px; + display: flex; + align-items: center; + justify-content: center; + background: rgb(80, 110, 110); + margin-bottom: 1rem; + border-top-left-radius: 6px; + border-top-right-radius: 6px; - span { - margin: 2rem; - font-size: 30px; - color: if($is-dark-theme,#21222450, #ffffff50); - } + span { + margin: 2rem; + font-size: 30px; + color: if($is-dark-theme, #21222450, #ffffff50); + } } p { - text-align: center; - padding: 0 1rem; + text-align: center; + padding: 0 1rem; } - + .type-desc { - font-size: 14px; - color: var(--grey); + font-size: 14px; + color: var(--grey); } } } diff --git a/console/src/app/modules/app-radio/app-type-radio/app-type-radio.component.ts b/console/src/app/modules/app-radio/app-type-radio/app-type-radio.component.ts index 18f3e97044..5fe566ae12 100644 --- a/console/src/app/modules/app-radio/app-type-radio/app-type-radio.component.ts +++ b/console/src/app/modules/app-radio/app-type-radio/app-type-radio.component.ts @@ -14,4 +14,4 @@ export class AppTypeRadioComponent { public emitChange(): void { this.selectedType.emit(this.selected); } -} \ No newline at end of file +} diff --git a/console/src/app/modules/changes/changes.component.scss b/console/src/app/modules/changes/changes.component.scss index 30c3983aa1..55790a9b2c 100644 --- a/console/src/app/modules/changes/changes.component.scss +++ b/console/src/app/modules/changes/changes.component.scss @@ -21,123 +21,120 @@ } @mixin changes-theme($theme) { - $is-dark-theme: map-get($theme, is-dark); + $is-dark-theme: map-get($theme, is-dark); - .scroll-container { - max-height: 50vh; - overflow-y: scroll; - border-bottom: 1px solid if($is-dark-theme, #303131, #e3e8ee); - /* stylelint-enable */ - margin-bottom: 0.5rem; + .scroll-container { + max-height: 50vh; + overflow-y: scroll; + border-bottom: 1px solid if($is-dark-theme, #303131, #e3e8ee); + margin-bottom: .5rem; - .date { - font-weight: 500; - font-size: 0.8rem; - display: block; - margin-bottom: .5rem; - } - - .item { - display: block; - padding: 10px 0; - font-size: 0.8rem; - - .row { - display: flex; - flex-direction: row; - - .spacer { - width: 32px; - } - - .actions { - flex: 1; - display: flex; - flex-direction: column; - margin-top: -0.5rem; - - .action { - display: flex; - flex-direction: row; - align-items: center; - flex: 1; - - .icon { - width: 32px; - display: inline-block; - height: 1.2rem; - line-height: 1.2rem; - font-size: 1.2rem; - color: var(--grey); - } - - span { - flex: 1; - font-weight: 500; - font-size: 0.8rem; - overflow-x: hidden; - } - - .msg { - text-overflow: ellipsis; - } - - .block { - display: block; - } - - .restore { - visibility: hidden; - display: none; - opacity: 0; - margin-left: 1rem; - transform: opacity 0.2s ease-in-out; - } - - &:hover { - .restore { - visibility: visible; - display: inline-block; - opacity: 1; - color: #81868a; - - &[disabled] { - visibility: hidden; - } - - &:hover { - color: white; - } - } - } - } - } - - /* stylelint-disable */ - $primary: map-get($theme, primary); - $primary-dark: mat-color($primary, A800); - /* stylelint-enable */ - - &.change-item-back { - background-color: rgba($primary-dark, .93); - transition: background-color .3s cubic-bezier(.645, .045, .355, 1); - } - } - - .sp-wrapper { - padding: .5rem; - display: flex; - justify-content: center; - } - } - - .end-container { - font-size: 12px; - color: var(--grey); - font-size: 14px; - margin: 1rem 0 1rem 0; - display: block; - color: var(--grey); - } + .date { + font-weight: 500; + font-size: .8rem; + display: block; + margin-bottom: .5rem; } -} \ No newline at end of file + + .item { + display: block; + padding: 10px 0; + font-size: .8rem; + + .row { + display: flex; + flex-direction: row; + + .spacer { + width: 32px; + } + + .actions { + flex: 1; + display: flex; + flex-direction: column; + margin-top: -.5rem; + + .action { + display: flex; + flex-direction: row; + align-items: center; + flex: 1; + + .icon { + width: 32px; + display: inline-block; + height: 1.2rem; + line-height: 1.2rem; + font-size: 1.2rem; + color: var(--grey); + } + + span { + flex: 1; + font-weight: 500; + font-size: .8rem; + overflow-x: hidden; + } + + .msg { + text-overflow: ellipsis; + } + + .block { + display: block; + } + + .restore { + visibility: hidden; + display: none; + opacity: 0; + margin-left: 1rem; + transform: opacity .2s ease-in-out; + } + + &:hover { + .restore { + visibility: visible; + display: inline-block; + opacity: 1; + color: #81868a; + + &[disabled] { + visibility: hidden; + } + + &:hover { + color: white; + } + } + } + } + } + + /* stylelint-disable */ + $primary: map-get($theme, primary); + $primary-dark: mat-color($primary, A800); + /* stylelint-enable */ + + &.change-item-back { + background-color: rgba($primary-dark, .93); + transition: background-color .3s cubic-bezier(.645, .045, .355, 1); + } + } + + .sp-wrapper { + padding: .5rem; + display: flex; + justify-content: center; + } + } + + .end-container { + font-size: 14px; + margin: 1rem 0 1rem 0; + display: block; + color: var(--grey); + } + } +} diff --git a/console/src/app/modules/changes/changes.component.ts b/console/src/app/modules/changes/changes.component.ts index 23f094889f..70f75bb250 100644 --- a/console/src/app/modules/changes/changes.component.ts +++ b/console/src/app/modules/changes/changes.component.ts @@ -23,7 +23,7 @@ export enum ChangeType { } export interface MappedChange { - key: string, + key: string; values: Array<{ data: any[]; dates: Timestamp.AsObject[]; @@ -34,7 +34,11 @@ export interface MappedChange { }>; } -type ListChanges = ListMyUserChangesResponse.AsObject | ListUserChangesResponse.AsObject | ListProjectChangesResponse.AsObject | ListOrgChangesResponse.AsObject | ListAppChangesResponse.AsObject; +type ListChanges = ListMyUserChangesResponse.AsObject | + ListUserChangesResponse.AsObject | + ListProjectChangesResponse.AsObject | + ListOrgChangesResponse.AsObject | + ListAppChangesResponse.AsObject; @Component({ selector: 'app-changes', @@ -171,11 +175,14 @@ export class ChangesComponent implements OnInit, OnDestroy { } } - mapChanges(changes: Change.AsObject[]) { + private mapChanges(changes: Change.AsObject[]): { + key: string; values: any[]; + }[] { const splitted: { [editorId: string]: any[]; } = {}; changes.forEach((change) => { if (change.changeDate) { - const index = `${this.getDateString(change.changeDate)}`;//`${this.getDateString(change.changeDate)}:${change.editorId}`; + const index = `${this.getDateString(change.changeDate)}`; + // `${this.getDateString(change.changeDate)}:${change.editorId}`; if (index) { if (splitted[index]) { @@ -209,7 +216,7 @@ export class ChangesComponent implements OnInit, OnDestroy { // data: [change.data], eventTypes: [change.eventType], sequences: [change.sequence], - } + }, ]; } } @@ -226,7 +233,7 @@ export class ChangesComponent implements OnInit, OnDestroy { return arr; } - getDateString(ts: Timestamp.AsObject) { + getDateString(ts: Timestamp.AsObject): string { const date = new Date(ts.seconds * 1000 + ts.nanos / 1000 / 1000); return date.getUTCFullYear() + this.pad(date.getUTCMonth() + 1) + this.pad(date.getUTCDate()); } @@ -243,10 +250,10 @@ export class ChangesComponent implements OnInit, OnDestroy { // Order by ascending property value valueAscOrder = (a: KeyValue{{length}} {{'PAGINATOR.COUNT' | translate}}
+{{timestamp | timestampToDate | localizedDate: 'EEEE dd. MMM YYYY, HH:mm'}}
+