From 785c8d9763b912c297d0d80bb3a536f5926ed5fb Mon Sep 17 00:00:00 2001 From: Max Peintner Date: Thu, 25 Jun 2020 12:52:57 +0200 Subject: [PATCH] feat(console): angular 10, iam settings, timestamp to date pipe, org iam indicator, general gui fixes and i18n (#270) * prettier member dialog, iam indicator * changes i18n * fix timestamp conversion, timestamp to date pipe * rm create, update iam policy * add iam policy * add iam section, members component * add iam contributors * gen admin protos * iam member search * update angular * update cdk material * add module for iam members * add iam roles to member dialog * home shortcuts * project view, i18n * lint --- console/{browserslist => .browserslistrc} | 0 console/e2e/tsconfig.json | 4 +- console/package-lock.json | 2653 +++++++------ console/package.json | 47 +- console/src/app/app-routing.module.ts | 8 + console/src/app/app.component.html | 10 +- console/src/app/app.component.ts | 1 + .../member-create-dialog.component.html | 2 +- .../member-create-dialog.component.ts | 10 + .../modules/changes/changes.component.html | 2 +- .../app/modules/changes/changes.component.ts | 12 +- .../project-roles.component.html | 9 +- .../project-roles/project-roles.component.ts | 6 - .../project-roles/project-roles.module.ts | 2 + .../search-user-autocomplete.component.html | 16 +- .../search-user-autocomplete.component.scss | 10 + .../apps/app-detail/app-detail.component.html | 4 +- .../src/app/pages/home/home.component.html | 87 +- .../src/app/pages/home/home.component.scss | 37 +- console/src/app/pages/home/home.module.ts | 30 +- .../iam-contributors.component.html | 24 + .../iam-contributors.component.scss | 72 + .../iam-contributors.component.spec.ts | 34 + .../iam-contributors.component.ts | 90 + .../iam-contributors.module.ts | 42 + .../iam/iam-members/iam-members-datasource.ts | 64 + .../iam-members/iam-members-routing.module.ts | 18 + .../iam-members/iam-members.component.html | 95 + .../iam-members/iam-members.component.scss | 106 + .../iam-members/iam-members.component.spec.ts | 34 + .../iam/iam-members/iam-members.component.ts | 109 + .../iam/iam-members/iam-members.module.ts | 40 + .../src/app/pages/iam/iam-routing.module.ts | 21 + console/src/app/pages/iam/iam.component.html | 25 + console/src/app/pages/iam/iam.component.scss | 151 + .../src/app/pages/iam/iam.component.spec.ts | 25 + console/src/app/pages/iam/iam.component.ts | 17 + console/src/app/pages/iam/iam.module.ts | 56 + .../orgs/org-detail/org-detail.component.html | 10 +- .../orgs/org-detail/org-detail.component.ts | 1 + .../orgs/org-grid/org-grid.component.html | 10 - .../pages/orgs/org-grid/org-grid.component.ts | 6 - .../org-members/org-members.component.html | 4 +- .../src/app/pages/orgs/orgs-routing.module.ts | 1 + .../password-policy.component.html | 14 + .../password-policy.component.ts | 80 +- .../policy-grid/policy-grid.component.html | 46 +- .../policy-grid/policy-grid.component.scss | 2 +- .../orgs/policy-grid/policy-grid.component.ts | 12 +- .../project-grant-create.component.html | 2 +- .../project-grant-create.component.ts | 7 - .../project-grant-create.module.ts | 2 + .../project-role-create.component.html | 5 +- .../granted-project-grid.component.html | 10 +- .../granted-project-grid.component.ts | 6 - .../granted-project-list.component.html | 4 +- .../granted-project-list.component.ts | 6 - .../owned-project-grid.component.html | 20 +- .../owned-project-grid.component.ts | 6 - .../owned-project-list.component.html | 14 +- .../owned-project-list.component.ts | 6 - .../project-applications.component.html | 2 +- .../project-grant-members.component.html | 4 +- .../project-grants.component.html | 8 +- .../project-grants.component.ts | 6 - .../project-members.component.html | 4 +- .../pages/projects/projects-routing.module.ts | 6 + .../src/app/pages/projects/projects.module.ts | 2 + .../auth-user-detail.component.html | 4 +- .../auth-user-mfa.component.html | 5 +- .../user-detail/user-detail.component.html | 4 +- .../user-grants/user-grants.component.html | 8 +- .../user-grants/user-grants.component.ts | 6 - .../user-grants/user-grants.module.ts | 2 + console/src/app/pipes/pipes.module.ts | 3 + .../src/app/pipes/timestamp-to-date.pipe.ts | 18 + .../proto/generated/admin_grpc_web_pb.d.ts | 121 +- .../app/proto/generated/admin_grpc_web_pb.js | 720 ++++ console/src/app/proto/generated/admin_pb.d.ts | 436 +++ console/src/app/proto/generated/admin_pb.js | 3361 +++++++++++++++++ console/src/app/services/admin.service.ts | 128 +- console/src/app/services/auth-user.service.ts | 1 + .../src/app/services/statehandler.service.ts | 2 + console/src/assets/i18n/de.json | 32 +- console/src/assets/i18n/en.json | 69 +- console/src/main.ts | 2 +- console/tsconfig.app.json | 2 +- console/tsconfig.base.json | 22 + console/tsconfig.json | 37 +- console/tsconfig.spec.json | 2 +- go.mod | 2 +- 91 files changed, 7635 insertions(+), 1631 deletions(-) rename console/{browserslist => .browserslistrc} (100%) create mode 100644 console/src/app/pages/iam/iam-contributors/iam-contributors.component.html create mode 100644 console/src/app/pages/iam/iam-contributors/iam-contributors.component.scss create mode 100644 console/src/app/pages/iam/iam-contributors/iam-contributors.component.spec.ts create mode 100644 console/src/app/pages/iam/iam-contributors/iam-contributors.component.ts create mode 100644 console/src/app/pages/iam/iam-contributors/iam-contributors.module.ts create mode 100644 console/src/app/pages/iam/iam-members/iam-members-datasource.ts create mode 100644 console/src/app/pages/iam/iam-members/iam-members-routing.module.ts create mode 100644 console/src/app/pages/iam/iam-members/iam-members.component.html create mode 100644 console/src/app/pages/iam/iam-members/iam-members.component.scss create mode 100644 console/src/app/pages/iam/iam-members/iam-members.component.spec.ts create mode 100644 console/src/app/pages/iam/iam-members/iam-members.component.ts create mode 100644 console/src/app/pages/iam/iam-members/iam-members.module.ts create mode 100644 console/src/app/pages/iam/iam-routing.module.ts create mode 100644 console/src/app/pages/iam/iam.component.html create mode 100644 console/src/app/pages/iam/iam.component.scss create mode 100644 console/src/app/pages/iam/iam.component.spec.ts create mode 100644 console/src/app/pages/iam/iam.component.ts create mode 100644 console/src/app/pages/iam/iam.module.ts create mode 100644 console/src/app/pipes/timestamp-to-date.pipe.ts create mode 100644 console/tsconfig.base.json diff --git a/console/browserslist b/console/.browserslistrc similarity index 100% rename from console/browserslist rename to console/.browserslistrc diff --git a/console/e2e/tsconfig.json b/console/e2e/tsconfig.json index 39b800f789..6b87cc425b 100644 --- a/console/e2e/tsconfig.json +++ b/console/e2e/tsconfig.json @@ -1,9 +1,9 @@ { - "extends": "../tsconfig.json", + "extends": "../tsconfig.base.json", "compilerOptions": { "outDir": "../out-tsc/e2e", "module": "commonjs", - "target": "es5", + "target": "es2018", "types": [ "jasmine", "jasminewd2", diff --git a/console/package-lock.json b/console/package-lock.json index 7990908b96..f04d75a7bc 100644 --- a/console/package-lock.json +++ b/console/package-lock.json @@ -5,128 +5,92 @@ "requires": true, "dependencies": { "@angular-devkit/architect": { - "version": "0.901.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.9.tgz", - "integrity": "sha512-Xokyh7bv4qICHpb5Xui1jPTi6ZZvzR5tbTIxT0DFWqw16TEkFgkNubQsW6mFSR3g3CXdySMfOwWExfa/rE1ggA==", + "version": "0.1000.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1000.0.tgz", + "integrity": "sha512-luzBYe7t994ebq6xIfYJudxOkMBO0bywafk6sQqb+bOaBQAran4orF1R/zEx6f8TJzEoXELjUvxm/ePSqZdpKg==", "dev": true, "requires": { - "@angular-devkit/core": "9.1.9", - "rxjs": "6.5.4" - }, - "dependencies": { - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true - } + "@angular-devkit/core": "10.0.0", + "rxjs": "6.5.5" } }, "@angular-devkit/build-angular": { - "version": "0.901.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.901.9.tgz", - "integrity": "sha512-eC6iZQR5tr9dz/SkR3/3Y8Fau/2IzEfHlFCf2mqsOLkbc0MWyM/3RcuZQhRGdVOyzDCIbfzJGY0N3ejkEn2EUg==", + "version": "0.1000.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1000.0.tgz", + "integrity": "sha512-bU3Xq0evtX1xqD0KSY1lSwDQkz82AKZSKFv7fq+OL6+xrALG5DTtZq2SBwpTsy5AQ/Aq027GX2eMTrczWzQ4KA==", "dev": true, "requires": { - "@angular-devkit/architect": "0.901.9", - "@angular-devkit/build-optimizer": "0.901.9", - "@angular-devkit/build-webpack": "0.901.9", - "@angular-devkit/core": "9.1.9", - "@babel/core": "7.9.0", - "@babel/generator": "7.9.3", - "@babel/preset-env": "7.9.0", + "@angular-devkit/architect": "0.1000.0", + "@angular-devkit/build-optimizer": "0.1000.0", + "@angular-devkit/build-webpack": "0.1000.0", + "@angular-devkit/core": "10.0.0", + "@babel/core": "7.9.6", + "@babel/generator": "7.9.6", + "@babel/plugin-transform-runtime": "7.9.6", + "@babel/preset-env": "7.9.6", + "@babel/runtime": "7.9.6", "@babel/template": "7.8.6", "@jsdevtools/coverage-istanbul-loader": "3.0.3", - "@ngtools/webpack": "9.1.9", - "ajv": "6.12.0", - "autoprefixer": "9.7.4", - "babel-loader": "8.0.6", + "@ngtools/webpack": "10.0.0", + "ajv": "6.12.2", + "autoprefixer": "9.8.0", + "babel-loader": "8.1.0", "browserslist": "^4.9.1", - "cacache": "15.0.0", + "cacache": "15.0.3", "caniuse-lite": "^1.0.30001032", "circular-dependency-plugin": "5.2.0", "copy-webpack-plugin": "6.0.2", "core-js": "3.6.4", - "css-loader": "3.5.1", + "css-loader": "3.5.3", "cssnano": "4.1.10", "file-loader": "6.0.0", "find-cache-dir": "3.3.1", "glob": "7.1.6", - "jest-worker": "25.1.0", + "jest-worker": "26.0.0", "karma-source-map-support": "1.4.0", - "less": "3.11.3", - "less-loader": "5.0.0", - "license-webpack-plugin": "2.1.4", + "less-loader": "6.1.0", + "license-webpack-plugin": "2.2.0", "loader-utils": "2.0.0", "mini-css-extract-plugin": "0.9.0", "minimatch": "3.0.4", - "open": "7.0.3", + "open": "7.0.4", "parse5": "4.0.0", - "postcss": "7.0.27", + "pnp-webpack-plugin": "1.6.4", + "postcss": "7.0.31", "postcss-import": "12.0.1", "postcss-loader": "3.0.0", - "raw-loader": "4.0.0", + "raw-loader": "4.0.1", "regenerator-runtime": "0.13.5", + "resolve-url-loader": "3.1.1", "rimraf": "3.0.2", - "rollup": "2.1.0", - "rxjs": "6.5.4", - "sass": "1.26.3", + "rollup": "2.10.9", + "rxjs": "6.5.5", + "sass": "1.26.5", "sass-loader": "8.0.2", - "semver": "7.1.3", + "semver": "7.3.2", "source-map": "0.7.3", - "source-map-loader": "0.2.4", - "speed-measure-webpack-plugin": "1.3.1", - "style-loader": "1.1.3", + "source-map-loader": "1.0.0", + "source-map-support": "0.5.19", + "speed-measure-webpack-plugin": "1.3.3", + "style-loader": "1.2.1", "stylus": "0.54.7", "stylus-loader": "3.0.2", - "terser": "4.6.10", - "terser-webpack-plugin": "3.0.3", + "terser": "4.7.0", + "terser-webpack-plugin": "3.0.1", "tree-kill": "1.2.2", - "webpack": "4.42.0", + "webpack": "4.43.0", "webpack-dev-middleware": "3.7.2", "webpack-dev-server": "3.11.0", "webpack-merge": "4.2.2", "webpack-sources": "1.4.3", - "webpack-subresource-integrity": "1.4.0", + "webpack-subresource-integrity": "1.4.1", "worker-plugin": "4.0.3" }, "dependencies": { - "@angular-devkit/architect": { - "version": "0.901.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.9.tgz", - "integrity": "sha512-Xokyh7bv4qICHpb5Xui1jPTi6ZZvzR5tbTIxT0DFWqw16TEkFgkNubQsW6mFSR3g3CXdySMfOwWExfa/rE1ggA==", - "dev": true, - "requires": { - "@angular-devkit/core": "9.1.9", - "rxjs": "6.5.4" - } - }, - "@angular-devkit/core": { - "version": "9.1.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.9.tgz", - "integrity": "sha512-SWgBh4an/Vezjw2BZ5S+bKvuK5lH6gOtR8d5YjN9vxpJSZ0GimrGjfnLlWOkwWAsU8jfn4JzofECUHwX/7EW6Q==", - "dev": true, - "requires": { - "ajv": "6.12.0", - "fast-json-stable-stringify": "2.1.0", - "magic-string": "0.25.7", - "rxjs": "6.5.4", - "source-map": "0.7.3" - } - }, "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -136,93 +100,42 @@ } }, "autoprefixer": { - "version": "9.7.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.4.tgz", - "integrity": "sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g==", + "version": "9.8.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.0.tgz", + "integrity": "sha512-D96ZiIHXbDmU02dBaemyAg53ez+6F5yZmapmgKcjm35yEe1uVDYI8hGW3VYoGRaG290ZFf91YxHrR518vC0u/A==", "dev": true, "requires": { - "browserslist": "^4.8.3", - "caniuse-lite": "^1.0.30001020", + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001061", "chalk": "^2.4.2", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", - "postcss": "^7.0.26", - "postcss-value-parser": "^4.0.2" + "postcss": "^7.0.30", + "postcss-value-parser": "^4.1.0" } }, "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.1.tgz", + "integrity": "sha512-WMjXwFtPskSW1pQUDJRxvRKRkeCr7usN0O/Za76N+F4oadaTdQHotSGcX9jT/Hs7mSKPkyMFNvqawB/1HzYDKQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" - } - }, - "cacache": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.0.tgz", - "integrity": "sha512-L0JpXHhplbJSiDGzyJJnJCTL7er7NzbBgxzVqLswEb4bO91Zbv17OUMuUeu/q0ZwKn3V+1HM4wb9tO4eVE/K8g==", - "dev": true, - "requires": { - "chownr": "^1.1.2", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "move-concurrently": "^1.0.1", - "p-map": "^3.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^2.7.1", - "ssri": "^8.0.0", - "tar": "^6.0.1", - "unique-filename": "^1.1.1" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "caniuse-lite": "^1.0.30001088", + "electron-to-chromium": "^1.3.481", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" } }, "caniuse-lite": { - "version": "1.0.30001084", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001084.tgz", - "integrity": "sha512-ftdc5oGmhEbLUuMZ/Qp3mOpzfZLCxPYKcvGv6v2dJJ+8EdqcvZRbAGOiLmkM/PV1QGta/uwBs8/nCl6sokDW6w==", + "version": "1.0.30001088", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz", + "integrity": "sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg==", "dev": true }, "electron-to-chromium": { - "version": "1.3.478", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.478.tgz", - "integrity": "sha512-pt9GUDD52uEO9ZXWcG4UuW/HwE8T+a8iFP7K2qqWrHB5wUxbbvCIXGBVpQDDQwSR766Nn4AkmLYxOUNd4Ji5Dw==", - "dev": true - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "version": "1.3.482", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.482.tgz", + "integrity": "sha512-iRK2JHR6Q3x20Pkl1Rf+gzalOwmVG+PF2J9BHiVOCPotloQmDSG6dT+Vtf2D+3JT3fpzoDNdtHgGuRO6OAUlhQ==", "dev": true }, "parse5": { @@ -232,9 +145,9 @@ "dev": true }, "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "version": "7.0.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.31.tgz", + "integrity": "sha512-a937VDHE1ftkjk+8/7nj/mrjtmkn69xxzJgRETXdAUU+IgOYPQNJF17haGWbeDxSyk++HA14UA98FurvPyBJOA==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -265,19 +178,10 @@ "glob": "^7.1.3" } }, - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, "semver": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", - "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true }, "source-map": { @@ -294,31 +198,18 @@ "requires": { "has-flag": "^3.0.0" } - }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true } } }, "@angular-devkit/build-optimizer": { - "version": "0.901.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.901.9.tgz", - "integrity": "sha512-AcDhE7RHmaVEaDB02MHp1PR2gdUg3+G/12pDC3GeAlfP1GD/sVBpcqPL6DHFp0dMm/FsvSfVSaXpzD7jZBeIKQ==", + "version": "0.1000.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1000.0.tgz", + "integrity": "sha512-WrC/PX/ORAoqKP6FsrWsmzfic0mHyLAZ6XgNNr3RY4xxvBe4+K7FGoG+PaIwD4tILvO6QwwJ1wwBbnGIqQLIHA==", "dev": true, "requires": { "loader-utils": "2.0.0", "source-map": "0.7.3", - "tslib": "1.11.1", - "typescript": "3.6.5", + "tslib": "2.0.0", "webpack-sources": "1.4.3" }, "dependencies": { @@ -327,107 +218,37 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true - }, - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", - "dev": true - }, - "typescript": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.5.tgz", - "integrity": "sha512-BEjlc0Z06ORZKbtcxGrIvvwYs5hAnuo6TKdNFL55frVDlB+na3z5bsLhFaIxmT+dPWgBIjMo6aNnTOgHHmHgiQ==", - "dev": true } } }, "@angular-devkit/build-webpack": { - "version": "0.901.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.901.9.tgz", - "integrity": "sha512-Bha9LruitixhtJm72FGzqfDfgsOsrMT3EbNSql2muyoELIYbLDOvNZjcDD06CPcOAWSg6/tH9caOTFS2Zj9yOw==", + "version": "0.1000.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1000.0.tgz", + "integrity": "sha512-5SGcc9YzGK1DQ3/2/gOnVpJIwmOvywE9OB/J7IFR1uRYxQ4fSdOZvHZJ4DvqwfFExGIFeSBnfxIs8nefT+s8Nw==", "dev": true, "requires": { - "@angular-devkit/architect": "0.901.9", - "@angular-devkit/core": "9.1.9", - "rxjs": "6.5.4" - }, - "dependencies": { - "@angular-devkit/architect": { - "version": "0.901.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.9.tgz", - "integrity": "sha512-Xokyh7bv4qICHpb5Xui1jPTi6ZZvzR5tbTIxT0DFWqw16TEkFgkNubQsW6mFSR3g3CXdySMfOwWExfa/rE1ggA==", - "dev": true, - "requires": { - "@angular-devkit/core": "9.1.9", - "rxjs": "6.5.4" - } - }, - "@angular-devkit/core": { - "version": "9.1.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.9.tgz", - "integrity": "sha512-SWgBh4an/Vezjw2BZ5S+bKvuK5lH6gOtR8d5YjN9vxpJSZ0GimrGjfnLlWOkwWAsU8jfn4JzofECUHwX/7EW6Q==", - "dev": true, - "requires": { - "ajv": "6.12.0", - "fast-json-stable-stringify": "2.1.0", - "magic-string": "0.25.7", - "rxjs": "6.5.4", - "source-map": "0.7.3" - } - }, - "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", - "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.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true - } + "@angular-devkit/architect": "0.1000.0", + "@angular-devkit/core": "10.0.0", + "rxjs": "6.5.5" } }, "@angular-devkit/core": { - "version": "9.1.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.9.tgz", - "integrity": "sha512-SWgBh4an/Vezjw2BZ5S+bKvuK5lH6gOtR8d5YjN9vxpJSZ0GimrGjfnLlWOkwWAsU8jfn4JzofECUHwX/7EW6Q==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.0.0.tgz", + "integrity": "sha512-IvX9IMaCjDkN9vDVnYcgWbSBinlUUb7jdFhDGeTtK6rGSnjX1GoLvWneVI2hoccS07fPbnfMoYXBoZLwVxiIxw==", "dev": true, "requires": { - "ajv": "6.12.0", + "ajv": "6.12.2", "fast-json-stable-stringify": "2.1.0", "magic-string": "0.25.7", - "rxjs": "6.5.4", + "rxjs": "6.5.5", "source-map": "0.7.3" }, "dependencies": { "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -436,96 +257,68 @@ "uri-js": "^4.2.2" } }, - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", - "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.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true } } }, "@angular-devkit/schematics": { - "version": "9.1.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.9.tgz", - "integrity": "sha512-aKuMmS3wshOTl9+01jiB50ml09fRN1WfOOtoNqwvKTEi87DrT6Mn3l0eVQo8PJK/bIq/FBmPgsIl2nsETiBSxg==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.0.0.tgz", + "integrity": "sha512-FJ/dY18M+cnAT9RkVjVRJ0PMFZci3ok0WoOosW25Fk68jwNSbGCeF8k8NcD6YE60+CfF4/0LxQWgFagr/wdEhw==", "dev": true, "requires": { - "@angular-devkit/core": "9.1.9", - "ora": "4.0.3", - "rxjs": "6.5.4" - }, - "dependencies": { - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true - } + "@angular-devkit/core": "10.0.0", + "ora": "4.0.4", + "rxjs": "6.5.5" } }, "@angular/animations": { - "version": "9.1.10", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-9.1.10.tgz", - "integrity": "sha512-xuiL2iE8vka3IZpvwnOYDhfKKn9xKB+qyn7mcWzr6xnFP3UPfxN/1HuDJYgtwd+KXtTZmzlsm8orh+DZ3MGxbA==" + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-10.0.0.tgz", + "integrity": "sha512-L6xnrqSZxAqznx5so3J7jGtZGu44rXtH9R98HFUBQWM596ZY0Pf1i08c1hThuC0b0Yn8WeddQwU6HkstbX4Cmg==", + "requires": { + "tslib": "^2.0.0" + } }, "@angular/cdk": { - "version": "9.2.4", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-9.2.4.tgz", - "integrity": "sha512-iw2+qHMXHYVC6K/fttHeNHIieSKiTEodVutZoOEcBu9rmRTGbLB26V/CRsfIRmA1RBk+uFYWc6UQZnMC3RdnJQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-10.0.0.tgz", + "integrity": "sha512-Ug4Cj2ioxEzsm7co6sLGnPa1LINbeKdN/IeCCwZiSDFp555O8TLEwcCVqQz8KKbo/YLfaWOcvGRSrlxEhyAM/A==", "requires": { - "parse5": "^5.0.0" + "parse5": "^5.0.0", + "tslib": "^2.0.0" } }, "@angular/cli": { - "version": "9.1.9", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-9.1.9.tgz", - "integrity": "sha512-k8C0OY3oHoixd3buCgF8+VFe8YZGSGiprnbVMEF2WJHUUw87lPCu/d7dbID3AtVwdKdAB275rAt6IZEIzXInbw==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-10.0.0.tgz", + "integrity": "sha512-I+2cltQCmThgrnHwsG5AX0hQ9z6rK/8ysRWWeiJXHtEtqupW9eNzXX1QfXWxWB3o6oIKgijvnLlp04BUlWCyXA==", "dev": true, "requires": { - "@angular-devkit/architect": "0.901.9", - "@angular-devkit/core": "9.1.9", - "@angular-devkit/schematics": "9.1.9", - "@schematics/angular": "9.1.9", - "@schematics/update": "0.901.9", + "@angular-devkit/architect": "0.1000.0", + "@angular-devkit/core": "10.0.0", + "@angular-devkit/schematics": "10.0.0", + "@schematics/angular": "10.0.0", + "@schematics/update": "0.1000.0", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.1", "debug": "4.1.1", "ini": "1.3.5", "inquirer": "7.1.0", "npm-package-arg": "8.0.1", - "npm-pick-manifest": "6.0.0", - "open": "7.0.3", + "npm-pick-manifest": "6.1.0", + "open": "7.0.4", "pacote": "9.5.12", "read-package-tree": "5.3.1", "rimraf": "3.0.2", - "semver": "7.1.3", + "semver": "7.3.2", "symbol-observable": "1.2.0", "universal-analytics": "0.4.20", - "uuid": "7.0.2" + "uuid": "8.1.0" }, "dependencies": { "ansi-colors": { @@ -553,33 +346,33 @@ } }, "semver": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", - "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==", - "dev": true - }, - "uuid": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.2.tgz", - "integrity": "sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true } } }, "@angular/common": { - "version": "9.1.10", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-9.1.10.tgz", - "integrity": "sha512-qX7ZUIwRkQi/kO6aKmpa8iGdkLXfe+80D+svC02x5PvafdQAcuBlUQQkrr1XapBqYE/Nu2GK0yYmvpa2CzxjPQ==" + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-10.0.0.tgz", + "integrity": "sha512-zaLHMRQqjZyoIc15tLGrwg5ugcVlggqATiMlMVNo9ddqxwpZ4qHK2fdAvqQy9FfWKaPGi6NpIBSR31RGV0ircw==", + "requires": { + "tslib": "^2.0.0" + } }, "@angular/compiler": { - "version": "9.1.10", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.1.10.tgz", - "integrity": "sha512-VlyTVK9elvtKGXxrkW9BWfKYRfeqXVLR3erukv03vy9u/pZppkG1xJ32SgAPKzYckGRV3kKHP6B7ZOXWMb9cog==" + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-10.0.0.tgz", + "integrity": "sha512-meyJKPLLhkgjxF4dvdJq/sw7MI7KvpgYADoFt2K/5dt48ExXRj+kDlyQC6FAwm9mbgSea/A+JpDG8HMPU7AK5Q==", + "requires": { + "tslib": "^2.0.0" + } }, "@angular/compiler-cli": { - "version": "9.1.10", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-9.1.10.tgz", - "integrity": "sha512-D2JYI9GHzybG/NJ03aCd+95mSz+f4UhgDZ1c0GbYlsNLvk1B0UrDrmgGv0gOdP9yW1XxQjW3ldZAqpVurYru3Q==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-10.0.0.tgz", + "integrity": "sha512-KusRkS1NKPrjhj3BXoxRgeejuJVy/ra4dcDV3hpscRmR8FSdim3rs2H+lYK2hZ26ISGsYUvC8cHNaMqP2U3X+g==", "dev": true, "requires": { "canonical-path": "1.0.0", @@ -593,6 +386,7 @@ "semver": "^6.3.0", "source-map": "^0.6.1", "sourcemap-codec": "^1.4.8", + "tslib": "^2.0.0", "yargs": "15.3.0" }, "dependencies": { @@ -774,45 +568,66 @@ } }, "@angular/core": { - "version": "9.1.10", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.1.10.tgz", - "integrity": "sha512-pp8g0razdSi3HzSBHRzBdn5WmnVJZ5IF+sWuApvplnl4edBO0CFdZAKALmRgjctRD9y9aVPXhkEi17Spiip9aA==" + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-10.0.0.tgz", + "integrity": "sha512-N1m6op428ktgcsnXqqspb1xGZ9gp664Jmb4JoVajCD3JXucRfidw+vt3kPOldbWA6M4pIu5ZtZY3IZc2GrK5UQ==", + "requires": { + "tslib": "^2.0.0" + } }, "@angular/forms": { - "version": "9.1.10", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-9.1.10.tgz", - "integrity": "sha512-Qp/tO3bayvP3lkpuMe2oWGBhATd39Vd9z9z/LIWtM+PkEZCZ0xCh0d6AiKrO9sc1vDATCi4SKxEnNCkmPBWOuQ==" + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-10.0.0.tgz", + "integrity": "sha512-Jaqs6WmF3fcaL1mKmeZt8pcFHkMuFvgLjbgGFqiOKcdz4UdGTcYkI3mE+UqHpqqXGXYTHLusup8A4TqD7s0rxg==", + "requires": { + "tslib": "^2.0.0" + } }, "@angular/language-service": { - "version": "9.1.11", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-9.1.11.tgz", - "integrity": "sha512-jfm4etbqldj6MTwECwyoAs7tXEAR8K/8P8dBZnsELhY+V8oFidTJI3NY52PB3Ym7leSPorYdOAeUMMuQfPaVxg==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-10.0.0.tgz", + "integrity": "sha512-z0gfvDwNCtWpfQzhGi5BasSiLP9W+J87wlCo+LcyRG359uv3tfVo2gPBwe/gbK3vergru6JWeFbkVHS7KOOG+w==", "dev": true }, "@angular/material": { - "version": "9.2.4", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-9.2.4.tgz", - "integrity": "sha512-LkoTXE6B0slvMhvfZDdPWaz4yaYLkaAp5VSPunI9pxGsPxzqEV9e210wC1/sjG/76Nk8Ep7/2z9XKac8Q9bMwA==" + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-10.0.0.tgz", + "integrity": "sha512-u8uORUlDUYo8NlyXAw7BJdkvAXZiIQuSQ58a+RVlR37CGjI07vrECj4i4Z22XOjBGykvsKj0rhq/hCPzXy/RTQ==", + "requires": { + "tslib": "^2.0.0" + } }, "@angular/platform-browser": { - "version": "9.1.10", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-9.1.10.tgz", - "integrity": "sha512-u8PHq92+OV0vrRKwc5bqS0SCR/VkzhuaUUXKYbjYeLsmXG+HUtg/pUCDo95ze4zPO1WFSeUvwsnRb2x1hurYAw==" + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-10.0.0.tgz", + "integrity": "sha512-2gp53WjGUrL1uReewU21IZJa4KFpbigCyDYB0j/KwTkIGrdwYCOjD0/04oHYjkpazPe/VIu3aN7Gb3PgUa3X/Q==", + "requires": { + "tslib": "^2.0.0" + } }, "@angular/platform-browser-dynamic": { - "version": "9.1.10", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.1.10.tgz", - "integrity": "sha512-z8urbP03LYxiCci076SYXz+9elCukePP0ykq5RVJYe5300V6JhamGftTQgsaKszas0KlGYUz/jTULhWQ+OEv/A==" + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.0.0.tgz", + "integrity": "sha512-Ol9dMU/UB8PZ1xQkcILmANC+tA1Y/6YeYc8+MYnZUH7uAMXV6kscg9C5fK9JixSldOOS05AQZAdEty9ESjFNNg==", + "requires": { + "tslib": "^2.0.0" + } }, "@angular/router": { - "version": "9.1.10", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-9.1.10.tgz", - "integrity": "sha512-nvMSzgmsjyj+vzw0meHpN1lea7kf106ml+g97RgxiOgHAtBUnuuedXpBKrajK2kA2m9QbwQvIaKrxkdBzyLuSw==" + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-10.0.0.tgz", + "integrity": "sha512-rx9e0eOwXypV/oWLrGsug3wx9lPnD6NUU3i20/VG9O1uMHgXfpnP8RJLcUHqmEMBZEYTLMo59fDE5LEgM1sIFg==", + "requires": { + "tslib": "^2.0.0" + } }, "@angular/service-worker": { - "version": "9.1.10", - "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-9.1.10.tgz", - "integrity": "sha512-PoGD0EdCsX2jraGWpMtqxEx0RbTdizLh3RbFnWUiB1alrgxdKqteqLzQJ3HToyYeBQuSALnJpWKkufdajn25IQ==" + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-10.0.0.tgz", + "integrity": "sha512-aKvqF7q/BsIK9W+bnt+ou2bmAbztyNl2NE+dZpKIPl66edobQ3MxKKDXTmMXNsMqqKuogPviGdWvXEXTeiTebQ==", + "requires": { + "tslib": "^2.0.0" + } }, "@babel/code-frame": { "version": "7.8.3", @@ -824,9 +639,9 @@ } }, "@babel/compat-data": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.1.tgz", - "integrity": "sha512-CHvCj7So7iCkGKPRFUfryXIkU2gSBw7VSZFYLsqVhrS47269VK2Hfi9S/YcublPMW8k1u2bQBlbDruoQEm4fgw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.3.tgz", + "integrity": "sha512-BDIfJ9uNZuI0LajPfoYV28lX8kyCPMHY6uY4WH1lJdcicmAfxCK5ASzaeV0D/wsUaRH/cLk+amuxtC37sZ8TUg==", "dev": true, "requires": { "browserslist": "^4.12.0", @@ -835,45 +650,45 @@ }, "dependencies": { "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.1.tgz", + "integrity": "sha512-WMjXwFtPskSW1pQUDJRxvRKRkeCr7usN0O/Za76N+F4oadaTdQHotSGcX9jT/Hs7mSKPkyMFNvqawB/1HzYDKQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" + "caniuse-lite": "^1.0.30001088", + "electron-to-chromium": "^1.3.481", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" } }, "caniuse-lite": { - "version": "1.0.30001084", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001084.tgz", - "integrity": "sha512-ftdc5oGmhEbLUuMZ/Qp3mOpzfZLCxPYKcvGv6v2dJJ+8EdqcvZRbAGOiLmkM/PV1QGta/uwBs8/nCl6sokDW6w==", + "version": "1.0.30001088", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz", + "integrity": "sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg==", "dev": true }, "electron-to-chromium": { - "version": "1.3.478", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.478.tgz", - "integrity": "sha512-pt9GUDD52uEO9ZXWcG4UuW/HwE8T+a8iFP7K2qqWrHB5wUxbbvCIXGBVpQDDQwSR766Nn4AkmLYxOUNd4Ji5Dw==", + "version": "1.3.482", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.482.tgz", + "integrity": "sha512-iRK2JHR6Q3x20Pkl1Rf+gzalOwmVG+PF2J9BHiVOCPotloQmDSG6dT+Vtf2D+3JT3fpzoDNdtHgGuRO6OAUlhQ==", "dev": true } } }, "@babel/core": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", - "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.0", + "@babel/generator": "^7.9.6", "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.0", - "@babel/parser": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -902,12 +717,12 @@ } }, "@babel/generator": { - "version": "7.9.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.3.tgz", - "integrity": "sha512-RpxM252EYsz9qLUIq6F7YJyK1sv0wWDBFuztfDGWaQKzHjqDHysxSiRUpA/X9jmfqo+WzkAVKFaUily5h+gDCQ==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", + "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", "dev": true, "requires": { - "@babel/types": "^7.9.0", + "@babel/types": "^7.9.6", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -931,13 +746,13 @@ } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.1.tgz", - "integrity": "sha512-cQpVq48EkYxUU0xozpGCLla3wlkdRRqLWu1ksFMXA9CM5KQmyyRpSEsYXbao7JUkOw/tAaYKCaYyZq6HOFYtyw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.3.tgz", + "integrity": "sha512-lo4XXRnBlU6eRM92FkiZxpo1xFLmv3VsPFk61zJKMm7XYJfwqXHsYJTY6agoc4a3L8QPw1HqWehO18coZgbT6A==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.1", - "@babel/types": "^7.10.1" + "@babel/helper-explode-assignable-expression": "^7.10.3", + "@babel/types": "^7.10.3" } }, "@babel/helper-compilation-targets": { @@ -954,27 +769,27 @@ }, "dependencies": { "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.1.tgz", + "integrity": "sha512-WMjXwFtPskSW1pQUDJRxvRKRkeCr7usN0O/Za76N+F4oadaTdQHotSGcX9jT/Hs7mSKPkyMFNvqawB/1HzYDKQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" + "caniuse-lite": "^1.0.30001088", + "electron-to-chromium": "^1.3.481", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" } }, "caniuse-lite": { - "version": "1.0.30001084", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001084.tgz", - "integrity": "sha512-ftdc5oGmhEbLUuMZ/Qp3mOpzfZLCxPYKcvGv6v2dJJ+8EdqcvZRbAGOiLmkM/PV1QGta/uwBs8/nCl6sokDW6w==", + "version": "1.0.30001088", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz", + "integrity": "sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg==", "dev": true }, "electron-to-chromium": { - "version": "1.3.478", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.478.tgz", - "integrity": "sha512-pt9GUDD52uEO9ZXWcG4UuW/HwE8T+a8iFP7K2qqWrHB5wUxbbvCIXGBVpQDDQwSR766Nn4AkmLYxOUNd4Ji5Dw==", + "version": "1.3.482", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.482.tgz", + "integrity": "sha512-iRK2JHR6Q3x20Pkl1Rf+gzalOwmVG+PF2J9BHiVOCPotloQmDSG6dT+Vtf2D+3JT3fpzoDNdtHgGuRO6OAUlhQ==", "dev": true } } @@ -991,104 +806,104 @@ } }, "@babel/helper-define-map": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.1.tgz", - "integrity": "sha512-+5odWpX+OnvkD0Zmq7panrMuAGQBu6aPUgvMzuMGo4R+jUOvealEj2hiqI6WhxgKrTpFoFj0+VdsuA8KDxHBDg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.3.tgz", + "integrity": "sha512-bxRzDi4Sin/k0drWCczppOhov1sBSdBvXJObM1NLHQzjhXhwRtn7aRWGvLJWCYbuu2qUk3EKs6Ci9C9ps8XokQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.1", - "@babel/types": "^7.10.1", + "@babel/helper-function-name": "^7.10.3", + "@babel/types": "^7.10.3", "lodash": "^4.17.13" } }, "@babel/helper-explode-assignable-expression": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.1.tgz", - "integrity": "sha512-vcUJ3cDjLjvkKzt6rHrl767FeE7pMEYfPanq5L16GRtrXIoznc0HykNW2aEYkcnP76P0isoqJ34dDMFZwzEpJg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.3.tgz", + "integrity": "sha512-0nKcR64XrOC3lsl+uhD15cwxPvaB6QKUDlD84OT9C3myRbhJqTMYir69/RWItUvHpharv0eJ/wk7fl34ONSwZw==", "dev": true, "requires": { - "@babel/traverse": "^7.10.1", - "@babel/types": "^7.10.1" + "@babel/traverse": "^7.10.3", + "@babel/types": "^7.10.3" } }, "@babel/helper-function-name": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", - "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.3.tgz", + "integrity": "sha512-FvSj2aiOd8zbeqijjgqdMDSyxsGHaMt5Tr0XjQsGKHD3/1FP3wksjnLAWzxw7lvXiej8W1Jt47SKTZ6upQNiRw==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.10.1", - "@babel/template": "^7.10.1", - "@babel/types": "^7.10.1" + "@babel/helper-get-function-arity": "^7.10.3", + "@babel/template": "^7.10.3", + "@babel/types": "^7.10.3" }, "dependencies": { "@babel/code-frame": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", - "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz", + "integrity": "sha512-fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==", "dev": true, "requires": { - "@babel/highlight": "^7.10.1" + "@babel/highlight": "^7.10.3" } }, "@babel/highlight": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", - "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz", + "integrity": "sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.1", + "@babel/helper-validator-identifier": "^7.10.3", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/template": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", - "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.3.tgz", + "integrity": "sha512-5BjI4gdtD+9fHZUsaxPHPNpwa+xRkDO7c7JbhYn2afvrkDu5SfAAbi9AIMXw2xEhO/BR35TqiW97IqNvCo/GqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.1", - "@babel/parser": "^7.10.1", - "@babel/types": "^7.10.1" + "@babel/code-frame": "^7.10.3", + "@babel/parser": "^7.10.3", + "@babel/types": "^7.10.3" } } } }, "@babel/helper-get-function-arity": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", - "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.3.tgz", + "integrity": "sha512-iUD/gFsR+M6uiy69JA6fzM5seno8oE85IYZdbVVEuQaZlEzMO2MXblh+KSPJgsZAUx0EEbWXU0yJaW7C9CdAVg==", "dev": true, "requires": { - "@babel/types": "^7.10.1" + "@babel/types": "^7.10.3" } }, "@babel/helper-hoist-variables": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.1.tgz", - "integrity": "sha512-vLm5srkU8rI6X3+aQ1rQJyfjvCBLXP8cAGeuw04zeAM2ItKb1e7pmVmLyHb4sDaAYnLL13RHOZPLEtcGZ5xvjg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.3.tgz", + "integrity": "sha512-9JyafKoBt5h20Yv1+BXQMdcXXavozI1vt401KBiRc2qzUepbVnd7ogVNymY1xkQN9fekGwfxtotH2Yf5xsGzgg==", "dev": true, "requires": { - "@babel/types": "^7.10.1" + "@babel/types": "^7.10.3" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.1.tgz", - "integrity": "sha512-u7XLXeM2n50gb6PWJ9hoO5oO7JFPaZtrh35t8RqKLT1jFKj9IWeD1zrcrYp1q1qiZTdEarfDWfTIP8nGsu0h5g==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.3.tgz", + "integrity": "sha512-q7+37c4EPLSjNb2NmWOjNwj0+BOyYlssuQ58kHEWk1Z78K5i8vTUsteq78HMieRPQSl/NtpQyJfdjt3qZ5V2vw==", "dev": true, "requires": { - "@babel/types": "^7.10.1" + "@babel/types": "^7.10.3" } }, "@babel/helper-module-imports": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz", - "integrity": "sha512-SFxgwYmZ3HZPyZwJRiVNLRHWuW2OgE5k2nrVs6D9Iv4PPnXVffuEHy83Sfx/l4SqF+5kyJXjAyUmrG7tNm+qVg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.3.tgz", + "integrity": "sha512-Jtqw5M9pahLSUWA+76nhK9OG8nwYXzhQzVIGFoNaHnXF/r4l7kz4Fl0UAW7B6mqC5myoJiBP5/YQlXQTMfHI9w==", "dev": true, "requires": { - "@babel/types": "^7.10.1" + "@babel/types": "^7.10.3" } }, "@babel/helper-module-transforms": { @@ -1107,51 +922,51 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", - "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz", + "integrity": "sha512-fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==", "dev": true, "requires": { - "@babel/highlight": "^7.10.1" + "@babel/highlight": "^7.10.3" } }, "@babel/highlight": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", - "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz", + "integrity": "sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.1", + "@babel/helper-validator-identifier": "^7.10.3", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/template": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", - "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.3.tgz", + "integrity": "sha512-5BjI4gdtD+9fHZUsaxPHPNpwa+xRkDO7c7JbhYn2afvrkDu5SfAAbi9AIMXw2xEhO/BR35TqiW97IqNvCo/GqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.1", - "@babel/parser": "^7.10.1", - "@babel/types": "^7.10.1" + "@babel/code-frame": "^7.10.3", + "@babel/parser": "^7.10.3", + "@babel/types": "^7.10.3" } } } }, "@babel/helper-optimise-call-expression": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.1.tgz", - "integrity": "sha512-a0DjNS1prnBsoKx83dP2falChcs7p3i8VMzdrSbfLhuQra/2ENC4sbri34dz/rWmDADsmF1q5GbfaXydh0Jbjg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.3.tgz", + "integrity": "sha512-kT2R3VBH/cnSz+yChKpaKRJQJWxdGoc6SjioRId2wkeV3bK0wLLioFpJROrX0U4xr/NmxSSAWT/9Ih5snwIIzg==", "dev": true, "requires": { - "@babel/types": "^7.10.1" + "@babel/types": "^7.10.3" } }, "@babel/helper-plugin-utils": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", - "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.3.tgz", + "integrity": "sha512-j/+j8NAWUTxOtx4LKHybpSClxHoq6I91DQ/mKgAXn5oNUPIUiGppjPIX3TDtJWPrdfP9Kfl7e4fgVMiQR9VE/g==", "dev": true }, "@babel/helper-regex": { @@ -1164,47 +979,47 @@ } }, "@babel/helper-remap-async-to-generator": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.1.tgz", - "integrity": "sha512-RfX1P8HqsfgmJ6CwaXGKMAqbYdlleqglvVtht0HGPMSsy2V6MqLlOJVF/0Qyb/m2ZCi2z3q3+s6Pv7R/dQuZ6A==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.3.tgz", + "integrity": "sha512-sLB7666ARbJUGDO60ZormmhQOyqMX/shKBXZ7fy937s+3ID8gSrneMvKSSb+8xIM5V7Vn6uNVtOY1vIm26XLtA==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.1", "@babel/helper-wrap-function": "^7.10.1", - "@babel/template": "^7.10.1", - "@babel/traverse": "^7.10.1", - "@babel/types": "^7.10.1" + "@babel/template": "^7.10.3", + "@babel/traverse": "^7.10.3", + "@babel/types": "^7.10.3" }, "dependencies": { "@babel/code-frame": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", - "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz", + "integrity": "sha512-fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==", "dev": true, "requires": { - "@babel/highlight": "^7.10.1" + "@babel/highlight": "^7.10.3" } }, "@babel/highlight": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", - "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz", + "integrity": "sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.1", + "@babel/helper-validator-identifier": "^7.10.3", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/template": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", - "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.3.tgz", + "integrity": "sha512-5BjI4gdtD+9fHZUsaxPHPNpwa+xRkDO7c7JbhYn2afvrkDu5SfAAbi9AIMXw2xEhO/BR35TqiW97IqNvCo/GqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.1", - "@babel/parser": "^7.10.1", - "@babel/types": "^7.10.1" + "@babel/code-frame": "^7.10.3", + "@babel/parser": "^7.10.3", + "@babel/types": "^7.10.3" } } } @@ -1232,34 +1047,34 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", - "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz", + "integrity": "sha512-fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==", "dev": true, "requires": { - "@babel/highlight": "^7.10.1" + "@babel/highlight": "^7.10.3" } }, "@babel/highlight": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", - "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz", + "integrity": "sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.1", + "@babel/helper-validator-identifier": "^7.10.3", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/template": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", - "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.3.tgz", + "integrity": "sha512-5BjI4gdtD+9fHZUsaxPHPNpwa+xRkDO7c7JbhYn2afvrkDu5SfAAbi9AIMXw2xEhO/BR35TqiW97IqNvCo/GqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.1", - "@babel/parser": "^7.10.1", - "@babel/types": "^7.10.1" + "@babel/code-frame": "^7.10.3", + "@babel/parser": "^7.10.3", + "@babel/types": "^7.10.3" } } } @@ -1274,9 +1089,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", - "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz", + "integrity": "sha512-bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw==", "dev": true }, "@babel/helper-wrap-function": { @@ -1292,34 +1107,34 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", - "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz", + "integrity": "sha512-fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==", "dev": true, "requires": { - "@babel/highlight": "^7.10.1" + "@babel/highlight": "^7.10.3" } }, "@babel/highlight": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", - "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz", + "integrity": "sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.1", + "@babel/helper-validator-identifier": "^7.10.3", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/template": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", - "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.3.tgz", + "integrity": "sha512-5BjI4gdtD+9fHZUsaxPHPNpwa+xRkDO7c7JbhYn2afvrkDu5SfAAbi9AIMXw2xEhO/BR35TqiW97IqNvCo/GqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.1", - "@babel/parser": "^7.10.1", - "@babel/types": "^7.10.1" + "@babel/code-frame": "^7.10.3", + "@babel/parser": "^7.10.3", + "@babel/types": "^7.10.3" } } } @@ -1336,34 +1151,34 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", - "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz", + "integrity": "sha512-fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==", "dev": true, "requires": { - "@babel/highlight": "^7.10.1" + "@babel/highlight": "^7.10.3" } }, "@babel/highlight": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", - "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz", + "integrity": "sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.1", + "@babel/helper-validator-identifier": "^7.10.3", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/template": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", - "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.3.tgz", + "integrity": "sha512-5BjI4gdtD+9fHZUsaxPHPNpwa+xRkDO7c7JbhYn2afvrkDu5SfAAbi9AIMXw2xEhO/BR35TqiW97IqNvCo/GqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.1", - "@babel/parser": "^7.10.1", - "@babel/types": "^7.10.1" + "@babel/code-frame": "^7.10.3", + "@babel/parser": "^7.10.3", + "@babel/types": "^7.10.3" } } } @@ -1380,19 +1195,19 @@ } }, "@babel/parser": { - "version": "7.10.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", - "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.3.tgz", + "integrity": "sha512-oJtNJCMFdIMwXGmx+KxuaD7i3b8uS7TTFYW/FNG2BT8m+fmGHoiPYoH0Pe3gya07WuFmM5FCDIr1x0irkD/hyA==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.1.tgz", - "integrity": "sha512-vzZE12ZTdB336POZjmpblWfNNRpMSua45EYnRigE2XsZxcXcIyly2ixnTJasJE4Zq3U7t2d8rRF7XRUuzHxbOw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.3.tgz", + "integrity": "sha512-WUUWM7YTOudF4jZBAJIW9D7aViYC/Fn0Pln4RIHlQALyno3sXSjqmTA4Zy1TKC2D49RCR8Y/Pn4OIUtEypK3CA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.1", - "@babel/helper-remap-async-to-generator": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.3", + "@babel/helper-remap-async-to-generator": "^7.10.3", "@babel/plugin-syntax-async-generators": "^7.8.0" } }, @@ -1437,12 +1252,12 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.1.tgz", - "integrity": "sha512-Z+Qri55KiQkHh7Fc4BW6o+QBuTagbOp9txE+4U1i79u9oWlf2npkiDx+Rf3iK3lbcHBuNy9UOkwuR5wOMH3LIQ==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.3.tgz", + "integrity": "sha512-ZZh5leCIlH9lni5bU/wB/UcjtcVLgR8gc+FAgW2OOY+m9h1II3ItTO1/cewNUcsIDZSYcSaz/rYVls+Fb0ExVQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.3", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", "@babel/plugin-transform-parameters": "^7.10.1" } @@ -1458,12 +1273,12 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.1.tgz", - "integrity": "sha512-dqQj475q8+/avvok72CF3AOSV/SGEcH29zT5hhohqqvvZ2+boQoOr7iGldBG5YXTO2qgCgc2B3WvVLUdbeMlGA==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.3.tgz", + "integrity": "sha512-yyG3n9dJ1vZ6v5sfmIlMMZ8azQoqx/5/nZTSWX1td6L1H1bsjzA8TInDChpafCZiJkeOFzp/PtrfigAQXxI1Ng==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.3", "@babel/plugin-syntax-optional-chaining": "^7.8.0" } }, @@ -1598,28 +1413,28 @@ } }, "@babel/plugin-transform-classes": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.1.tgz", - "integrity": "sha512-P9V0YIh+ln/B3RStPoXpEQ/CoAxQIhRSUn7aXqQ+FZJ2u8+oCtjIXR3+X0vsSD8zv+mb56K7wZW1XiDTDGiDRQ==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.3.tgz", + "integrity": "sha512-irEX0ChJLaZVC7FvvRoSIxJlmk0IczFLcwaRXUArBKYHCHbOhe57aG8q3uw/fJsoSXvZhjRX960hyeAGlVBXZw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.1", - "@babel/helper-define-map": "^7.10.1", - "@babel/helper-function-name": "^7.10.1", - "@babel/helper-optimise-call-expression": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-define-map": "^7.10.3", + "@babel/helper-function-name": "^7.10.3", + "@babel/helper-optimise-call-expression": "^7.10.3", + "@babel/helper-plugin-utils": "^7.10.3", "@babel/helper-replace-supers": "^7.10.1", "@babel/helper-split-export-declaration": "^7.10.1", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.1.tgz", - "integrity": "sha512-mqSrGjp3IefMsXIenBfGcPXxJxweQe2hEIwMQvjtiDQ9b1IBvDUjkAtV/HMXX47/vXf14qDNedXsIiNd1FmkaQ==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.3.tgz", + "integrity": "sha512-GWzhaBOsdbjVFav96drOz7FzrcEW6AP5nax0gLIpstiFaI3LOb2tAg06TimaWU6YKOfUACK3FVrxPJ4GSc5TgA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.1" + "@babel/helper-plugin-utils": "^7.10.3" } }, "@babel/plugin-transform-destructuring": { @@ -1721,14 +1536,14 @@ } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.1.tgz", - "integrity": "sha512-ewNKcj1TQZDL3YnO85qh9zo1YF1CHgmSTlRQgHqe63oTrMI85cthKtZjAiZSsSNjPQ5NCaYo5QkbYqEw1ZBgZA==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.3.tgz", + "integrity": "sha512-GWXWQMmE1GH4ALc7YXW56BTh/AlzvDWhUNn9ArFF0+Cz5G8esYlVbXfdyHa1xaD1j+GnBoCeoQNlwtZTVdiG/A==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.10.1", + "@babel/helper-hoist-variables": "^7.10.3", "@babel/helper-module-transforms": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.3", "babel-plugin-dynamic-import-node": "^2.3.3" } }, @@ -1743,9 +1558,9 @@ } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", - "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.3.tgz", + "integrity": "sha512-I3EH+RMFyVi8Iy/LekQm948Z4Lz4yKT7rK+vuCAeRm0kTa6Z5W7xuhRxDNJv0FPya/her6AUgrDITb70YHtTvA==", "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.8.3" @@ -1790,9 +1605,9 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.1.tgz", - "integrity": "sha512-B3+Y2prScgJ2Bh/2l9LJxKbb8C8kRfsG4AdPT+n7ixBHIxJaIG8bi8tgjxUMege1+WqSJ+7gu1YeoMVO3gPWzw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.3.tgz", + "integrity": "sha512-H5kNeW0u8mbk0qa1jVIVTeJJL6/TJ81ltD4oyPx0P499DhMJrTmmIFCmJ3QloGpQG8K9symccB7S7SJpCKLwtw==", "dev": true, "requires": { "regenerator-transform": "^0.14.2" @@ -1807,6 +1622,18 @@ "@babel/helper-plugin-utils": "^7.10.1" } }, + "@babel/plugin-transform-runtime": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.6.tgz", + "integrity": "sha512-qcmiECD0mYOjOIt8YHNsAP1SxPooC/rDmfmiSK9BNY72EitdSc7l44WTEklaWuFtbOEBjNhWWyph/kOImbNJ4w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, "@babel/plugin-transform-shorthand-properties": { "version": "7.10.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz", @@ -1836,13 +1663,13 @@ } }, "@babel/plugin-transform-template-literals": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.1.tgz", - "integrity": "sha512-t7B/3MQf5M1T9hPCRG28DNGZUuxAuDqLYS03rJrIk2prj/UV7Z6FOneijhQhnv/Xa039vidXeVbvjK2SK5f7Gg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.3.tgz", + "integrity": "sha512-yaBn9OpxQra/bk0/CaA4wr41O0/Whkg6nqjqApcinxM7pro51ojhX6fv1pimAnVjVfDy14K0ULoRL70CA9jWWA==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.1", - "@babel/helper-plugin-utils": "^7.10.1" + "@babel/helper-plugin-utils": "^7.10.3" } }, "@babel/plugin-transform-typeof-symbol": { @@ -1865,13 +1692,13 @@ } }, "@babel/preset-env": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.0.tgz", - "integrity": "sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.6.tgz", + "integrity": "sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.9.0", - "@babel/helper-compilation-targets": "^7.8.7", + "@babel/compat-data": "^7.9.6", + "@babel/helper-compilation-targets": "^7.9.6", "@babel/helper-module-imports": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-proposal-async-generator-functions": "^7.8.3", @@ -1879,7 +1706,7 @@ "@babel/plugin-proposal-json-strings": "^7.8.3", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-proposal-numeric-separator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.9.0", + "@babel/plugin-proposal-object-rest-spread": "^7.9.6", "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", "@babel/plugin-proposal-optional-chaining": "^7.9.0", "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", @@ -1896,9 +1723,9 @@ "@babel/plugin-transform-async-to-generator": "^7.8.3", "@babel/plugin-transform-block-scoped-functions": "^7.8.3", "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.9.0", + "@babel/plugin-transform-classes": "^7.9.5", "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.9.5", "@babel/plugin-transform-dotall-regex": "^7.8.3", "@babel/plugin-transform-duplicate-keys": "^7.8.3", "@babel/plugin-transform-exponentiation-operator": "^7.8.3", @@ -1906,14 +1733,14 @@ "@babel/plugin-transform-function-name": "^7.8.3", "@babel/plugin-transform-literals": "^7.8.3", "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.9.0", - "@babel/plugin-transform-modules-commonjs": "^7.9.0", - "@babel/plugin-transform-modules-systemjs": "^7.9.0", + "@babel/plugin-transform-modules-amd": "^7.9.6", + "@babel/plugin-transform-modules-commonjs": "^7.9.6", + "@babel/plugin-transform-modules-systemjs": "^7.9.6", "@babel/plugin-transform-modules-umd": "^7.9.0", "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", "@babel/plugin-transform-new-target": "^7.8.3", "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.7", + "@babel/plugin-transform-parameters": "^7.9.5", "@babel/plugin-transform-property-literals": "^7.8.3", "@babel/plugin-transform-regenerator": "^7.8.7", "@babel/plugin-transform-reserved-words": "^7.8.3", @@ -1924,8 +1751,8 @@ "@babel/plugin-transform-typeof-symbol": "^7.8.4", "@babel/plugin-transform-unicode-regex": "^7.8.3", "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.9.0", - "browserslist": "^4.9.1", + "@babel/types": "^7.9.6", + "browserslist": "^4.11.1", "core-js-compat": "^3.6.2", "invariant": "^2.2.2", "levenary": "^1.1.1", @@ -1933,27 +1760,27 @@ }, "dependencies": { "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.1.tgz", + "integrity": "sha512-WMjXwFtPskSW1pQUDJRxvRKRkeCr7usN0O/Za76N+F4oadaTdQHotSGcX9jT/Hs7mSKPkyMFNvqawB/1HzYDKQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" + "caniuse-lite": "^1.0.30001088", + "electron-to-chromium": "^1.3.481", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" } }, "caniuse-lite": { - "version": "1.0.30001084", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001084.tgz", - "integrity": "sha512-ftdc5oGmhEbLUuMZ/Qp3mOpzfZLCxPYKcvGv6v2dJJ+8EdqcvZRbAGOiLmkM/PV1QGta/uwBs8/nCl6sokDW6w==", + "version": "1.0.30001088", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz", + "integrity": "sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg==", "dev": true }, "electron-to-chromium": { - "version": "1.3.478", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.478.tgz", - "integrity": "sha512-pt9GUDD52uEO9ZXWcG4UuW/HwE8T+a8iFP7K2qqWrHB5wUxbbvCIXGBVpQDDQwSR766Nn4AkmLYxOUNd4Ji5Dw==", + "version": "1.3.482", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.482.tgz", + "integrity": "sha512-iRK2JHR6Q3x20Pkl1Rf+gzalOwmVG+PF2J9BHiVOCPotloQmDSG6dT+Vtf2D+3JT3fpzoDNdtHgGuRO6OAUlhQ==", "dev": true } } @@ -1972,9 +1799,9 @@ } }, "@babel/runtime": { - "version": "7.10.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.2.tgz", - "integrity": "sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", + "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" @@ -1992,50 +1819,50 @@ } }, "@babel/traverse": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz", - "integrity": "sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.3.tgz", + "integrity": "sha512-qO6623eBFhuPm0TmmrUFMT1FulCmsSeJuVGhiLodk2raUDFhhTECLd9E9jC4LBIWziqt4wgF6KuXE4d+Jz9yug==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.1", - "@babel/generator": "^7.10.1", - "@babel/helper-function-name": "^7.10.1", + "@babel/code-frame": "^7.10.3", + "@babel/generator": "^7.10.3", + "@babel/helper-function-name": "^7.10.3", "@babel/helper-split-export-declaration": "^7.10.1", - "@babel/parser": "^7.10.1", - "@babel/types": "^7.10.1", + "@babel/parser": "^7.10.3", + "@babel/types": "^7.10.3", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" }, "dependencies": { "@babel/code-frame": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", - "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz", + "integrity": "sha512-fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==", "dev": true, "requires": { - "@babel/highlight": "^7.10.1" + "@babel/highlight": "^7.10.3" } }, "@babel/generator": { - "version": "7.10.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz", - "integrity": "sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.3.tgz", + "integrity": "sha512-drt8MUHbEqRzNR0xnF8nMehbY11b1SDkRw03PSNH/3Rb2Z35oxkddVSi3rcaak0YJQ86PCuE7Qx1jSFhbLNBMA==", "dev": true, "requires": { - "@babel/types": "^7.10.2", + "@babel/types": "^7.10.3", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" } }, "@babel/highlight": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", - "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz", + "integrity": "sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.1", + "@babel/helper-validator-identifier": "^7.10.3", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } @@ -2058,12 +1885,12 @@ } }, "@babel/types": { - "version": "7.10.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", - "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.3.tgz", + "integrity": "sha512-nZxaJhBXBQ8HVoIcGsf9qWep3Oh3jCENK54V4mRF7qaJabVsAYdbTtmSD8WmAp1R6ytPiu5apMwSXyxB1WlaBA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.1", + "@babel/helper-validator-identifier": "^7.10.3", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -2110,63 +1937,15 @@ } }, "@ngtools/webpack": { - "version": "9.1.9", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-9.1.9.tgz", - "integrity": "sha512-7UzRL54JcK1m2PvgpchV26TF9OYipj/8+dygdjaidqOyQujWpHncdtq/ScbUsoJ44nHjIRJPhaGE00NLpWZvnA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-10.0.0.tgz", + "integrity": "sha512-2mnuzkCokn84PrBIiSwUqZImd5uKdsdZcpnuvgABmbxe3bAPxbOgzud/bLxG1/ynLvk/vd/FCNeDcY6HylB8OQ==", "dev": true, "requires": { - "@angular-devkit/core": "9.1.9", + "@angular-devkit/core": "10.0.0", "enhanced-resolve": "4.1.1", - "rxjs": "6.5.4", + "rxjs": "6.5.5", "webpack-sources": "1.4.3" - }, - "dependencies": { - "@angular-devkit/core": { - "version": "9.1.9", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.9.tgz", - "integrity": "sha512-SWgBh4an/Vezjw2BZ5S+bKvuK5lH6gOtR8d5YjN9vxpJSZ0GimrGjfnLlWOkwWAsU8jfn4JzofECUHwX/7EW6Q==", - "dev": true, - "requires": { - "ajv": "6.12.0", - "fast-json-stable-stringify": "2.1.0", - "magic-string": "0.25.7", - "rxjs": "6.5.4", - "source-map": "0.7.3" - } - }, - "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", - "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.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true - } } }, "@ngx-translate/core": { @@ -2287,51 +2066,36 @@ "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" }, "@schematics/angular": { - "version": "9.1.9", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-9.1.9.tgz", - "integrity": "sha512-c8YGZ6pDfr8IDD1qaOjlEBAkEz14KFSxDj0hCWs0xIM0py513tu5sW8+ziYxGG4bgqpsgVR/KAxuY78iBfUVag==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-10.0.0.tgz", + "integrity": "sha512-m7Pxz4guAMbe7NASKCPUNxvUX/LeieDjGsXwIt09tVE4dEi9yqJP5zq8kOnZEiLKKflP7GoB65RNex4dTxsydw==", "dev": true, "requires": { - "@angular-devkit/core": "9.1.9", - "@angular-devkit/schematics": "9.1.9" + "@angular-devkit/core": "10.0.0", + "@angular-devkit/schematics": "10.0.0" } }, "@schematics/update": { - "version": "0.901.9", - "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.901.9.tgz", - "integrity": "sha512-VChX0VO/oyfCF3y+HjMTU2qN3vGgJYxEI1V+Q9aAlwl95t3GAufuaFY1CNW3YV4XkYIjD88e3yWl8d5yO4qf4w==", + "version": "0.1000.0", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1000.0.tgz", + "integrity": "sha512-snjz7sQCOn4Xi66XQREXZx9K6R/vAnUfdyO5nXekls8+E+MIowlP+gqHM0whi8qJDwCLd9maYmeVsD6XZaGImQ==", "dev": true, "requires": { - "@angular-devkit/core": "9.1.9", - "@angular-devkit/schematics": "9.1.9", + "@angular-devkit/core": "10.0.0", + "@angular-devkit/schematics": "10.0.0", "@yarnpkg/lockfile": "1.1.0", "ini": "1.3.5", "npm-package-arg": "^8.0.0", "pacote": "9.5.12", - "rxjs": "6.5.4", - "semver": "7.1.3", + "rxjs": "6.5.5", + "semver": "7.3.2", "semver-intersect": "1.4.0" }, "dependencies": { - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, "semver": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", - "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==", - "dev": true - }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true } } @@ -2438,178 +2202,177 @@ } }, "@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", "dev": true }, "@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", "dev": true, "requires": { - "@webassemblyjs/wast-printer": "1.8.5" + "@webassemblyjs/wast-printer": "1.9.0" } }, "@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", "dev": true }, "@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" + "@webassemblyjs/ast": "1.9.0" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, "@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" } }, "@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, "@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, "@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, "@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", "@xtuc/long": "4.2.2" } }, @@ -2641,6 +2404,12 @@ "through": ">=2.2.7 <3" } }, + "abab": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", + "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==", + "dev": true + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -2662,6 +2431,53 @@ "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", "dev": true }, + "adjust-sourcemap-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz", + "integrity": "sha512-4hFsTsn58+YjrU9qKzML2JSSDqKvN8mUGQ0nNIrfPi8hmIONT4L3uUaT6MKdMsZ9AjsU6D2xDkZxCkbQPxChrA==", + "dev": true, + "requires": { + "assert": "1.4.1", + "camelcase": "5.0.0", + "loader-utils": "1.2.3", + "object-path": "0.11.4", + "regex-parser": "2.2.10" + }, + "dependencies": { + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + } + } + }, "adm-zip": { "version": "0.4.14", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.14.tgz", @@ -2916,6 +2732,12 @@ "commander": "^2.11.0" } }, + "arity-n": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", + "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", + "dev": true + }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", @@ -3019,30 +2841,12 @@ } }, "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", "dev": true, "requires": { - "object-assign": "^4.1.1", "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } } }, "assert-plus": { @@ -3131,15 +2935,16 @@ } }, "babel-loader": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz", - "integrity": "sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", "dev": true, "requires": { - "find-cache-dir": "^2.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1", - "pify": "^4.0.1" + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" }, "dependencies": { "find-cache-dir": { @@ -3764,28 +3569,36 @@ "dev": true }, "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.3.tgz", + "integrity": "sha512-bc3jKYjqv7k4pWh7I/ixIjfcjPul4V4jme/WbjvwGS5LzoPL/GzXr4C5EgPNLO/QEZl9Oi61iGitYEdwcrwLCQ==", "dev": true, "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", + "infer-owner": "^1.0.4", "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "move-file": "^2.0.0", + "p-map": "^4.0.0", "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" }, "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -3795,21 +3608,21 @@ "yallist": "^3.0.2" } }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { - "figgy-pudding": "^3.5.1" + "glob": "^7.1.3" } }, - "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==", - "dev": true - }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -3900,29 +3713,29 @@ }, "dependencies": { "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.1.tgz", + "integrity": "sha512-WMjXwFtPskSW1pQUDJRxvRKRkeCr7usN0O/Za76N+F4oadaTdQHotSGcX9jT/Hs7mSKPkyMFNvqawB/1HzYDKQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" + "caniuse-lite": "^1.0.30001088", + "electron-to-chromium": "^1.3.481", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" }, "dependencies": { "caniuse-lite": { - "version": "1.0.30001084", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001084.tgz", - "integrity": "sha512-ftdc5oGmhEbLUuMZ/Qp3mOpzfZLCxPYKcvGv6v2dJJ+8EdqcvZRbAGOiLmkM/PV1QGta/uwBs8/nCl6sokDW6w==", + "version": "1.0.30001088", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz", + "integrity": "sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg==", "dev": true } } }, "electron-to-chromium": { - "version": "1.3.478", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.478.tgz", - "integrity": "sha512-pt9GUDD52uEO9ZXWcG4UuW/HwE8T+a8iFP7K2qqWrHB5wUxbbvCIXGBVpQDDQwSR766Nn4AkmLYxOUNd4Ji5Dw==", + "version": "1.3.482", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.482.tgz", + "integrity": "sha512-iRK2JHR6Q3x20Pkl1Rf+gzalOwmVG+PF2J9BHiVOCPotloQmDSG6dT+Vtf2D+3JT3fpzoDNdtHgGuRO6OAUlhQ==", "dev": true } } @@ -4354,6 +4167,15 @@ "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", "dev": true }, + "compose-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", + "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", + "dev": true, + "requires": { + "arity-n": "^1.0.4" + } + }, "compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -4726,15 +4548,6 @@ "p-try": "^2.0.0" } }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -4787,27 +4600,27 @@ }, "dependencies": { "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.1.tgz", + "integrity": "sha512-WMjXwFtPskSW1pQUDJRxvRKRkeCr7usN0O/Za76N+F4oadaTdQHotSGcX9jT/Hs7mSKPkyMFNvqawB/1HzYDKQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" + "caniuse-lite": "^1.0.30001088", + "electron-to-chromium": "^1.3.481", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" } }, "caniuse-lite": { - "version": "1.0.30001084", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001084.tgz", - "integrity": "sha512-ftdc5oGmhEbLUuMZ/Qp3mOpzfZLCxPYKcvGv6v2dJJ+8EdqcvZRbAGOiLmkM/PV1QGta/uwBs8/nCl6sokDW6w==", + "version": "1.0.30001088", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz", + "integrity": "sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg==", "dev": true }, "electron-to-chromium": { - "version": "1.3.478", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.478.tgz", - "integrity": "sha512-pt9GUDD52uEO9ZXWcG4UuW/HwE8T+a8iFP7K2qqWrHB5wUxbbvCIXGBVpQDDQwSR766Nn4AkmLYxOUNd4Ji5Dw==", + "version": "1.3.482", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.482.tgz", + "integrity": "sha512-iRK2JHR6Q3x20Pkl1Rf+gzalOwmVG+PF2J9BHiVOCPotloQmDSG6dT+Vtf2D+3JT3fpzoDNdtHgGuRO6OAUlhQ==", "dev": true }, "semver": { @@ -4981,9 +4794,9 @@ } }, "css-loader": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.5.1.tgz", - "integrity": "sha512-0G4CbcZzQ9D1Q6ndOfjFuMDo8uLYMu5vc9Abs5ztyHcKvmil6GJrMiNjzzi3tQvUF+mVRuDg7bE6Oc0Prolgig==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.5.3.tgz", + "integrity": "sha512-UEr9NH5Lmi7+dguAm+/JSPovNjYbm2k3TK58EiwQHzOHH5Jfq1Y+XoP2bQO6TMn7PptMd0opxxedAWcaSTRKHw==", "dev": true, "requires": { "camelcase": "^5.3.1", @@ -4997,7 +4810,7 @@ "postcss-modules-scope": "^2.2.0", "postcss-modules-values": "^3.0.0", "postcss-value-parser": "^4.0.3", - "schema-utils": "^2.6.5", + "schema-utils": "^2.6.6", "semver": "^6.3.0" }, "dependencies": { @@ -5348,6 +5161,16 @@ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, "damerau-levenshtein": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", @@ -5363,6 +5186,17 @@ "assert-plus": "^1.0.0" } }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, "date-format": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", @@ -6051,22 +5885,22 @@ } }, "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, "es-to-primitive": { @@ -6080,6 +5914,28 @@ "is-symbol": "^1.0.2" } }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, "es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", @@ -6095,6 +5951,22 @@ "es6-promise": "^4.0.3" } }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escalade": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.1.tgz", + "integrity": "sha512-DR6NO3h9niOT+MZs7bjxlj2a1k+POu5RN8CLTPX2+i78bRi9eLe7+0zXgUHMnGXWybYcL61E9hGhPKqedy8tQA==", + "dev": true + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -6296,6 +6168,23 @@ } } }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", + "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==", + "dev": true + } + } + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -7077,11 +6966,6 @@ "resolved": "https://registry.npmjs.org/grpc-web/-/grpc-web-1.1.0.tgz", "integrity": "sha512-oPoS4/E/EO0TA2ZOSf3AxV2AbWDeabwfbAo+8oXNenOw87RmKz4hME8Sy4KDu2dUnqK8cuGfzdQlJPAEQEygNQ==" }, - "hammerjs": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", - "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=" - }, "handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -8193,9 +8077,9 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true }, "is-ci": { @@ -8424,12 +8308,12 @@ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" }, "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", "dev": true, "requires": { - "has": "^1.0.3" + "has-symbols": "^1.0.1" } }, "is-regexp": { @@ -8504,10 +8388,13 @@ "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==" }, "is-wsl": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz", - "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==", - "dev": true + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } }, "isarray": { "version": "1.0.0", @@ -8713,9 +8600,9 @@ "dev": true }, "jest-worker": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.1.0.tgz", - "integrity": "sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg==", + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.0.0.tgz", + "integrity": "sha512-pPaYa2+JnwmiZjK9x7p9BoZht+47ecFCDFA/CJxspHzeDvQcfVBLWzCiWyo+EGrSiQMWZtCFo9iSvMZnAAo8vw==", "dev": true, "requires": { "merge-stream": "^2.0.0", @@ -8885,9 +8772,9 @@ } }, "karma": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/karma/-/karma-5.1.0.tgz", - "integrity": "sha512-I3aPbkuIbwuBo6wSog97P5WnnhCgUTsWTu/bEw1vZVQFbXmKO3PK+cfFhZioOgVtJAuQxoyauGNjnwXNHMCxbw==", + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/karma/-/karma-5.0.9.tgz", + "integrity": "sha512-dUA5z7Lo7G4FRSe1ZAXqOINEEWxmCjDBbfRBmU/wYlSMwxUQJP/tEEP90yJt3Uqo03s9rCgVnxtlfq+uDhxSPg==", "dev": true, "requires": { "body-parser": "^1.19.0", @@ -9261,42 +9148,15 @@ } }, "less-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz", - "integrity": "sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-6.1.0.tgz", + "integrity": "sha512-/jLzOwLyqJ7Kt3xg5sHHkXtOyShWwFj410K9Si9WO+/h8rmYxxkSR0A3/hFEntWudE20zZnWMtpMYnLzqTVdUA==", "dev": true, "requires": { - "clone": "^2.1.1", - "loader-utils": "^1.1.0", - "pify": "^4.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } + "clone": "^2.1.2", + "less": "^3.11.1", + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.6" } }, "leven": { @@ -9315,9 +9175,9 @@ } }, "license-webpack-plugin": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.4.tgz", - "integrity": "sha512-1Xq72fmPbTg5KofXs+yI5L4QqPFjQ6mZxoeI6D7gfiEDOtaEIk6PGrdLaej90bpDqKNHNxlQ/MW4tMAL6xMPJQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.2.0.tgz", + "integrity": "sha512-XPsdL/0brSHf+7dXIlRqotnCQ58RX2au6otkOg4U3dm8uH+Ka/fW4iukEs95uXm+qKe/SBs+s1Ll/aQddKG+tg==", "dev": true, "requires": { "@types/webpack-sources": "^0.1.5", @@ -9413,6 +9273,12 @@ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -9541,6 +9407,29 @@ "ssri": "^6.0.0" }, "dependencies": { + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -9559,6 +9448,12 @@ "figgy-pudding": "^3.5.1" } }, + "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==", + "dev": true + }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -9567,12 +9462,6 @@ } } }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true - }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -10020,6 +9909,23 @@ "run-queue": "^1.0.3" } }, + "move-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/move-file/-/move-file-2.0.0.tgz", + "integrity": "sha512-cdkdhNCgbP5dvS4tlGxZbD+nloio9GIimP57EjqFhwLcMjnU+XJKAZzlmg/TN/AK1LuNAdTSvm3CPPP4Xkv0iQ==", + "dev": true, + "requires": { + "path-exists": "^4.0.0" + }, + "dependencies": { + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + } + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -10113,6 +10019,12 @@ "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", "dev": true }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, "ngx-moment": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/ngx-moment/-/ngx-moment-4.0.1.tgz", @@ -10219,6 +10131,23 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } } } }, @@ -10430,9 +10359,9 @@ } }, "npm-pick-manifest": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.0.0.tgz", - "integrity": "sha512-PdJpXMvjqt4nftNEDpCgjBUF8yI3Q3MyuAmVB9nemnnCg32F4BPL/JFBfdj8DubgHCYUFQhtLWmBPvdsFtjWMg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz", + "integrity": "sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw==", "dev": true, "requires": { "npm-install-checks": "^4.0.0", @@ -10570,9 +10499,9 @@ } }, "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", "dev": true }, "object-is": { @@ -10591,6 +10520,12 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, + "object-path": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz", + "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk=", + "dev": true + }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", @@ -10707,9 +10642,9 @@ } }, "open": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/open/-/open-7.0.3.tgz", - "integrity": "sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/open/-/open-7.0.4.tgz", + "integrity": "sha512-brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ==", "dev": true, "requires": { "is-docker": "^2.0.0", @@ -10739,9 +10674,9 @@ "integrity": "sha1-aabOicRCpEQDFBrS+bNwvVu29O4=" }, "ora": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.3.tgz", - "integrity": "sha512-fnDebVFyz309A73cqCipVL1fBZewq4vwgSHfxh43vVy31mbyoQ8sCH3Oeaog/owYOs/lLlGVPCISQonTneg6Pg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.4.tgz", + "integrity": "sha512-77iGeVU1cIdRhgFzCK8aw1fbtT1B/iZAvWjS+l/o1x0RShMgxHUZaD2yDpWsNCPwXg9z1ZA78Kbdvr8kBmG/Ww==", "dev": true, "requires": { "chalk": "^3.0.0", @@ -10946,9 +10881,9 @@ } }, "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "requires": { "aggregate-error": "^3.0.0" @@ -11017,6 +10952,29 @@ "which": "^1.3.1" }, "dependencies": { + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, "fs-minipass": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", @@ -11110,6 +11068,12 @@ "yallist": "^3.0.3" } }, + "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==", + "dev": true + }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -11360,20 +11324,20 @@ "find-up": "^2.1.0" } }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, "pngjs": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" }, + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "dev": true, + "requires": { + "ts-pnp": "^1.1.6" + } + }, "portfinder": { "version": "1.0.26", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz", @@ -11465,27 +11429,27 @@ }, "dependencies": { "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.1.tgz", + "integrity": "sha512-WMjXwFtPskSW1pQUDJRxvRKRkeCr7usN0O/Za76N+F4oadaTdQHotSGcX9jT/Hs7mSKPkyMFNvqawB/1HzYDKQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" + "caniuse-lite": "^1.0.30001088", + "electron-to-chromium": "^1.3.481", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" } }, "caniuse-lite": { - "version": "1.0.30001084", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001084.tgz", - "integrity": "sha512-ftdc5oGmhEbLUuMZ/Qp3mOpzfZLCxPYKcvGv6v2dJJ+8EdqcvZRbAGOiLmkM/PV1QGta/uwBs8/nCl6sokDW6w==", + "version": "1.0.30001088", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz", + "integrity": "sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg==", "dev": true }, "electron-to-chromium": { - "version": "1.3.478", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.478.tgz", - "integrity": "sha512-pt9GUDD52uEO9ZXWcG4UuW/HwE8T+a8iFP7K2qqWrHB5wUxbbvCIXGBVpQDDQwSR766Nn4AkmLYxOUNd4Ji5Dw==", + "version": "1.3.482", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.482.tgz", + "integrity": "sha512-iRK2JHR6Q3x20Pkl1Rf+gzalOwmVG+PF2J9BHiVOCPotloQmDSG6dT+Vtf2D+3JT3fpzoDNdtHgGuRO6OAUlhQ==", "dev": true }, "postcss": { @@ -11926,27 +11890,27 @@ }, "dependencies": { "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.1.tgz", + "integrity": "sha512-WMjXwFtPskSW1pQUDJRxvRKRkeCr7usN0O/Za76N+F4oadaTdQHotSGcX9jT/Hs7mSKPkyMFNvqawB/1HzYDKQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" + "caniuse-lite": "^1.0.30001088", + "electron-to-chromium": "^1.3.481", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" } }, "caniuse-lite": { - "version": "1.0.30001084", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001084.tgz", - "integrity": "sha512-ftdc5oGmhEbLUuMZ/Qp3mOpzfZLCxPYKcvGv6v2dJJ+8EdqcvZRbAGOiLmkM/PV1QGta/uwBs8/nCl6sokDW6w==", + "version": "1.0.30001088", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz", + "integrity": "sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg==", "dev": true }, "electron-to-chromium": { - "version": "1.3.478", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.478.tgz", - "integrity": "sha512-pt9GUDD52uEO9ZXWcG4UuW/HwE8T+a8iFP7K2qqWrHB5wUxbbvCIXGBVpQDDQwSR766Nn4AkmLYxOUNd4Ji5Dw==", + "version": "1.3.482", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.482.tgz", + "integrity": "sha512-iRK2JHR6Q3x20Pkl1Rf+gzalOwmVG+PF2J9BHiVOCPotloQmDSG6dT+Vtf2D+3JT3fpzoDNdtHgGuRO6OAUlhQ==", "dev": true }, "postcss": { @@ -12052,27 +12016,27 @@ }, "dependencies": { "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.1.tgz", + "integrity": "sha512-WMjXwFtPskSW1pQUDJRxvRKRkeCr7usN0O/Za76N+F4oadaTdQHotSGcX9jT/Hs7mSKPkyMFNvqawB/1HzYDKQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" + "caniuse-lite": "^1.0.30001088", + "electron-to-chromium": "^1.3.481", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" } }, "caniuse-lite": { - "version": "1.0.30001084", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001084.tgz", - "integrity": "sha512-ftdc5oGmhEbLUuMZ/Qp3mOpzfZLCxPYKcvGv6v2dJJ+8EdqcvZRbAGOiLmkM/PV1QGta/uwBs8/nCl6sokDW6w==", + "version": "1.0.30001088", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz", + "integrity": "sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg==", "dev": true }, "electron-to-chromium": { - "version": "1.3.478", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.478.tgz", - "integrity": "sha512-pt9GUDD52uEO9ZXWcG4UuW/HwE8T+a8iFP7K2qqWrHB5wUxbbvCIXGBVpQDDQwSR766Nn4AkmLYxOUNd4Ji5Dw==", + "version": "1.3.482", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.482.tgz", + "integrity": "sha512-iRK2JHR6Q3x20Pkl1Rf+gzalOwmVG+PF2J9BHiVOCPotloQmDSG6dT+Vtf2D+3JT3fpzoDNdtHgGuRO6OAUlhQ==", "dev": true }, "postcss": { @@ -12498,27 +12462,27 @@ }, "dependencies": { "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.1.tgz", + "integrity": "sha512-WMjXwFtPskSW1pQUDJRxvRKRkeCr7usN0O/Za76N+F4oadaTdQHotSGcX9jT/Hs7mSKPkyMFNvqawB/1HzYDKQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" + "caniuse-lite": "^1.0.30001088", + "electron-to-chromium": "^1.3.481", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" } }, "caniuse-lite": { - "version": "1.0.30001084", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001084.tgz", - "integrity": "sha512-ftdc5oGmhEbLUuMZ/Qp3mOpzfZLCxPYKcvGv6v2dJJ+8EdqcvZRbAGOiLmkM/PV1QGta/uwBs8/nCl6sokDW6w==", + "version": "1.0.30001088", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz", + "integrity": "sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg==", "dev": true }, "electron-to-chromium": { - "version": "1.3.478", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.478.tgz", - "integrity": "sha512-pt9GUDD52uEO9ZXWcG4UuW/HwE8T+a8iFP7K2qqWrHB5wUxbbvCIXGBVpQDDQwSR766Nn4AkmLYxOUNd4Ji5Dw==", + "version": "1.3.482", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.482.tgz", + "integrity": "sha512-iRK2JHR6Q3x20Pkl1Rf+gzalOwmVG+PF2J9BHiVOCPotloQmDSG6dT+Vtf2D+3JT3fpzoDNdtHgGuRO6OAUlhQ==", "dev": true }, "postcss": { @@ -12655,27 +12619,27 @@ }, "dependencies": { "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.1.tgz", + "integrity": "sha512-WMjXwFtPskSW1pQUDJRxvRKRkeCr7usN0O/Za76N+F4oadaTdQHotSGcX9jT/Hs7mSKPkyMFNvqawB/1HzYDKQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" + "caniuse-lite": "^1.0.30001088", + "electron-to-chromium": "^1.3.481", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" } }, "caniuse-lite": { - "version": "1.0.30001084", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001084.tgz", - "integrity": "sha512-ftdc5oGmhEbLUuMZ/Qp3mOpzfZLCxPYKcvGv6v2dJJ+8EdqcvZRbAGOiLmkM/PV1QGta/uwBs8/nCl6sokDW6w==", + "version": "1.0.30001088", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz", + "integrity": "sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg==", "dev": true }, "electron-to-chromium": { - "version": "1.3.478", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.478.tgz", - "integrity": "sha512-pt9GUDD52uEO9ZXWcG4UuW/HwE8T+a8iFP7K2qqWrHB5wUxbbvCIXGBVpQDDQwSR766Nn4AkmLYxOUNd4Ji5Dw==", + "version": "1.3.482", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.482.tgz", + "integrity": "sha512-iRK2JHR6Q3x20Pkl1Rf+gzalOwmVG+PF2J9BHiVOCPotloQmDSG6dT+Vtf2D+3JT3fpzoDNdtHgGuRO6OAUlhQ==", "dev": true }, "postcss": { @@ -13676,35 +13640,13 @@ } }, "raw-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.0.tgz", - "integrity": "sha512-iINUOYvl1cGEmfoaLjnZXt4bKfT2LJnZZib5N/LLyAphC+Dd11vNP9CNVb38j+SAJpFI1uo8j9frmih53ASy7Q==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.1.tgz", + "integrity": "sha512-baolhQBSi3iNh1cglJjA0mYzga+wePk7vdEX//1dTFd+v4TsQlQE0jitJSNF1OIP82rdYulH7otaVmdlDaJ64A==", "dev": true, "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.5.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" } }, "rc": { @@ -13892,6 +13834,12 @@ "safe-regex": "^1.1.0" } }, + "regex-parser": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.10.tgz", + "integrity": "sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA==", + "dev": true + }, "regexp.prototype.flags": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", @@ -14128,6 +14076,78 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, + "resolve-url-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.1.tgz", + "integrity": "sha512-K1N5xUjj7v0l2j/3Sgs5b8CjrrgtC70SmdCuZiJ8tSyb5J+uk3FoeZ4b7yTnH6j7ngI+Bc5bldHJIa8hYdu2gQ==", + "dev": true, + "requires": { + "adjust-sourcemap-loader": "2.0.0", + "camelcase": "5.3.1", + "compose-function": "3.0.3", + "convert-source-map": "1.7.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.21", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "postcss": { + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", + "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -14156,6 +14176,30 @@ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, + "rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "dev": true, + "requires": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + }, + "dependencies": { + "convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", + "dev": true + } + } + }, + "rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", + "dev": true + }, "rfdc": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", @@ -14193,9 +14237,9 @@ } }, "rollup": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.1.0.tgz", - "integrity": "sha512-gfE1455AEazVVTJoeQtcOq/U6GSxwoj4XPSWVsuWmgIxj7sBQNLDOSA82PbdMe+cP8ql8fR1jogPFe8Wg8g4SQ==", + "version": "2.10.9", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.10.9.tgz", + "integrity": "sha512-dY/EbjiWC17ZCUSyk14hkxATAMAShkMsD43XmZGWjLrgFj15M3Dw2kEkA9ns64BiLFm9PKN6vTQw8neHwK74eg==", "dev": true, "requires": { "fsevents": "~2.1.2" @@ -14257,9 +14301,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sass": { - "version": "1.26.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.3.tgz", - "integrity": "sha512-5NMHI1+YFYw4sN3yfKjpLuV9B5l7MqQ6FlkTcC4FT+oHbBRUZoSjHrrt/mE0nFXJyY2kQtU9ou9HxvFVjLFuuw==", + "version": "1.26.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.5.tgz", + "integrity": "sha512-FG2swzaZUiX53YzZSjSakzvGtlds0lcbF+URuU9mxOv7WBh7NhXEVDa4kPKN4hN6fC2TkOTOKqiqp6d53N9X5Q==", "dev": true, "requires": { "chokidar": ">=2.0.0 <4.0.0" @@ -15034,33 +15078,25 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-loader": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz", - "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.0.0.tgz", + "integrity": "sha512-ZayyQCSCrQazN50aCvuS84lJT4xc1ZAcykH5blHaBdVveSwjiFK8UGMPvao0ho54DTb0Jf7m57uRRG/YYUZ2Fg==", "dev": true, "requires": { - "async": "^2.5.0", - "loader-utils": "^1.1.0" + "data-urls": "^2.0.0", + "iconv-lite": "^0.5.1", + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.6", + "source-map": "^0.6.0" }, "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "iconv-lite": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz", + "integrity": "sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==", "dev": true, "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" + "safer-buffer": ">= 2.1.2 < 3" } } } @@ -15183,9 +15219,9 @@ "integrity": "sha512-Nc/QN/A425Qog7j9aHmwOrlwX2e7pNI47ciwxwy4jOlvbbMHkNNJchit+FX+UjF3IAdiaaV5BKeWuDUnws6G1A==" }, "speed-measure-webpack-plugin": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.1.tgz", - "integrity": "sha512-qVIkJvbtS9j/UeZumbdfz0vg+QfG/zxonAjzefZrqzkr7xOncLVXkeGbTpzd1gjCBM4PmVNkWlkeTVhgskAGSQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz", + "integrity": "sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ==", "dev": true, "requires": { "chalk": "^2.0.1" @@ -15428,41 +15464,19 @@ } }, "string.prototype.trimend": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.0.tgz", - "integrity": "sha512-EEJnGqa/xNfIg05SxiPSqRS7S9qwDhYts1TSLR1BQfYUfPe1stofgGKvwERK9+9yf+PpfBMlpBaCHucXGPQfUA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", "dev": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" } }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } - }, "string.prototype.trimstart": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.0.tgz", - "integrity": "sha512-iCP8g01NFYiiBOnwG1Xc3WZLyoo+RuBymwIlWncShXDDJYWN6DbnM3odslBJdgCdRlq94B5s63NWAZlcn2CS4w==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", "dev": true, "requires": { "define-properties": "^1.1.3", @@ -15530,35 +15544,13 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "style-loader": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.1.3.tgz", - "integrity": "sha512-rlkH7X/22yuwFYK357fMN/BxYOorfnfq0eD7+vqlemSK4wEcejFF1dg4zxP0euBW8NrYx2WZzZ8PPFevr7D+Kw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz", + "integrity": "sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg==", "dev": true, "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.6.4" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.6" } }, "style-search": { @@ -15578,27 +15570,27 @@ }, "dependencies": { "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.1.tgz", + "integrity": "sha512-WMjXwFtPskSW1pQUDJRxvRKRkeCr7usN0O/Za76N+F4oadaTdQHotSGcX9jT/Hs7mSKPkyMFNvqawB/1HzYDKQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" + "caniuse-lite": "^1.0.30001088", + "electron-to-chromium": "^1.3.481", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" } }, "caniuse-lite": { - "version": "1.0.30001084", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001084.tgz", - "integrity": "sha512-ftdc5oGmhEbLUuMZ/Qp3mOpzfZLCxPYKcvGv6v2dJJ+8EdqcvZRbAGOiLmkM/PV1QGta/uwBs8/nCl6sokDW6w==", + "version": "1.0.30001088", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz", + "integrity": "sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg==", "dev": true }, "electron-to-chromium": { - "version": "1.3.478", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.478.tgz", - "integrity": "sha512-pt9GUDD52uEO9ZXWcG4UuW/HwE8T+a8iFP7K2qqWrHB5wUxbbvCIXGBVpQDDQwSR766Nn4AkmLYxOUNd4Ji5Dw==", + "version": "1.3.482", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.482.tgz", + "integrity": "sha512-iRK2JHR6Q3x20Pkl1Rf+gzalOwmVG+PF2J9BHiVOCPotloQmDSG6dT+Vtf2D+3JT3fpzoDNdtHgGuRO6OAUlhQ==", "dev": true }, "postcss": { @@ -16074,9 +16066,9 @@ } }, "terser": { - "version": "4.6.10", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.10.tgz", - "integrity": "sha512-qbF/3UOo11Hggsbsqm2hPa6+L4w7bkr+09FNseEe8xrcVD3APGLFqE+Oz1ZKAxjYnFsj80rLOfgAtJ0LNJjtTA==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.7.0.tgz", + "integrity": "sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw==", "dev": true, "requires": { "commander": "^2.20.0", @@ -16085,84 +16077,22 @@ } }, "terser-webpack-plugin": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-3.0.3.tgz", - "integrity": "sha512-bZFnotuIKq5Rqzrs+qIwFzGdKdffV9epG5vDSEbYzvKAhPeR5RbbrQysfPgbIIMhNAQtZD2hGwBfSKUXjXZZZw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-3.0.1.tgz", + "integrity": "sha512-eFDtq8qPUEa9hXcUzTwKXTnugIVtlqc1Z/ZVhG8LmRT3lgRY13+pQTnFLY2N7ATB6TKCHuW/IGjoAnZz9wOIqw==", "dev": true, "requires": { - "cacache": "^15.0.4", + "cacache": "^15.0.3", "find-cache-dir": "^3.3.1", "jest-worker": "^26.0.0", "p-limit": "^2.3.0", "schema-utils": "^2.6.6", - "serialize-javascript": "^3.1.0", + "serialize-javascript": "^3.0.0", "source-map": "^0.6.1", "terser": "^4.6.13", "webpack-sources": "^1.4.3" }, "dependencies": { - "cacache": { - "version": "15.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.4.tgz", - "integrity": "sha512-YlnKQqTbD/6iyoJvEY3KJftjrdBYroCbxxYXzhOzsFLWlp6KX4BOlEf4mTx0cMUfVaTS3ENL2QtDWeRYoGLkkw==", - "dev": true, - "requires": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.0", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-worker": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.0.0.tgz", - "integrity": "sha512-pPaYa2+JnwmiZjK9x7p9BoZht+47ecFCDFA/CJxspHzeDvQcfVBLWzCiWyo+EGrSiQMWZtCFo9iSvMZnAAo8vw==", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -16172,55 +16102,11 @@ "p-try": "^2.0.0" } }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true } } }, @@ -16387,6 +16273,15 @@ } } }, + "tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, "tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -16438,6 +16333,12 @@ } } }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true + }, "ts-protoc-gen": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/ts-protoc-gen/-/ts-protoc-gen-0.12.0.tgz", @@ -16518,6 +16419,12 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, "type-fest": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", @@ -16541,9 +16448,9 @@ "dev": true }, "typescript": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", - "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz", + "integrity": "sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==", "dev": true }, "ua-parser-js": { @@ -16861,18 +16768,18 @@ "dev": true }, "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "2.0.1" }, "dependencies": { "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", "dev": true } } @@ -17622,17 +17529,23 @@ "selenium-webdriver": "^3.0.1" } }, + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true + }, "webpack": { - "version": "4.42.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz", - "integrity": "sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", + "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.1", + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", "ajv": "^6.10.2", "ajv-keywords": "^3.4.1", "chrome-trace-event": "^1.0.2", @@ -17643,13 +17556,13 @@ "loader-utils": "^1.2.3", "memory-fs": "^0.4.1", "micromatch": "^3.1.10", - "mkdirp": "^0.5.1", + "mkdirp": "^0.5.3", "neo-async": "^2.6.1", "node-libs-browser": "^2.2.1", "schema-utils": "^1.0.0", "tapable": "^1.1.3", "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.6.0", + "watchpack": "^1.6.1", "webpack-sources": "^1.4.1" }, "dependencies": { @@ -17694,6 +17607,29 @@ } } }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -17971,6 +17907,15 @@ "path-exists": "^3.0.0" } }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, "make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", @@ -18089,6 +18034,15 @@ "ajv-keywords": "^3.1.0" } }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -18124,6 +18078,18 @@ "is-number": "^3.0.0", "repeat-string": "^1.6.1" } + }, + "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==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true } } }, @@ -18937,9 +18903,9 @@ } }, "webpack-subresource-integrity": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.4.0.tgz", - "integrity": "sha512-GB1kB/LwAWC3CxwcedGhMkxGpNZxSheCe1q+KJP1bakuieAdX/rGHEcf5zsEzhKXpqsGqokgsDoD9dIkr61VDQ==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.4.1.tgz", + "integrity": "sha512-XMLFInbGbB1HV7K4vHWANzc1CN0t/c4bBvnlvGxGwV45yE/S/feAXIm8dJsCkzqWtSKnmaEgTp/meyeThxG4Iw==", "dev": true, "requires": { "webpack-sources": "^1.3.0" @@ -18960,6 +18926,23 @@ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.1.0.tgz", + "integrity": "sha512-vEIkwNi9Hqt4TV9RdnaBPNt+E2Sgmo3gePebCRgZ1R7g6d23+53zCTnuB0amKI4AXq6VM8jj2DUAa0S1vjJxkw==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^5.0.0" + } + }, "when": { "version": "3.6.4", "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", diff --git a/console/package.json b/console/package.json index 64e93ead96..49e4113f5d 100644 --- a/console/package.json +++ b/console/package.json @@ -14,17 +14,17 @@ }, "private": true, "dependencies": { - "@angular/animations": "~9.1.10", - "@angular/cdk": "~9.2.4", - "@angular/common": "~9.1.10", - "@angular/compiler": "~9.1.10", - "@angular/core": "~9.1.10", - "@angular/forms": "~9.1.10", - "@angular/material": "^9.2.4", - "@angular/platform-browser": "~9.1.10", - "@angular/platform-browser-dynamic": "~9.1.10", - "@angular/router": "~9.1.10", - "@angular/service-worker": "~9.1.10", + "@angular/animations": "~10.0.0", + "@angular/cdk": "~10.0.0", + "@angular/common": "~10.0.0", + "@angular/compiler": "~10.0.0", + "@angular/core": "~10.0.0", + "@angular/forms": "~10.0.0", + "@angular/material": "^10.0.0", + "@angular/platform-browser": "~10.0.0", + "@angular/platform-browser-dynamic": "~10.0.0", + "@angular/router": "~10.0.0", + "@angular/service-worker": "~10.0.0", "@ngx-translate/core": "^12.1.2", "@ngx-translate/http-loader": "^4.0.0", "@types/google-protobuf": "^3.7.2", @@ -36,7 +36,6 @@ "google-protobuf": "^3.12.2", "grpc": "^1.24.3", "grpc-web": "^1.1.0", - "hammerjs": "^2.0.8", "ngx-moment": "^4.0.1", "moment": "^2.27.0", "prettier-stylelint": "^0.4.2", @@ -47,25 +46,25 @@ "zone.js": "~0.10.3" }, "devDependencies": { - "@angular/cli": "~9.1.9", - "@angular-devkit/build-angular": "~0.901.9", - "@angular/compiler-cli": "~9.1.10", - "@angular/language-service": "~9.1.11", + "@angular/cli": "~10.0.0", + "@angular-devkit/build-angular": "~0.1000.0", + "@angular/compiler-cli": "~10.0.0", + "@angular/language-service": "~10.0.0", "@types/jasmine": "~3.5.11", "@types/jasminewd2": "~2.0.3", "@types/node": "^14.0.13", "codelyzer": "^5.2.2", "jasmine-core": "~3.5.0", - "jasmine-spec-reporter": "~5.0.2", - "karma": "^5.1.0", + "jasmine-spec-reporter": "~5.0.0", + "karma": "~5.0.0", "karma-chrome-launcher": "~3.1.0", - "karma-coverage-istanbul-reporter": "~3.0.3", - "karma-jasmine": "^3.3.1", - "karma-jasmine-html-reporter": "^1.5.4", + "karma-coverage-istanbul-reporter": "~3.0.2", + "karma-jasmine": "~3.3.0", + "karma-jasmine-html-reporter": "^1.5.0", "prettier": "^2.0.5", - "protractor": "^7.0.0", + "protractor": "~7.0.0", "ts-node": "~8.10.2", - "tslint": "~6.1.2", - "typescript": "^3.8.3" + "tslint": "~6.1.0", + "typescript": "^3.9.5" } } diff --git a/console/src/app/app-routing.module.ts b/console/src/app/app-routing.module.ts index a25b565b12..a80d8dcb84 100644 --- a/console/src/app/app-routing.module.ts +++ b/console/src/app/app-routing.module.ts @@ -31,6 +31,14 @@ const routes: Routes = [ roles: ['user.read'], }, }, + { + path: 'iam', + loadChildren: () => import('./pages/iam/iam.module').then(m => m.IamModule), + canActivate: [AuthGuard, RoleGuard], + data: { + roles: ['iam.read'], + }, + }, { path: 'org', loadChildren: () => import('./pages/orgs/orgs.module').then(m => m.OrgsModule), diff --git a/console/src/app/app.component.html b/console/src/app/app.component.html index 5f670d44e23..8cdab376e0 100644 --- a/console/src/app/app.component.html +++ b/console/src/app/app.component.html @@ -35,7 +35,10 @@ -
+ +
+
+
@@ -63,6 +66,11 @@ {{ 'MENU.PERSONAL_INFO' | translate }} + + + {{'MENU.IAM' | translate}} + + {{org?.name ? org.name : 'MENU.ORGANIZATION' | translate}} diff --git a/console/src/app/app.component.ts b/console/src/app/app.component.ts index 596aa786bf..76455c3a2c 100644 --- a/console/src/app/app.component.ts +++ b/console/src/app/app.component.ts @@ -287,3 +287,4 @@ export class AppComponent implements OnDestroy { this.router.navigate(['/']); } } + diff --git a/console/src/app/modules/add-member-dialog/member-create-dialog.component.html b/console/src/app/modules/add-member-dialog/member-create-dialog.component.html index 554cccfd48..edf6e4e442 100644 --- a/console/src/app/modules/add-member-dialog/member-create-dialog.component.html +++ b/console/src/app/modules/add-member-dialog/member-create-dialog.component.html @@ -6,7 +6,7 @@ + *ngIf="creationType === CreationType.PROJECT_OWNED || creationType === CreationType.PROJECT_GRANTED || creationType === CreationType.IAM"> {{ 'PROJECT.GRANT.TITLE' | translate }} 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 6be43e916f..55b6b8d80b 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 @@ -1,6 +1,7 @@ import { Component, Inject } from '@angular/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { ProjectRole, User } from 'src/app/proto/generated/management_pb'; +import { AdminService } from 'src/app/services/admin.service'; import { ProjectService } from 'src/app/services/project.service'; import { ToastService } from 'src/app/services/toast.service'; @@ -8,6 +9,7 @@ export enum CreationType { PROJECT_OWNED = 0, PROJECT_GRANTED = 1, ORG = 2, + IAM = 3, } @Component({ selector: 'app-member-create-dialog', @@ -23,6 +25,7 @@ export class MemberCreateDialogComponent { public memberRoleOptions: string[] = []; constructor( private projectService: ProjectService, + private adminService: AdminService, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, toastService: ToastService, @@ -43,6 +46,13 @@ export class MemberCreateDialogComponent { }).catch(error => { toastService.showError(error.message); }); + } else if (this.creationType === CreationType.IAM) { + this.adminService.GetIamMemberRoles().then(resp => { + this.memberRoleOptions = resp.toObject().rolesList; + console.log(this.memberRoleOptions); + }).catch(error => { + toastService.showError(error.message); + }); } } diff --git a/console/src/app/modules/changes/changes.component.html b/console/src/app/modules/changes/changes.component.html index 276ddebd3e..a7e2d199be 100644 --- a/console/src/app/modules/changes/changes.component.html +++ b/console/src/app/modules/changes/changes.component.html @@ -3,7 +3,7 @@
  • - {{dateFromTimestamp(event.changeDate) | localizedDate: 'EEE dd. MMM, HH:mm'}} + {{event.changeDate | timestampToDate | localizedDate: 'EEE dd. MMM, HH:mm'}} {{event.editor}} {{'CHANGES.EVENTS.'+event.eventType | translate}} diff --git a/console/src/app/modules/changes/changes.component.ts b/console/src/app/modules/changes/changes.component.ts index 495c73816e..f3d160086f 100644 --- a/console/src/app/modules/changes/changes.component.ts +++ b/console/src/app/modules/changes/changes.component.ts @@ -1,5 +1,4 @@ import { Component, Input, OnInit } from '@angular/core'; -import { Timestamp } from 'google-protobuf/google/protobuf/timestamp_pb'; import { BehaviorSubject, from, Observable, of } from 'rxjs'; import { catchError, scan, take, tap } from 'rxjs/operators'; import { Change, Changes } from 'src/app/proto/generated/management_pb'; @@ -19,6 +18,7 @@ export enum ChangeType { export class ChangesComponent implements OnInit { @Input() public changeType: ChangeType = ChangeType.USER; @Input() public id: string = ''; + @Input() public sortDirectionAsc: boolean = true; public errorMessage: string = ''; // Source data @@ -74,7 +74,6 @@ export class ChangesComponent implements OnInit { break; case ChangeType.ORG: more = this.mgmtUserService.OrgChanges(this.id, 10, cursor); break; - } this.mapAndUpdate(more); @@ -84,8 +83,8 @@ export class ChangesComponent implements OnInit { private getCursor(): number { const current = this._data.value; if (current.length) { - // return true ? current[0].sequence : - return current[current.length - 1].sequence; + return !this.sortDirectionAsc ? current[0].sequence : + current[current.length - 1].sequence; } return 0; } @@ -126,9 +125,4 @@ export class ChangesComponent implements OnInit { take(1), ).subscribe(); } - - public dateFromTimestamp(date: Timestamp.AsObject): any { - const ts: Date = new Date(date.seconds * 1000 + date.nanos / 1000); - return ts; - } } diff --git a/console/src/app/modules/project-roles/project-roles.component.html b/console/src/app/modules/project-roles/project-roles.component.html index 7b730c44a7..4ee9faa84d 100644 --- a/console/src/app/modules/project-roles/project-roles.component.html +++ b/console/src/app/modules/project-roles/project-roles.component.html @@ -11,9 +11,10 @@
  • - @@ -66,7 +67,7 @@ {{ 'PROJECT.ROLE.CREATIONDATE' | translate }} - {{dateFromTimestamp(role.creationDate) | date: 'dd. MMM, HH:mm' }} + {{role.creationDate | timestampToDate | date: 'dd. MMM, HH:mm' }} diff --git a/console/src/app/modules/project-roles/project-roles.component.ts b/console/src/app/modules/project-roles/project-roles.component.ts index c0a2b9ad3d..c14075bc8a 100644 --- a/console/src/app/modules/project-roles/project-roles.component.ts +++ b/console/src/app/modules/project-roles/project-roles.component.ts @@ -2,7 +2,6 @@ import { SelectionModel } from '@angular/cdk/collections'; import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'; import { MatPaginator } from '@angular/material/paginator'; import { MatTable } from '@angular/material/table'; -import { Timestamp } from 'google-protobuf/google/protobuf/timestamp_pb'; import { tap } from 'rxjs/operators'; import { ProjectRole } from 'src/app/proto/generated/management_pb'; import { ProjectService } from 'src/app/services/project.service'; @@ -108,9 +107,4 @@ export class ProjectRolesComponent implements AfterViewInit, OnInit { this.toast.showError(data.message); }); } - - public dateFromTimestamp(date: Timestamp.AsObject): any { - const ts: Date = new Date(date.seconds * 1000 + date.nanos / 1000); - return ts; - } } diff --git a/console/src/app/modules/project-roles/project-roles.module.ts b/console/src/app/modules/project-roles/project-roles.module.ts index 83a4e78e00..74b17345ad 100644 --- a/console/src/app/modules/project-roles/project-roles.module.ts +++ b/console/src/app/modules/project-roles/project-roles.module.ts @@ -11,6 +11,7 @@ import { MatTooltipModule } from '@angular/material/tooltip'; import { RouterModule } from '@angular/router'; import { TranslateModule } from '@ngx-translate/core'; import { HasRoleModule } from 'src/app/directives/has-role/has-role.module'; +import { PipesModule } from 'src/app/pipes/pipes.module'; import { ProjectRolesComponent } from './project-roles.component'; @@ -27,6 +28,7 @@ import { ProjectRolesComponent } from './project-roles.component'; MatCheckboxModule, RouterModule, MatTooltipModule, + PipesModule, TranslateModule, MatMenuModule, ], diff --git a/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.html b/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.html index 8a6dcccf23..214432e5b0 100644 --- a/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.html +++ b/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.html @@ -39,14 +39,20 @@
    -
    -

    {{'USER.SEARCH.FOUND' | translate}}: {{user.email}} - remove_circle

    +
    + {{'USER.SEARCH.FOUND' | translate}}: +
    + {{user.email}} + +
    +

    {{(target == UserTarget.SELF ? 'USER.TARGET.SELF' : 'USER.TARGET.EXTERNAL') | translate}} {{'USER.TARGET.CLICKHERE' | translate}} diff --git a/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.scss b/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.scss index 5de68a26a4..900f76bea8 100644 --- a/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.scss +++ b/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.scss @@ -33,4 +33,14 @@ .sm-dlt { cursor: pointer; font-size: .8rem; +} + +.found-user-row { + display: flex; + align-items: center; +} + +.found-label { + font-size: .9rem; + color: #81868a; } \ No newline at end of file diff --git a/console/src/app/pages/apps/app-detail/app-detail.component.html b/console/src/app/pages/apps/app-detail/app-detail.component.html index e470e069ea..9cefd8ef04 100644 --- a/console/src/app/pages/apps/app-detail/app-detail.component.html +++ b/console/src/app/pages/apps/app-detail/app-detail.component.html @@ -16,11 +16,11 @@

    - + {{'APP.PAGES.DETAIL.STATE.'+AppState.APPSTATE_INACTIVE | translate}} - + {{'APP.PAGES.DETAIL.STATE.'+AppState.APPSTATE_ACTIVE | translate}} diff --git a/console/src/app/pages/home/home.component.html b/console/src/app/pages/home/home.component.html index 5841d1c9f1..beb9c02420 100644 --- a/console/src/app/pages/home/home.component.html +++ b/console/src/app/pages/home/home.component.html @@ -8,9 +8,25 @@
    + +
    +
    +

    + + {{'HOME.IAM'| translate}}

    +

    {{'HOME.IAM_DESC'| translate}}

    +
    + + +
    +
    +
    -

    {{'HOME.SECURITYANDPRIVACY'| translate}}

    +

    + {{'HOME.SECURITYANDPRIVACY'| translate}}

    {{'HOME.SECURITYANDPRIVACY_DESC'| translate}}

    @@ -19,35 +35,50 @@ [routerLink]="['/users/me']">{{'HOME.SECURITYANDPRIVACY_BUTTON' | translate}}
    -
    -
    -

    {{'HOME.PROJECTS'| translate}}

    -

    {{'HOME.PROJECTS_DESC'| translate}}

    + + +
    +
    +

    + + {{'HOME.PROJECTS'| translate}}

    +

    {{'HOME.PROJECTS_DESC'| translate}}

    +
    + +
    - - -
    -
    -

    {{'HOME.PROTECTION'| translate}}

    -

    {{'HOME.PROTECTION_DESC'| translate}}

    + + + +
    +
    +

    + + {{'HOME.USERS'| translate}}

    +

    {{'HOME.USERS_DESC'| translate}}

    +
    + +
    - - -
    -
    -
    -

    {{'HOME.USERS'| translate}}

    -

    {{'HOME.USERS_DESC'| translate}}

    -
    - - -
    +
    \ No newline at end of file diff --git a/console/src/app/pages/home/home.component.scss b/console/src/app/pages/home/home.component.scss index 24c99e5739..0db52f18e8 100644 --- a/console/src/app/pages/home/home.component.scss +++ b/console/src/app/pages/home/home.component.scss @@ -66,26 +66,42 @@ .item { flex: 1 1 45%; - box-sizing: border-box; + // box-sizing: border-box; margin: 1rem; border: 1px solid #ffffff20; border-radius: .5rem; display: flex; - flex-direction: column; + flex-direction: column; + transition: border-color .1s; + + &:hover { + i { + color: #fe11e280; + } + // border-width: 2px; + border-color: #fe11e270; + } .top { padding: 1rem 2rem; h2 { - display: block; margin-top: .5rem; - font-family: 'Rubik'; + font-family: 'Rubik'; + display: flex; + align-items: center; } p { display: block; color: #81868a; font-size: .9rem; - } + } + + i{ + font-size: 2.5rem; + margin-right: 1rem; + transition: color .1s; + } } .fill-space { @@ -93,22 +109,11 @@ } .footer { - // position: absolute; - // bottom: 0; - // left: 0; - // right: 0; height: 60px; display: flex; align-items: center; padding: 0 1rem; border-top: 1px solid #ffffff20; - - a { - // text-decoration: none; - // color: #e8eaed; - // font-size: .8rem; - // font-weight: 600; - } } } } diff --git a/console/src/app/pages/home/home.module.ts b/console/src/app/pages/home/home.module.ts index ada4c0c58e..5cc387c91a 100644 --- a/console/src/app/pages/home/home.module.ts +++ b/console/src/app/pages/home/home.module.ts @@ -5,6 +5,7 @@ import { MatButtonModule } from '@angular/material/button'; import { MatIconModule } from '@angular/material/icon'; import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; import { HttpLoaderFactory } from 'src/app/app.module'; +import { HasRoleModule } from 'src/app/directives/has-role/has-role.module'; import { HomeRoutingModule } from './home-routing.module'; import { HomeComponent } from './home.component'; @@ -12,19 +13,20 @@ import { HomeComponent } from './home.component'; @NgModule({ - declarations: [HomeComponent], - imports: [ - CommonModule, - MatIconModule, - HomeRoutingModule, - MatButtonModule, - TranslateModule.forChild({ - loader: { - provide: TranslateLoader, - useFactory: HttpLoaderFactory, - deps: [HttpClient], - }, - }), - ], + declarations: [HomeComponent], + imports: [ + CommonModule, + MatIconModule, + HasRoleModule, + HomeRoutingModule, + MatButtonModule, + TranslateModule.forChild({ + loader: { + provide: TranslateLoader, + useFactory: HttpLoaderFactory, + deps: [HttpClient], + }, + }), + ], }) export class HomeModule { } diff --git a/console/src/app/pages/iam/iam-contributors/iam-contributors.component.html b/console/src/app/pages/iam/iam-contributors/iam-contributors.component.html new file mode 100644 index 0000000000..c279c8ab81 --- /dev/null +++ b/console/src/app/pages/iam/iam-contributors/iam-contributors.component.html @@ -0,0 +1,24 @@ +
    + {{ 'IAM.MEMBER.TITLE' | translate }} + {{ 'IAM.MEMBER.DESCRIPTION' | translate }} +
    +
    + + +
    + +
    +
    +
    + +
    + {{totalResult}} +
    +
    + +
    +
    +
    \ No newline at end of file diff --git a/console/src/app/pages/iam/iam-contributors/iam-contributors.component.scss b/console/src/app/pages/iam/iam-contributors/iam-contributors.component.scss new file mode 100644 index 0000000000..9585a8cd40 --- /dev/null +++ b/console/src/app/pages/iam/iam-contributors/iam-contributors.component.scss @@ -0,0 +1,72 @@ +.groups { + padding-top: 1rem; + + .header { + display: block; + margin-bottom: 1rem; + font-weight: 400; + } + + .sub-header { + font-size: .8rem; + color: #81868a; + } + + .people { + display: flex; + align-items: center; + flex-wrap: wrap; + margin-bottom: 1rem; + + .owner { + margin-right: 1rem; + } + + .img-list { + width: 100%; + margin-top: 0.5rem; + margin-left: 1rem; + display: flex; + align-items: center; + + .avatar-img, .avatar-circle { + float: left; + margin: 0 8px 0 -15px; + height: 32px; + width: 32px; + border-radius: 50%; + box-shadow: 0 5px 5px rgba(0, 0, 0, 0.5), 0 3px 6px rgba(0, 0, 0, 0.5); + } + + .add-img { + float: left; + margin: 0 8px 0 -15px; + } + + .avatar-img { + &:before { + content: ''; + display: block; + position: absolute; + top: 0; + bottom: 0; + height: 32px; + width: 32px; + } + } + + .avatar-circle { + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + background-color: indianred; + } + + .margin-neg { + margin-left: -1rem; + } + } + } + } + \ No newline at end of file diff --git a/console/src/app/pages/iam/iam-contributors/iam-contributors.component.spec.ts b/console/src/app/pages/iam/iam-contributors/iam-contributors.component.spec.ts new file mode 100644 index 0000000000..4d0074bcfd --- /dev/null +++ b/console/src/app/pages/iam/iam-contributors/iam-contributors.component.spec.ts @@ -0,0 +1,34 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { MatPaginatorModule } from '@angular/material/paginator'; +import { MatSortModule } from '@angular/material/sort'; +import { MatTableModule } from '@angular/material/table'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { IamContributorsComponent } from './iam-contributors.component'; + +describe('OrgContributorsComponent', () => { + let component: IamContributorsComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [IamContributorsComponent], + imports: [ + NoopAnimationsModule, + MatPaginatorModule, + MatSortModule, + MatTableModule, + ], + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(IamContributorsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should compile', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/console/src/app/pages/iam/iam-contributors/iam-contributors.component.ts b/console/src/app/pages/iam/iam-contributors/iam-contributors.component.ts new file mode 100644 index 0000000000..9b1399bd39 --- /dev/null +++ b/console/src/app/pages/iam/iam-contributors/iam-contributors.component.ts @@ -0,0 +1,90 @@ +import { Component, Input, OnInit, ViewChild } from '@angular/core'; +import { MatDialog } from '@angular/material/dialog'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatTable } from '@angular/material/table'; +import { Router } from '@angular/router'; +import { BehaviorSubject, from, Observable, of } from 'rxjs'; +import { catchError, finalize, map } from 'rxjs/operators'; +import { OrgMember, OrgMemberView, OrgState, User } from 'src/app/proto/generated/management_pb'; +import { AdminService } from 'src/app/services/admin.service'; +import { ToastService } from 'src/app/services/toast.service'; + +import { + CreationType, + MemberCreateDialogComponent, +} from '../../../modules/add-member-dialog/member-create-dialog.component'; + +@Component({ + selector: 'app-iam-contributors', + templateUrl: './iam-contributors.component.html', + styleUrls: ['./iam-contributors.component.scss'], +}) +export class IamContributorsComponent implements OnInit { + @Input() public disabled: boolean = false; + @ViewChild(MatPaginator) public paginator!: MatPaginator; + @ViewChild(MatTable) public table!: MatTable; + /** Columns displayed in the table. Columns IDs can be added, removed, or reordered. */ + public displayedColumns: string[] = ['select', 'firstname', 'lastname', 'username', 'email', 'roles']; + + private loadingSubject: BehaviorSubject = new BehaviorSubject(false); + public loading$: Observable = this.loadingSubject.asObservable(); + public totalResult: number = 0; + public membersSubject: BehaviorSubject + = new BehaviorSubject([]); + + public OrgState: any = OrgState; + constructor(private adminService: AdminService, private dialog: MatDialog, + private toast: ToastService, + private router: Router) { } + + public ngOnInit(): void { + this.loadMembers(0, 25, 'asc'); + } + + public loadMembers(pageIndex: number, pageSize: number, sortDirection?: string): void { + const offset = pageIndex * pageSize; + + this.loadingSubject.next(true); + from(this.adminService.SearchIamMembers(pageSize, offset)).pipe( + map(resp => { + this.totalResult = resp.toObject().totalResult; + return resp.toObject().resultList; + }), + catchError(() => of([])), + finalize(() => this.loadingSubject.next(false)), + ).subscribe(members => { + console.log(members); + this.membersSubject.next(members); + }); + } + + public openAddMember(): void { + const dialogRef = this.dialog.open(MemberCreateDialogComponent, { + data: { + creationType: CreationType.IAM, + }, + width: '400px', + }); + + dialogRef.afterClosed().subscribe(resp => { + if (resp) { + const users: User.AsObject[] = resp.users; + const roles: string[] = resp.roles; + + if (users && users.length && roles && roles.length) { + Promise.all(users.map(user => { + return this.adminService.AddIamMember(user.id, roles); + })).then(() => { + this.toast.showError('members added'); + }).catch(error => { + this.toast.showError(error.message); + }); + } + } + }); + } + + public showDetail(): void { + this.router.navigate(['iam/members']); + } +} diff --git a/console/src/app/pages/iam/iam-contributors/iam-contributors.module.ts b/console/src/app/pages/iam/iam-contributors/iam-contributors.module.ts new file mode 100644 index 0000000000..0ef8819a5d --- /dev/null +++ b/console/src/app/pages/iam/iam-contributors/iam-contributors.module.ts @@ -0,0 +1,42 @@ +import { CommonModule } from '@angular/common'; +import { NgModule } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatDialogModule } from '@angular/material/dialog'; +import { MatIconModule } from '@angular/material/icon'; +import { MatPaginatorModule } from '@angular/material/paginator'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { MatTableModule } from '@angular/material/table'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { RouterModule } from '@angular/router'; +import { TranslateModule } from '@ngx-translate/core'; +import { HasRoleModule } from 'src/app/directives/has-role/has-role.module'; + +import { MemberCreateDialogModule } from '../../../modules/add-member-dialog/member-create-dialog.module'; +import { IamContributorsComponent } from './iam-contributors.component'; + + +@NgModule({ + declarations: [IamContributorsComponent], + imports: [ + CommonModule, + FormsModule, + MemberCreateDialogModule, + HasRoleModule, + MatButtonModule, + MatDialogModule, + MatTableModule, + MatPaginatorModule, + MatIconModule, + RouterModule, + MatProgressSpinnerModule, + MatCheckboxModule, + MatTooltipModule, + TranslateModule, + ], + exports: [ + IamContributorsComponent, + ], +}) +export class IamContributorsModule { } diff --git a/console/src/app/pages/iam/iam-members/iam-members-datasource.ts b/console/src/app/pages/iam/iam-members/iam-members-datasource.ts new file mode 100644 index 0000000000..8fcde2992c --- /dev/null +++ b/console/src/app/pages/iam/iam-members/iam-members-datasource.ts @@ -0,0 +1,64 @@ +import { DataSource } from '@angular/cdk/collections'; +import { BehaviorSubject, from, Observable, of } from 'rxjs'; +import { catchError, finalize, map } from 'rxjs/operators'; +import { IamMemberSearchResponse } from 'src/app/proto/generated/admin_pb'; +import { ProjectMember } from 'src/app/proto/generated/management_pb'; +import { AdminService } from 'src/app/services/admin.service'; + +/** + * Data source for the ProjectMembers view. This class should + * encapsulate all logic for fetching and manipulating the displayed data + * (including sorting, pagination, and filtering). + */ +export class IamMembersDataSource extends DataSource { + public totalResult: number = 0; + public membersSubject: BehaviorSubject = new BehaviorSubject([]); + private loadingSubject: BehaviorSubject = new BehaviorSubject(false); + public loading$: Observable = this.loadingSubject.asObservable(); + + constructor(private adminService: AdminService) { + super(); + } + + public loadMembers( + pageIndex: number, pageSize: number, grantId?: string, sortDirection?: string): void { + const offset = pageIndex * pageSize; + + this.loadingSubject.next(true); + // TODO + const promise: Promise = + this.adminService.SearchIamMembers(pageSize, offset); + if (promise) { + from(promise).pipe( + map(resp => { + this.totalResult = resp.toObject().totalResult; + console.log(this.totalResult); + return resp.toObject().resultList; + }), + catchError(() => of([])), + finalize(() => this.loadingSubject.next(false)), + ).subscribe(members => { + this.membersSubject.next(members); + }); + } + } + + + /** + * Connect this data source to the table. The table will only update when + * the returned stream emits new items. + * @returns A stream of the items to be rendered. + */ + public connect(): Observable { + return this.membersSubject.asObservable(); + } + + /** + * Called when the table is being destroyed. Use this function, to clean up + * any open connections or free any held resources that were set up during connect. + */ + public disconnect(): void { + this.membersSubject.complete(); + this.loadingSubject.complete(); + } +} diff --git a/console/src/app/pages/iam/iam-members/iam-members-routing.module.ts b/console/src/app/pages/iam/iam-members/iam-members-routing.module.ts new file mode 100644 index 0000000000..897398f845 --- /dev/null +++ b/console/src/app/pages/iam/iam-members/iam-members-routing.module.ts @@ -0,0 +1,18 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +import { IamMembersComponent } from './iam-members.component'; + +const routes: Routes = [ + { + path: '', + component: IamMembersComponent, + data: { animation: 'AddPage' }, + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class IamMembersRoutingModule { } diff --git a/console/src/app/pages/iam/iam-members/iam-members.component.html b/console/src/app/pages/iam/iam-members/iam-members.component.html new file mode 100644 index 0000000000..2153ef5b66 --- /dev/null +++ b/console/src/app/pages/iam/iam-members/iam-members.component.html @@ -0,0 +1,95 @@ +
    +
    +
    +

    {{ 'IAM.MEMBER.TITLE' | translate }}

    +

    {{ 'IAM.MEMBER.DESCRIPTION' | translate }}

    +
    + +
    +
    + + {{'ORG_DETAIL.TABLE.TOTAL' | translate}} + {{dataSource?.membersSubject.value.length}} + + + {{'ORG_DETAIL.TABLE.SELECTION' | translate}} + {{selection?.selected?.length}} + +
    + + + + + + + add{{ 'ACTIONS.NEW' | translate }} + + +
    + +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + {{ 'PROJECT.MEMBER.FIRSTNAME' | translate }} + {{member.firstName}} {{ 'PROJECT.MEMBER.LASTNAME' | translate }} + {{member.lastName}} {{ 'PROJECT.MEMBER.USERNAME' | translate }} + {{member.userName}} {{ 'PROJECT.MEMBER.EMAIL' | translate }} + {{member.email}} + {{ 'PROJECT.MEMBER.ROLES' | translate }} + + {{ 'ROLES.'+role | translate }} +
    + + + +
    +
    +
    \ No newline at end of file diff --git a/console/src/app/pages/iam/iam-members/iam-members.component.scss b/console/src/app/pages/iam/iam-members/iam-members.component.scss new file mode 100644 index 0000000000..2d707d205f --- /dev/null +++ b/console/src/app/pages/iam/iam-members/iam-members.component.scss @@ -0,0 +1,106 @@ +.container { + padding-bottom: 3rem; + + .head { + display: flex; + align-items: center; + border-bottom: 1px solid #ffffff20; + margin-bottom: 2rem; + flex-wrap: wrap; + + a { + display: block; + } + + h1 { + font-size: 1.2rem; + } + + .desc { + width: 100%; + display: block; + font-size: .9rem; + color: #81868a; + } + } +} + +.table-header-row { + display: flex; + align-items: center; + + .col { + display: flex; + flex-direction: column; + .desc { + font-size: .8rem; + color: #81868a; + } + .count { + font-size: 2rem; + } + } + + .fill-space { + flex: 1; + } + + .icon-button { + margin-right: .5rem; + } + + .add-button { + border-radius: .5rem; + } +} + +.table-wrapper { + overflow: auto; + + .spinner-container { + display: flex; + align-items: center; + justify-content: center; + } + + table, mat-paginator { + width: 100%; + + td, th { + padding: .5rem; + &:first-child { + padding-left: 0; + padding-right: 1rem; + } + + &:last-child { + padding-right: 0; + } + } + + .action { + width: 40px; + } + + .data-row { + &:hover { + background-color: #ffffff05; + } + } + + .selection { + width: 50px; + max-width: 50px; + } + + .role { + display: inline-block; + margin: .25rem; + } + } +} + +.pointer { + outline: none; + cursor: pointer; +} \ No newline at end of file diff --git a/console/src/app/pages/iam/iam-members/iam-members.component.spec.ts b/console/src/app/pages/iam/iam-members/iam-members.component.spec.ts new file mode 100644 index 0000000000..887bb43015 --- /dev/null +++ b/console/src/app/pages/iam/iam-members/iam-members.component.spec.ts @@ -0,0 +1,34 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { MatPaginatorModule } from '@angular/material/paginator'; +import { MatSortModule } from '@angular/material/sort'; +import { MatTableModule } from '@angular/material/table'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { ProjectMembersComponent } from './project-members.component'; + +describe('ProjectMembersComponent', () => { + let component: ProjectMembersComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ProjectMembersComponent], + imports: [ + NoopAnimationsModule, + MatPaginatorModule, + MatSortModule, + MatTableModule, + ], + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ProjectMembersComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should compile', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/console/src/app/pages/iam/iam-members/iam-members.component.ts b/console/src/app/pages/iam/iam-members/iam-members.component.ts new file mode 100644 index 0000000000..14c35ab271 --- /dev/null +++ b/console/src/app/pages/iam/iam-members/iam-members.component.ts @@ -0,0 +1,109 @@ +import { SelectionModel } from '@angular/cdk/collections'; +import { AfterViewInit, Component, ViewChild } from '@angular/core'; +import { MatDialog } from '@angular/material/dialog'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatTable } from '@angular/material/table'; +import { tap } from 'rxjs/operators'; +import { CreationType, MemberCreateDialogComponent } from 'src/app/modules/add-member-dialog/member-create-dialog.component'; +import { Org, ProjectMember, ProjectType, User } from 'src/app/proto/generated/management_pb'; +import { AdminService } from 'src/app/services/admin.service'; +import { ToastService } from 'src/app/services/toast.service'; + +import { IamMembersDataSource } from './iam-members-datasource'; + +@Component({ + selector: 'app-iam-members', + templateUrl: './iam-members.component.html', + styleUrls: ['./iam-members.component.scss'], +}) +export class IamMembersComponent implements AfterViewInit { + public org!: Org.AsObject; + public projectType: ProjectType = ProjectType.PROJECTTYPE_OWNED; + public disabled: boolean = false; + @ViewChild(MatPaginator) public paginator!: MatPaginator; + @ViewChild(MatTable) public table!: MatTable; + public dataSource!: IamMembersDataSource; + public selection: SelectionModel = new SelectionModel(true, []); + + /** Columns displayed in the table. Columns IDs can be added, removed, or reordered. */ + public displayedColumns: string[] = ['select', 'firstname', 'lastname', 'username', 'email', 'roles']; + + constructor(private adminService: AdminService, + private dialog: MatDialog, + private toast: ToastService) { + + this.dataSource = new IamMembersDataSource(this.adminService); + this.dataSource.loadMembers(0, 25, 'asc'); + } + + public ngAfterViewInit(): void { + this.paginator.page + .pipe( + tap(() => this.loadMembersPage()), + ) + .subscribe(); + } + + private loadMembersPage(): void { + this.dataSource.loadMembers( + this.paginator.pageIndex, + this.paginator.pageSize, + ); + } + + public removeProjectMemberSelection(): void { + Promise.all(this.selection.selected.map(member => { + return this.adminService.RemoveIamMember(member.userId).then(() => { + this.toast.showInfo('Removed successfully'); + }).catch(error => { + this.toast.showError(error.message); + }); + })); + } + + public removeMember(member: ProjectMember.AsObject): void { + this.adminService.RemoveIamMember(member.userId).then(() => { + this.toast.showInfo('Member removed successfully'); + }).catch(error => { + this.toast.showError(error.message); + }); + } + + public isAllSelected(): boolean { + const numSelected = this.selection.selected.length; + const numRows = this.dataSource.membersSubject.value.length; + return numSelected === numRows; + } + + public masterToggle(): void { + this.isAllSelected() ? + this.selection.clear() : + this.dataSource.membersSubject.value.forEach(row => this.selection.select(row)); + } + + public openAddMember(): void { + const dialogRef = this.dialog.open(MemberCreateDialogComponent, { + data: { + creationType: CreationType.ORG, + }, + width: '400px', + }); + + dialogRef.afterClosed().subscribe(resp => { + if (resp) { + const users: User.AsObject[] = resp.users; + const roles: string[] = resp.roles; + + if (users && users.length && roles && roles.length) { + Promise.all(users.map(user => { + return this.adminService.AddIamMember(user.id, roles); + })).then(() => { + this.toast.showError('members added'); + }).catch(error => { + this.toast.showError(error.message); + }); + } + } + }); + } +} diff --git a/console/src/app/pages/iam/iam-members/iam-members.module.ts b/console/src/app/pages/iam/iam-members/iam-members.module.ts new file mode 100644 index 0000000000..e4579a185e --- /dev/null +++ b/console/src/app/pages/iam/iam-members/iam-members.module.ts @@ -0,0 +1,40 @@ +import { CommonModule } from '@angular/common'; +import { NgModule } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { MatAutocompleteModule } from '@angular/material/autocomplete'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatChipsModule } from '@angular/material/chips'; +import { MatIconModule } from '@angular/material/icon'; +import { MatPaginatorModule } from '@angular/material/paginator'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { MatSortModule } from '@angular/material/sort'; +import { MatTableModule } from '@angular/material/table'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { TranslateModule } from '@ngx-translate/core'; + +import { IamMembersRoutingModule } from './iam-members-routing.module'; +import { IamMembersComponent } from './iam-members.component'; + + +@NgModule({ + declarations: [IamMembersComponent], + imports: [ + IamMembersRoutingModule, + CommonModule, + MatAutocompleteModule, + MatChipsModule, + MatButtonModule, + MatCheckboxModule, + MatIconModule, + MatTableModule, + MatPaginatorModule, + MatSortModule, + MatTooltipModule, + ReactiveFormsModule, + MatProgressSpinnerModule, + FormsModule, + TranslateModule, + ], +}) +export class IamMembersModule { } diff --git a/console/src/app/pages/iam/iam-routing.module.ts b/console/src/app/pages/iam/iam-routing.module.ts new file mode 100644 index 0000000000..148d841635 --- /dev/null +++ b/console/src/app/pages/iam/iam-routing.module.ts @@ -0,0 +1,21 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +import { IamComponent } from './iam.component'; + +const routes: Routes = [ + { + path: '', + component: IamComponent, + }, + { + path: 'members', + loadChildren: () => import('./iam-members/iam-members.module').then(m => m.IamMembersModule), + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class IamRoutingModule { } diff --git a/console/src/app/pages/iam/iam.component.html b/console/src/app/pages/iam/iam.component.html new file mode 100644 index 0000000000..736acab084 --- /dev/null +++ b/console/src/app/pages/iam/iam.component.html @@ -0,0 +1,25 @@ + +
    +

    {{'IAM.DETAIL.TITLE' | translate}}

    +

    {{'IAM.DETAIL.DESCRIPTION' | translate}} +

    + + +
    + + + + + + + + + +
    \ No newline at end of file diff --git a/console/src/app/pages/iam/iam.component.scss b/console/src/app/pages/iam/iam.component.scss new file mode 100644 index 0000000000..7164e8d7a4 --- /dev/null +++ b/console/src/app/pages/iam/iam.component.scss @@ -0,0 +1,151 @@ +h1 { + font-family: ailerons; + margin-top: 0; +} + +.sub { + color: #81868a; + margin-bottom: 2rem; +} + +.state-label { + font-size: .9rem; + color: #81868a; + margin-bottom: .5rem; +} + +.content { + display: flex; + flex-direction: row; + flex-wrap: wrap; + margin: 0 -.5rem; + + mat-form-field { + flex: 1 1 33%; + margin: 0 .5rem; + } +} + +.table-header-row { + display: flex; + align-items: center; + + .col { + display: flex; + flex-direction: column; + .desc { + font-size: .8rem; + color: #81868a; + } + .count { + font-size: 2rem; + } + } + + .fill-space { + flex: 1; + } + + .icon-button { + margin-right: .5rem; + } + + .add-button { + border-radius: .5rem; + } +} + +.domain { + display: flex; + align-items: center; + padding: .5rem 0; + flex-wrap: wrap; + + + .title { + font-size: 16px; + margin-right: 1rem; + } + + .verified, .primary{ + color: #5282c1; + margin-right: 1rem; + } + + .fill-space { + flex: 1; + } +} + +.new-desc { + font-size: 14px; + color: #818a8a; +} + +.new-row { + display: flex; + flex-wrap: wrap; + align-items: center; + + mat-form-field { + flex: 1; + } +} + +.side { + .details { + margin-bottom: 1rem; + border-bottom: 1px solid #81868a40; + padding-bottom: 1rem; + + .row { + display: flex; + margin-bottom: 0.5rem; + align-items: center; + + button { + display: none; + visibility: hidden; + } + + &:hover { + button { + display: inline-block; + visibility: visible; + mat-icon { + font-size: 1.2rem; + } + } + } + + .first { + flex: 1; + font-size: 0.8rem; + margin-right: 0.5rem; + } + + .fill-space { + flex: 1; + } + + .second { + font-size: 0.8rem; + text-overflow: ellipsis; + overflow: hidden; + margin-left: 1rem; + text-align: right; + } + + a { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } + + .side-section { + color: #81868a; + } + } +} diff --git a/console/src/app/pages/iam/iam.component.spec.ts b/console/src/app/pages/iam/iam.component.spec.ts new file mode 100644 index 0000000000..75ba5c0919 --- /dev/null +++ b/console/src/app/pages/iam/iam.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { IamComponent } from './iam.component'; + +describe('IamComponent', () => { + let component: IamComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [IamComponent], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(IamComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/console/src/app/pages/iam/iam.component.ts b/console/src/app/pages/iam/iam.component.ts new file mode 100644 index 0000000000..89c311c823 --- /dev/null +++ b/console/src/app/pages/iam/iam.component.ts @@ -0,0 +1,17 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-iam', + templateUrl: './iam.component.html', + styleUrls: ['./iam.component.scss'], +}) +export class IamComponent implements OnInit { + + constructor() { + + } + + ngOnInit(): void { + } + +} diff --git a/console/src/app/pages/iam/iam.module.ts b/console/src/app/pages/iam/iam.module.ts new file mode 100644 index 0000000000..e6845c571e --- /dev/null +++ b/console/src/app/pages/iam/iam.module.ts @@ -0,0 +1,56 @@ +import { CommonModule } from '@angular/common'; +import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { MatAutocompleteModule } from '@angular/material/autocomplete'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatChipsModule } from '@angular/material/chips'; +import { MatDialogModule } from '@angular/material/dialog'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatPaginatorModule } from '@angular/material/paginator'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { MatSortModule } from '@angular/material/sort'; +import { MatTableModule } from '@angular/material/table'; +import { MatTabsModule } from '@angular/material/tabs'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { TranslateModule } from '@ngx-translate/core'; +import { HasRoleModule } from 'src/app/directives/has-role/has-role.module'; +import { ChangesModule } from 'src/app/modules/changes/changes.module'; +import { MetaLayoutModule } from 'src/app/modules/meta-layout/meta-layout.module'; + +import { IamContributorsModule } from './iam-contributors/iam-contributors.module'; +import { IamRoutingModule } from './iam-routing.module'; +import { IamComponent } from './iam.component'; + + + +@NgModule({ + declarations: [IamComponent], + imports: [ + CommonModule, + IamRoutingModule, + ChangesModule, + MatAutocompleteModule, + MatChipsModule, + MatButtonModule, + HasRoleModule, + MatCheckboxModule, + MetaLayoutModule, + MatIconModule, + MatTabsModule, + MatTableModule, + MatPaginatorModule, + MatFormFieldModule, + MatSortModule, + MatTooltipModule, + ReactiveFormsModule, + MatProgressSpinnerModule, + FormsModule, + TranslateModule, + MatDialogModule, + IamContributorsModule, + ], + schemas: [NO_ERRORS_SCHEMA], +}) +export class IamModule { } diff --git a/console/src/app/pages/orgs/org-detail/org-detail.component.html b/console/src/app/pages/orgs/org-detail/org-detail.component.html index 0a8b77336c..6b99f0c987 100644 --- a/console/src/app/pages/orgs/org-detail/org-detail.component.html +++ b/console/src/app/pages/orgs/org-detail/org-detail.component.html @@ -10,9 +10,9 @@ - + class="las la-file-download"> -->
    @@ -28,10 +28,10 @@ check - - + class="las la-file-download"> --> +
    diff --git a/console/src/app/pages/orgs/org-detail/org-detail.component.ts b/console/src/app/pages/orgs/org-detail/org-detail.component.ts index f802a52879..3a49b50ed9 100644 --- a/console/src/app/pages/orgs/org-detail/org-detail.component.ts +++ b/console/src/app/pages/orgs/org-detail/org-detail.component.ts @@ -76,6 +76,7 @@ export class OrgDetailComponent implements OnInit, OnDestroy { public saveNewOrgDomain(): void { this.orgService.AddMyOrgDomain(this.newDomain).then(domain => { this.domains.push(domain.toObject()); + this.newDomain = ''; }); } diff --git a/console/src/app/pages/orgs/org-grid/org-grid.component.html b/console/src/app/pages/orgs/org-grid/org-grid.component.html index 2e53cc8e20..e4b4ad51a5 100644 --- a/console/src/app/pages/orgs/org-grid/org-grid.component.html +++ b/console/src/app/pages/orgs/org-grid/org-grid.component.html @@ -14,14 +14,7 @@
    - -
    - {{org.id}} {{ org.name }} @@ -39,9 +32,6 @@ -
    diff --git a/console/src/app/pages/orgs/org-grid/org-grid.component.ts b/console/src/app/pages/orgs/org-grid/org-grid.component.ts index 3442fb4d96..f229cb962d 100644 --- a/console/src/app/pages/orgs/org-grid/org-grid.component.ts +++ b/console/src/app/pages/orgs/org-grid/org-grid.component.ts @@ -1,7 +1,6 @@ import { SelectionModel } from '@angular/cdk/collections'; import { Component } from '@angular/core'; import { Router } from '@angular/router'; -import { Timestamp } from 'google-protobuf/google/protobuf/timestamp_pb'; import { Org } from 'src/app/proto/generated/auth_pb'; import { AuthUserService } from 'src/app/services/auth-user.service'; import { AuthService } from 'src/app/services/auth.service'; @@ -49,9 +48,4 @@ export class OrgGridComponent { public routeToOrg(item: Org.AsObject): void { this.router.navigate(['/orgs', item.id]); } - - public dateFromTimestamp(date: Timestamp.AsObject): any { - const ts: Date = new Date(date.seconds * 1000 + date.nanos / 1000); - return ts; - } } diff --git a/console/src/app/pages/orgs/org-members/org-members.component.html b/console/src/app/pages/orgs/org-members/org-members.component.html index fcb82ae89a..0903459d63 100644 --- a/console/src/app/pages/orgs/org-members/org-members.component.html +++ b/console/src/app/pages/orgs/org-members/org-members.component.html @@ -26,8 +26,8 @@ diff --git a/console/src/app/pages/orgs/orgs-routing.module.ts b/console/src/app/pages/orgs/orgs-routing.module.ts index e27def052c..60f09eab4d 100644 --- a/console/src/app/pages/orgs/orgs-routing.module.ts +++ b/console/src/app/pages/orgs/orgs-routing.module.ts @@ -24,6 +24,7 @@ const routes: Routes = [ action: PolicyComponentAction.CREATE, }, }, + /// TODO: add roleguard for iam policy { path: 'policy/:policytype', component: PasswordPolicyComponent, diff --git a/console/src/app/pages/orgs/password-policy/password-policy.component.html b/console/src/app/pages/orgs/password-policy/password-policy.component.html index b1d42e3f55..b2cc0eddf8 100644 --- a/console/src/app/pages/orgs/password-policy/password-policy.component.html +++ b/console/src/app/pages/orgs/password-policy/password-policy.component.html @@ -123,6 +123,20 @@
    +
    + + {{ 'ORG.POLICY.DATA.DESCRIPTION' | translate }} + + +
    + {{'ORG.POLICY.DATA.USERLOGINMUSTBEDOMAIN' | translate}} + + + +
    +
    +
    diff --git a/console/src/app/pages/orgs/password-policy/password-policy.component.ts b/console/src/app/pages/orgs/password-policy/password-policy.component.ts index c1d353da75..43d756833c 100644 --- a/console/src/app/pages/orgs/password-policy/password-policy.component.ts +++ b/console/src/app/pages/orgs/password-policy/password-policy.component.ts @@ -3,8 +3,15 @@ import { FormGroup } from '@angular/forms'; import { ActivatedRoute, Router } from '@angular/router'; import { BehaviorSubject, Subscription } from 'rxjs'; import { switchMap } from 'rxjs/operators'; -import { PasswordAgePolicy, PasswordComplexityPolicy, PasswordLockoutPolicy } from 'src/app/proto/generated/management_pb'; +import { + OrgIamPolicy, + PasswordAgePolicy, + PasswordComplexityPolicy, + PasswordLockoutPolicy, +} from 'src/app/proto/generated/management_pb'; +import { AdminService } from 'src/app/services/admin.service'; import { OrgService } from 'src/app/services/org.service'; +import { StorageService } from 'src/app/services/storage.service'; import { ToastService } from 'src/app/services/toast.service'; export enum PolicyComponentAction { @@ -16,6 +23,7 @@ export enum PolicyComponentType { LOCKOUT = 'lockout', AGE = 'age', COMPLEXITY = 'complexity', + IAM_POLICY = 'iam_policy', } @Component({ @@ -24,13 +32,15 @@ export enum PolicyComponentType { styleUrls: ['./password-policy.component.scss'], }) export class PasswordPolicyComponent implements OnInit, OnDestroy { - public orgId: string = ''; titleSub: BehaviorSubject = new BehaviorSubject(''); descSub: BehaviorSubject = new BehaviorSubject(''); componentAction: PolicyComponentAction = PolicyComponentAction.CREATE; - policyData!: PasswordLockoutPolicy.AsObject | PasswordAgePolicy.AsObject | PasswordComplexityPolicy.AsObject; + policyData!: PasswordLockoutPolicy.AsObject | + PasswordAgePolicy.AsObject | + PasswordComplexityPolicy.AsObject | + OrgIamPolicy.AsObject; policyType: PolicyComponentType = PolicyComponentType.COMPLEXITY; public PolicyComponentType: any = PolicyComponentType; @@ -60,19 +70,25 @@ export class PasswordPolicyComponent implements OnInit, OnDestroy { maxAgeDays: 90, }; + public iamData: any = { + description: '', + userLoginMustBeDomain: false, + }; + private sub: Subscription = new Subscription(); constructor( private route: ActivatedRoute, + private adminService: AdminService, private orgService: OrgService, private router: Router, private toast: ToastService, + private sessionStorage: StorageService, ) { this.sub = this.route.data.pipe(switchMap(data => { this.componentAction = data.action; return this.route.params; })).subscribe(params => { - this.orgId = params.id; this.policyType = params.policytype; switch (params.policytype) { @@ -88,6 +104,10 @@ export class PasswordPolicyComponent implements OnInit, OnDestroy { this.titleSub.next('ORG.POLICY.PWD_COMPLEXITY.TITLECREATE'); this.descSub.next('ORG.POLICY.PWD_COMPLEXITY.DESCRIPTIONCREATE'); break; + case PolicyComponentType.IAM_POLICY: + this.titleSub.next('ORG.POLICY.IAM_POLICY.TITLECREATE'); + this.descSub.next('ORG.POLICY.IAM_POLICY.DESCRIPTIONCREATE'); + break; } if (this.componentAction === PolicyComponentAction.MODIFY) { @@ -102,6 +122,10 @@ export class PasswordPolicyComponent implements OnInit, OnDestroy { case PolicyComponentType.COMPLEXITY: this.complexityData = data.toObject(); break; + case PolicyComponentType.IAM_POLICY: + this.iamData = data.toObject(); + console.log(this.iamData); + break; } }); } @@ -129,6 +153,10 @@ export class PasswordPolicyComponent implements OnInit, OnDestroy { this.titleSub.next('ORG.POLICY.PWD_COMPLEXITY.TITLE'); this.descSub.next('ORG.POLICY.PWD_COMPLEXITY.DESCRIPTION'); return this.orgService.GetPasswordComplexityPolicy(); + case PolicyComponentType.IAM_POLICY: + this.titleSub.next('ORG.POLICY.IAM_POLICY.TITLECREATE'); + this.descSub.next('ORG.POLICY.IAM_POLICY.DESCRIPTIONCREATE'); + return this.orgService.GetMyOrgIamPolicy(); } } @@ -189,7 +217,7 @@ export class PasswordPolicyComponent implements OnInit, OnDestroy { this.lockoutData.maxAttempts, this.lockoutData.showLockOutFailures, ).then(() => { - this.router.navigate(['orgs', this.orgId]); + this.router.navigate(['org']); }).catch(error => { this.toast.showError(error.message); }); @@ -201,7 +229,7 @@ export class PasswordPolicyComponent implements OnInit, OnDestroy { this.ageData.maxAgeDays, this.ageData.expireWarnDays, ).then(() => { - this.router.navigate(['orgs', this.orgId]); + this.router.navigate(['org']); }).catch(error => { this.toast.showError(error.message); }); @@ -217,11 +245,27 @@ export class PasswordPolicyComponent implements OnInit, OnDestroy { this.complexityData.hasSymbol, this.complexityData.minLength, ).then(() => { - this.router.navigate(['orgs', this.orgId]); + this.router.navigate(['org']); }).catch(error => { this.toast.showError(error.message); }); break; + + case PolicyComponentType.IAM_POLICY: + console.log(this.complexityData); + const orgId = this.sessionStorage.getItem('organization'); + if (orgId) { + this.adminService.CreateOrgIamPolicy( + orgId, + this.complexityData.description, + this.complexityData.userLoginMustBeDomain, + ).then(() => { + this.router.navigate(['org']); + }).catch(error => { + this.toast.showError(error.message); + }); + } + break; } } else if (this.componentAction === PolicyComponentAction.MODIFY) { switch (this.policyType) { @@ -231,7 +275,7 @@ export class PasswordPolicyComponent implements OnInit, OnDestroy { this.lockoutData.maxAttempts, this.lockoutData.showLockOutFailures, ).then(() => { - this.router.navigate(['orgs', this.orgId]); + this.router.navigate(['org']); }).catch(error => { this.toast.showError(error.message); }); @@ -243,7 +287,7 @@ export class PasswordPolicyComponent implements OnInit, OnDestroy { this.ageData.maxAgeDays, this.ageData.expireWarnDays, ).then(() => { - this.router.navigate(['orgs', this.orgId]); + this.router.navigate(['org']); }).catch(error => { this.toast.showError(error.message); }); @@ -259,11 +303,27 @@ export class PasswordPolicyComponent implements OnInit, OnDestroy { this.complexityData.hasSymbol, this.complexityData.minLength, ).then(() => { - this.router.navigate(['orgs', this.orgId]); + this.router.navigate(['org']); }).catch(error => { this.toast.showError(error.message); }); break; + + case PolicyComponentType.IAM_POLICY: + console.log(this.complexityData); + const orgId = this.sessionStorage.getItem('organization'); + if (orgId) { + this.adminService.UpdateOrgIamPolicy( + orgId, + this.complexityData.description, + this.complexityData.userLoginMustBeDomain, + ).then(() => { + this.router.navigate(['org']); + }).catch(error => { + this.toast.showError(error.message); + }); + } + break; } } } diff --git a/console/src/app/pages/orgs/policy-grid/policy-grid.component.html b/console/src/app/pages/orgs/policy-grid/policy-grid.component.html index 5713ce4d04..fa586e1362 100644 --- a/console/src/app/pages/orgs/policy-grid/policy-grid.component.html +++ b/console/src/app/pages/orgs/policy-grid/policy-grid.component.html @@ -16,7 +16,7 @@
    @@ -46,12 +46,11 @@
    {{'ORG.POLICY.PWD_COMPLEXITY.TITLE' | translate}} -
    @@ -81,7 +80,7 @@ @@ -99,4 +98,39 @@ mat-raised-button>{{'ORG.POLICY.BTN_EDIT' | translate}} --> + +
    +
    +
    +
    + {{'ORG.POLICY.IAM_POLICY.TITLE' | translate}} + + + + +
    + +

    + {{ iamPolicy.description }}

    + +

    + {{'ORG.POLICY.IAM_POLICY.DESCRIPTION' | translate}}

    +
    + + +
    + + + + +
    +
    +
    \ No newline at end of file diff --git a/console/src/app/pages/orgs/policy-grid/policy-grid.component.scss b/console/src/app/pages/orgs/policy-grid/policy-grid.component.scss index 10f7e29866..0a8d9698ba 100644 --- a/console/src/app/pages/orgs/policy-grid/policy-grid.component.scss +++ b/console/src/app/pages/orgs/policy-grid/policy-grid.component.scss @@ -30,7 +30,7 @@ h1 { justify-content: center; margin-bottom: .5rem; - mat-icon { + mat-icon, i { font-size: 2.5rem; height: 2.5rem; line-height: 2.5rem; diff --git a/console/src/app/pages/orgs/policy-grid/policy-grid.component.ts b/console/src/app/pages/orgs/policy-grid/policy-grid.component.ts index 34151cead2..580670a965 100644 --- a/console/src/app/pages/orgs/policy-grid/policy-grid.component.ts +++ b/console/src/app/pages/orgs/policy-grid/policy-grid.component.ts @@ -1,10 +1,12 @@ import { Component, OnInit } from '@angular/core'; import { + OrgIamPolicy, PasswordAgePolicy, PasswordComplexityPolicy, PasswordLockoutPolicy, PolicyState, } from 'src/app/proto/generated/management_pb'; +import { AdminService } from 'src/app/services/admin.service'; import { AuthUserService } from 'src/app/services/auth-user.service'; import { OrgService } from 'src/app/services/org.service'; import { ToastService } from 'src/app/services/toast.service'; @@ -20,11 +22,17 @@ export class PolicyGridComponent implements OnInit { public lockoutPolicy!: PasswordLockoutPolicy.AsObject; public agePolicy!: PasswordAgePolicy.AsObject; public complexityPolicy!: PasswordComplexityPolicy.AsObject; + public iamPolicy!: OrgIamPolicy.AsObject; public PolicyState: any = PolicyState; public PolicyComponentType: any = PolicyComponentType; - constructor(private orgService: OrgService, public authUserService: AuthUserService, private toast: ToastService) { + constructor( + private orgService: OrgService, + private adminService: AdminService, + public authUserService: AuthUserService, + private toast: ToastService, + ) { this.getData(); } @@ -36,6 +44,8 @@ export class PolicyGridComponent implements OnInit { // this.orgService.GetPasswordAgePolicy().then(data => this.agePolicy = data.toObject()).catch(error => { }); this.orgService.GetPasswordComplexityPolicy().then(data => this.complexityPolicy = data.toObject()) .catch(error => { }); + this.orgService.GetMyOrgIamPolicy().then(data => this.iamPolicy = data.toObject()) + .catch(error => { }); } public deletePolicy(type: PolicyComponentType): void { diff --git a/console/src/app/pages/project-grant-create/project-grant-create.component.html b/console/src/app/pages/project-grant-create/project-grant-create.component.html index 598d5f50e3..1e8afdcab5 100644 --- a/console/src/app/pages/project-grant-create/project-grant-create.component.html +++ b/console/src/app/pages/project-grant-create/project-grant-create.component.html @@ -26,7 +26,7 @@

    {{org?.name}}

    created: - {{dateFromTimestamp(org.creationDate) | date: 'EEE dd. MMM, HH:mm'}} + {{org.creationDate | timestampToDate | date: 'EEE dd. MMM, HH:mm'}}
    diff --git a/console/src/app/pages/project-grant-create/project-grant-create.component.ts b/console/src/app/pages/project-grant-create/project-grant-create.component.ts index 0346b4dc60..300d54c9a5 100644 --- a/console/src/app/pages/project-grant-create/project-grant-create.component.ts +++ b/console/src/app/pages/project-grant-create/project-grant-create.component.ts @@ -1,7 +1,6 @@ import { Location } from '@angular/common'; import { Component, OnDestroy, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; -import { Timestamp } from 'google-protobuf/google/protobuf/timestamp_pb'; import { Subscription } from 'rxjs'; import { Org, ProjectRole } from 'src/app/proto/generated/management_pb'; import { AuthService } from 'src/app/services/auth.service'; @@ -76,12 +75,6 @@ export class ProjectGrantCreateComponent implements OnInit, OnDestroy { }); } - - public dateFromTimestamp(date: Timestamp.AsObject): any { - const ts: Date = new Date(date.seconds * 1000 + date.nanos / 1000); - return ts; - } - public selectRoles(roles: ProjectRole.AsObject[]): void { this.rolesKeyList = roles.map(role => role.key); } diff --git a/console/src/app/pages/project-grant-create/project-grant-create.module.ts b/console/src/app/pages/project-grant-create/project-grant-create.module.ts index 7f29935480..cab91bc310 100644 --- a/console/src/app/pages/project-grant-create/project-grant-create.module.ts +++ b/console/src/app/pages/project-grant-create/project-grant-create.module.ts @@ -12,6 +12,7 @@ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { MatTooltipModule } from '@angular/material/tooltip'; import { TranslateModule } from '@ngx-translate/core'; import { CardModule } from 'src/app/modules/card/card.module'; +import { PipesModule } from 'src/app/pipes/pipes.module'; import { ProjectRolesModule } from '../../modules/project-roles/project-roles.module'; import { ProjectGrantCreateRoutingModule } from './project-grant-create-routing.module'; @@ -32,6 +33,7 @@ import { ProjectGrantCreateComponent } from './project-grant-create.component'; ProjectRolesModule, MatIconModule, MatTooltipModule, + PipesModule, ReactiveFormsModule, MatProgressSpinnerModule, FormsModule, diff --git a/console/src/app/pages/project-role-create/project-role-create.component.html b/console/src/app/pages/project-role-create/project-role-create.component.html index 732a38aa84..f59cf06190 100644 --- a/console/src/app/pages/project-role-create/project-role-create.component.html +++ b/console/src/app/pages/project-role-create/project-role-create.component.html @@ -29,8 +29,9 @@ {{ 'PROJECT.ROLE.GROUP' | translate }} - diff --git a/console/src/app/pages/projects/granted-project-grid/granted-project-grid.component.html b/console/src/app/pages/projects/granted-project-grid/granted-project-grid.component.html index 73acf3987e..81c854695e 100644 --- a/console/src/app/pages/projects/granted-project-grid/granted-project-grid.component.html +++ b/console/src/app/pages/projects/granted-project-grid/granted-project-grid.component.html @@ -24,17 +24,17 @@
    last modified on {{ - dateFromTimestamp(item.changeDate) | date: 'EEE dd. MMM, HH:mm' + item.changeDate | timestampToDate | date: 'EEE dd. MMM, HH:mm' }} {{ item.projectName }} - {{'PROJECT.STATE.'+item.state | translate}} + {{item.grantedOrgName}} + created on {{ - dateFromTimestamp(item.creationDate) | date: 'EEE dd. MMM, HH:mm' + item.creationDate | timestampToDate | date: 'EEE dd. MMM, HH:mm' }}
    - apps
    - - add{{ 'ACTIONS.NEW' | translate }} - + + + add{{ 'ACTIONS.NEW' | translate }} + +
    @@ -69,7 +71,7 @@ {{ 'PROJECT.TABLE.CREATIONDATE' | translate }} {{dateFromTimestamp(project.creationDate) | date: 'EEE dd. MMM, HH:mm'}} + *ngIf="project.creationDate">{{project.creationDate | timestampToDate | date: 'EEE dd. MMM, HH:mm'}} @@ -78,7 +80,7 @@ {{ 'PROJECT.TABLE.CHANGEDATE' | translate }} {{dateFromTimestamp(project.changeDate) | date: 'EEE dd. MMM, HH:mm'}} + *ngIf="project.changeDate">{{project.changeDate | timestampToDate | date: 'EEE dd. MMM, HH:mm'}} @@ -90,4 +92,4 @@
    -
    + \ No newline at end of file diff --git a/console/src/app/pages/projects/owned-project-list/owned-project-list.component.ts b/console/src/app/pages/projects/owned-project-list/owned-project-list.component.ts index 3ba37682cf..d5d83b7c06 100644 --- a/console/src/app/pages/projects/owned-project-list/owned-project-list.component.ts +++ b/console/src/app/pages/projects/owned-project-list/owned-project-list.component.ts @@ -5,7 +5,6 @@ import { PageEvent } from '@angular/material/paginator'; import { MatTableDataSource } from '@angular/material/table'; import { Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; -import { Timestamp } from 'google-protobuf/google/protobuf/timestamp_pb'; import { BehaviorSubject, Observable, Subscription } from 'rxjs'; import { ProjectView } from 'src/app/proto/generated/management_pb'; import { ProjectService } from 'src/app/services/project.service'; @@ -103,11 +102,6 @@ export class OwnedProjectListComponent implements OnInit, OnDestroy { this.ownedProjectList = []; } - public dateFromTimestamp(date: Timestamp.AsObject): any { - const ts: Date = new Date(date.seconds * 1000 + date.nanos / 1000); - return ts; - } - public reactivateSelectedProjects(): void { const promises = this.selection.selected.map(project => { this.projectService.ReactivateProject(project.projectId); diff --git a/console/src/app/pages/projects/project-applications/project-applications.component.html b/console/src/app/pages/projects/project-applications/project-applications.component.html index 8efbd2ef1a..2fae5594d9 100644 --- a/console/src/app/pages/projects/project-applications/project-applications.component.html +++ b/console/src/app/pages/projects/project-applications/project-applications.component.html @@ -12,7 +12,7 @@ diff --git a/console/src/app/pages/projects/project-grants/project-grants.component.html b/console/src/app/pages/projects/project-grants/project-grants.component.html index 2979bc350a..a7d4abaf1a 100644 --- a/console/src/app/pages/projects/project-grants/project-grants.component.html +++ b/console/src/app/pages/projects/project-grants/project-grants.component.html @@ -12,8 +12,8 @@ @@ -59,13 +59,13 @@ {{ 'PROJECT.GRANT.CREATIONDATE' | translate }} - {{dateFromTimestamp(grant.creationDate) | date: 'dd. MMM, HH:mm' }} + {{grant.creationDate | timestampToDate | date: 'dd. MMM, HH:mm' }} {{ 'PROJECT.GRANT.CHANGEDATE' | translate }} - {{dateFromTimestamp(grant.changeDate) | date: 'dd. MMM, HH:mm' }} + {{grant.changeDate | timestampToDate | date: 'dd. MMM, HH:mm' }} diff --git a/console/src/app/pages/projects/project-grants/project-grants.component.ts b/console/src/app/pages/projects/project-grants/project-grants.component.ts index eda3e0c811..94a706db64 100644 --- a/console/src/app/pages/projects/project-grants/project-grants.component.ts +++ b/console/src/app/pages/projects/project-grants/project-grants.component.ts @@ -4,7 +4,6 @@ import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/cor import { MatDialog } from '@angular/material/dialog'; import { MatPaginator } from '@angular/material/paginator'; import { MatTable } from '@angular/material/table'; -import { Timestamp } from 'google-protobuf/google/protobuf/timestamp_pb'; import { tap } from 'rxjs/operators'; import { ProjectGrant, ProjectMemberView } from 'src/app/proto/generated/management_pb'; import { ProjectService } from 'src/app/services/project.service'; @@ -131,9 +130,4 @@ export class ProjectGrantsComponent implements OnInit, AfterViewInit { this.toast.showInfo(error.message); }); } - - public dateFromTimestamp(date: Timestamp.AsObject): any { - const ts: Date = new Date(date.seconds * 1000 + date.nanos / 1000); - return ts; - } } diff --git a/console/src/app/pages/projects/project-members/project-members.component.html b/console/src/app/pages/projects/project-members/project-members.component.html index 86eca6f865..eefbf080fb 100644 --- a/console/src/app/pages/projects/project-members/project-members.component.html +++ b/console/src/app/pages/projects/project-members/project-members.component.html @@ -25,10 +25,10 @@ - import('../project-create/project-create.module').then(m => m.ProjectCreateModule), + canActivate: [AuthGuard, RoleGuard], + data: { + roles: ['project.write'], + }, }, { path: ':id/grant/:grantId', diff --git a/console/src/app/pages/projects/projects.module.ts b/console/src/app/pages/projects/projects.module.ts index a10d1b4aef..766f3de3ae 100644 --- a/console/src/app/pages/projects/projects.module.ts +++ b/console/src/app/pages/projects/projects.module.ts @@ -25,6 +25,7 @@ import { HasRoleModule } from 'src/app/directives/has-role/has-role.module'; import { CardModule } from 'src/app/modules/card/card.module'; import { MetaLayoutModule } from 'src/app/modules/meta-layout/meta-layout.module'; import { SearchUserAutocompleteModule } from 'src/app/modules/search-user-autocomplete/search-user-autocomplete.module'; +import { PipesModule } from 'src/app/pipes/pipes.module'; import { ChangesModule } from '../../modules/changes/changes.module'; import { ProjectRolesModule } from '../../modules/project-roles/project-roles.module'; @@ -95,6 +96,7 @@ import { ProjectsComponent } from './projects.component'; CardModule, MatTooltipModule, MatSortModule, + PipesModule, OrgContributorsModule, TranslateModule.forChild({ loader: { diff --git a/console/src/app/pages/user-detail/auth-user-detail/auth-user-detail.component.html b/console/src/app/pages/user-detail/auth-user-detail/auth-user-detail.component.html index 0790fd1dc7..df117be68b 100644 --- a/console/src/app/pages/user-detail/auth-user-detail/auth-user-detail.component.html +++ b/console/src/app/pages/user-detail/auth-user-detail/auth-user-detail.component.html @@ -167,8 +167,8 @@ - diff --git a/console/src/app/pages/user-detail/auth-user-mfa/auth-user-mfa.component.html b/console/src/app/pages/user-detail/auth-user-mfa/auth-user-mfa.component.html index 2435627827..c9c2197ee2 100644 --- a/console/src/app/pages/user-detail/auth-user-mfa/auth-user-mfa.component.html +++ b/console/src/app/pages/user-detail/auth-user-mfa/auth-user-mfa.component.html @@ -3,8 +3,9 @@
    {{'USER.MFA.TYPE.'+ mfa.type | translate}} {{'USER.MFA.STATE.'+ mfa.state | translate}} -

    {{error}}

    diff --git a/console/src/app/pages/user-detail/user-detail/user-detail.component.html b/console/src/app/pages/user-detail/user-detail/user-detail.component.html index 82637bdcef..d835a17c6f 100644 --- a/console/src/app/pages/user-detail/user-detail/user-detail.component.html +++ b/console/src/app/pages/user-detail/user-detail/user-detail.component.html @@ -153,8 +153,8 @@ - diff --git a/console/src/app/pages/user-detail/user-grants/user-grants.component.html b/console/src/app/pages/user-detail/user-grants/user-grants.component.html index a23615d8a2..782f1ba06e 100644 --- a/console/src/app/pages/user-detail/user-grants/user-grants.component.html +++ b/console/src/app/pages/user-detail/user-grants/user-grants.component.html @@ -11,9 +11,9 @@ - @@ -59,13 +59,13 @@ {{ 'PROJECT.GRANT.CREATIONDATE' | translate }} - {{dateFromTimestamp(grant.creationDate) | date: 'dd. MMM, HH:mm' }} + {{grant.creationDate | timestampToDate | date: 'dd. MMM, HH:mm' }} {{ 'PROJECT.GRANT.CHANGEDATE' | translate }} - {{dateFromTimestamp(grant.changeDate) | date: 'dd. MMM, HH:mm' }} + {{grant.changeDate | timestampToDate | date: 'dd. MMM, HH:mm' }} diff --git a/console/src/app/pages/user-detail/user-grants/user-grants.component.ts b/console/src/app/pages/user-detail/user-grants/user-grants.component.ts index 1afa138609..1ef5dad5bb 100644 --- a/console/src/app/pages/user-detail/user-grants/user-grants.component.ts +++ b/console/src/app/pages/user-detail/user-grants/user-grants.component.ts @@ -2,7 +2,6 @@ import { SelectionModel } from '@angular/cdk/collections'; import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core'; import { MatPaginator } from '@angular/material/paginator'; import { MatTable } from '@angular/material/table'; -import { Timestamp } from 'google-protobuf/google/protobuf/timestamp_pb'; import { tap } from 'rxjs/operators'; import { ProjectGrant, UserGrant } from 'src/app/proto/generated/management_pb'; import { MgmtUserService } from 'src/app/services/mgmt-user.service'; @@ -59,9 +58,4 @@ export class UserGrantsComponent implements OnInit, AfterViewInit { this.selection.clear() : this.dataSource.grantsSubject.value.forEach(row => this.selection.select(row)); } - - public dateFromTimestamp(date: Timestamp.AsObject): any { - const ts: Date = new Date(date.seconds * 1000 + date.nanos / 1000); - return ts; - } } diff --git a/console/src/app/pages/user-detail/user-grants/user-grants.module.ts b/console/src/app/pages/user-detail/user-grants/user-grants.module.ts index 7841c340b9..218a02420a 100644 --- a/console/src/app/pages/user-detail/user-grants/user-grants.module.ts +++ b/console/src/app/pages/user-detail/user-grants/user-grants.module.ts @@ -11,6 +11,7 @@ import { MatTooltipModule } from '@angular/material/tooltip'; import { RouterModule } from '@angular/router'; import { TranslateModule } from '@ngx-translate/core'; import { HasRoleModule } from 'src/app/directives/has-role/has-role.module'; +import { PipesModule } from 'src/app/pipes/pipes.module'; import { UserGrantsComponent } from './user-grants.component'; @@ -31,6 +32,7 @@ import { UserGrantsComponent } from './user-grants.component'; MatCheckboxModule, MatTooltipModule, TranslateModule, + PipesModule, ], exports: [ UserGrantsComponent, diff --git a/console/src/app/pipes/pipes.module.ts b/console/src/app/pipes/pipes.module.ts index 976c10f054..4a724a7739 100644 --- a/console/src/app/pipes/pipes.module.ts +++ b/console/src/app/pipes/pipes.module.ts @@ -3,11 +3,13 @@ import { NgModule } from '@angular/core'; import { MomentModule } from 'ngx-moment'; import { LocalizedDatePipe } from './localized-date.pipe'; +import { TimestampToDatePipe } from './timestamp-to-date.pipe'; @NgModule({ declarations: [ LocalizedDatePipe, + TimestampToDatePipe, ], imports: [ CommonModule, @@ -15,6 +17,7 @@ import { LocalizedDatePipe } from './localized-date.pipe'; ], exports: [ LocalizedDatePipe, + TimestampToDatePipe, ], }) export class PipesModule { } diff --git a/console/src/app/pipes/timestamp-to-date.pipe.ts b/console/src/app/pipes/timestamp-to-date.pipe.ts new file mode 100644 index 0000000000..c9543739c8 --- /dev/null +++ b/console/src/app/pipes/timestamp-to-date.pipe.ts @@ -0,0 +1,18 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { Timestamp } from 'google-protobuf/google/protobuf/timestamp_pb'; + +@Pipe({ + name: 'timestampToDate', +}) +export class TimestampToDatePipe implements PipeTransform { + + transform(value: Timestamp.AsObject, ...args: unknown[]): unknown { + return this.dateFromTimestamp(value); + } + + private dateFromTimestamp(date: Timestamp.AsObject): any { + const ts: Date = new Date(date.seconds * 1000 + date.nanos / 1000 / 1000); + return ts; + } +} + diff --git a/console/src/app/proto/generated/admin_grpc_web_pb.d.ts b/console/src/app/proto/generated/admin_grpc_web_pb.d.ts index 61be9106d6..edc608f88e 100644 --- a/console/src/app/proto/generated/admin_grpc_web_pb.d.ts +++ b/console/src/app/proto/generated/admin_grpc_web_pb.d.ts @@ -9,6 +9,14 @@ import * as protoc$gen$swagger_options_annotations_pb from './protoc-gen-swagger import * as authoption_options_pb from './authoption/options_pb'; import { + AddIamMemberRequest, + ChangeIamMemberRequest, + FailedEventID, + FailedEvents, + IamMember, + IamMemberRoles, + IamMemberSearchRequest, + IamMemberSearchResponse, Org, OrgID, OrgIamPolicy, @@ -18,8 +26,11 @@ import { OrgSearchResponse, OrgSetUpRequest, OrgSetUpResponse, + RemoveIamMemberRequest, UniqueOrgRequest, - UniqueOrgResponse} from './admin_pb'; + UniqueOrgResponse, + ViewID, + Views} from './admin_pb'; export class AdminServiceClient { constructor (hostname: string, @@ -103,6 +114,69 @@ export class AdminServiceClient { response: google_protobuf_empty_pb.Empty) => void ): grpcWeb.ClientReadableStream; + getIamMemberRoles( + request: google_protobuf_empty_pb.Empty, + metadata: grpcWeb.Metadata | undefined, + callback: (err: grpcWeb.Error, + response: IamMemberRoles) => void + ): grpcWeb.ClientReadableStream; + + addIamMember( + request: AddIamMemberRequest, + metadata: grpcWeb.Metadata | undefined, + callback: (err: grpcWeb.Error, + response: IamMember) => void + ): grpcWeb.ClientReadableStream; + + changeIamMember( + request: ChangeIamMemberRequest, + metadata: grpcWeb.Metadata | undefined, + callback: (err: grpcWeb.Error, + response: IamMember) => void + ): grpcWeb.ClientReadableStream; + + removeIamMember( + request: RemoveIamMemberRequest, + metadata: grpcWeb.Metadata | undefined, + callback: (err: grpcWeb.Error, + response: google_protobuf_empty_pb.Empty) => void + ): grpcWeb.ClientReadableStream; + + searchIamMembers( + request: IamMemberSearchRequest, + metadata: grpcWeb.Metadata | undefined, + callback: (err: grpcWeb.Error, + response: IamMemberSearchResponse) => void + ): grpcWeb.ClientReadableStream; + + getViews( + request: google_protobuf_empty_pb.Empty, + metadata: grpcWeb.Metadata | undefined, + callback: (err: grpcWeb.Error, + response: Views) => void + ): grpcWeb.ClientReadableStream; + + clearView( + request: ViewID, + metadata: grpcWeb.Metadata | undefined, + callback: (err: grpcWeb.Error, + response: google_protobuf_empty_pb.Empty) => void + ): grpcWeb.ClientReadableStream; + + getFailedEvents( + request: google_protobuf_empty_pb.Empty, + metadata: grpcWeb.Metadata | undefined, + callback: (err: grpcWeb.Error, + response: FailedEvents) => void + ): grpcWeb.ClientReadableStream; + + removeFailedEvent( + request: FailedEventID, + metadata: grpcWeb.Metadata | undefined, + callback: (err: grpcWeb.Error, + response: google_protobuf_empty_pb.Empty) => void + ): grpcWeb.ClientReadableStream; + } export class AdminServicePromiseClient { @@ -165,5 +239,50 @@ export class AdminServicePromiseClient { metadata?: grpcWeb.Metadata ): Promise; + getIamMemberRoles( + request: google_protobuf_empty_pb.Empty, + metadata?: grpcWeb.Metadata + ): Promise; + + addIamMember( + request: AddIamMemberRequest, + metadata?: grpcWeb.Metadata + ): Promise; + + changeIamMember( + request: ChangeIamMemberRequest, + metadata?: grpcWeb.Metadata + ): Promise; + + removeIamMember( + request: RemoveIamMemberRequest, + metadata?: grpcWeb.Metadata + ): Promise; + + searchIamMembers( + request: IamMemberSearchRequest, + metadata?: grpcWeb.Metadata + ): Promise; + + getViews( + request: google_protobuf_empty_pb.Empty, + metadata?: grpcWeb.Metadata + ): Promise; + + clearView( + request: ViewID, + metadata?: grpcWeb.Metadata + ): Promise; + + getFailedEvents( + request: google_protobuf_empty_pb.Empty, + metadata?: grpcWeb.Metadata + ): Promise; + + removeFailedEvent( + request: FailedEventID, + metadata?: grpcWeb.Metadata + ): Promise; + } diff --git a/console/src/app/proto/generated/admin_grpc_web_pb.js b/console/src/app/proto/generated/admin_grpc_web_pb.js index 1d36332826..01bbfa061c 100644 --- a/console/src/app/proto/generated/admin_grpc_web_pb.js +++ b/console/src/app/proto/generated/admin_grpc_web_pb.js @@ -964,5 +964,725 @@ proto.caos.zitadel.admin.api.v1.AdminServicePromiseClient.prototype.deleteOrgIam }; +/** + * @const + * @type {!grpc.web.MethodDescriptor< + * !proto.google.protobuf.Empty, + * !proto.caos.zitadel.admin.api.v1.IamMemberRoles>} + */ +const methodDescriptor_AdminService_GetIamMemberRoles = new grpc.web.MethodDescriptor( + '/caos.zitadel.admin.api.v1.AdminService/GetIamMemberRoles', + grpc.web.MethodType.UNARY, + google_protobuf_empty_pb.Empty, + proto.caos.zitadel.admin.api.v1.IamMemberRoles, + /** + * @param {!proto.google.protobuf.Empty} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + proto.caos.zitadel.admin.api.v1.IamMemberRoles.deserializeBinary +); + + +/** + * @const + * @type {!grpc.web.AbstractClientBase.MethodInfo< + * !proto.google.protobuf.Empty, + * !proto.caos.zitadel.admin.api.v1.IamMemberRoles>} + */ +const methodInfo_AdminService_GetIamMemberRoles = new grpc.web.AbstractClientBase.MethodInfo( + proto.caos.zitadel.admin.api.v1.IamMemberRoles, + /** + * @param {!proto.google.protobuf.Empty} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + proto.caos.zitadel.admin.api.v1.IamMemberRoles.deserializeBinary +); + + +/** + * @param {!proto.google.protobuf.Empty} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @param {function(?grpc.web.Error, ?proto.caos.zitadel.admin.api.v1.IamMemberRoles)} + * callback The callback function(error, response) + * @return {!grpc.web.ClientReadableStream|undefined} + * The XHR Node Readable Stream + */ +proto.caos.zitadel.admin.api.v1.AdminServiceClient.prototype.getIamMemberRoles = + function(request, metadata, callback) { + return this.client_.rpcCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/GetIamMemberRoles', + request, + metadata || {}, + methodDescriptor_AdminService_GetIamMemberRoles, + callback); +}; + + +/** + * @param {!proto.google.protobuf.Empty} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @return {!Promise} + * A native promise that resolves to the response + */ +proto.caos.zitadel.admin.api.v1.AdminServicePromiseClient.prototype.getIamMemberRoles = + function(request, metadata) { + return this.client_.unaryCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/GetIamMemberRoles', + request, + metadata || {}, + methodDescriptor_AdminService_GetIamMemberRoles); +}; + + +/** + * @const + * @type {!grpc.web.MethodDescriptor< + * !proto.caos.zitadel.admin.api.v1.AddIamMemberRequest, + * !proto.caos.zitadel.admin.api.v1.IamMember>} + */ +const methodDescriptor_AdminService_AddIamMember = new grpc.web.MethodDescriptor( + '/caos.zitadel.admin.api.v1.AdminService/AddIamMember', + grpc.web.MethodType.UNARY, + proto.caos.zitadel.admin.api.v1.AddIamMemberRequest, + proto.caos.zitadel.admin.api.v1.IamMember, + /** + * @param {!proto.caos.zitadel.admin.api.v1.AddIamMemberRequest} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + proto.caos.zitadel.admin.api.v1.IamMember.deserializeBinary +); + + +/** + * @const + * @type {!grpc.web.AbstractClientBase.MethodInfo< + * !proto.caos.zitadel.admin.api.v1.AddIamMemberRequest, + * !proto.caos.zitadel.admin.api.v1.IamMember>} + */ +const methodInfo_AdminService_AddIamMember = new grpc.web.AbstractClientBase.MethodInfo( + proto.caos.zitadel.admin.api.v1.IamMember, + /** + * @param {!proto.caos.zitadel.admin.api.v1.AddIamMemberRequest} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + proto.caos.zitadel.admin.api.v1.IamMember.deserializeBinary +); + + +/** + * @param {!proto.caos.zitadel.admin.api.v1.AddIamMemberRequest} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @param {function(?grpc.web.Error, ?proto.caos.zitadel.admin.api.v1.IamMember)} + * callback The callback function(error, response) + * @return {!grpc.web.ClientReadableStream|undefined} + * The XHR Node Readable Stream + */ +proto.caos.zitadel.admin.api.v1.AdminServiceClient.prototype.addIamMember = + function(request, metadata, callback) { + return this.client_.rpcCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/AddIamMember', + request, + metadata || {}, + methodDescriptor_AdminService_AddIamMember, + callback); +}; + + +/** + * @param {!proto.caos.zitadel.admin.api.v1.AddIamMemberRequest} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @return {!Promise} + * A native promise that resolves to the response + */ +proto.caos.zitadel.admin.api.v1.AdminServicePromiseClient.prototype.addIamMember = + function(request, metadata) { + return this.client_.unaryCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/AddIamMember', + request, + metadata || {}, + methodDescriptor_AdminService_AddIamMember); +}; + + +/** + * @const + * @type {!grpc.web.MethodDescriptor< + * !proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest, + * !proto.caos.zitadel.admin.api.v1.IamMember>} + */ +const methodDescriptor_AdminService_ChangeIamMember = new grpc.web.MethodDescriptor( + '/caos.zitadel.admin.api.v1.AdminService/ChangeIamMember', + grpc.web.MethodType.UNARY, + proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest, + proto.caos.zitadel.admin.api.v1.IamMember, + /** + * @param {!proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + proto.caos.zitadel.admin.api.v1.IamMember.deserializeBinary +); + + +/** + * @const + * @type {!grpc.web.AbstractClientBase.MethodInfo< + * !proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest, + * !proto.caos.zitadel.admin.api.v1.IamMember>} + */ +const methodInfo_AdminService_ChangeIamMember = new grpc.web.AbstractClientBase.MethodInfo( + proto.caos.zitadel.admin.api.v1.IamMember, + /** + * @param {!proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + proto.caos.zitadel.admin.api.v1.IamMember.deserializeBinary +); + + +/** + * @param {!proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @param {function(?grpc.web.Error, ?proto.caos.zitadel.admin.api.v1.IamMember)} + * callback The callback function(error, response) + * @return {!grpc.web.ClientReadableStream|undefined} + * The XHR Node Readable Stream + */ +proto.caos.zitadel.admin.api.v1.AdminServiceClient.prototype.changeIamMember = + function(request, metadata, callback) { + return this.client_.rpcCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/ChangeIamMember', + request, + metadata || {}, + methodDescriptor_AdminService_ChangeIamMember, + callback); +}; + + +/** + * @param {!proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @return {!Promise} + * A native promise that resolves to the response + */ +proto.caos.zitadel.admin.api.v1.AdminServicePromiseClient.prototype.changeIamMember = + function(request, metadata) { + return this.client_.unaryCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/ChangeIamMember', + request, + metadata || {}, + methodDescriptor_AdminService_ChangeIamMember); +}; + + +/** + * @const + * @type {!grpc.web.MethodDescriptor< + * !proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest, + * !proto.google.protobuf.Empty>} + */ +const methodDescriptor_AdminService_RemoveIamMember = new grpc.web.MethodDescriptor( + '/caos.zitadel.admin.api.v1.AdminService/RemoveIamMember', + grpc.web.MethodType.UNARY, + proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest, + google_protobuf_empty_pb.Empty, + /** + * @param {!proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + google_protobuf_empty_pb.Empty.deserializeBinary +); + + +/** + * @const + * @type {!grpc.web.AbstractClientBase.MethodInfo< + * !proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest, + * !proto.google.protobuf.Empty>} + */ +const methodInfo_AdminService_RemoveIamMember = new grpc.web.AbstractClientBase.MethodInfo( + google_protobuf_empty_pb.Empty, + /** + * @param {!proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + google_protobuf_empty_pb.Empty.deserializeBinary +); + + +/** + * @param {!proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @param {function(?grpc.web.Error, ?proto.google.protobuf.Empty)} + * callback The callback function(error, response) + * @return {!grpc.web.ClientReadableStream|undefined} + * The XHR Node Readable Stream + */ +proto.caos.zitadel.admin.api.v1.AdminServiceClient.prototype.removeIamMember = + function(request, metadata, callback) { + return this.client_.rpcCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/RemoveIamMember', + request, + metadata || {}, + methodDescriptor_AdminService_RemoveIamMember, + callback); +}; + + +/** + * @param {!proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @return {!Promise} + * A native promise that resolves to the response + */ +proto.caos.zitadel.admin.api.v1.AdminServicePromiseClient.prototype.removeIamMember = + function(request, metadata) { + return this.client_.unaryCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/RemoveIamMember', + request, + metadata || {}, + methodDescriptor_AdminService_RemoveIamMember); +}; + + +/** + * @const + * @type {!grpc.web.MethodDescriptor< + * !proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest, + * !proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse>} + */ +const methodDescriptor_AdminService_SearchIamMembers = new grpc.web.MethodDescriptor( + '/caos.zitadel.admin.api.v1.AdminService/SearchIamMembers', + grpc.web.MethodType.UNARY, + proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest, + proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse, + /** + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.deserializeBinary +); + + +/** + * @const + * @type {!grpc.web.AbstractClientBase.MethodInfo< + * !proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest, + * !proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse>} + */ +const methodInfo_AdminService_SearchIamMembers = new grpc.web.AbstractClientBase.MethodInfo( + proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse, + /** + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.deserializeBinary +); + + +/** + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @param {function(?grpc.web.Error, ?proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse)} + * callback The callback function(error, response) + * @return {!grpc.web.ClientReadableStream|undefined} + * The XHR Node Readable Stream + */ +proto.caos.zitadel.admin.api.v1.AdminServiceClient.prototype.searchIamMembers = + function(request, metadata, callback) { + return this.client_.rpcCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/SearchIamMembers', + request, + metadata || {}, + methodDescriptor_AdminService_SearchIamMembers, + callback); +}; + + +/** + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @return {!Promise} + * A native promise that resolves to the response + */ +proto.caos.zitadel.admin.api.v1.AdminServicePromiseClient.prototype.searchIamMembers = + function(request, metadata) { + return this.client_.unaryCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/SearchIamMembers', + request, + metadata || {}, + methodDescriptor_AdminService_SearchIamMembers); +}; + + +/** + * @const + * @type {!grpc.web.MethodDescriptor< + * !proto.google.protobuf.Empty, + * !proto.caos.zitadel.admin.api.v1.Views>} + */ +const methodDescriptor_AdminService_GetViews = new grpc.web.MethodDescriptor( + '/caos.zitadel.admin.api.v1.AdminService/GetViews', + grpc.web.MethodType.UNARY, + google_protobuf_empty_pb.Empty, + proto.caos.zitadel.admin.api.v1.Views, + /** + * @param {!proto.google.protobuf.Empty} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + proto.caos.zitadel.admin.api.v1.Views.deserializeBinary +); + + +/** + * @const + * @type {!grpc.web.AbstractClientBase.MethodInfo< + * !proto.google.protobuf.Empty, + * !proto.caos.zitadel.admin.api.v1.Views>} + */ +const methodInfo_AdminService_GetViews = new grpc.web.AbstractClientBase.MethodInfo( + proto.caos.zitadel.admin.api.v1.Views, + /** + * @param {!proto.google.protobuf.Empty} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + proto.caos.zitadel.admin.api.v1.Views.deserializeBinary +); + + +/** + * @param {!proto.google.protobuf.Empty} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @param {function(?grpc.web.Error, ?proto.caos.zitadel.admin.api.v1.Views)} + * callback The callback function(error, response) + * @return {!grpc.web.ClientReadableStream|undefined} + * The XHR Node Readable Stream + */ +proto.caos.zitadel.admin.api.v1.AdminServiceClient.prototype.getViews = + function(request, metadata, callback) { + return this.client_.rpcCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/GetViews', + request, + metadata || {}, + methodDescriptor_AdminService_GetViews, + callback); +}; + + +/** + * @param {!proto.google.protobuf.Empty} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @return {!Promise} + * A native promise that resolves to the response + */ +proto.caos.zitadel.admin.api.v1.AdminServicePromiseClient.prototype.getViews = + function(request, metadata) { + return this.client_.unaryCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/GetViews', + request, + metadata || {}, + methodDescriptor_AdminService_GetViews); +}; + + +/** + * @const + * @type {!grpc.web.MethodDescriptor< + * !proto.caos.zitadel.admin.api.v1.ViewID, + * !proto.google.protobuf.Empty>} + */ +const methodDescriptor_AdminService_ClearView = new grpc.web.MethodDescriptor( + '/caos.zitadel.admin.api.v1.AdminService/ClearView', + grpc.web.MethodType.UNARY, + proto.caos.zitadel.admin.api.v1.ViewID, + google_protobuf_empty_pb.Empty, + /** + * @param {!proto.caos.zitadel.admin.api.v1.ViewID} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + google_protobuf_empty_pb.Empty.deserializeBinary +); + + +/** + * @const + * @type {!grpc.web.AbstractClientBase.MethodInfo< + * !proto.caos.zitadel.admin.api.v1.ViewID, + * !proto.google.protobuf.Empty>} + */ +const methodInfo_AdminService_ClearView = new grpc.web.AbstractClientBase.MethodInfo( + google_protobuf_empty_pb.Empty, + /** + * @param {!proto.caos.zitadel.admin.api.v1.ViewID} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + google_protobuf_empty_pb.Empty.deserializeBinary +); + + +/** + * @param {!proto.caos.zitadel.admin.api.v1.ViewID} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @param {function(?grpc.web.Error, ?proto.google.protobuf.Empty)} + * callback The callback function(error, response) + * @return {!grpc.web.ClientReadableStream|undefined} + * The XHR Node Readable Stream + */ +proto.caos.zitadel.admin.api.v1.AdminServiceClient.prototype.clearView = + function(request, metadata, callback) { + return this.client_.rpcCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/ClearView', + request, + metadata || {}, + methodDescriptor_AdminService_ClearView, + callback); +}; + + +/** + * @param {!proto.caos.zitadel.admin.api.v1.ViewID} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @return {!Promise} + * A native promise that resolves to the response + */ +proto.caos.zitadel.admin.api.v1.AdminServicePromiseClient.prototype.clearView = + function(request, metadata) { + return this.client_.unaryCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/ClearView', + request, + metadata || {}, + methodDescriptor_AdminService_ClearView); +}; + + +/** + * @const + * @type {!grpc.web.MethodDescriptor< + * !proto.google.protobuf.Empty, + * !proto.caos.zitadel.admin.api.v1.FailedEvents>} + */ +const methodDescriptor_AdminService_GetFailedEvents = new grpc.web.MethodDescriptor( + '/caos.zitadel.admin.api.v1.AdminService/GetFailedEvents', + grpc.web.MethodType.UNARY, + google_protobuf_empty_pb.Empty, + proto.caos.zitadel.admin.api.v1.FailedEvents, + /** + * @param {!proto.google.protobuf.Empty} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + proto.caos.zitadel.admin.api.v1.FailedEvents.deserializeBinary +); + + +/** + * @const + * @type {!grpc.web.AbstractClientBase.MethodInfo< + * !proto.google.protobuf.Empty, + * !proto.caos.zitadel.admin.api.v1.FailedEvents>} + */ +const methodInfo_AdminService_GetFailedEvents = new grpc.web.AbstractClientBase.MethodInfo( + proto.caos.zitadel.admin.api.v1.FailedEvents, + /** + * @param {!proto.google.protobuf.Empty} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + proto.caos.zitadel.admin.api.v1.FailedEvents.deserializeBinary +); + + +/** + * @param {!proto.google.protobuf.Empty} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @param {function(?grpc.web.Error, ?proto.caos.zitadel.admin.api.v1.FailedEvents)} + * callback The callback function(error, response) + * @return {!grpc.web.ClientReadableStream|undefined} + * The XHR Node Readable Stream + */ +proto.caos.zitadel.admin.api.v1.AdminServiceClient.prototype.getFailedEvents = + function(request, metadata, callback) { + return this.client_.rpcCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/GetFailedEvents', + request, + metadata || {}, + methodDescriptor_AdminService_GetFailedEvents, + callback); +}; + + +/** + * @param {!proto.google.protobuf.Empty} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @return {!Promise} + * A native promise that resolves to the response + */ +proto.caos.zitadel.admin.api.v1.AdminServicePromiseClient.prototype.getFailedEvents = + function(request, metadata) { + return this.client_.unaryCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/GetFailedEvents', + request, + metadata || {}, + methodDescriptor_AdminService_GetFailedEvents); +}; + + +/** + * @const + * @type {!grpc.web.MethodDescriptor< + * !proto.caos.zitadel.admin.api.v1.FailedEventID, + * !proto.google.protobuf.Empty>} + */ +const methodDescriptor_AdminService_RemoveFailedEvent = new grpc.web.MethodDescriptor( + '/caos.zitadel.admin.api.v1.AdminService/RemoveFailedEvent', + grpc.web.MethodType.UNARY, + proto.caos.zitadel.admin.api.v1.FailedEventID, + google_protobuf_empty_pb.Empty, + /** + * @param {!proto.caos.zitadel.admin.api.v1.FailedEventID} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + google_protobuf_empty_pb.Empty.deserializeBinary +); + + +/** + * @const + * @type {!grpc.web.AbstractClientBase.MethodInfo< + * !proto.caos.zitadel.admin.api.v1.FailedEventID, + * !proto.google.protobuf.Empty>} + */ +const methodInfo_AdminService_RemoveFailedEvent = new grpc.web.AbstractClientBase.MethodInfo( + google_protobuf_empty_pb.Empty, + /** + * @param {!proto.caos.zitadel.admin.api.v1.FailedEventID} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + google_protobuf_empty_pb.Empty.deserializeBinary +); + + +/** + * @param {!proto.caos.zitadel.admin.api.v1.FailedEventID} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @param {function(?grpc.web.Error, ?proto.google.protobuf.Empty)} + * callback The callback function(error, response) + * @return {!grpc.web.ClientReadableStream|undefined} + * The XHR Node Readable Stream + */ +proto.caos.zitadel.admin.api.v1.AdminServiceClient.prototype.removeFailedEvent = + function(request, metadata, callback) { + return this.client_.rpcCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/RemoveFailedEvent', + request, + metadata || {}, + methodDescriptor_AdminService_RemoveFailedEvent, + callback); +}; + + +/** + * @param {!proto.caos.zitadel.admin.api.v1.FailedEventID} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @return {!Promise} + * A native promise that resolves to the response + */ +proto.caos.zitadel.admin.api.v1.AdminServicePromiseClient.prototype.removeFailedEvent = + function(request, metadata) { + return this.client_.unaryCall(this.hostname_ + + '/caos.zitadel.admin.api.v1.AdminService/RemoveFailedEvent', + request, + metadata || {}, + methodDescriptor_AdminService_RemoveFailedEvent); +}; + + module.exports = proto.caos.zitadel.admin.api.v1; diff --git a/console/src/app/proto/generated/admin_pb.d.ts b/console/src/app/proto/generated/admin_pb.d.ts index c114c1f05b..ca0dc4041f 100644 --- a/console/src/app/proto/generated/admin_pb.d.ts +++ b/console/src/app/proto/generated/admin_pb.d.ts @@ -546,6 +546,422 @@ export namespace OrgIamPolicyID { } } +export class IamMemberRoles extends jspb.Message { + getRolesList(): Array; + setRolesList(value: Array): void; + clearRolesList(): void; + addRoles(value: string, index?: number): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): IamMemberRoles.AsObject; + static toObject(includeInstance: boolean, msg: IamMemberRoles): IamMemberRoles.AsObject; + static serializeBinaryToWriter(message: IamMemberRoles, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): IamMemberRoles; + static deserializeBinaryFromReader(message: IamMemberRoles, reader: jspb.BinaryReader): IamMemberRoles; +} + +export namespace IamMemberRoles { + export type AsObject = { + rolesList: Array, + } +} + +export class IamMember extends jspb.Message { + getUserId(): string; + setUserId(value: string): void; + + getRolesList(): Array; + setRolesList(value: Array): void; + clearRolesList(): void; + addRoles(value: string, index?: number): void; + + getChangeDate(): google_protobuf_timestamp_pb.Timestamp | undefined; + setChangeDate(value?: google_protobuf_timestamp_pb.Timestamp): void; + hasChangeDate(): boolean; + clearChangeDate(): void; + + getCreationDate(): google_protobuf_timestamp_pb.Timestamp | undefined; + setCreationDate(value?: google_protobuf_timestamp_pb.Timestamp): void; + hasCreationDate(): boolean; + clearCreationDate(): void; + + getSequence(): number; + setSequence(value: number): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): IamMember.AsObject; + static toObject(includeInstance: boolean, msg: IamMember): IamMember.AsObject; + static serializeBinaryToWriter(message: IamMember, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): IamMember; + static deserializeBinaryFromReader(message: IamMember, reader: jspb.BinaryReader): IamMember; +} + +export namespace IamMember { + export type AsObject = { + userId: string, + rolesList: Array, + changeDate?: google_protobuf_timestamp_pb.Timestamp.AsObject, + creationDate?: google_protobuf_timestamp_pb.Timestamp.AsObject, + sequence: number, + } +} + +export class AddIamMemberRequest extends jspb.Message { + getUserId(): string; + setUserId(value: string): void; + + getRolesList(): Array; + setRolesList(value: Array): void; + clearRolesList(): void; + addRoles(value: string, index?: number): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): AddIamMemberRequest.AsObject; + static toObject(includeInstance: boolean, msg: AddIamMemberRequest): AddIamMemberRequest.AsObject; + static serializeBinaryToWriter(message: AddIamMemberRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): AddIamMemberRequest; + static deserializeBinaryFromReader(message: AddIamMemberRequest, reader: jspb.BinaryReader): AddIamMemberRequest; +} + +export namespace AddIamMemberRequest { + export type AsObject = { + userId: string, + rolesList: Array, + } +} + +export class ChangeIamMemberRequest extends jspb.Message { + getUserId(): string; + setUserId(value: string): void; + + getRolesList(): Array; + setRolesList(value: Array): void; + clearRolesList(): void; + addRoles(value: string, index?: number): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ChangeIamMemberRequest.AsObject; + static toObject(includeInstance: boolean, msg: ChangeIamMemberRequest): ChangeIamMemberRequest.AsObject; + static serializeBinaryToWriter(message: ChangeIamMemberRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ChangeIamMemberRequest; + static deserializeBinaryFromReader(message: ChangeIamMemberRequest, reader: jspb.BinaryReader): ChangeIamMemberRequest; +} + +export namespace ChangeIamMemberRequest { + export type AsObject = { + userId: string, + rolesList: Array, + } +} + +export class RemoveIamMemberRequest extends jspb.Message { + getUserId(): string; + setUserId(value: string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): RemoveIamMemberRequest.AsObject; + static toObject(includeInstance: boolean, msg: RemoveIamMemberRequest): RemoveIamMemberRequest.AsObject; + static serializeBinaryToWriter(message: RemoveIamMemberRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): RemoveIamMemberRequest; + static deserializeBinaryFromReader(message: RemoveIamMemberRequest, reader: jspb.BinaryReader): RemoveIamMemberRequest; +} + +export namespace RemoveIamMemberRequest { + export type AsObject = { + userId: string, + } +} + +export class IamMemberSearchResponse extends jspb.Message { + getOffset(): number; + setOffset(value: number): void; + + getLimit(): number; + setLimit(value: number): void; + + getTotalResult(): number; + setTotalResult(value: number): void; + + getResultList(): Array; + setResultList(value: Array): void; + clearResultList(): void; + addResult(value?: IamMemberView, index?: number): IamMemberView; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): IamMemberSearchResponse.AsObject; + static toObject(includeInstance: boolean, msg: IamMemberSearchResponse): IamMemberSearchResponse.AsObject; + static serializeBinaryToWriter(message: IamMemberSearchResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): IamMemberSearchResponse; + static deserializeBinaryFromReader(message: IamMemberSearchResponse, reader: jspb.BinaryReader): IamMemberSearchResponse; +} + +export namespace IamMemberSearchResponse { + export type AsObject = { + offset: number, + limit: number, + totalResult: number, + resultList: Array, + } +} + +export class IamMemberView extends jspb.Message { + getUserId(): string; + setUserId(value: string): void; + + getRolesList(): Array; + setRolesList(value: Array): void; + clearRolesList(): void; + addRoles(value: string, index?: number): void; + + getChangeDate(): google_protobuf_timestamp_pb.Timestamp | undefined; + setChangeDate(value?: google_protobuf_timestamp_pb.Timestamp): void; + hasChangeDate(): boolean; + clearChangeDate(): void; + + getCreationDate(): google_protobuf_timestamp_pb.Timestamp | undefined; + setCreationDate(value?: google_protobuf_timestamp_pb.Timestamp): void; + hasCreationDate(): boolean; + clearCreationDate(): void; + + getSequence(): number; + setSequence(value: number): void; + + getUserName(): string; + setUserName(value: string): void; + + getEmail(): string; + setEmail(value: string): void; + + getFirstName(): string; + setFirstName(value: string): void; + + getLastName(): string; + setLastName(value: string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): IamMemberView.AsObject; + static toObject(includeInstance: boolean, msg: IamMemberView): IamMemberView.AsObject; + static serializeBinaryToWriter(message: IamMemberView, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): IamMemberView; + static deserializeBinaryFromReader(message: IamMemberView, reader: jspb.BinaryReader): IamMemberView; +} + +export namespace IamMemberView { + export type AsObject = { + userId: string, + rolesList: Array, + changeDate?: google_protobuf_timestamp_pb.Timestamp.AsObject, + creationDate?: google_protobuf_timestamp_pb.Timestamp.AsObject, + sequence: number, + userName: string, + email: string, + firstName: string, + lastName: string, + } +} + +export class IamMemberSearchRequest extends jspb.Message { + getOffset(): number; + setOffset(value: number): void; + + getLimit(): number; + setLimit(value: number): void; + + getQueriesList(): Array; + setQueriesList(value: Array): void; + clearQueriesList(): void; + addQueries(value?: IamMemberSearchQuery, index?: number): IamMemberSearchQuery; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): IamMemberSearchRequest.AsObject; + static toObject(includeInstance: boolean, msg: IamMemberSearchRequest): IamMemberSearchRequest.AsObject; + static serializeBinaryToWriter(message: IamMemberSearchRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): IamMemberSearchRequest; + static deserializeBinaryFromReader(message: IamMemberSearchRequest, reader: jspb.BinaryReader): IamMemberSearchRequest; +} + +export namespace IamMemberSearchRequest { + export type AsObject = { + offset: number, + limit: number, + queriesList: Array, + } +} + +export class IamMemberSearchQuery extends jspb.Message { + getKey(): IamMemberSearchKey; + setKey(value: IamMemberSearchKey): void; + + getMethod(): SearchMethod; + setMethod(value: SearchMethod): void; + + getValue(): string; + setValue(value: string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): IamMemberSearchQuery.AsObject; + static toObject(includeInstance: boolean, msg: IamMemberSearchQuery): IamMemberSearchQuery.AsObject; + static serializeBinaryToWriter(message: IamMemberSearchQuery, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): IamMemberSearchQuery; + static deserializeBinaryFromReader(message: IamMemberSearchQuery, reader: jspb.BinaryReader): IamMemberSearchQuery; +} + +export namespace IamMemberSearchQuery { + export type AsObject = { + key: IamMemberSearchKey, + method: SearchMethod, + value: string, + } +} + +export class FailedEventID extends jspb.Message { + getDatabase(): string; + setDatabase(value: string): void; + + getViewName(): string; + setViewName(value: string): void; + + getFailedSequence(): number; + setFailedSequence(value: number): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): FailedEventID.AsObject; + static toObject(includeInstance: boolean, msg: FailedEventID): FailedEventID.AsObject; + static serializeBinaryToWriter(message: FailedEventID, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): FailedEventID; + static deserializeBinaryFromReader(message: FailedEventID, reader: jspb.BinaryReader): FailedEventID; +} + +export namespace FailedEventID { + export type AsObject = { + database: string, + viewName: string, + failedSequence: number, + } +} + +export class FailedEvents extends jspb.Message { + getFailedEventsList(): Array; + setFailedEventsList(value: Array): void; + clearFailedEventsList(): void; + addFailedEvents(value?: FailedEvent, index?: number): FailedEvent; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): FailedEvents.AsObject; + static toObject(includeInstance: boolean, msg: FailedEvents): FailedEvents.AsObject; + static serializeBinaryToWriter(message: FailedEvents, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): FailedEvents; + static deserializeBinaryFromReader(message: FailedEvents, reader: jspb.BinaryReader): FailedEvents; +} + +export namespace FailedEvents { + export type AsObject = { + failedEventsList: Array, + } +} + +export class FailedEvent extends jspb.Message { + getDatabase(): string; + setDatabase(value: string): void; + + getViewName(): string; + setViewName(value: string): void; + + getFailedSequence(): number; + setFailedSequence(value: number): void; + + getFailureCount(): number; + setFailureCount(value: number): void; + + getErrorMessage(): string; + setErrorMessage(value: string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): FailedEvent.AsObject; + static toObject(includeInstance: boolean, msg: FailedEvent): FailedEvent.AsObject; + static serializeBinaryToWriter(message: FailedEvent, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): FailedEvent; + static deserializeBinaryFromReader(message: FailedEvent, reader: jspb.BinaryReader): FailedEvent; +} + +export namespace FailedEvent { + export type AsObject = { + database: string, + viewName: string, + failedSequence: number, + failureCount: number, + errorMessage: string, + } +} + +export class ViewID extends jspb.Message { + getDatabase(): string; + setDatabase(value: string): void; + + getViewName(): string; + setViewName(value: string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ViewID.AsObject; + static toObject(includeInstance: boolean, msg: ViewID): ViewID.AsObject; + static serializeBinaryToWriter(message: ViewID, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ViewID; + static deserializeBinaryFromReader(message: ViewID, reader: jspb.BinaryReader): ViewID; +} + +export namespace ViewID { + export type AsObject = { + database: string, + viewName: string, + } +} + +export class Views extends jspb.Message { + getViewsList(): Array; + setViewsList(value: Array): void; + clearViewsList(): void; + addViews(value?: View, index?: number): View; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Views.AsObject; + static toObject(includeInstance: boolean, msg: Views): Views.AsObject; + static serializeBinaryToWriter(message: Views, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Views; + static deserializeBinaryFromReader(message: Views, reader: jspb.BinaryReader): Views; +} + +export namespace Views { + export type AsObject = { + viewsList: Array, + } +} + +export class View extends jspb.Message { + getDatabase(): string; + setDatabase(value: string): void; + + getViewName(): string; + setViewName(value: string): void; + + getSequence(): number; + setSequence(value: number): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): View.AsObject; + static toObject(includeInstance: boolean, msg: View): View.AsObject; + static serializeBinaryToWriter(message: View, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): View; + static deserializeBinaryFromReader(message: View, reader: jspb.BinaryReader): View; +} + +export namespace View { + export type AsObject = { + database: string, + viewName: string, + sequence: number, + } +} + export enum OrgState { ORGSTATE_UNSPECIFIED = 0, ORGSTATE_ACTIVE = 1, @@ -577,3 +993,23 @@ export enum Gender { GENDER_MALE = 2, GENDER_DIVERSE = 3, } +export enum IamMemberSearchKey { + IAMMEMBERSEARCHKEY_UNSPECIFIED = 0, + IAMMEMBERSEARCHKEY_FIRST_NAME = 1, + IAMMEMBERSEARCHKEY_LAST_NAME = 2, + IAMMEMBERSEARCHKEY_EMAIL = 3, + IAMMEMBERSEARCHKEY_USER_ID = 4, +} +export enum SearchMethod { + SEARCHMETHOD_EQUALS = 0, + SEARCHMETHOD_STARTS_WITH = 1, + SEARCHMETHOD_CONTAINS = 2, + SEARCHMETHOD_EQUALS_IGNORE_CASE = 3, + SEARCHMETHOD_STARTS_WITH_IGNORE_CASE = 4, + SEARCHMETHOD_CONTAINS_IGNORE_CASE = 5, + SEARCHMETHOD_NOT_EQUALS = 6, + SEARCHMETHOD_GREATER_THAN = 7, + SEARCHMETHOD_LESS_THAN = 8, + SEARCHMETHOD_IS_ONE_OF = 9, + SEARCHMETHOD_LIST_CONTAINS = 10, +} diff --git a/console/src/app/proto/generated/admin_pb.js b/console/src/app/proto/generated/admin_pb.js index 75b1556958..da47713af7 100644 --- a/console/src/app/proto/generated/admin_pb.js +++ b/console/src/app/proto/generated/admin_pb.js @@ -25,9 +25,21 @@ var protoc$gen$swagger_options_annotations_pb = require('./protoc-gen-swagger/op goog.object.extend(proto, protoc$gen$swagger_options_annotations_pb); var authoption_options_pb = require('./authoption/options_pb.js'); goog.object.extend(proto, authoption_options_pb); +goog.exportSymbol('proto.caos.zitadel.admin.api.v1.AddIamMemberRequest', null, global); +goog.exportSymbol('proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest', null, global); goog.exportSymbol('proto.caos.zitadel.admin.api.v1.CreateOrgRequest', null, global); goog.exportSymbol('proto.caos.zitadel.admin.api.v1.CreateUserRequest', null, global); +goog.exportSymbol('proto.caos.zitadel.admin.api.v1.FailedEvent', null, global); +goog.exportSymbol('proto.caos.zitadel.admin.api.v1.FailedEventID', null, global); +goog.exportSymbol('proto.caos.zitadel.admin.api.v1.FailedEvents', null, global); goog.exportSymbol('proto.caos.zitadel.admin.api.v1.Gender', null, global); +goog.exportSymbol('proto.caos.zitadel.admin.api.v1.IamMember', null, global); +goog.exportSymbol('proto.caos.zitadel.admin.api.v1.IamMemberRoles', null, global); +goog.exportSymbol('proto.caos.zitadel.admin.api.v1.IamMemberSearchKey', null, global); +goog.exportSymbol('proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery', null, global); +goog.exportSymbol('proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest', null, global); +goog.exportSymbol('proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse', null, global); +goog.exportSymbol('proto.caos.zitadel.admin.api.v1.IamMemberView', null, global); goog.exportSymbol('proto.caos.zitadel.admin.api.v1.Org', null, global); goog.exportSymbol('proto.caos.zitadel.admin.api.v1.OrgID', null, global); goog.exportSymbol('proto.caos.zitadel.admin.api.v1.OrgIamPolicy', null, global); @@ -41,10 +53,15 @@ goog.exportSymbol('proto.caos.zitadel.admin.api.v1.OrgSearchResponse', null, glo goog.exportSymbol('proto.caos.zitadel.admin.api.v1.OrgSetUpRequest', null, global); goog.exportSymbol('proto.caos.zitadel.admin.api.v1.OrgSetUpResponse', null, global); goog.exportSymbol('proto.caos.zitadel.admin.api.v1.OrgState', null, global); +goog.exportSymbol('proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest', null, global); +goog.exportSymbol('proto.caos.zitadel.admin.api.v1.SearchMethod', null, global); goog.exportSymbol('proto.caos.zitadel.admin.api.v1.UniqueOrgRequest', null, global); goog.exportSymbol('proto.caos.zitadel.admin.api.v1.UniqueOrgResponse', null, global); goog.exportSymbol('proto.caos.zitadel.admin.api.v1.User', null, global); goog.exportSymbol('proto.caos.zitadel.admin.api.v1.UserState', null, global); +goog.exportSymbol('proto.caos.zitadel.admin.api.v1.View', null, global); +goog.exportSymbol('proto.caos.zitadel.admin.api.v1.ViewID', null, global); +goog.exportSymbol('proto.caos.zitadel.admin.api.v1.Views', null, global); /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -360,6 +377,321 @@ if (goog.DEBUG && !COMPILED) { */ proto.caos.zitadel.admin.api.v1.OrgIamPolicyID.displayName = 'proto.caos.zitadel.admin.api.v1.OrgIamPolicyID'; } +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.caos.zitadel.admin.api.v1.IamMemberRoles = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.caos.zitadel.admin.api.v1.IamMemberRoles.repeatedFields_, null); +}; +goog.inherits(proto.caos.zitadel.admin.api.v1.IamMemberRoles, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.caos.zitadel.admin.api.v1.IamMemberRoles.displayName = 'proto.caos.zitadel.admin.api.v1.IamMemberRoles'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.caos.zitadel.admin.api.v1.IamMember = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.caos.zitadel.admin.api.v1.IamMember.repeatedFields_, null); +}; +goog.inherits(proto.caos.zitadel.admin.api.v1.IamMember, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.caos.zitadel.admin.api.v1.IamMember.displayName = 'proto.caos.zitadel.admin.api.v1.IamMember'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.caos.zitadel.admin.api.v1.AddIamMemberRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.repeatedFields_, null); +}; +goog.inherits(proto.caos.zitadel.admin.api.v1.AddIamMemberRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.displayName = 'proto.caos.zitadel.admin.api.v1.AddIamMemberRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.repeatedFields_, null); +}; +goog.inherits(proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.displayName = 'proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest.displayName = 'proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.repeatedFields_, null); +}; +goog.inherits(proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.displayName = 'proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.caos.zitadel.admin.api.v1.IamMemberView = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.caos.zitadel.admin.api.v1.IamMemberView.repeatedFields_, null); +}; +goog.inherits(proto.caos.zitadel.admin.api.v1.IamMemberView, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.caos.zitadel.admin.api.v1.IamMemberView.displayName = 'proto.caos.zitadel.admin.api.v1.IamMemberView'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.repeatedFields_, null); +}; +goog.inherits(proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.displayName = 'proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.displayName = 'proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.caos.zitadel.admin.api.v1.FailedEventID = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.caos.zitadel.admin.api.v1.FailedEventID, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.caos.zitadel.admin.api.v1.FailedEventID.displayName = 'proto.caos.zitadel.admin.api.v1.FailedEventID'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.caos.zitadel.admin.api.v1.FailedEvents = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.caos.zitadel.admin.api.v1.FailedEvents.repeatedFields_, null); +}; +goog.inherits(proto.caos.zitadel.admin.api.v1.FailedEvents, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.caos.zitadel.admin.api.v1.FailedEvents.displayName = 'proto.caos.zitadel.admin.api.v1.FailedEvents'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.caos.zitadel.admin.api.v1.FailedEvent = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.caos.zitadel.admin.api.v1.FailedEvent, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.caos.zitadel.admin.api.v1.FailedEvent.displayName = 'proto.caos.zitadel.admin.api.v1.FailedEvent'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.caos.zitadel.admin.api.v1.ViewID = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.caos.zitadel.admin.api.v1.ViewID, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.caos.zitadel.admin.api.v1.ViewID.displayName = 'proto.caos.zitadel.admin.api.v1.ViewID'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.caos.zitadel.admin.api.v1.Views = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.caos.zitadel.admin.api.v1.Views.repeatedFields_, null); +}; +goog.inherits(proto.caos.zitadel.admin.api.v1.Views, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.caos.zitadel.admin.api.v1.Views.displayName = 'proto.caos.zitadel.admin.api.v1.Views'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.caos.zitadel.admin.api.v1.View = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.caos.zitadel.admin.api.v1.View, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.caos.zitadel.admin.api.v1.View.displayName = 'proto.caos.zitadel.admin.api.v1.View'; +} @@ -4158,6 +4490,3007 @@ proto.caos.zitadel.admin.api.v1.OrgIamPolicyID.prototype.setOrgId = function(val }; + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.caos.zitadel.admin.api.v1.IamMemberRoles.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.caos.zitadel.admin.api.v1.IamMemberRoles.prototype.toObject = function(opt_includeInstance) { + return proto.caos.zitadel.admin.api.v1.IamMemberRoles.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberRoles} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.IamMemberRoles.toObject = function(includeInstance, msg) { + var f, obj = { + rolesList: jspb.Message.getRepeatedField(msg, 1) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.caos.zitadel.admin.api.v1.IamMemberRoles} + */ +proto.caos.zitadel.admin.api.v1.IamMemberRoles.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.caos.zitadel.admin.api.v1.IamMemberRoles; + return proto.caos.zitadel.admin.api.v1.IamMemberRoles.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberRoles} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.caos.zitadel.admin.api.v1.IamMemberRoles} + */ +proto.caos.zitadel.admin.api.v1.IamMemberRoles.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.addRoles(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.caos.zitadel.admin.api.v1.IamMemberRoles.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.caos.zitadel.admin.api.v1.IamMemberRoles.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberRoles} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.IamMemberRoles.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRolesList(); + if (f.length > 0) { + writer.writeRepeatedString( + 1, + f + ); + } +}; + + +/** + * repeated string roles = 1; + * @return {!Array} + */ +proto.caos.zitadel.admin.api.v1.IamMemberRoles.prototype.getRolesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); +}; + + +/** @param {!Array} value */ +proto.caos.zitadel.admin.api.v1.IamMemberRoles.prototype.setRolesList = function(value) { + jspb.Message.setField(this, 1, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + */ +proto.caos.zitadel.admin.api.v1.IamMemberRoles.prototype.addRoles = function(value, opt_index) { + jspb.Message.addToRepeatedField(this, 1, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + */ +proto.caos.zitadel.admin.api.v1.IamMemberRoles.prototype.clearRolesList = function() { + this.setRolesList([]); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.caos.zitadel.admin.api.v1.IamMember.repeatedFields_ = [2]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.toObject = function(opt_includeInstance) { + return proto.caos.zitadel.admin.api.v1.IamMember.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.caos.zitadel.admin.api.v1.IamMember} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.IamMember.toObject = function(includeInstance, msg) { + var f, obj = { + userId: jspb.Message.getFieldWithDefault(msg, 1, ""), + rolesList: jspb.Message.getRepeatedField(msg, 2), + changeDate: (f = msg.getChangeDate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f), + creationDate: (f = msg.getCreationDate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f), + sequence: jspb.Message.getFieldWithDefault(msg, 5, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.caos.zitadel.admin.api.v1.IamMember} + */ +proto.caos.zitadel.admin.api.v1.IamMember.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.caos.zitadel.admin.api.v1.IamMember; + return proto.caos.zitadel.admin.api.v1.IamMember.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.caos.zitadel.admin.api.v1.IamMember} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.caos.zitadel.admin.api.v1.IamMember} + */ +proto.caos.zitadel.admin.api.v1.IamMember.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserId(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.addRoles(value); + break; + case 3: + var value = new google_protobuf_timestamp_pb.Timestamp; + reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader); + msg.setChangeDate(value); + break; + case 4: + var value = new google_protobuf_timestamp_pb.Timestamp; + reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader); + msg.setCreationDate(value); + break; + case 5: + var value = /** @type {number} */ (reader.readUint64()); + msg.setSequence(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.caos.zitadel.admin.api.v1.IamMember.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.caos.zitadel.admin.api.v1.IamMember} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.IamMember.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserId(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getRolesList(); + if (f.length > 0) { + writer.writeRepeatedString( + 2, + f + ); + } + f = message.getChangeDate(); + if (f != null) { + writer.writeMessage( + 3, + f, + google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter + ); + } + f = message.getCreationDate(); + if (f != null) { + writer.writeMessage( + 4, + f, + google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter + ); + } + f = message.getSequence(); + if (f !== 0) { + writer.writeUint64( + 5, + f + ); + } +}; + + +/** + * optional string user_id = 1; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.getUserId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.setUserId = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * repeated string roles = 2; + * @return {!Array} + */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.getRolesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); +}; + + +/** @param {!Array} value */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.setRolesList = function(value) { + jspb.Message.setField(this, 2, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.addRoles = function(value, opt_index) { + jspb.Message.addToRepeatedField(this, 2, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.clearRolesList = function() { + this.setRolesList([]); +}; + + +/** + * optional google.protobuf.Timestamp change_date = 3; + * @return {?proto.google.protobuf.Timestamp} + */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.getChangeDate = function() { + return /** @type{?proto.google.protobuf.Timestamp} */ ( + jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3)); +}; + + +/** @param {?proto.google.protobuf.Timestamp|undefined} value */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.setChangeDate = function(value) { + jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.clearChangeDate = function() { + this.setChangeDate(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.hasChangeDate = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional google.protobuf.Timestamp creation_date = 4; + * @return {?proto.google.protobuf.Timestamp} + */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.getCreationDate = function() { + return /** @type{?proto.google.protobuf.Timestamp} */ ( + jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 4)); +}; + + +/** @param {?proto.google.protobuf.Timestamp|undefined} value */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.setCreationDate = function(value) { + jspb.Message.setWrapperField(this, 4, value); +}; + + +/** + * Clears the message field making it undefined. + */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.clearCreationDate = function() { + this.setCreationDate(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.hasCreationDate = function() { + return jspb.Message.getField(this, 4) != null; +}; + + +/** + * optional uint64 sequence = 5; + * @return {number} + */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.getSequence = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** @param {number} value */ +proto.caos.zitadel.admin.api.v1.IamMember.prototype.setSequence = function(value) { + jspb.Message.setProto3IntField(this, 5, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.repeatedFields_ = [2]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.prototype.toObject = function(opt_includeInstance) { + return proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.caos.zitadel.admin.api.v1.AddIamMemberRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.toObject = function(includeInstance, msg) { + var f, obj = { + userId: jspb.Message.getFieldWithDefault(msg, 1, ""), + rolesList: jspb.Message.getRepeatedField(msg, 2) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.caos.zitadel.admin.api.v1.AddIamMemberRequest} + */ +proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.caos.zitadel.admin.api.v1.AddIamMemberRequest; + return proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.caos.zitadel.admin.api.v1.AddIamMemberRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.caos.zitadel.admin.api.v1.AddIamMemberRequest} + */ +proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserId(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.addRoles(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.caos.zitadel.admin.api.v1.AddIamMemberRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserId(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getRolesList(); + if (f.length > 0) { + writer.writeRepeatedString( + 2, + f + ); + } +}; + + +/** + * optional string user_id = 1; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.prototype.getUserId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.prototype.setUserId = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * repeated string roles = 2; + * @return {!Array} + */ +proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.prototype.getRolesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); +}; + + +/** @param {!Array} value */ +proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.prototype.setRolesList = function(value) { + jspb.Message.setField(this, 2, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + */ +proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.prototype.addRoles = function(value, opt_index) { + jspb.Message.addToRepeatedField(this, 2, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + */ +proto.caos.zitadel.admin.api.v1.AddIamMemberRequest.prototype.clearRolesList = function() { + this.setRolesList([]); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.repeatedFields_ = [2]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.prototype.toObject = function(opt_includeInstance) { + return proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.toObject = function(includeInstance, msg) { + var f, obj = { + userId: jspb.Message.getFieldWithDefault(msg, 1, ""), + rolesList: jspb.Message.getRepeatedField(msg, 2) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest} + */ +proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest; + return proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest} + */ +proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserId(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.addRoles(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserId(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getRolesList(); + if (f.length > 0) { + writer.writeRepeatedString( + 2, + f + ); + } +}; + + +/** + * optional string user_id = 1; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.prototype.getUserId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.prototype.setUserId = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * repeated string roles = 2; + * @return {!Array} + */ +proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.prototype.getRolesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); +}; + + +/** @param {!Array} value */ +proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.prototype.setRolesList = function(value) { + jspb.Message.setField(this, 2, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + */ +proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.prototype.addRoles = function(value, opt_index) { + jspb.Message.addToRepeatedField(this, 2, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + */ +proto.caos.zitadel.admin.api.v1.ChangeIamMemberRequest.prototype.clearRolesList = function() { + this.setRolesList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest.prototype.toObject = function(opt_includeInstance) { + return proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest.toObject = function(includeInstance, msg) { + var f, obj = { + userId: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest} + */ +proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest; + return proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest} + */ +proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserId(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserId(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string user_id = 1; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest.prototype.getUserId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.RemoveIamMemberRequest.prototype.setUserId = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.repeatedFields_ = [4]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.prototype.toObject = function(opt_includeInstance) { + return proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.toObject = function(includeInstance, msg) { + var f, obj = { + offset: jspb.Message.getFieldWithDefault(msg, 1, 0), + limit: jspb.Message.getFieldWithDefault(msg, 2, 0), + totalResult: jspb.Message.getFieldWithDefault(msg, 3, 0), + resultList: jspb.Message.toObjectList(msg.getResultList(), + proto.caos.zitadel.admin.api.v1.IamMemberView.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse; + return proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint64()); + msg.setOffset(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint64()); + msg.setLimit(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint64()); + msg.setTotalResult(value); + break; + case 4: + var value = new proto.caos.zitadel.admin.api.v1.IamMemberView; + reader.readMessage(value,proto.caos.zitadel.admin.api.v1.IamMemberView.deserializeBinaryFromReader); + msg.addResult(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getOffset(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getLimit(); + if (f !== 0) { + writer.writeUint64( + 2, + f + ); + } + f = message.getTotalResult(); + if (f !== 0) { + writer.writeUint64( + 3, + f + ); + } + f = message.getResultList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 4, + f, + proto.caos.zitadel.admin.api.v1.IamMemberView.serializeBinaryToWriter + ); + } +}; + + +/** + * optional uint64 offset = 1; + * @return {number} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.prototype.getOffset = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {number} value */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.prototype.setOffset = function(value) { + jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional uint64 limit = 2; + * @return {number} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.prototype.getLimit = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** @param {number} value */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.prototype.setLimit = function(value) { + jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * optional uint64 total_result = 3; + * @return {number} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.prototype.getTotalResult = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** @param {number} value */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.prototype.setTotalResult = function(value) { + jspb.Message.setProto3IntField(this, 3, value); +}; + + +/** + * repeated IamMemberView result = 4; + * @return {!Array} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.prototype.getResultList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.caos.zitadel.admin.api.v1.IamMemberView, 4)); +}; + + +/** @param {!Array} value */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.prototype.setResultList = function(value) { + jspb.Message.setRepeatedWrapperField(this, 4, value); +}; + + +/** + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberView=} opt_value + * @param {number=} opt_index + * @return {!proto.caos.zitadel.admin.api.v1.IamMemberView} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.prototype.addResult = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.caos.zitadel.admin.api.v1.IamMemberView, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchResponse.prototype.clearResultList = function() { + this.setResultList([]); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.repeatedFields_ = [2]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.toObject = function(opt_includeInstance) { + return proto.caos.zitadel.admin.api.v1.IamMemberView.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberView} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.toObject = function(includeInstance, msg) { + var f, obj = { + userId: jspb.Message.getFieldWithDefault(msg, 1, ""), + rolesList: jspb.Message.getRepeatedField(msg, 2), + changeDate: (f = msg.getChangeDate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f), + creationDate: (f = msg.getCreationDate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f), + sequence: jspb.Message.getFieldWithDefault(msg, 5, 0), + userName: jspb.Message.getFieldWithDefault(msg, 6, ""), + email: jspb.Message.getFieldWithDefault(msg, 7, ""), + firstName: jspb.Message.getFieldWithDefault(msg, 8, ""), + lastName: jspb.Message.getFieldWithDefault(msg, 9, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.caos.zitadel.admin.api.v1.IamMemberView} + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.caos.zitadel.admin.api.v1.IamMemberView; + return proto.caos.zitadel.admin.api.v1.IamMemberView.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberView} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.caos.zitadel.admin.api.v1.IamMemberView} + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserId(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.addRoles(value); + break; + case 3: + var value = new google_protobuf_timestamp_pb.Timestamp; + reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader); + msg.setChangeDate(value); + break; + case 4: + var value = new google_protobuf_timestamp_pb.Timestamp; + reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader); + msg.setCreationDate(value); + break; + case 5: + var value = /** @type {number} */ (reader.readUint64()); + msg.setSequence(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setUserName(value); + break; + case 7: + var value = /** @type {string} */ (reader.readString()); + msg.setEmail(value); + break; + case 8: + var value = /** @type {string} */ (reader.readString()); + msg.setFirstName(value); + break; + case 9: + var value = /** @type {string} */ (reader.readString()); + msg.setLastName(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.caos.zitadel.admin.api.v1.IamMemberView.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberView} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserId(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getRolesList(); + if (f.length > 0) { + writer.writeRepeatedString( + 2, + f + ); + } + f = message.getChangeDate(); + if (f != null) { + writer.writeMessage( + 3, + f, + google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter + ); + } + f = message.getCreationDate(); + if (f != null) { + writer.writeMessage( + 4, + f, + google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter + ); + } + f = message.getSequence(); + if (f !== 0) { + writer.writeUint64( + 5, + f + ); + } + f = message.getUserName(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getEmail(); + if (f.length > 0) { + writer.writeString( + 7, + f + ); + } + f = message.getFirstName(); + if (f.length > 0) { + writer.writeString( + 8, + f + ); + } + f = message.getLastName(); + if (f.length > 0) { + writer.writeString( + 9, + f + ); + } +}; + + +/** + * optional string user_id = 1; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.getUserId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.setUserId = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * repeated string roles = 2; + * @return {!Array} + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.getRolesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); +}; + + +/** @param {!Array} value */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.setRolesList = function(value) { + jspb.Message.setField(this, 2, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.addRoles = function(value, opt_index) { + jspb.Message.addToRepeatedField(this, 2, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.clearRolesList = function() { + this.setRolesList([]); +}; + + +/** + * optional google.protobuf.Timestamp change_date = 3; + * @return {?proto.google.protobuf.Timestamp} + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.getChangeDate = function() { + return /** @type{?proto.google.protobuf.Timestamp} */ ( + jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3)); +}; + + +/** @param {?proto.google.protobuf.Timestamp|undefined} value */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.setChangeDate = function(value) { + jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.clearChangeDate = function() { + this.setChangeDate(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.hasChangeDate = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional google.protobuf.Timestamp creation_date = 4; + * @return {?proto.google.protobuf.Timestamp} + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.getCreationDate = function() { + return /** @type{?proto.google.protobuf.Timestamp} */ ( + jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 4)); +}; + + +/** @param {?proto.google.protobuf.Timestamp|undefined} value */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.setCreationDate = function(value) { + jspb.Message.setWrapperField(this, 4, value); +}; + + +/** + * Clears the message field making it undefined. + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.clearCreationDate = function() { + this.setCreationDate(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.hasCreationDate = function() { + return jspb.Message.getField(this, 4) != null; +}; + + +/** + * optional uint64 sequence = 5; + * @return {number} + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.getSequence = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** @param {number} value */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.setSequence = function(value) { + jspb.Message.setProto3IntField(this, 5, value); +}; + + +/** + * optional string user_name = 6; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.getUserName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.setUserName = function(value) { + jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional string email = 7; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.getEmail = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.setEmail = function(value) { + jspb.Message.setProto3StringField(this, 7, value); +}; + + +/** + * optional string first_name = 8; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.getFirstName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.setFirstName = function(value) { + jspb.Message.setProto3StringField(this, 8, value); +}; + + +/** + * optional string last_name = 9; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.getLastName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.IamMemberView.prototype.setLastName = function(value) { + jspb.Message.setProto3StringField(this, 9, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.repeatedFields_ = [3]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.prototype.toObject = function(opt_includeInstance) { + return proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.toObject = function(includeInstance, msg) { + var f, obj = { + offset: jspb.Message.getFieldWithDefault(msg, 1, 0), + limit: jspb.Message.getFieldWithDefault(msg, 2, 0), + queriesList: jspb.Message.toObjectList(msg.getQueriesList(), + proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest; + return proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint64()); + msg.setOffset(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint64()); + msg.setLimit(value); + break; + case 3: + var value = new proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery; + reader.readMessage(value,proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.deserializeBinaryFromReader); + msg.addQueries(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getOffset(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getLimit(); + if (f !== 0) { + writer.writeUint64( + 2, + f + ); + } + f = message.getQueriesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 3, + f, + proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.serializeBinaryToWriter + ); + } +}; + + +/** + * optional uint64 offset = 1; + * @return {number} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.prototype.getOffset = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {number} value */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.prototype.setOffset = function(value) { + jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional uint64 limit = 2; + * @return {number} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.prototype.getLimit = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** @param {number} value */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.prototype.setLimit = function(value) { + jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * repeated IamMemberSearchQuery queries = 3; + * @return {!Array} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.prototype.getQueriesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery, 3)); +}; + + +/** @param {!Array} value */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.prototype.setQueriesList = function(value) { + jspb.Message.setRepeatedWrapperField(this, 3, value); +}; + + +/** + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery=} opt_value + * @param {number=} opt_index + * @return {!proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.prototype.addQueries = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchRequest.prototype.clearQueriesList = function() { + this.setQueriesList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.prototype.toObject = function(opt_includeInstance) { + return proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.toObject = function(includeInstance, msg) { + var f, obj = { + key: jspb.Message.getFieldWithDefault(msg, 1, 0), + method: jspb.Message.getFieldWithDefault(msg, 2, 0), + value: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery; + return proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.caos.zitadel.admin.api.v1.IamMemberSearchKey} */ (reader.readEnum()); + msg.setKey(value); + break; + case 2: + var value = /** @type {!proto.caos.zitadel.admin.api.v1.SearchMethod} */ (reader.readEnum()); + msg.setMethod(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setValue(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getKey(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = message.getMethod(); + if (f !== 0.0) { + writer.writeEnum( + 2, + f + ); + } + f = message.getValue(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional IamMemberSearchKey key = 1; + * @return {!proto.caos.zitadel.admin.api.v1.IamMemberSearchKey} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.prototype.getKey = function() { + return /** @type {!proto.caos.zitadel.admin.api.v1.IamMemberSearchKey} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {!proto.caos.zitadel.admin.api.v1.IamMemberSearchKey} value */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.prototype.setKey = function(value) { + jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional SearchMethod method = 2; + * @return {!proto.caos.zitadel.admin.api.v1.SearchMethod} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.prototype.getMethod = function() { + return /** @type {!proto.caos.zitadel.admin.api.v1.SearchMethod} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** @param {!proto.caos.zitadel.admin.api.v1.SearchMethod} value */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.prototype.setMethod = function(value) { + jspb.Message.setProto3EnumField(this, 2, value); +}; + + +/** + * optional string value = 3; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.prototype.getValue = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchQuery.prototype.setValue = function(value) { + jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.caos.zitadel.admin.api.v1.FailedEventID.prototype.toObject = function(opt_includeInstance) { + return proto.caos.zitadel.admin.api.v1.FailedEventID.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.caos.zitadel.admin.api.v1.FailedEventID} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.FailedEventID.toObject = function(includeInstance, msg) { + var f, obj = { + database: jspb.Message.getFieldWithDefault(msg, 1, ""), + viewName: jspb.Message.getFieldWithDefault(msg, 2, ""), + failedSequence: jspb.Message.getFieldWithDefault(msg, 3, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.caos.zitadel.admin.api.v1.FailedEventID} + */ +proto.caos.zitadel.admin.api.v1.FailedEventID.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.caos.zitadel.admin.api.v1.FailedEventID; + return proto.caos.zitadel.admin.api.v1.FailedEventID.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.caos.zitadel.admin.api.v1.FailedEventID} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.caos.zitadel.admin.api.v1.FailedEventID} + */ +proto.caos.zitadel.admin.api.v1.FailedEventID.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setDatabase(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setViewName(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint64()); + msg.setFailedSequence(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.caos.zitadel.admin.api.v1.FailedEventID.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.caos.zitadel.admin.api.v1.FailedEventID.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.caos.zitadel.admin.api.v1.FailedEventID} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.FailedEventID.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getDatabase(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getViewName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getFailedSequence(); + if (f !== 0) { + writer.writeUint64( + 3, + f + ); + } +}; + + +/** + * optional string database = 1; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.FailedEventID.prototype.getDatabase = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.FailedEventID.prototype.setDatabase = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string view_name = 2; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.FailedEventID.prototype.getViewName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.FailedEventID.prototype.setViewName = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional uint64 failed_sequence = 3; + * @return {number} + */ +proto.caos.zitadel.admin.api.v1.FailedEventID.prototype.getFailedSequence = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** @param {number} value */ +proto.caos.zitadel.admin.api.v1.FailedEventID.prototype.setFailedSequence = function(value) { + jspb.Message.setProto3IntField(this, 3, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.caos.zitadel.admin.api.v1.FailedEvents.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.caos.zitadel.admin.api.v1.FailedEvents.prototype.toObject = function(opt_includeInstance) { + return proto.caos.zitadel.admin.api.v1.FailedEvents.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.caos.zitadel.admin.api.v1.FailedEvents} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.FailedEvents.toObject = function(includeInstance, msg) { + var f, obj = { + failedEventsList: jspb.Message.toObjectList(msg.getFailedEventsList(), + proto.caos.zitadel.admin.api.v1.FailedEvent.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.caos.zitadel.admin.api.v1.FailedEvents} + */ +proto.caos.zitadel.admin.api.v1.FailedEvents.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.caos.zitadel.admin.api.v1.FailedEvents; + return proto.caos.zitadel.admin.api.v1.FailedEvents.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.caos.zitadel.admin.api.v1.FailedEvents} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.caos.zitadel.admin.api.v1.FailedEvents} + */ +proto.caos.zitadel.admin.api.v1.FailedEvents.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.caos.zitadel.admin.api.v1.FailedEvent; + reader.readMessage(value,proto.caos.zitadel.admin.api.v1.FailedEvent.deserializeBinaryFromReader); + msg.addFailedEvents(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.caos.zitadel.admin.api.v1.FailedEvents.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.caos.zitadel.admin.api.v1.FailedEvents.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.caos.zitadel.admin.api.v1.FailedEvents} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.FailedEvents.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getFailedEventsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.caos.zitadel.admin.api.v1.FailedEvent.serializeBinaryToWriter + ); + } +}; + + +/** + * repeated FailedEvent failed_events = 1; + * @return {!Array} + */ +proto.caos.zitadel.admin.api.v1.FailedEvents.prototype.getFailedEventsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.caos.zitadel.admin.api.v1.FailedEvent, 1)); +}; + + +/** @param {!Array} value */ +proto.caos.zitadel.admin.api.v1.FailedEvents.prototype.setFailedEventsList = function(value) { + jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.caos.zitadel.admin.api.v1.FailedEvent=} opt_value + * @param {number=} opt_index + * @return {!proto.caos.zitadel.admin.api.v1.FailedEvent} + */ +proto.caos.zitadel.admin.api.v1.FailedEvents.prototype.addFailedEvents = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.caos.zitadel.admin.api.v1.FailedEvent, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + */ +proto.caos.zitadel.admin.api.v1.FailedEvents.prototype.clearFailedEventsList = function() { + this.setFailedEventsList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.caos.zitadel.admin.api.v1.FailedEvent.prototype.toObject = function(opt_includeInstance) { + return proto.caos.zitadel.admin.api.v1.FailedEvent.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.caos.zitadel.admin.api.v1.FailedEvent} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.FailedEvent.toObject = function(includeInstance, msg) { + var f, obj = { + database: jspb.Message.getFieldWithDefault(msg, 1, ""), + viewName: jspb.Message.getFieldWithDefault(msg, 2, ""), + failedSequence: jspb.Message.getFieldWithDefault(msg, 3, 0), + failureCount: jspb.Message.getFieldWithDefault(msg, 4, 0), + errorMessage: jspb.Message.getFieldWithDefault(msg, 5, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.caos.zitadel.admin.api.v1.FailedEvent} + */ +proto.caos.zitadel.admin.api.v1.FailedEvent.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.caos.zitadel.admin.api.v1.FailedEvent; + return proto.caos.zitadel.admin.api.v1.FailedEvent.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.caos.zitadel.admin.api.v1.FailedEvent} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.caos.zitadel.admin.api.v1.FailedEvent} + */ +proto.caos.zitadel.admin.api.v1.FailedEvent.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setDatabase(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setViewName(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint64()); + msg.setFailedSequence(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint64()); + msg.setFailureCount(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setErrorMessage(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.caos.zitadel.admin.api.v1.FailedEvent.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.caos.zitadel.admin.api.v1.FailedEvent.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.caos.zitadel.admin.api.v1.FailedEvent} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.FailedEvent.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getDatabase(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getViewName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getFailedSequence(); + if (f !== 0) { + writer.writeUint64( + 3, + f + ); + } + f = message.getFailureCount(); + if (f !== 0) { + writer.writeUint64( + 4, + f + ); + } + f = message.getErrorMessage(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } +}; + + +/** + * optional string database = 1; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.FailedEvent.prototype.getDatabase = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.FailedEvent.prototype.setDatabase = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string view_name = 2; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.FailedEvent.prototype.getViewName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.FailedEvent.prototype.setViewName = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional uint64 failed_sequence = 3; + * @return {number} + */ +proto.caos.zitadel.admin.api.v1.FailedEvent.prototype.getFailedSequence = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** @param {number} value */ +proto.caos.zitadel.admin.api.v1.FailedEvent.prototype.setFailedSequence = function(value) { + jspb.Message.setProto3IntField(this, 3, value); +}; + + +/** + * optional uint64 failure_count = 4; + * @return {number} + */ +proto.caos.zitadel.admin.api.v1.FailedEvent.prototype.getFailureCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** @param {number} value */ +proto.caos.zitadel.admin.api.v1.FailedEvent.prototype.setFailureCount = function(value) { + jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional string error_message = 5; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.FailedEvent.prototype.getErrorMessage = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.FailedEvent.prototype.setErrorMessage = function(value) { + jspb.Message.setProto3StringField(this, 5, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.caos.zitadel.admin.api.v1.ViewID.prototype.toObject = function(opt_includeInstance) { + return proto.caos.zitadel.admin.api.v1.ViewID.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.caos.zitadel.admin.api.v1.ViewID} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.ViewID.toObject = function(includeInstance, msg) { + var f, obj = { + database: jspb.Message.getFieldWithDefault(msg, 1, ""), + viewName: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.caos.zitadel.admin.api.v1.ViewID} + */ +proto.caos.zitadel.admin.api.v1.ViewID.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.caos.zitadel.admin.api.v1.ViewID; + return proto.caos.zitadel.admin.api.v1.ViewID.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.caos.zitadel.admin.api.v1.ViewID} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.caos.zitadel.admin.api.v1.ViewID} + */ +proto.caos.zitadel.admin.api.v1.ViewID.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setDatabase(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setViewName(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.caos.zitadel.admin.api.v1.ViewID.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.caos.zitadel.admin.api.v1.ViewID.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.caos.zitadel.admin.api.v1.ViewID} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.ViewID.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getDatabase(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getViewName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional string database = 1; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.ViewID.prototype.getDatabase = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.ViewID.prototype.setDatabase = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string view_name = 2; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.ViewID.prototype.getViewName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.ViewID.prototype.setViewName = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.caos.zitadel.admin.api.v1.Views.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.caos.zitadel.admin.api.v1.Views.prototype.toObject = function(opt_includeInstance) { + return proto.caos.zitadel.admin.api.v1.Views.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.caos.zitadel.admin.api.v1.Views} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.Views.toObject = function(includeInstance, msg) { + var f, obj = { + viewsList: jspb.Message.toObjectList(msg.getViewsList(), + proto.caos.zitadel.admin.api.v1.View.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.caos.zitadel.admin.api.v1.Views} + */ +proto.caos.zitadel.admin.api.v1.Views.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.caos.zitadel.admin.api.v1.Views; + return proto.caos.zitadel.admin.api.v1.Views.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.caos.zitadel.admin.api.v1.Views} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.caos.zitadel.admin.api.v1.Views} + */ +proto.caos.zitadel.admin.api.v1.Views.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.caos.zitadel.admin.api.v1.View; + reader.readMessage(value,proto.caos.zitadel.admin.api.v1.View.deserializeBinaryFromReader); + msg.addViews(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.caos.zitadel.admin.api.v1.Views.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.caos.zitadel.admin.api.v1.Views.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.caos.zitadel.admin.api.v1.Views} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.Views.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getViewsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.caos.zitadel.admin.api.v1.View.serializeBinaryToWriter + ); + } +}; + + +/** + * repeated View views = 1; + * @return {!Array} + */ +proto.caos.zitadel.admin.api.v1.Views.prototype.getViewsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.caos.zitadel.admin.api.v1.View, 1)); +}; + + +/** @param {!Array} value */ +proto.caos.zitadel.admin.api.v1.Views.prototype.setViewsList = function(value) { + jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.caos.zitadel.admin.api.v1.View=} opt_value + * @param {number=} opt_index + * @return {!proto.caos.zitadel.admin.api.v1.View} + */ +proto.caos.zitadel.admin.api.v1.Views.prototype.addViews = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.caos.zitadel.admin.api.v1.View, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + */ +proto.caos.zitadel.admin.api.v1.Views.prototype.clearViewsList = function() { + this.setViewsList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.caos.zitadel.admin.api.v1.View.prototype.toObject = function(opt_includeInstance) { + return proto.caos.zitadel.admin.api.v1.View.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.caos.zitadel.admin.api.v1.View} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.View.toObject = function(includeInstance, msg) { + var f, obj = { + database: jspb.Message.getFieldWithDefault(msg, 1, ""), + viewName: jspb.Message.getFieldWithDefault(msg, 2, ""), + sequence: jspb.Message.getFieldWithDefault(msg, 3, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.caos.zitadel.admin.api.v1.View} + */ +proto.caos.zitadel.admin.api.v1.View.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.caos.zitadel.admin.api.v1.View; + return proto.caos.zitadel.admin.api.v1.View.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.caos.zitadel.admin.api.v1.View} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.caos.zitadel.admin.api.v1.View} + */ +proto.caos.zitadel.admin.api.v1.View.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setDatabase(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setViewName(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint64()); + msg.setSequence(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.caos.zitadel.admin.api.v1.View.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.caos.zitadel.admin.api.v1.View.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.caos.zitadel.admin.api.v1.View} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.caos.zitadel.admin.api.v1.View.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getDatabase(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getViewName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getSequence(); + if (f !== 0) { + writer.writeUint64( + 3, + f + ); + } +}; + + +/** + * optional string database = 1; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.View.prototype.getDatabase = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.View.prototype.setDatabase = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string view_name = 2; + * @return {string} + */ +proto.caos.zitadel.admin.api.v1.View.prototype.getViewName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.caos.zitadel.admin.api.v1.View.prototype.setViewName = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional uint64 sequence = 3; + * @return {number} + */ +proto.caos.zitadel.admin.api.v1.View.prototype.getSequence = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** @param {number} value */ +proto.caos.zitadel.admin.api.v1.View.prototype.setSequence = function(value) { + jspb.Message.setProto3IntField(this, 3, value); +}; + + /** * @enum {number} */ @@ -4209,4 +7542,32 @@ proto.caos.zitadel.admin.api.v1.Gender = { GENDER_DIVERSE: 3 }; +/** + * @enum {number} + */ +proto.caos.zitadel.admin.api.v1.IamMemberSearchKey = { + IAMMEMBERSEARCHKEY_UNSPECIFIED: 0, + IAMMEMBERSEARCHKEY_FIRST_NAME: 1, + IAMMEMBERSEARCHKEY_LAST_NAME: 2, + IAMMEMBERSEARCHKEY_EMAIL: 3, + IAMMEMBERSEARCHKEY_USER_ID: 4 +}; + +/** + * @enum {number} + */ +proto.caos.zitadel.admin.api.v1.SearchMethod = { + SEARCHMETHOD_EQUALS: 0, + SEARCHMETHOD_STARTS_WITH: 1, + SEARCHMETHOD_CONTAINS: 2, + SEARCHMETHOD_EQUALS_IGNORE_CASE: 3, + SEARCHMETHOD_STARTS_WITH_IGNORE_CASE: 4, + SEARCHMETHOD_CONTAINS_IGNORE_CASE: 5, + SEARCHMETHOD_NOT_EQUALS: 6, + SEARCHMETHOD_GREATER_THAN: 7, + SEARCHMETHOD_LESS_THAN: 8, + SEARCHMETHOD_IS_ONE_OF: 9, + SEARCHMETHOD_LIST_CONTAINS: 10 +}; + goog.object.extend(exports, proto.caos.zitadel.admin.api.v1); diff --git a/console/src/app/services/admin.service.ts b/console/src/app/services/admin.service.ts index a8bab965ca..6364beb8d7 100644 --- a/console/src/app/services/admin.service.ts +++ b/console/src/app/services/admin.service.ts @@ -1,8 +1,24 @@ import { Injectable } from '@angular/core'; +import { Empty } from 'google-protobuf/google/protobuf/empty_pb'; import { Metadata } from 'grpc-web'; import { AdminServicePromiseClient } from '../proto/generated/admin_grpc_web_pb'; -import { CreateOrgRequest, CreateUserRequest, OrgSetUpRequest, OrgSetUpResponse } from '../proto/generated/admin_pb'; +import { + AddIamMemberRequest, + CreateOrgRequest, + CreateUserRequest, + IamMember, + IamMemberRoles, + IamMemberSearchQuery, + IamMemberSearchRequest, + IamMemberSearchResponse, + OrgIamPolicy, + OrgIamPolicyID, + OrgIamPolicyRequest, + OrgSetUpRequest, + OrgSetUpResponse, + RemoveIamMemberRequest, +} from '../proto/generated/admin_pb'; import { GrpcBackendService } from './grpc-backend.service'; import { GrpcService, RequestFactory, ResponseMapper } from './grpc.service'; @@ -42,4 +58,114 @@ export class AdminService { f => f, ); } + + public async GetIamMemberRoles(): Promise { + return await this.request( + c => c.getIamMemberRoles, + new Empty(), + f => f, + ); + } + + public async SearchIamMembers( + limit: number, + offset: number, + queryList?: IamMemberSearchQuery[], + ): Promise { + const req = new IamMemberSearchRequest(); + req.setLimit(limit); + req.setOffset(offset); + if (queryList) { + req.setQueriesList(queryList); + } + return await this.request( + c => c.searchIamMembers, + req, + f => f, + ); + } + + public async RemoveIamMember( + userId: string, + ): Promise { + const req = new RemoveIamMemberRequest(); + req.setUserId(userId); + + return await this.request( + c => c.removeIamMember, + req, + f => f, + ); + } + + public async AddIamMember( + userId: string, + rolesList: string[], + ): Promise { + const req = new AddIamMemberRequest(); + req.setUserId(userId); + req.setRolesList(rolesList); + + return await this.request( + c => c.addIamMember, + req, + f => f, + ); + } + + + public async GetOrgIamPolicy(orgId: string): Promise { + const req = new OrgIamPolicyID(); + req.setOrgId(orgId); + + return await this.request( + c => c.getOrgIamPolicy, + req, + f => f, + ); + } + + public async CreateOrgIamPolicy( + orgId: string, + description: string, + userLoginMustBeDomain: boolean): Promise { + const req = new OrgIamPolicyRequest(); + req.setOrgId(orgId); + req.setDescription(description); + req.setUserLoginMustBeDomain(userLoginMustBeDomain); + + return await this.request( + c => c.createOrgIamPolicy, + req, + f => f, + ); + } + + public async UpdateOrgIamPolicy( + orgId: string, + description: string, + userLoginMustBeDomain: boolean): Promise { + const req = new OrgIamPolicyRequest(); + req.setOrgId(orgId); + req.setDescription(description); + req.setUserLoginMustBeDomain(userLoginMustBeDomain); + + return await this.request( + c => c.updateOrgIamPolicy, + req, + f => f, + ); + } + + public async deleteOrgIamPolicy( + orgId: string, + ): Promise { + const req = new OrgIamPolicyID(); + req.setOrgId(orgId); + return await this.request( + c => c.deleteOrgIamPolicy, + req, + f => f, + ); + } } diff --git a/console/src/app/services/auth-user.service.ts b/console/src/app/services/auth-user.service.ts index 45fad530cd..06813ab505 100644 --- a/console/src/app/services/auth-user.service.ts +++ b/console/src/app/services/auth-user.service.ts @@ -297,6 +297,7 @@ export class AuthUserService { userRoles = ['user.resourceowner']; } this._roleCache = userRoles; + console.log(roles); return of(this.hasRoles(userRoles, roles, each)); }), ); diff --git a/console/src/app/services/statehandler.service.ts b/console/src/app/services/statehandler.service.ts index 5eb36ca5bc..51249c072e 100644 --- a/console/src/app/services/statehandler.service.ts +++ b/console/src/app/services/statehandler.service.ts @@ -11,6 +11,8 @@ export abstract class StatehandlerService { public abstract initStateHandler(): void; } +// TODO: Add Angular decorator. +// TODO: Add Angular decorator. @Injectable() export class StatehandlerServiceImpl implements StatehandlerService, OnDestroy { diff --git a/console/src/assets/i18n/de.json b/console/src/assets/i18n/de.json index fa27a77eb6..78fd3c723f 100644 --- a/console/src/assets/i18n/de.json +++ b/console/src/assets/i18n/de.json @@ -14,10 +14,14 @@ "PROJECTS_BUTTON": "Projekt Übersicht", "USERS": "Totale Kontrolle und Überwachbarkeit", "USERS_DESC": "Überwachen Sie Ihr Rollenkonzept in Echtzeit. Ergreifen Sie sofort Maßnahmen.", - "USERS_BUTTON": "Benutzer anzeigen" + "USERS_BUTTON": "Benutzer anzeigen", + "IAM": "Identity and Access Management", + "IAM_DESC": "Fügen Sie neue Organisationen hinzu oder editieren Sie Ihre IAM Manager", + "IAM_BUTTON": "Zitadel verwalten" }, "MENU": { "PERSONAL_INFO": "Persönliche Informationen", + "IAM":"IAM", "ORGANIZATION": "Organisation", "PROJECT": "Projekte", "USER": "Benutzer", @@ -189,6 +193,15 @@ "EDITACCOUNT":"Account bearbeiten", "ADDACCOUNT":"mit einem anderen Account anmelden" }, + "IAM": { + "DETAIL": { + "TITLE":"Identity and Access Management", + "DESCRIPTION":"This site is shows Zitadel Management preferences. You can make changes to views, manage managers and define global policies." + }, + "MEMBER": { + "TITLE":"IAM Members" + } + }, "ORG": { "PAGES": { "LIST": "Organisationen", @@ -241,6 +254,12 @@ "TITLECREATE":"Kennwortsperrrichtlinie festlegen", "DESCRIPTIONCREATE":"Kennwortwiederholungen sind im Standardmodus unendlich. Sie müssen diese Erweiterung installieren, wenn Sie Wiederholungsversuche anzeigen oder eine maximale Versuchsnummer festlegen möchten." }, + "IAM_POLICY": { + "TITLE":"IAM Zugangseinstellungen", + "DESCRIPTION":"Definieren Sie Zugangseistellungen für Nutzer", + "TITLECREATE":"IAM Zugangseinstellungen festlegen", + "DESCRIPTIONCREATE":"Emails als Benutzername sind nicht erlaubt wenn UserLoginMustBeDomain gesetzt ist." + }, "BTN_INSTALL":"Installieren", "BTN_EDIT":"Modifizieren", "DATA": { @@ -253,7 +272,8 @@ "SHOWLOCKOUTFAILURES":"Zeige Anzahl Anmeldeversuche", "MAXATTEMPTS":"Maximale Anzahl an Versuchen", "EXPIREWARNDAYS":"Ablauf Warnung nach Tagen", - "MAXAGEDAYS":"Maximale Gültigkeit in Tagen" + "MAXAGEDAYS":"Maximale Gültigkeit in Tagen", + "USERLOGINMUSTBEDOMAIN":"User Login must be Domain" }, "DELETE":"Richtlinie entfernen" } @@ -318,7 +338,7 @@ "MEMBER": { "TITLE": "Manager", "TITLEDESC":"Manager können Änderungen an dieser Entität vornehmen", - "DESCRIPTION":"Hier finden Sie alle Mitwirkenden dieses Projekts. Sie können ein neues Mitglied hinzufügen und bestehende verwalten.", + "DESCRIPTION":"Hier finden Sie alle Manager dieses Projekts. Sie können ein neues Mitglied hinzufügen und bestehende verwalten.", "USERNAME": "Benutzername", "FIRSTNAME": "Vorname", "LASTNAME": "Nachname", @@ -432,7 +452,7 @@ "en": "Englisch" }, "MEMBER":{ - "ADD":"Mitwirkenden hinzufügen" + "ADD":"Manager hinzufügen" }, "ROLES": { "ORG_OWNER": "Org Owner", @@ -502,6 +522,7 @@ "org.domain.added":"Org Domain hinzugefügt", "org.domain.verified":"Org Domain verifiziert", "org.domain.primary.set":"Primäre domain gesetzt", + "org.domain.removed":"Org domain entfernt", "org.iam.policy.added":"IAM Policy hinzugefügt", "project.added": "Projekt erstellt", "project.changed":"Projekt editiert", @@ -545,7 +566,8 @@ "user.password.check.succeeded":"Password check erfolgreich", "user.mfa.init.skipped":"MFA init übersprungen", "user.mfa.otp.added":"MFA OTP hinzugefügt", - "user.mfa.otp.verified":"MFA OTP verifiziert" + "user.mfa.otp.verified":"MFA OTP verifiziert", + "user.selfregistered":"selbst registriert" } } } diff --git a/console/src/assets/i18n/en.json b/console/src/assets/i18n/en.json index c398d6916e..1770a62158 100644 --- a/console/src/assets/i18n/en.json +++ b/console/src/assets/i18n/en.json @@ -14,10 +14,14 @@ "PROJECTS_BUTTON": "Project Overview", "USERS": "Total control and monitorability", "USERS_DESC": "Monitor your role concept in real time. Take immediate action.", - "USERS_BUTTON": "Show users" + "USERS_BUTTON": "Show users", + "IAM": "Identity and Access Management", + "IAM_DESC": "Add new organizations or elect managers to do it for you.", + "IAM_BUTTON": "Manage Zitadel" }, "MENU": { "PERSONAL_INFO": "Personal Information", + "IAM":"IAM", "ORGANIZATION": "Organization", "PROJECT": "Projects", "USER": "Users", @@ -189,6 +193,16 @@ "EDITACCOUNT":"Edit Account", "ADDACCOUNT":"log in with another account" }, + "IAM": { + "DETAIL": { + "TITLE":"Identity and Access Management", + "DESCRIPTION":"This site is shows Zitadel Management preferences. You can make changes to views, elect managers and define global policies." + }, + "MEMBER": { + "TITLE":"Managers", + "DESCRIPTION":"Managers can add and edit organizations and make changes to their corresponding projects and apps" + } + }, "ORG": { "PAGES": { "LIST": "Organizations", @@ -218,7 +232,7 @@ }, "POLICY": { "TITLE":"Explore Policies", - "DESCRIPTION":"Pre-packaged solutions that save you time and ensure security", + "DESCRIPTION":"Pre-packaged solutions that to ensure security of your data", "PWD_COMPLEXITY": { "TITLE":"Password Complexity", "DESCRIPTION":"Ensures that all set passwords correspond to a specific pattern", @@ -241,7 +255,13 @@ "TITLECREATE":"Create Password Lockout Policy", "DESCRIPTIONCREATE":"Password retries are infinite in default mode. You have to install this extention if you want to show retries or set a max try number." }, - "BTN_INSTALL":"Install", + "IAM_POLICY": { + "TITLE":"IAM Access Preferences", + "DESCRIPTION":"Define access properties of your users", + "TITLECREATE":"Set IAM Access preferences", + "DESCRIPTIONCREATE":"Emails as username is not allowed for enabled UserLoginMustBeDomain" + }, + "BTN_INSTALL":"Setup", "BTN_EDIT":"Modify", "DATA": { "DESCRIPTION":"Description", @@ -253,7 +273,8 @@ "SHOWLOCKOUTFAILURES":"show lockout failures", "MAXATTEMPTS":"Max Attempts", "EXPIREWARNDAYS":"Expiration Warning after day", - "MAXAGEDAYS":"Max Age in days" + "MAXAGEDAYS":"Max Age in days", + "USERLOGINMUSTBEDOMAIN":"User Login must be Domain" }, "DELETE":"Uninstall Policy" } @@ -432,7 +453,7 @@ "en": "English" }, "MEMBER":{ - "ADD":"Add a contributor" + "ADD":"Add a manager" }, "ROLES": { "ORG_OWNER": "Org Owner", @@ -495,23 +516,24 @@ "DESCRIPTION":"Here you can see the latest events that have affected a userchange" }, "EVENTS": { - "org.added": "Org created", - "org.changed":"Org edited", - "org.member.added":"Org Member created", - "org.member.removed":"Org Member deleted", - "org.domain.added":"Org Domain added", - "org.domain.verified":"Org Domain verified", - "org.domain.primary.set":"Primary domain set", - "org.iam.policy.added":"IAM Policy added", - "project.added": "Project created", - "project.changed":"Project edited", - "project.deactivated":"Project deactivated", - "project.member.added":"Project Member created", - "project.member.removed":"Project Member deleted", - "project.role.added":"Role created", - "project.role.removed":"Role deleted", - "project.application.added":"App added", - "project.application.config.oidc.added":"OIDC config added", + "org.added": "created", + "org.changed":"changed", + "org.member.added":"member created", + "org.member.removed":"member deleted", + "org.domain.added":"domain added", + "org.domain.verified":"domain verified", + "org.domain.primary.set":"set primary domain", + "org.domain.removed":"domain removed", + "org.iam.policy.added":"IAM policy added", + "project.added": "added", + "project.changed":"changed", + "project.deactivated":"deactivated", + "project.member.added":"added member", + "project.member.removed":"member deleted", + "project.role.added":"created role", + "project.role.removed":"deleted role", + "project.application.added":"added app", + "project.application.config.oidc.added":"added OIDC config", "user.added":"User added", "user.initialization.code.added":"Init code added", "user.phone.code.added":"Phone code added", @@ -545,7 +567,8 @@ "user.password.check.succeeded":"Password check succeeded", "user.mfa.init.skipped":"MFA init skipped", "user.mfa.otp.added":"MFA OTP added", - "user.mfa.otp.verified":"MFA OTP verified" + "user.mfa.otp.verified":"MFA OTP verified", + "user.selfregistered":"self registered" } } } \ No newline at end of file diff --git a/console/src/main.ts b/console/src/main.ts index 2a59a013eb..371f8cc511 100644 --- a/console/src/main.ts +++ b/console/src/main.ts @@ -1,4 +1,4 @@ -import 'hammerjs'; + import { enableProdMode } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; diff --git a/console/tsconfig.app.json b/console/tsconfig.app.json index 303bea373d..58a2ecb305 100644 --- a/console/tsconfig.app.json +++ b/console/tsconfig.app.json @@ -1,5 +1,5 @@ { - "extends": "./tsconfig.json", + "extends": "./tsconfig.base.json", "compilerOptions": { "outDir": "./out-tsc/app", "types": [] diff --git a/console/tsconfig.base.json b/console/tsconfig.base.json new file mode 100644 index 0000000000..6ac6bac285 --- /dev/null +++ b/console/tsconfig.base.json @@ -0,0 +1,22 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "module": "esnext", + "moduleResolution": "node", + "importHelpers": true, + "target": "es2015", + "typeRoots": ["node_modules/@types"], + "lib": ["es2018", "dom"], + "strict": true + }, + "angularCompilerOptions": { + "fullTemplateTypeCheck": true, + "strictInjectionParameters": true + } +} diff --git a/console/tsconfig.json b/console/tsconfig.json index 6ac6bac285..7e00e70771 100644 --- a/console/tsconfig.json +++ b/console/tsconfig.json @@ -1,22 +1,17 @@ +/* + This is a "Solution Style" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience. + It is not intended to be used to perform a compilation. + + To learn more about this file see: https://angular.io/config/solution-tsconfig. +*/ { - "compileOnSave": false, - "compilerOptions": { - "baseUrl": "./", - "outDir": "./dist/out-tsc", - "sourceMap": true, - "declaration": false, - "downlevelIteration": true, - "experimentalDecorators": true, - "module": "esnext", - "moduleResolution": "node", - "importHelpers": true, - "target": "es2015", - "typeRoots": ["node_modules/@types"], - "lib": ["es2018", "dom"], - "strict": true - }, - "angularCompilerOptions": { - "fullTemplateTypeCheck": true, - "strictInjectionParameters": true - } -} + "files": [], + "references": [ + { + "path": "./tsconfig.app.json" + }, + { + "path": "./tsconfig.spec.json" + } + ] +} \ No newline at end of file diff --git a/console/tsconfig.spec.json b/console/tsconfig.spec.json index 6400fde7d5..1db2e6ee9c 100644 --- a/console/tsconfig.spec.json +++ b/console/tsconfig.spec.json @@ -1,5 +1,5 @@ { - "extends": "./tsconfig.json", + "extends": "./tsconfig.base.json", "compilerOptions": { "outDir": "./out-tsc/spec", "types": [ diff --git a/go.mod b/go.mod index d2d40496b8..6b27ef16e5 100644 --- a/go.mod +++ b/go.mod @@ -23,8 +23,8 @@ require ( github.com/ghodss/yaml v1.0.0 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b github.com/golang/mock v1.4.3 - github.com/gorilla/csrf v1.7.0 github.com/golang/protobuf v1.4.2 + github.com/gorilla/csrf v1.7.0 github.com/gorilla/mux v1.7.4 github.com/gorilla/schema v1.1.0 github.com/gorilla/securecookie v1.1.1