From 65a4b8ab8465685caff433228699556b98f355ee Mon Sep 17 00:00:00 2001
From: Matt Hill
Date: Thu, 21 Oct 2021 16:49:47 -0600
Subject: [PATCH] rework cutofing processing (#716)
* rework cutofing processing
* fix default generation bug
* dont hard code all dependent ids to 'hello'
* fix recommendation display and bug with health cehck not updating
* fix key name
* fix dependency error updates and retain order on backup
* fix health check display
---
ui/package-lock.json | 1814 ++++++++++-------
ui/package.json | 3 +-
.../form-object/form-error.component.html | 3 +
.../form-object/form-label.component.html | 11 +-
.../form-object/form-object.component.html | 25 +-
.../form-object/form-object.component.scss | 2 +-
.../form-object/form-object.component.ts | 12 +-
.../modals/app-config/app-config.page.html | 46 +-
.../app/modals/app-config/app-config.page.ts | 76 +-
ui/src/app/modals/enum-list/enum-list.page.ts | 13 -
.../app-properties/app-properties.page.ts | 6 +-
.../apps-routes/app-show/app-show.page.html | 1 -
.../apps-routes/app-show/app-show.page.ts | 124 +-
.../marketplace-show.page.html | 26 +-
.../marketplace-show/marketplace-show.page.ts | 11 +-
.../server-backup/server-backup.page.ts | 2 +-
ui/src/app/services/api/api.fixures.ts | 878 ++++----
.../services/api/embassy-mock-api.service.ts | 38 +-
ui/src/app/services/form.service.ts | 47 +-
ui/src/app/util/misc.util.ts | 8 +-
ui/src/app/util/properties.util.ts | 4 +-
21 files changed, 1691 insertions(+), 1459 deletions(-)
diff --git a/ui/package-lock.json b/ui/package-lock.json
index 420637b9c..68cd64ea6 100644
--- a/ui/package-lock.json
+++ b/ui/package-lock.json
@@ -19,9 +19,8 @@
"@start9labs/emver": "0.1.5",
"ajv": "^6.12.6",
"core-js": "^3.17.2",
+ "fast-json-patch": "^3.1.0",
"fuse.js": "^6.4.6",
- "json-pointer": "^0.6.1",
- "jsonpointerx": "^1.1.4",
"marked": "3.0.2",
"mustache": "^4.2.0",
"ng-qrcode": "^5.0.0",
@@ -96,16 +95,16 @@
}
},
"node_modules/@angular-devkit/build-angular": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-12.2.9.tgz",
- "integrity": "sha512-A8yddhGpUnrTcA4WCiUxwklFbfkNMfvlST5CT9VLVjz4MEwwOpdaNmIF39+NMr4XTgOBbP6Bq/t3ciIsB5+/Uw==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-12.2.11.tgz",
+ "integrity": "sha512-chMVR0ZEw0sRlny5eXZQ83dK0KNOzBJaa6ERwIubuQLB555DWpkn9L0E2EnRb7qwe2k+Uggx9GiZD2Nq9z+88A==",
"dev": true,
"dependencies": {
"@ampproject/remapping": "1.0.1",
- "@angular-devkit/architect": "0.1202.9",
- "@angular-devkit/build-optimizer": "0.1202.9",
- "@angular-devkit/build-webpack": "0.1202.9",
- "@angular-devkit/core": "12.2.9",
+ "@angular-devkit/architect": "0.1202.11",
+ "@angular-devkit/build-optimizer": "0.1202.11",
+ "@angular-devkit/build-webpack": "0.1202.11",
+ "@angular-devkit/core": "12.2.11",
"@babel/core": "7.14.8",
"@babel/generator": "7.14.8",
"@babel/helper-annotate-as-pure": "7.14.5",
@@ -117,7 +116,7 @@
"@babel/template": "7.14.5",
"@discoveryjs/json-ext": "0.5.3",
"@jsdevtools/coverage-istanbul-loader": "3.0.5",
- "@ngtools/webpack": "12.2.9",
+ "@ngtools/webpack": "12.2.11",
"ansi-colors": "4.1.1",
"babel-loader": "8.2.2",
"browserslist": "^4.9.1",
@@ -126,10 +125,10 @@
"circular-dependency-plugin": "5.2.2",
"copy-webpack-plugin": "9.0.1",
"core-js": "3.16.0",
- "critters": "0.0.10",
+ "critters": "0.0.11",
"css-loader": "6.2.0",
"css-minimizer-webpack-plugin": "3.0.2",
- "esbuild-wasm": "0.13.4",
+ "esbuild-wasm": "0.13.8",
"find-cache-dir": "3.3.1",
"glob": "7.1.7",
"https-proxy-agent": "5.0.0",
@@ -139,7 +138,7 @@
"less-loader": "10.0.1",
"license-webpack-plugin": "2.3.20",
"loader-utils": "2.0.0",
- "mini-css-extract-plugin": "2.2.1",
+ "mini-css-extract-plugin": "2.4.2",
"minimatch": "3.0.4",
"open": "8.2.1",
"ora": "5.4.1",
@@ -173,11 +172,11 @@
},
"engines": {
"node": "^12.14.1 || >=14.0.0",
- "npm": "^6.11.0 || ^7.5.6",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
"yarn": ">= 1.13.0"
},
"optionalDependencies": {
- "esbuild": "0.13.4"
+ "esbuild": "0.13.8"
},
"peerDependencies": {
"@angular/compiler-cli": "^12.0.0",
@@ -215,24 +214,24 @@
}
},
"node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": {
- "version": "0.1202.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.9.tgz",
- "integrity": "sha512-s2NcFqZjsdYoR0vhJWLCwykF6hG7F0C5fJJs49i6IJMKj5Ai58z7d2IFYvD8nA60paMvjFS14OQ+E/FEEEZ88Q==",
+ "version": "0.1202.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.11.tgz",
+ "integrity": "sha512-9veul0Hse+4yGxfQW6AfeWYhxE6CM/EtrvGkv4JCrYJVVkfGW64EVG1p2nJt4yVk69iA2f+On3c4t1uXKtLy/Q==",
"dev": true,
"dependencies": {
- "@angular-devkit/core": "12.2.9",
+ "@angular-devkit/core": "12.2.11",
"rxjs": "6.6.7"
},
"engines": {
"node": "^12.14.1 || >=14.0.0",
- "npm": "^6.11.0 || ^7.5.6",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
"yarn": ">= 1.13.0"
}
},
"node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.9.tgz",
- "integrity": "sha512-iPHQiga08bbryiVq3QYzwpuq9sNb8CB/MVy65MHJ0fuW1z6RYDeUh1EziitBBUT2d81KWKPO1wQ2DuUoxOg4mg==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.11.tgz",
+ "integrity": "sha512-JgOKDr6zQu/uVZ5le5shgCeIoq3zQvybZGwxjkdWZdoO8rc5oggoiB2PZrPStolhIjFkQ2/mUvhtqnn7D+w8UA==",
"dev": true,
"dependencies": {
"ajv": "8.6.2",
@@ -244,7 +243,7 @@
},
"engines": {
"node": "^12.14.1 || >=14.0.0",
- "npm": "^6.11.0 || ^7.5.6",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
"yarn": ">= 1.13.0"
}
},
@@ -401,9 +400,9 @@
}
},
"node_modules/@angular-devkit/build-optimizer": {
- "version": "0.1202.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1202.9.tgz",
- "integrity": "sha512-yDR7f2fRWzJdqa7U0eIYu5fCRIae3tcSsYE18UPiV5ypGK3talMIpZ1ibkklr9Nm9SAB6Js1/EdVBGB5jo3R9A==",
+ "version": "0.1202.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1202.11.tgz",
+ "integrity": "sha512-3iU2q8QYrF7bSxffcrvYrvs9BQrLGHLe3MFyNfU3ps38c6CmnMsnR3RODmDZZgkgk9jN45y+WGmkF46ydiOHtA==",
"dev": true,
"dependencies": {
"source-map": "0.7.3",
@@ -415,7 +414,7 @@
},
"engines": {
"node": "^12.14.1 || >=14.0.0",
- "npm": "^6.11.0 || ^7.5.6",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
"yarn": ">= 1.13.0"
},
"peerDependencies": {
@@ -428,17 +427,17 @@
}
},
"node_modules/@angular-devkit/build-webpack": {
- "version": "0.1202.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1202.9.tgz",
- "integrity": "sha512-UKVxFTRSyDpQDxM1yk1OJiynhbryrbsy+WgZ/gFcnZcrRGtrpAWOq+uMXfq05zET6CNqpOKBnxy9LSHAwXR5Ig==",
+ "version": "0.1202.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1202.11.tgz",
+ "integrity": "sha512-xex0/8G2o9v0gr+oVAc3QdRyPKTBWmmhOR3K3fj4a7gvhpnE9ByHxemzflZcDwpE8K7YkMX8kTlFjkog/dSXNw==",
"dev": true,
"dependencies": {
- "@angular-devkit/architect": "0.1202.9",
+ "@angular-devkit/architect": "0.1202.11",
"rxjs": "6.6.7"
},
"engines": {
"node": "^12.14.1 || >=14.0.0",
- "npm": "^6.11.0 || ^7.5.6",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
"yarn": ">= 1.13.0"
},
"peerDependencies": {
@@ -447,24 +446,24 @@
}
},
"node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": {
- "version": "0.1202.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.9.tgz",
- "integrity": "sha512-s2NcFqZjsdYoR0vhJWLCwykF6hG7F0C5fJJs49i6IJMKj5Ai58z7d2IFYvD8nA60paMvjFS14OQ+E/FEEEZ88Q==",
+ "version": "0.1202.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.11.tgz",
+ "integrity": "sha512-9veul0Hse+4yGxfQW6AfeWYhxE6CM/EtrvGkv4JCrYJVVkfGW64EVG1p2nJt4yVk69iA2f+On3c4t1uXKtLy/Q==",
"dev": true,
"dependencies": {
- "@angular-devkit/core": "12.2.9",
+ "@angular-devkit/core": "12.2.11",
"rxjs": "6.6.7"
},
"engines": {
"node": "^12.14.1 || >=14.0.0",
- "npm": "^6.11.0 || ^7.5.6",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
"yarn": ">= 1.13.0"
}
},
"node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/core": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.9.tgz",
- "integrity": "sha512-iPHQiga08bbryiVq3QYzwpuq9sNb8CB/MVy65MHJ0fuW1z6RYDeUh1EziitBBUT2d81KWKPO1wQ2DuUoxOg4mg==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.11.tgz",
+ "integrity": "sha512-JgOKDr6zQu/uVZ5le5shgCeIoq3zQvybZGwxjkdWZdoO8rc5oggoiB2PZrPStolhIjFkQ2/mUvhtqnn7D+w8UA==",
"dev": true,
"dependencies": {
"ajv": "8.6.2",
@@ -476,7 +475,7 @@
},
"engines": {
"node": "^12.14.1 || >=14.0.0",
- "npm": "^6.11.0 || ^7.5.6",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
"yarn": ">= 1.13.0"
}
},
@@ -564,25 +563,25 @@
"peer": true
},
"node_modules/@angular-devkit/schematics": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.2.9.tgz",
- "integrity": "sha512-OcMDCdlIxiir8XntrNXdXEPi9/8BRx54oYZeRosr0sJZlz4pPzsHs36t5uX2DURYYMkNNMaBnf2luUIC+77ZsA==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.2.11.tgz",
+ "integrity": "sha512-7ucnRGGRGsWqXhvFuK7oAgXMkWO58jmA9CQzXTWCNT5EFCUeyBj2eNNndI4NlWE/LgeKYn7UhUNREzdBrcDiKw==",
"dev": true,
"dependencies": {
- "@angular-devkit/core": "12.2.9",
+ "@angular-devkit/core": "12.2.11",
"ora": "5.4.1",
"rxjs": "6.6.7"
},
"engines": {
"node": "^12.14.1 || >=14.0.0",
- "npm": "^6.11.0 || ^7.5.6",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
"yarn": ">= 1.13.0"
}
},
"node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.9.tgz",
- "integrity": "sha512-iPHQiga08bbryiVq3QYzwpuq9sNb8CB/MVy65MHJ0fuW1z6RYDeUh1EziitBBUT2d81KWKPO1wQ2DuUoxOg4mg==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.11.tgz",
+ "integrity": "sha512-JgOKDr6zQu/uVZ5le5shgCeIoq3zQvybZGwxjkdWZdoO8rc5oggoiB2PZrPStolhIjFkQ2/mUvhtqnn7D+w8UA==",
"dev": true,
"dependencies": {
"ajv": "8.6.2",
@@ -594,7 +593,7 @@
},
"engines": {
"node": "^12.14.1 || >=14.0.0",
- "npm": "^6.11.0 || ^7.5.6",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
"yarn": ">= 1.13.0"
}
},
@@ -638,16 +637,16 @@
"dev": true
},
"node_modules/@angular/cli": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-12.2.9.tgz",
- "integrity": "sha512-aYAb6LkqIpKOZE8Kkhst5NNWpM4W1o1mmPTt6Nm6b/4wVLSC+mDp1IBCJSihDWysDetXA5J3kNJ4R2XnpHpIKw==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-12.2.11.tgz",
+ "integrity": "sha512-zstz/oH0BBWC1n1a6oSFLSaSCDUCoaawG8a83E61MN65wYaCuwIW+Z7Lz3FiF7P4Ce16T56ZwJPIA5SjS7KBhg==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
- "@angular-devkit/architect": "0.1202.9",
- "@angular-devkit/core": "12.2.9",
- "@angular-devkit/schematics": "12.2.9",
- "@schematics/angular": "12.2.9",
+ "@angular-devkit/architect": "0.1202.11",
+ "@angular-devkit/core": "12.2.11",
+ "@angular-devkit/schematics": "12.2.11",
+ "@schematics/angular": "12.2.11",
"@yarnpkg/lockfile": "1.1.0",
"ansi-colors": "4.1.1",
"debug": "4.3.2",
@@ -669,29 +668,29 @@
},
"engines": {
"node": "^12.14.1 || >=14.0.0",
- "npm": "^6.11.0 || ^7.5.6",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
"yarn": ">= 1.13.0"
}
},
"node_modules/@angular/cli/node_modules/@angular-devkit/architect": {
- "version": "0.1202.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.9.tgz",
- "integrity": "sha512-s2NcFqZjsdYoR0vhJWLCwykF6hG7F0C5fJJs49i6IJMKj5Ai58z7d2IFYvD8nA60paMvjFS14OQ+E/FEEEZ88Q==",
+ "version": "0.1202.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.11.tgz",
+ "integrity": "sha512-9veul0Hse+4yGxfQW6AfeWYhxE6CM/EtrvGkv4JCrYJVVkfGW64EVG1p2nJt4yVk69iA2f+On3c4t1uXKtLy/Q==",
"dev": true,
"dependencies": {
- "@angular-devkit/core": "12.2.9",
+ "@angular-devkit/core": "12.2.11",
"rxjs": "6.6.7"
},
"engines": {
"node": "^12.14.1 || >=14.0.0",
- "npm": "^6.11.0 || ^7.5.6",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
"yarn": ">= 1.13.0"
}
},
"node_modules/@angular/cli/node_modules/@angular-devkit/core": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.9.tgz",
- "integrity": "sha512-iPHQiga08bbryiVq3QYzwpuq9sNb8CB/MVy65MHJ0fuW1z6RYDeUh1EziitBBUT2d81KWKPO1wQ2DuUoxOg4mg==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.11.tgz",
+ "integrity": "sha512-JgOKDr6zQu/uVZ5le5shgCeIoq3zQvybZGwxjkdWZdoO8rc5oggoiB2PZrPStolhIjFkQ2/mUvhtqnn7D+w8UA==",
"dev": true,
"dependencies": {
"ajv": "8.6.2",
@@ -703,7 +702,7 @@
},
"engines": {
"node": "^12.14.1 || >=14.0.0",
- "npm": "^6.11.0 || ^7.5.6",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
"yarn": ">= 1.13.0"
}
},
@@ -747,9 +746,9 @@
"dev": true
},
"node_modules/@angular/common": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/common/-/common-12.2.9.tgz",
- "integrity": "sha512-V7leBrq80CSJWHWVE3LEL6Z6onP2ibsITY3++86Uddz8AxzfOtNRslbs4/qCWc82nT7CIEn8a28NLP/BdOwNew==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/common/-/common-12.2.11.tgz",
+ "integrity": "sha512-/3QS5YaHfm2taJYUVes076ZMpL2GRYVW3HDbHXiRNjoC9EMqQ7ahRD9RPFC8XUk709JuqzonE3bB+N5Ld3mzIA==",
"dependencies": {
"tslib": "^2.2.0"
},
@@ -757,14 +756,14 @@
"node": "^12.14.1 || >=14.0.0"
},
"peerDependencies": {
- "@angular/core": "12.2.9",
+ "@angular/core": "12.2.11",
"rxjs": "^6.5.3 || ^7.0.0"
}
},
"node_modules/@angular/compiler": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-12.2.9.tgz",
- "integrity": "sha512-87Qn8HuQ+6ECUnapQxpgIvwuUs6i1oM6lmLSKrYe0/WpIzTabB30eXWCKfvqYrv516cMdrq+nLCIXJx1tPqzSw==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-12.2.11.tgz",
+ "integrity": "sha512-78b5Uf+79gOKEyF/ixFAGJANNHnhueofSxgToBmJkTTpqTX6Xzdfzw8W+ehpJADp52eBjmZ+rv7b9sgBsiJ1tg==",
"dependencies": {
"tslib": "^2.2.0"
},
@@ -773,9 +772,9 @@
}
},
"node_modules/@angular/compiler-cli": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-12.2.9.tgz",
- "integrity": "sha512-jswNKFm3MNcY4oDO/8HcFLLVxDEcTOyqp9CeKzlbjBKb04Ntjaqpm9CKzlxLOtJJj9BSMHTz1CjE0hSNv76NPg==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-12.2.11.tgz",
+ "integrity": "sha512-mOEyAQQS28omIGOw71jXnAI+GLxLVHhsa5vcS9Cy+HLfgJzysTngwdKNO7iJvalsyAsb9EjJ3R82XRKKJspV0g==",
"dev": true,
"dependencies": {
"@babel/core": "^7.8.6",
@@ -803,7 +802,7 @@
"node": "^12.14.1 || >=14.0.0"
},
"peerDependencies": {
- "@angular/compiler": "12.2.9",
+ "@angular/compiler": "12.2.11",
"typescript": ">=4.2.3 <4.4"
}
},
@@ -817,9 +816,9 @@
}
},
"node_modules/@angular/core": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/core/-/core-12.2.9.tgz",
- "integrity": "sha512-RgUmn0YM4GMcViTEkWxDVGCyz8+subF+98dJie+bwJszATMxRK2TSINEg2X/Y0LgNxpRt4mKzIK2kz62oaDH7g==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/core/-/core-12.2.11.tgz",
+ "integrity": "sha512-wzCFtVFdQlXJlzWpWNz3w8cDzhYzuO1qDqey15Wd4zPR8c8pDx3/XCZXSziskaUzA+fVzgHHSwQnOi9XSFFjzA==",
"dependencies": {
"tslib": "^2.2.0"
},
@@ -832,9 +831,9 @@
}
},
"node_modules/@angular/forms": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-12.2.9.tgz",
- "integrity": "sha512-DugLX9h/hmphjdx0wGOp9koEpzFZpcMiYXfYO2rLyzc1NwopAcbSJTCvU+adfShZgh/b5v+7rb5n10JROj/ODw==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-12.2.11.tgz",
+ "integrity": "sha512-mylti7rtz2FcM3hwPSj2JnX8y8BrXmzrjEWjcLlXmwoMzv/M3vY5HlgKzOmPN03bVgxC7b7EFfGMXfJ3YoPWpg==",
"dependencies": {
"tslib": "^2.2.0"
},
@@ -842,25 +841,25 @@
"node": "^12.14.1 || >=14.0.0"
},
"peerDependencies": {
- "@angular/common": "12.2.9",
- "@angular/core": "12.2.9",
- "@angular/platform-browser": "12.2.9",
+ "@angular/common": "12.2.11",
+ "@angular/core": "12.2.11",
+ "@angular/platform-browser": "12.2.11",
"rxjs": "^6.5.3 || ^7.0.0"
}
},
"node_modules/@angular/language-service": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-12.2.9.tgz",
- "integrity": "sha512-q6WH8CxS4nXKnIR/imQbRYTdP0PW63tDogzlol6gnB/jEmGgmQJphYRVeDqr5owIxuzCB06JkWXPVsyHY3yHvA==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-12.2.11.tgz",
+ "integrity": "sha512-ag0YlWvVmNQWKGB14SFgaPcWuYQJpr8OrD2JoY91P+WWpv6oawemHRVF1rvFjmPf9byXv4mnPK1h36qI7EJSpw==",
"dev": true,
"engines": {
"node": "^12.14.1 || >=14.0.0"
}
},
"node_modules/@angular/platform-browser": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.2.9.tgz",
- "integrity": "sha512-moO5Fz4b15EWYQthOaQThmy0gm/d5W/+9RmCiZs2ZHiVjuC358lnFy626VdkZmJ/MLwMwqHpyQS9JhCYOZGOdw==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.2.11.tgz",
+ "integrity": "sha512-uJEnVOK3M1SrCWJoW2jFx5F8pUCbSISai7dbTBVc+/Gx6e9ZuNzBVOooLvSzV96DurhTV7xGSXR5Ry75UNZ48A==",
"dependencies": {
"tslib": "^2.2.0"
},
@@ -868,9 +867,9 @@
"node": "^12.14.1 || >=14.0.0"
},
"peerDependencies": {
- "@angular/animations": "12.2.9",
- "@angular/common": "12.2.9",
- "@angular/core": "12.2.9"
+ "@angular/animations": "12.2.11",
+ "@angular/common": "12.2.11",
+ "@angular/core": "12.2.11"
},
"peerDependenciesMeta": {
"@angular/animations": {
@@ -879,9 +878,9 @@
}
},
"node_modules/@angular/platform-browser-dynamic": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.2.9.tgz",
- "integrity": "sha512-bBNsq2rrL08IaVCps9j54iu3Xoxf1PkjtbEyP5EqXbjccsF7KDM32+5Cjjf0AwYtzaWbjXPSP7awAXpCCsqSdA==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.2.11.tgz",
+ "integrity": "sha512-TF80norTsBbJiUsqo6IUNALV2W1YkEa5QAB6RkTrb1K/V6oGcWcGfqSyCMbjRHPEZTwiAzz4cYEmip5kFtE+oQ==",
"dependencies": {
"tslib": "^2.2.0"
},
@@ -889,16 +888,16 @@
"node": "^12.14.1 || >=14.0.0"
},
"peerDependencies": {
- "@angular/common": "12.2.9",
- "@angular/compiler": "12.2.9",
- "@angular/core": "12.2.9",
- "@angular/platform-browser": "12.2.9"
+ "@angular/common": "12.2.11",
+ "@angular/compiler": "12.2.11",
+ "@angular/core": "12.2.11",
+ "@angular/platform-browser": "12.2.11"
}
},
"node_modules/@angular/router": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/router/-/router-12.2.9.tgz",
- "integrity": "sha512-Qh7Ugh6N7PIK4+ydRPHiKy8Q3wlB/ieXVyqYgkNfGFZ+QtNHpWgWBUXJuGPnmKk0Yn02EwSPOuPWEHV92rayhw==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/router/-/router-12.2.11.tgz",
+ "integrity": "sha512-iqQujHKLDpE+xJwXqRY1U83xfDnmb7LIQ0UL6ORSw6mqDTxIeMXfVKRqux1dIlWX+ysU0uTHuug49R8T9q0fhg==",
"dependencies": {
"tslib": "^2.2.0"
},
@@ -906,9 +905,9 @@
"node": "^12.14.1 || >=14.0.0"
},
"peerDependencies": {
- "@angular/common": "12.2.9",
- "@angular/core": "12.2.9",
- "@angular/platform-browser": "12.2.9",
+ "@angular/common": "12.2.11",
+ "@angular/core": "12.2.11",
+ "@angular/platform-browser": "12.2.11",
"rxjs": "^6.5.3 || ^7.0.0"
}
},
@@ -2554,9 +2553,9 @@
}
},
"node_modules/@babel/preset-modules": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz",
- "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==",
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
+ "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.0.0",
@@ -2661,9 +2660,9 @@
}
},
"node_modules/@cspotcode/source-map-support": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.6.1.tgz",
- "integrity": "sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg==",
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz",
+ "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==",
"dev": true,
"dependencies": {
"@cspotcode/source-map-consumer": "0.8.0"
@@ -2691,11 +2690,11 @@
}
},
"node_modules/@ionic/angular": {
- "version": "5.8.3",
- "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-5.8.3.tgz",
- "integrity": "sha512-0girV4YrJEZ/PMFNmIOHQjsFfoqufOotpSx4LEA7jPqiUDoc7C5H5mqdzVPUY6aAhA9db3ZUO1fJ7GYd/fV2bg==",
+ "version": "5.8.4",
+ "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-5.8.4.tgz",
+ "integrity": "sha512-pvy7qOTVih3mqcyIV6C3BK8seeZOEoanRFw+Z5m+soXDcvgrouHBBAKzURu2RUx8uDZqlX38Pkn89ontvqIZUg==",
"dependencies": {
- "@ionic/core": "5.8.3",
+ "@ionic/core": "5.8.4",
"tslib": "^1.9.3"
},
"peerDependencies": {
@@ -2787,9 +2786,9 @@
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@ionic/core": {
- "version": "5.8.3",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-5.8.3.tgz",
- "integrity": "sha512-wKDKjLV4QsWlxw4tWEhUtGtLgSdJvNdtMyVRROWHHSOA1V3t5Wsktt09Xroi14hPOdjR+LxCM5sWcuHep4lz5g==",
+ "version": "5.8.4",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-5.8.4.tgz",
+ "integrity": "sha512-ioaH7wXAtexcpk23III0KArjSXStkpPrpZ5BCNkyter3EbOmDVd8XIXRcT86zRG68rbGI7Pd9GrugxeaDyMk/g==",
"dependencies": {
"@stencil/core": "^2.4.0",
"ionicons": "^5.5.3",
@@ -2854,13 +2853,13 @@
}
},
"node_modules/@ngtools/webpack": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-12.2.9.tgz",
- "integrity": "sha512-IQkzvompjLdWbZ+33crtyVF8huF53C36k1FNFdq3x2j4Kw4ssDd6K9fq3aZpRCK0J8O79HJ5j4QH6ZtWjwajLg==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-12.2.11.tgz",
+ "integrity": "sha512-OgNClb9EhYR9lhVRR1RnWT1Xh75aI70IB4eQaDSiVOkBc6aymLzeskZ2WmkZWsDGlJBLOamnoB0XUPuU1GpmrQ==",
"dev": true,
"engines": {
"node": "^12.14.1 || >=14.0.0",
- "npm": "^6.11.0 || ^7.5.6",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
"yarn": ">= 1.13.0"
},
"peerDependencies": {
@@ -2977,25 +2976,25 @@
}
},
"node_modules/@schematics/angular": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.2.9.tgz",
- "integrity": "sha512-IIczXVwegREekub0+bBxOc0dDL7j8p5rG6rB/2btJRR+tg04milP+BkvnQgksmIkW1OcZ5beRSB37R3jY/W/PA==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.2.11.tgz",
+ "integrity": "sha512-Xou0CSSD88LVxfl7GzqY3TYUG6mM4cN61zE7gTzqshCx3rR0JkbLn0Z+q67KhxYUs9qiPT5MHL0W06nJ0iLzDg==",
"dev": true,
"dependencies": {
- "@angular-devkit/core": "12.2.9",
- "@angular-devkit/schematics": "12.2.9",
+ "@angular-devkit/core": "12.2.11",
+ "@angular-devkit/schematics": "12.2.11",
"jsonc-parser": "3.0.0"
},
"engines": {
"node": "^12.14.1 || >=14.0.0",
- "npm": "^6.11.0 || ^7.5.6",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
"yarn": ">= 1.13.0"
}
},
"node_modules/@schematics/angular/node_modules/@angular-devkit/core": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.9.tgz",
- "integrity": "sha512-iPHQiga08bbryiVq3QYzwpuq9sNb8CB/MVy65MHJ0fuW1z6RYDeUh1EziitBBUT2d81KWKPO1wQ2DuUoxOg4mg==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.11.tgz",
+ "integrity": "sha512-JgOKDr6zQu/uVZ5le5shgCeIoq3zQvybZGwxjkdWZdoO8rc5oggoiB2PZrPStolhIjFkQ2/mUvhtqnn7D+w8UA==",
"dev": true,
"dependencies": {
"ajv": "8.6.2",
@@ -3007,7 +3006,7 @@
},
"engines": {
"node": "^12.14.1 || >=14.0.0",
- "npm": "^6.11.0 || ^7.5.6",
+ "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
"yarn": ">= 1.13.0"
}
},
@@ -3056,9 +3055,9 @@
"integrity": "sha512-1dhiG03VkfEwSLx/JPKVms6srAbYFQgwfSGhwpUKMDliMXuAHGVaueStmqzVxn3JpH/HEVz0QW8w/PXHqjdiIg=="
},
"node_modules/@stencil/core": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.8.1.tgz",
- "integrity": "sha512-iv9J6oLO/lv7/aO45M05yw3pp1J7olY400vlOZgdMVs3s5zHfalY1ZPYM0KyqU4+7DZuadKYbd0aQZ/g2PInZw==",
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.9.0.tgz",
+ "integrity": "sha512-kY3xYolZoJO1MKslL0NQccHy72R3TIl1prHgfmIrEoGcnMgc6uiskdWaGMuI5/sCGz9T+QuTVz76B1H2ySyBZg==",
"bin": {
"stencil": "bin/stencil"
},
@@ -3136,9 +3135,9 @@
"dev": true
},
"node_modules/@types/glob": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz",
- "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
"dev": true,
"dependencies": {
"@types/minimatch": "*",
@@ -3158,9 +3157,9 @@
"dev": true
},
"node_modules/@types/marked": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@types/marked/-/marked-3.0.1.tgz",
- "integrity": "sha512-jry/WUAC511P2NBCeiCkfTRCN2VXobeeQa8p8gImOYsRfnuIVfeEsqOJ1pk+CzCwfMCdv3dkTQRCYaNkkFGtxw==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/marked/-/marked-3.0.2.tgz",
+ "integrity": "sha512-mGYI9qFs+i5eYaytWKBbtEMbIkrXGKuhsDpDcj70ogKS2gk1NmgEy9Z3VEKz922Lfms6eITXXqv5idlX7C/irw==",
"dev": true
},
"node_modules/@types/minimatch": {
@@ -3176,9 +3175,9 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "16.10.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz",
- "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==",
+ "version": "16.11.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.2.tgz",
+ "integrity": "sha512-w34LtBB0OkDTs19FQHXy4Ig/TOXI4zqvXS2Kk1PAsRKZ0I+nik7LlMYxckW0tSNGtvWmzB+mrCTbuEjuB9DVsw==",
"dev": true
},
"node_modules/@types/parse-json": {
@@ -3849,6 +3848,12 @@
"url": "https://tidelift.com/funding/github/npm/autoprefixer"
}
},
+ "node_modules/autoprefixer/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/autoprefixer/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -4198,16 +4203,16 @@
}
},
"node_modules/browserslist": {
- "version": "4.17.3",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz",
- "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==",
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.4.tgz",
+ "integrity": "sha512-Zg7RpbZpIJRW3am9Lyckue7PLytvVxxhJj1CaJVlCWENsGEAOlnlt8X0ZxGRPp7Bt9o8tIRM5SEXy4BCPMJjLQ==",
"dev": true,
"dependencies": {
- "caniuse-lite": "^1.0.30001264",
- "electron-to-chromium": "^1.3.857",
+ "caniuse-lite": "^1.0.30001265",
+ "electron-to-chromium": "^1.3.867",
"escalade": "^3.1.1",
- "node-releases": "^1.1.77",
- "picocolors": "^0.2.1"
+ "node-releases": "^2.0.0",
+ "picocolors": "^1.0.0"
},
"bin": {
"browserslist": "cli.js"
@@ -4388,9 +4393,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001265",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz",
- "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==",
+ "version": "1.0.30001270",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001270.tgz",
+ "integrity": "sha512-TcIC7AyNWXhcOmv2KftOl1ShFAaHQYcB/EPL/hEyMrcS7ZX0/DvV1aoy6BzV0+16wTpoAyTMGDNAJfSqS/rz7A==",
"dev": true,
"funding": {
"type": "opencollective",
@@ -4707,9 +4712,9 @@
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
"node_modules/colord": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/colord/-/colord-2.8.0.tgz",
- "integrity": "sha512-kNkVV4KFta3TYQv0bzs4xNwLaeag261pxgzGQSh4cQ1rEhYjcTJfFRP0SDlbhLONg0eSoLzrDd79PosjbltufA==",
+ "version": "2.9.1",
+ "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.1.tgz",
+ "integrity": "sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw==",
"dev": true
},
"node_modules/colorette": {
@@ -4936,9 +4941,9 @@
}
},
"node_modules/core-js": {
- "version": "3.18.2",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.2.tgz",
- "integrity": "sha512-zNhPOUoSgoizoSQFdX1MeZO16ORRb9FFQLts8gSYbZU5FcgXhp24iMWMxnOQo5uIaIG7/6FA/IqJPwev1o9ZXQ==",
+ "version": "3.18.3",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.3.tgz",
+ "integrity": "sha512-tReEhtMReZaPFVw7dajMx0vlsz3oOb8ajgPoHVYGxr8ErnZ6PcYEvvmjGmXlfpnxpkYSdOQttjB+MvVbCGfvLw==",
"hasInstallScript": true,
"funding": {
"type": "opencollective",
@@ -4946,9 +4951,9 @@
}
},
"node_modules/core-js-compat": {
- "version": "3.18.2",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.2.tgz",
- "integrity": "sha512-25VJYCJtGjZwLguj7d66oiHfmnVw3TMOZ0zV8DyMJp/aeQ3OjR519iOOeck08HMyVVRAqXxafc2Hl+5QstJrsQ==",
+ "version": "3.18.3",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.3.tgz",
+ "integrity": "sha512-4zP6/y0a2RTHN5bRGT7PTq9lVt3WzvffTNjqnTKsXhkAYNDTkdCLOIfAdOLcQ/7TDdyRj3c+NeHe1NmF1eDScw==",
"dev": true,
"dependencies": {
"browserslist": "^4.17.3",
@@ -4997,15 +5002,16 @@
"dev": true
},
"node_modules/critters": {
- "version": "0.0.10",
- "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.10.tgz",
- "integrity": "sha512-p5VKhP1803+f+0Jq5P03w1SbiHtpAKm+1EpJHkiPxQPq0Vu9QLZHviJ02GRrWi0dlcJqrmzMWInbwp4d22RsGw==",
+ "version": "0.0.11",
+ "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.11.tgz",
+ "integrity": "sha512-E1XlhQTmf0Y2Q6hYVrXKxibxps2LNarpZaDCRNaxA1LA5LxlgoIPN0rcOzFVlwRD47iNYhVtD4DmGtgr2edrlQ==",
"dev": true,
"dependencies": {
"chalk": "^4.1.0",
- "css": "^3.0.0",
+ "css-select": "^1.2.0",
"parse5": "^6.0.1",
"parse5-htmlparser2-tree-adapter": "^6.0.1",
+ "postcss": "^8.3.7",
"pretty-bytes": "^5.3.0"
}
},
@@ -5073,6 +5079,24 @@
"integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
"dev": true
},
+ "node_modules/critters/node_modules/postcss": {
+ "version": "8.3.11",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz",
+ "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==",
+ "dev": true,
+ "dependencies": {
+ "nanoid": "^3.1.30",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^0.6.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
"node_modules/critters/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -5123,14 +5147,15 @@
}
},
"node_modules/css": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz",
- "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==",
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
+ "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
"dev": true,
"dependencies": {
- "inherits": "^2.0.4",
+ "inherits": "^2.0.3",
"source-map": "^0.6.1",
- "source-map-resolve": "^0.6.0"
+ "source-map-resolve": "^0.5.2",
+ "urix": "^0.1.0"
}
},
"node_modules/css-blank-pseudo": {
@@ -5148,6 +5173,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/css-blank-pseudo/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/css-blank-pseudo/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -5226,6 +5257,12 @@
"node": ">=4"
}
},
+ "node_modules/css-has-pseudo/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/css-has-pseudo/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -5361,40 +5398,6 @@
"css": "^2.0.0"
}
},
- "node_modules/css-parse/node_modules/css": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
- "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "source-map": "^0.6.1",
- "source-map-resolve": "^0.5.2",
- "urix": "^0.1.0"
- }
- },
- "node_modules/css-parse/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/css-parse/node_modules/source-map-resolve": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
- "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
- "dev": true,
- "dependencies": {
- "atob": "^2.1.2",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
- }
- },
"node_modules/css-prefers-color-scheme": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz",
@@ -5410,6 +5413,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/css-prefers-color-scheme/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/css-prefers-color-scheme/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -5947,9 +5956,9 @@
"dev": true
},
"node_modules/electron-to-chromium": {
- "version": "1.3.864",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.864.tgz",
- "integrity": "sha512-v4rbad8GO6/yVI92WOeU9Wgxc4NA0n4f6P1FvZTY+jyY7JHEhw3bduYu60v3Q1h81Cg6eo4ApZrFPuycwd5hGw==",
+ "version": "1.3.876",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.876.tgz",
+ "integrity": "sha512-a6LR4738psrubCtGx5HxM/gNlrIsh4eFTNnokgOqvQo81GWd07lLcOjITkAXn2y4lIp18vgS+DGnehj+/oEAxQ==",
"dev": true
},
"node_modules/emoji-regex": {
@@ -6071,9 +6080,9 @@
"peer": true
},
"node_modules/esbuild": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.4.tgz",
- "integrity": "sha512-wMA5eUwpavTBiNl+It6j8OQuKVh69l6z4DKDLzoTIqC+gChnPpcmqdA8WNHptUHRnfyML+mKEQPlW7Mybj8gHg==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.8.tgz",
+ "integrity": "sha512-A4af7G7YZLfG5OnARJRMtlpEsCkq/zHZQXewgPA864l9D6VjjbH1SuFYK/OSV6BtHwDGkdwyRrX0qQFLnMfUcw==",
"dev": true,
"hasInstallScript": true,
"optional": true,
@@ -6081,28 +6090,29 @@
"esbuild": "bin/esbuild"
},
"optionalDependencies": {
- "esbuild-android-arm64": "0.13.4",
- "esbuild-darwin-64": "0.13.4",
- "esbuild-darwin-arm64": "0.13.4",
- "esbuild-freebsd-64": "0.13.4",
- "esbuild-freebsd-arm64": "0.13.4",
- "esbuild-linux-32": "0.13.4",
- "esbuild-linux-64": "0.13.4",
- "esbuild-linux-arm": "0.13.4",
- "esbuild-linux-arm64": "0.13.4",
- "esbuild-linux-mips64le": "0.13.4",
- "esbuild-linux-ppc64le": "0.13.4",
- "esbuild-openbsd-64": "0.13.4",
- "esbuild-sunos-64": "0.13.4",
- "esbuild-windows-32": "0.13.4",
- "esbuild-windows-64": "0.13.4",
- "esbuild-windows-arm64": "0.13.4"
+ "esbuild-android-arm64": "0.13.8",
+ "esbuild-darwin-64": "0.13.8",
+ "esbuild-darwin-arm64": "0.13.8",
+ "esbuild-freebsd-64": "0.13.8",
+ "esbuild-freebsd-arm64": "0.13.8",
+ "esbuild-linux-32": "0.13.8",
+ "esbuild-linux-64": "0.13.8",
+ "esbuild-linux-arm": "0.13.8",
+ "esbuild-linux-arm64": "0.13.8",
+ "esbuild-linux-mips64le": "0.13.8",
+ "esbuild-linux-ppc64le": "0.13.8",
+ "esbuild-netbsd-64": "0.13.8",
+ "esbuild-openbsd-64": "0.13.8",
+ "esbuild-sunos-64": "0.13.8",
+ "esbuild-windows-32": "0.13.8",
+ "esbuild-windows-64": "0.13.8",
+ "esbuild-windows-arm64": "0.13.8"
}
},
"node_modules/esbuild-android-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.4.tgz",
- "integrity": "sha512-elDJt+jNyoHFId0/dKsuVYUPke3EcquIyUwzJCH17a3ERglN3A9aMBI5zbz+xNZ+FbaDNdpn0RaJHCFLbZX+fA==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.8.tgz",
+ "integrity": "sha512-AilbChndywpk7CdKkNSZ9klxl+9MboLctXd9LwLo3b0dawmOF/i/t2U5d8LM6SbT1Xw36F8yngSUPrd8yPs2RA==",
"cpu": [
"arm64"
],
@@ -6113,9 +6123,9 @@
]
},
"node_modules/esbuild-darwin-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.4.tgz",
- "integrity": "sha512-zJQGyHRAdZUXlRzbN7W+7ykmEiGC+bq3Gc4GxKYjjWTgDRSEly98ym+vRNkDjXwXYD3gGzSwvH35+MiHAtWvLA==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.8.tgz",
+ "integrity": "sha512-b6sdiT84zV5LVaoF+UoMVGJzR/iE2vNUfUDfFQGrm4LBwM/PWXweKpuu6RD9mcyCq18cLxkP6w/LD/w9DtX3ng==",
"cpu": [
"x64"
],
@@ -6126,9 +6136,9 @@
]
},
"node_modules/esbuild-darwin-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.4.tgz",
- "integrity": "sha512-r8oYvAtqSGq8HNTZCAx4TdLE7jZiGhX9ooGi5AQAey37MA6XNaP8ZNlw9OCpcgpx3ryU2WctXwIqPzkHO7a8dg==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.8.tgz",
+ "integrity": "sha512-R8YuPiiJayuJJRUBG4H0VwkEKo6AvhJs2m7Tl0JaIer3u1FHHXwGhMxjJDmK+kXwTFPriSysPvcobXC/UrrZCQ==",
"cpu": [
"arm64"
],
@@ -6139,9 +6149,9 @@
]
},
"node_modules/esbuild-freebsd-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.4.tgz",
- "integrity": "sha512-u9DRGkn09EN8+lCh6z7FKle7awi17PJRBuAKdRNgSo5ZrH/3m+mYaJK2PR2URHMpAfXiwJX341z231tSdVe3Yw==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.8.tgz",
+ "integrity": "sha512-zBn6urrn8FnKC+YSgDxdof9jhPCeU8kR/qaamlV4gI8R3KUaUK162WYM7UyFVAlj9N0MyD3AtB+hltzu4cysTw==",
"cpu": [
"x64"
],
@@ -6152,9 +6162,9 @@
]
},
"node_modules/esbuild-freebsd-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.4.tgz",
- "integrity": "sha512-q3B2k68Uf6gfjATjcK16DqxvjqRQkHL8aPoOfj4op+lSqegdXvBacB1d8jw8PxbWJ8JHpdTLdAVUYU80kotQXA==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.8.tgz",
+ "integrity": "sha512-pWW2slN7lGlkx0MOEBoUGwRX5UgSCLq3dy2c8RIOpiHtA87xAUpDBvZK10MykbT+aMfXc0NI2lu1X+6kI34xng==",
"cpu": [
"arm64"
],
@@ -6165,9 +6175,9 @@
]
},
"node_modules/esbuild-linux-32": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.4.tgz",
- "integrity": "sha512-UUYJPHSiKAO8KoN3Ls/iZtgDLZvK5HarES96aolDPWZnq9FLx4dIHM/x2z4Rxv9IYqQ/DxlPoE2Co1UPBIYYeA==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.8.tgz",
+ "integrity": "sha512-T0I0ueeKVO/Is0CAeSEOG9s2jeNNb8jrrMwG9QBIm3UU18MRB60ERgkS2uV3fZ1vP2F8i3Z2e3Zju4lg9dhVmw==",
"cpu": [
"ia32"
],
@@ -6178,9 +6188,9 @@
]
},
"node_modules/esbuild-linux-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.4.tgz",
- "integrity": "sha512-+RnohAKiiUW4UHLGRkNR1AnENW1gCuDWuygEtd4jxTNPIoeC7lbXGor7rtgjj9AdUzFgOEvAXyNNX01kJ8NueQ==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.8.tgz",
+ "integrity": "sha512-Bm8SYmFtvfDCIu9sjKppFXzRXn2BVpuCinU1ChTuMtdKI/7aPpXIrkqBNOgPTOQO9AylJJc1Zw6EvtKORhn64w==",
"cpu": [
"x64"
],
@@ -6191,9 +6201,9 @@
]
},
"node_modules/esbuild-linux-arm": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.4.tgz",
- "integrity": "sha512-BH5gKve4jglS7UPSsfwHSX79I5agC/lm4eKoRUEyo8lwQs89frQSRp2Xup+6SFQnxt3md5EsKcd2Dbkqeb3gPA==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.8.tgz",
+ "integrity": "sha512-4/HfcC40LJ4GPyboHA+db0jpFarTB628D1ifU+/5bunIgY+t6mHkJWyxWxAAE8wl/ZIuRYB9RJFdYpu1AXGPdg==",
"cpu": [
"arm"
],
@@ -6204,9 +6214,9 @@
]
},
"node_modules/esbuild-linux-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.4.tgz",
- "integrity": "sha512-+A188cAdd6QuSRxMIwRrWLjgphQA0LDAQ/ECVlrPVJwnx+1i64NjDZivoqPYLOTkSPIKntiWwMhhf0U5/RrPHQ==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.8.tgz",
+ "integrity": "sha512-X4pWZ+SL+FJ09chWFgRNO3F+YtvAQRcWh0uxKqZSWKiWodAB20flsW/OWFYLXBKiVCTeoGMvENZS/GeVac7+tQ==",
"cpu": [
"arm64"
],
@@ -6217,9 +6227,9 @@
]
},
"node_modules/esbuild-linux-mips64le": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.4.tgz",
- "integrity": "sha512-0xkwtPaUkG5xMTFGaQPe1AadSe5QAiQuD4Gix1O9k5Xo/U8xGIkw9UFUTvfEUeu71vFb6ZgsIacfP1NLoFjWNw==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.8.tgz",
+ "integrity": "sha512-o7e0D+sqHKT31v+mwFircJFjwSKVd2nbkHEn4l9xQ1hLR+Bv8rnt3HqlblY3+sBdlrOTGSwz0ReROlKUMJyldA==",
"cpu": [
"mips64el"
],
@@ -6230,9 +6240,9 @@
]
},
"node_modules/esbuild-linux-ppc64le": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.4.tgz",
- "integrity": "sha512-E1+oJPP7A+j23GPo3CEpBhGwG1bni4B8IbTA3/3rvzjURwUMZdcN3Fhrz24rnjzdLSHmULtOE4VsbT42h1Om4Q==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.8.tgz",
+ "integrity": "sha512-eZSQ0ERsWkukJp2px/UWJHVNuy0lMoz/HZcRWAbB6reoaBw7S9vMzYNUnflfL3XA6WDs+dZn3ekHE4Y2uWLGig==",
"cpu": [
"ppc64"
],
@@ -6242,10 +6252,23 @@
"linux"
]
},
+ "node_modules/esbuild-netbsd-64": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.8.tgz",
+ "integrity": "sha512-gZX4kP7gVvOrvX0ZwgHmbuHczQUwqYppxqtoyC7VNd80t5nBHOFXVhWo2Ad/Lms0E8b+wwgI/WjZFTCpUHOg9Q==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ]
+ },
"node_modules/esbuild-openbsd-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.4.tgz",
- "integrity": "sha512-xEkI1o5HYxDzbv9jSox0EsDxpwraG09SRiKKv0W8pH6O3bt+zPSlnoK7+I7Q69tkvONkpIq5n2o+c55uq0X7cw==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.8.tgz",
+ "integrity": "sha512-afzza308X4WmcebexbTzAgfEWt9MUkdTvwIa8xOu4CM2qGbl2LanqEl8/LUs8jh6Gqw6WsicEK52GPrS9wvkcw==",
"cpu": [
"x64"
],
@@ -6256,9 +6279,9 @@
]
},
"node_modules/esbuild-sunos-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.4.tgz",
- "integrity": "sha512-bjXUMcODMnB6hQicLBBmmnBl7OMDyVpFahKvHGXJfDChIi5udiIRKCmFUFIRn+AUAKVlfrofRKdyPC7kBsbvGQ==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.8.tgz",
+ "integrity": "sha512-mWPZibmBbuMKD+LDN23LGcOZ2EawMYBONMXXHmbuxeT0XxCNwadbCVwUQ/2p5Dp5Kvf6mhrlIffcnWOiCBpiVw==",
"cpu": [
"x64"
],
@@ -6269,9 +6292,9 @@
]
},
"node_modules/esbuild-wasm": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.13.4.tgz",
- "integrity": "sha512-2dN7njr9/2QzKLqbTEgXr73vDbSqffdJMv4EfaMQoy04cej0owbGHH5apPgED0wN9I5e7sBT0/Q81tVy3wQBlA==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.13.8.tgz",
+ "integrity": "sha512-UbD+3nloiSpJWXTCInZQrqPe8Y+RLfDkY/5kEHiXsw/lmaEvibe69qTzQu16m5R9je/0bF7VYQ5jaEOq0z9lLA==",
"dev": true,
"bin": {
"esbuild": "bin/esbuild"
@@ -6281,9 +6304,9 @@
}
},
"node_modules/esbuild-windows-32": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.4.tgz",
- "integrity": "sha512-z4CH07pfyVY0XF98TCsGmLxKCl0kyvshKDbdpTekW9f2d+dJqn5mmoUyWhpSVJ0SfYWJg86FoD9nMbbaMVyGdg==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.8.tgz",
+ "integrity": "sha512-QsZ1HnWIcnIEApETZWw8HlOhDSWqdZX2SylU7IzGxOYyVcX7QI06ety/aDcn437mwyO7Ph4RrbhB+2ntM8kX8A==",
"cpu": [
"ia32"
],
@@ -6294,9 +6317,9 @@
]
},
"node_modules/esbuild-windows-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.4.tgz",
- "integrity": "sha512-uVL11vORRPjocGLYam67rwFLd0LvkrHEs+JG+1oJN4UD9MQmNGZPa4gBHo6hDpF+kqRJ9kXgQSeDqUyRy0tj/Q==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.8.tgz",
+ "integrity": "sha512-76Fb57B9eE/JmJi1QmUW0tRLQZfGo0it+JeYoCDTSlbTn7LV44ecOHIMJSSgZADUtRMWT9z0Kz186bnaB3amSg==",
"cpu": [
"x64"
],
@@ -6307,9 +6330,9 @@
]
},
"node_modules/esbuild-windows-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.4.tgz",
- "integrity": "sha512-vA6GLvptgftRcDcWngD5cMlL4f4LbL8JjU2UMT9yJ0MT5ra6hdZNFWnOeOoEtY4GtJ6OjZ0i+81sTqhAB0fMkg==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.8.tgz",
+ "integrity": "sha512-HW6Mtq5eTudllxY2YgT62MrVcn7oq2o8TAoAvDUhyiEmRmDY8tPwAhb1vxw5/cdkbukM3KdMYtksnUhF/ekWeg==",
"cpu": [
"arm64"
],
@@ -6791,6 +6814,11 @@
"node": ">=8"
}
},
+ "node_modules/fast-json-patch": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.0.tgz",
+ "integrity": "sha512-IhpytlsVTRndz0hU5t0/MGzS/etxLlfrpG5V5M9mVbuj9TrJLWaMfsox9REM5rkuGX0T+5qjpe8XA1o0gZ42nA=="
+ },
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
@@ -6950,11 +6978,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/foreach": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
- "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
- },
"node_modules/forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
@@ -8209,9 +8232,9 @@
"dev": true
},
"node_modules/is-core-module": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz",
- "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==",
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz",
+ "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==",
"dev": true,
"dependencies": {
"has": "^1.0.3"
@@ -8490,9 +8513,9 @@
"dev": true
},
"node_modules/istanbul-lib-coverage": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz",
- "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
"dev": true,
"engines": {
"node": ">=8"
@@ -8523,9 +8546,9 @@
}
},
"node_modules/jest-worker": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.5.tgz",
- "integrity": "sha512-HTjEPZtcNKZ4LnhSp02NEH4vE+5OpJ0EsOWYvGQpHgUMLngydESAAMH5Wd/asPf29+XUDQZszxpLg1BkIIA2aw==",
+ "version": "27.3.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz",
+ "integrity": "sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==",
"dev": true,
"dependencies": {
"@types/node": "*",
@@ -8609,14 +8632,6 @@
"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
"dev": true
},
- "node_modules/json-pointer": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.1.tgz",
- "integrity": "sha512-3OvjqKdCBvH41DLpV4iSt6v2XhZXV1bPB4OROuknvUXI7ZQNofieCPkmE26stEJ9zdQuvIxDHCuYhfgxFAAs+Q==",
- "dependencies": {
- "foreach": "^2.0.4"
- }
- },
"node_modules/json-schema": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
@@ -8670,11 +8685,6 @@
"node >= 0.2.0"
]
},
- "node_modules/jsonpointerx": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/jsonpointerx/-/jsonpointerx-1.1.4.tgz",
- "integrity": "sha512-Mh8XOqCB5de7ErUH91V/bSOZ9WsoQln6hU8GvfXuUgdQEAR+2V6wmZxQG7cHljQXcfteC/bhHAmnDR/J8rO9NQ=="
- },
"node_modules/jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
@@ -9341,9 +9351,9 @@
}
},
"node_modules/mini-css-extract-plugin": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.2.1.tgz",
- "integrity": "sha512-A0GBXpz8WIPgh2HfASJ0EeY8grd2dGxmC4R8uTujFJXZY7zFy0nvYSYW6SKCLKlz7y45BdHONfaxZQMIZpeF/w==",
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.4.2.tgz",
+ "integrity": "sha512-ZmqShkn79D36uerdED+9qdo1ZYG8C1YsWvXu0UMJxurZnSdgz7gQKO2EGv8T55MhDqG3DYmGtizZNpM/UbTlcA==",
"dev": true,
"dependencies": {
"schema-utils": "^3.1.0"
@@ -9579,9 +9589,9 @@
"dev": true
},
"node_modules/nanoid": {
- "version": "3.1.29",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.29.tgz",
- "integrity": "sha512-dW2pUSGZ8ZnCFIlBIA31SV8huOGCHb6OwzVCc7A69rb/a+SgPBwfmLvK5TKQ3INPbRkcI8a/Owo0XbiTNH19wg==",
+ "version": "3.1.30",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz",
+ "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==",
"dev": true,
"bin": {
"nanoid": "bin/nanoid.cjs"
@@ -9656,9 +9666,9 @@
"dev": true
},
"node_modules/ng-qrcode": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/ng-qrcode/-/ng-qrcode-5.1.1.tgz",
- "integrity": "sha512-wf0lkZGreNDeWUO9lyyX3WtLC0TH7q1LukiXF4MnAEsXyqvI+b6dzuNp8oPZSkWDcGxHBHSRaSGF7KexP+42hQ==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ng-qrcode/-/ng-qrcode-5.2.0.tgz",
+ "integrity": "sha512-ild1nEULoKn2v5TpWz8aou8xEkM5h7wVXrvPLioAgvrSIgjD3+NM8bAkdOImb6eEFTMyN3LcqwlseNOUHyeOAQ==",
"dependencies": {
"qrcode": "^1.4.4",
"tslib": "^2.0.0"
@@ -9768,9 +9778,9 @@
}
},
"node_modules/node-html-parser/node_modules/css-what": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz",
- "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz",
+ "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==",
"dev": true,
"engines": {
"node": ">= 6"
@@ -9856,9 +9866,9 @@
}
},
"node_modules/node-releases": {
- "version": "1.1.77",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz",
- "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz",
+ "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==",
"dev": true
},
"node_modules/nopt": {
@@ -10729,9 +10739,9 @@
"dev": true
},
"node_modules/picocolors": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
- "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
"dev": true
},
"node_modules/picomatch": {
@@ -10882,6 +10892,12 @@
"postcss-selector-parser": "^6.0.2"
}
},
+ "node_modules/postcss-attribute-case-insensitive/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-attribute-case-insensitive/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -10934,6 +10950,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-color-functional-notation/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-color-functional-notation/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -10974,6 +10996,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-color-gray/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-color-gray/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11013,6 +11041,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-color-hex-alpha/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-color-hex-alpha/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11053,6 +11087,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-color-mod-function/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-color-mod-function/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11092,6 +11132,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-color-rebeccapurple/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-color-rebeccapurple/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11163,6 +11209,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-custom-media/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-custom-media/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11202,6 +11254,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-custom-properties/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-custom-properties/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11253,6 +11311,12 @@
"node": ">=4"
}
},
+ "node_modules/postcss-custom-selectors/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-custom-selectors/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11318,6 +11382,12 @@
"node": ">=4"
}
},
+ "node_modules/postcss-dir-pseudo-class/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-dir-pseudo-class/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11419,6 +11489,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-double-position-gradients/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-double-position-gradients/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11458,6 +11534,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-env-function/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-env-function/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11496,6 +11578,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-focus-visible/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-focus-visible/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11534,6 +11622,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-focus-within/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-focus-within/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11569,6 +11663,12 @@
"postcss": "^7.0.2"
}
},
+ "node_modules/postcss-font-variant/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-font-variant/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11607,6 +11707,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-gap-properties/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-gap-properties/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11646,6 +11752,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-image-set-function/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-image-set-function/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11698,6 +11810,12 @@
"postcss": "^7.0.2"
}
},
+ "node_modules/postcss-initial/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-initial/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11738,6 +11856,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-lab-function/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-lab-function/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11798,6 +11922,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-logical/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-logical/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -11836,6 +11966,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-media-minmax/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-media-minmax/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -12036,6 +12172,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-nesting/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-nesting/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -12228,6 +12370,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-overflow-shorthand/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-overflow-shorthand/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -12263,6 +12411,12 @@
"postcss": "^7.0.2"
}
},
+ "node_modules/postcss-page-break/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-page-break/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -12302,6 +12456,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-place/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-place/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -12376,6 +12536,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/postcss-preset-env/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-preset-env/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -12427,6 +12593,12 @@
"node": ">=4"
}
},
+ "node_modules/postcss-pseudo-class-any-link/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-pseudo-class-any-link/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -12508,6 +12680,12 @@
"postcss": "^7.0.2"
}
},
+ "node_modules/postcss-replace-overflow-wrap/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-replace-overflow-wrap/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -12544,6 +12722,12 @@
"postcss": "^7.0.2"
}
},
+ "node_modules/postcss-selector-matches/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-selector-matches/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -12580,6 +12764,12 @@
"postcss": "^7.0.2"
}
},
+ "node_modules/postcss-selector-not/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/postcss-selector-not/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -13396,6 +13586,12 @@
}
}
},
+ "node_modules/resolve-url-loader/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"node_modules/resolve-url-loader/node_modules/postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -14081,19 +14277,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/snapdragon/node_modules/source-map-resolve": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
- "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
- "dev": true,
- "dependencies": {
- "atob": "^2.1.2",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
- }
- },
"node_modules/sockjs": {
"version": "0.3.21",
"resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz",
@@ -14224,13 +14407,16 @@
}
},
"node_modules/source-map-resolve": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz",
- "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==",
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
"dev": true,
"dependencies": {
"atob": "^2.1.2",
- "decode-uri-component": "^0.2.0"
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
}
},
"node_modules/source-map-support": {
@@ -14674,9 +14860,9 @@
}
},
"node_modules/svgo/node_modules/css-what": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz",
- "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz",
+ "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==",
"dev": true,
"engines": {
"node": ">= 6"
@@ -14998,12 +15184,12 @@
}
},
"node_modules/ts-node": {
- "version": "10.2.1",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.2.1.tgz",
- "integrity": "sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==",
+ "version": "10.3.1",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.3.1.tgz",
+ "integrity": "sha512-Yw3W2mYzhHfCHOICGNJqa0i+rbL0rAyg7ZIHxU+K4pgY8gd2Lh1j+XbHCusJMykbj6RZMJVOY0MlHVd+GOivcw==",
"dev": true,
"dependencies": {
- "@cspotcode/source-map-support": "0.6.1",
+ "@cspotcode/source-map-support": "0.7.0",
"@tsconfig/node10": "^1.0.7",
"@tsconfig/node12": "^1.0.7",
"@tsconfig/node14": "^1.0.0",
@@ -15023,9 +15209,6 @@
"ts-node-transpile-only": "dist/bin-transpile.js",
"ts-script": "dist/bin-script-deprecated.js"
},
- "engines": {
- "node": ">=12.0.0"
- },
"peerDependencies": {
"@swc/core": ">=1.2.50",
"@swc/wasm": ">=1.2.50",
@@ -15492,9 +15675,9 @@
}
},
"node_modules/webpack": {
- "version": "5.58.1",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.58.1.tgz",
- "integrity": "sha512-4Z/dmbTU+VmkCb2XNgW7wkE5TfEcSooclprn/UEuVeAkwHhn07OcgUsyaKHGtCY/VobjnsYBlyhKeMLiSoOqPg==",
+ "version": "5.59.1",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.59.1.tgz",
+ "integrity": "sha512-I01IQV9K96FlpXX3V0L4nvd7gb0r7thfuu1IfT2P4uOHOA77nKARAKDYGe/tScSHKnffNIyQhLC8kRXzY4KEHQ==",
"dev": true,
"peer": true,
"dependencies": {
@@ -16401,55 +16584,12 @@
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
},
"node_modules/wide-align": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
- "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
"dev": true,
"dependencies": {
- "string-width": "^1.0.2 || 2"
- }
- },
- "node_modules/wide-align/node_modules/ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/wide-align/node_modules/is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/wide-align/node_modules/string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "dev": true,
- "dependencies": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/wide-align/node_modules/strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
+ "string-width": "^1.0.2 || 2 || 3 || 4"
}
},
"node_modules/wildcard": {
@@ -16639,16 +16779,16 @@
}
},
"@angular-devkit/build-angular": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-12.2.9.tgz",
- "integrity": "sha512-A8yddhGpUnrTcA4WCiUxwklFbfkNMfvlST5CT9VLVjz4MEwwOpdaNmIF39+NMr4XTgOBbP6Bq/t3ciIsB5+/Uw==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-12.2.11.tgz",
+ "integrity": "sha512-chMVR0ZEw0sRlny5eXZQ83dK0KNOzBJaa6ERwIubuQLB555DWpkn9L0E2EnRb7qwe2k+Uggx9GiZD2Nq9z+88A==",
"dev": true,
"requires": {
"@ampproject/remapping": "1.0.1",
- "@angular-devkit/architect": "0.1202.9",
- "@angular-devkit/build-optimizer": "0.1202.9",
- "@angular-devkit/build-webpack": "0.1202.9",
- "@angular-devkit/core": "12.2.9",
+ "@angular-devkit/architect": "0.1202.11",
+ "@angular-devkit/build-optimizer": "0.1202.11",
+ "@angular-devkit/build-webpack": "0.1202.11",
+ "@angular-devkit/core": "12.2.11",
"@babel/core": "7.14.8",
"@babel/generator": "7.14.8",
"@babel/helper-annotate-as-pure": "7.14.5",
@@ -16660,7 +16800,7 @@
"@babel/template": "7.14.5",
"@discoveryjs/json-ext": "0.5.3",
"@jsdevtools/coverage-istanbul-loader": "3.0.5",
- "@ngtools/webpack": "12.2.9",
+ "@ngtools/webpack": "12.2.11",
"ansi-colors": "4.1.1",
"babel-loader": "8.2.2",
"browserslist": "^4.9.1",
@@ -16669,11 +16809,11 @@
"circular-dependency-plugin": "5.2.2",
"copy-webpack-plugin": "9.0.1",
"core-js": "3.16.0",
- "critters": "0.0.10",
+ "critters": "0.0.11",
"css-loader": "6.2.0",
"css-minimizer-webpack-plugin": "3.0.2",
- "esbuild": "0.13.4",
- "esbuild-wasm": "0.13.4",
+ "esbuild": "0.13.8",
+ "esbuild-wasm": "0.13.8",
"find-cache-dir": "3.3.1",
"glob": "7.1.7",
"https-proxy-agent": "5.0.0",
@@ -16683,7 +16823,7 @@
"less-loader": "10.0.1",
"license-webpack-plugin": "2.3.20",
"loader-utils": "2.0.0",
- "mini-css-extract-plugin": "2.2.1",
+ "mini-css-extract-plugin": "2.4.2",
"minimatch": "3.0.4",
"open": "8.2.1",
"ora": "5.4.1",
@@ -16717,19 +16857,19 @@
},
"dependencies": {
"@angular-devkit/architect": {
- "version": "0.1202.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.9.tgz",
- "integrity": "sha512-s2NcFqZjsdYoR0vhJWLCwykF6hG7F0C5fJJs49i6IJMKj5Ai58z7d2IFYvD8nA60paMvjFS14OQ+E/FEEEZ88Q==",
+ "version": "0.1202.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.11.tgz",
+ "integrity": "sha512-9veul0Hse+4yGxfQW6AfeWYhxE6CM/EtrvGkv4JCrYJVVkfGW64EVG1p2nJt4yVk69iA2f+On3c4t1uXKtLy/Q==",
"dev": true,
"requires": {
- "@angular-devkit/core": "12.2.9",
+ "@angular-devkit/core": "12.2.11",
"rxjs": "6.6.7"
}
},
"@angular-devkit/core": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.9.tgz",
- "integrity": "sha512-iPHQiga08bbryiVq3QYzwpuq9sNb8CB/MVy65MHJ0fuW1z6RYDeUh1EziitBBUT2d81KWKPO1wQ2DuUoxOg4mg==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.11.tgz",
+ "integrity": "sha512-JgOKDr6zQu/uVZ5le5shgCeIoq3zQvybZGwxjkdWZdoO8rc5oggoiB2PZrPStolhIjFkQ2/mUvhtqnn7D+w8UA==",
"dev": true,
"requires": {
"ajv": "8.6.2",
@@ -16851,9 +16991,9 @@
}
},
"@angular-devkit/build-optimizer": {
- "version": "0.1202.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1202.9.tgz",
- "integrity": "sha512-yDR7f2fRWzJdqa7U0eIYu5fCRIae3tcSsYE18UPiV5ypGK3talMIpZ1ibkklr9Nm9SAB6Js1/EdVBGB5jo3R9A==",
+ "version": "0.1202.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1202.11.tgz",
+ "integrity": "sha512-3iU2q8QYrF7bSxffcrvYrvs9BQrLGHLe3MFyNfU3ps38c6CmnMsnR3RODmDZZgkgk9jN45y+WGmkF46ydiOHtA==",
"dev": true,
"requires": {
"source-map": "0.7.3",
@@ -16862,29 +17002,29 @@
}
},
"@angular-devkit/build-webpack": {
- "version": "0.1202.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1202.9.tgz",
- "integrity": "sha512-UKVxFTRSyDpQDxM1yk1OJiynhbryrbsy+WgZ/gFcnZcrRGtrpAWOq+uMXfq05zET6CNqpOKBnxy9LSHAwXR5Ig==",
+ "version": "0.1202.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1202.11.tgz",
+ "integrity": "sha512-xex0/8G2o9v0gr+oVAc3QdRyPKTBWmmhOR3K3fj4a7gvhpnE9ByHxemzflZcDwpE8K7YkMX8kTlFjkog/dSXNw==",
"dev": true,
"requires": {
- "@angular-devkit/architect": "0.1202.9",
+ "@angular-devkit/architect": "0.1202.11",
"rxjs": "6.6.7"
},
"dependencies": {
"@angular-devkit/architect": {
- "version": "0.1202.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.9.tgz",
- "integrity": "sha512-s2NcFqZjsdYoR0vhJWLCwykF6hG7F0C5fJJs49i6IJMKj5Ai58z7d2IFYvD8nA60paMvjFS14OQ+E/FEEEZ88Q==",
+ "version": "0.1202.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.11.tgz",
+ "integrity": "sha512-9veul0Hse+4yGxfQW6AfeWYhxE6CM/EtrvGkv4JCrYJVVkfGW64EVG1p2nJt4yVk69iA2f+On3c4t1uXKtLy/Q==",
"dev": true,
"requires": {
- "@angular-devkit/core": "12.2.9",
+ "@angular-devkit/core": "12.2.11",
"rxjs": "6.6.7"
}
},
"@angular-devkit/core": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.9.tgz",
- "integrity": "sha512-iPHQiga08bbryiVq3QYzwpuq9sNb8CB/MVy65MHJ0fuW1z6RYDeUh1EziitBBUT2d81KWKPO1wQ2DuUoxOg4mg==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.11.tgz",
+ "integrity": "sha512-JgOKDr6zQu/uVZ5le5shgCeIoq3zQvybZGwxjkdWZdoO8rc5oggoiB2PZrPStolhIjFkQ2/mUvhtqnn7D+w8UA==",
"dev": true,
"requires": {
"ajv": "8.6.2",
@@ -16962,20 +17102,20 @@
}
},
"@angular-devkit/schematics": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.2.9.tgz",
- "integrity": "sha512-OcMDCdlIxiir8XntrNXdXEPi9/8BRx54oYZeRosr0sJZlz4pPzsHs36t5uX2DURYYMkNNMaBnf2luUIC+77ZsA==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.2.11.tgz",
+ "integrity": "sha512-7ucnRGGRGsWqXhvFuK7oAgXMkWO58jmA9CQzXTWCNT5EFCUeyBj2eNNndI4NlWE/LgeKYn7UhUNREzdBrcDiKw==",
"dev": true,
"requires": {
- "@angular-devkit/core": "12.2.9",
+ "@angular-devkit/core": "12.2.11",
"ora": "5.4.1",
"rxjs": "6.6.7"
},
"dependencies": {
"@angular-devkit/core": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.9.tgz",
- "integrity": "sha512-iPHQiga08bbryiVq3QYzwpuq9sNb8CB/MVy65MHJ0fuW1z6RYDeUh1EziitBBUT2d81KWKPO1wQ2DuUoxOg4mg==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.11.tgz",
+ "integrity": "sha512-JgOKDr6zQu/uVZ5le5shgCeIoq3zQvybZGwxjkdWZdoO8rc5oggoiB2PZrPStolhIjFkQ2/mUvhtqnn7D+w8UA==",
"dev": true,
"requires": {
"ajv": "8.6.2",
@@ -17016,15 +17156,15 @@
}
},
"@angular/cli": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-12.2.9.tgz",
- "integrity": "sha512-aYAb6LkqIpKOZE8Kkhst5NNWpM4W1o1mmPTt6Nm6b/4wVLSC+mDp1IBCJSihDWysDetXA5J3kNJ4R2XnpHpIKw==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-12.2.11.tgz",
+ "integrity": "sha512-zstz/oH0BBWC1n1a6oSFLSaSCDUCoaawG8a83E61MN65wYaCuwIW+Z7Lz3FiF7P4Ce16T56ZwJPIA5SjS7KBhg==",
"dev": true,
"requires": {
- "@angular-devkit/architect": "0.1202.9",
- "@angular-devkit/core": "12.2.9",
- "@angular-devkit/schematics": "12.2.9",
- "@schematics/angular": "12.2.9",
+ "@angular-devkit/architect": "0.1202.11",
+ "@angular-devkit/core": "12.2.11",
+ "@angular-devkit/schematics": "12.2.11",
+ "@schematics/angular": "12.2.11",
"@yarnpkg/lockfile": "1.1.0",
"ansi-colors": "4.1.1",
"debug": "4.3.2",
@@ -17043,19 +17183,19 @@
},
"dependencies": {
"@angular-devkit/architect": {
- "version": "0.1202.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.9.tgz",
- "integrity": "sha512-s2NcFqZjsdYoR0vhJWLCwykF6hG7F0C5fJJs49i6IJMKj5Ai58z7d2IFYvD8nA60paMvjFS14OQ+E/FEEEZ88Q==",
+ "version": "0.1202.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.11.tgz",
+ "integrity": "sha512-9veul0Hse+4yGxfQW6AfeWYhxE6CM/EtrvGkv4JCrYJVVkfGW64EVG1p2nJt4yVk69iA2f+On3c4t1uXKtLy/Q==",
"dev": true,
"requires": {
- "@angular-devkit/core": "12.2.9",
+ "@angular-devkit/core": "12.2.11",
"rxjs": "6.6.7"
}
},
"@angular-devkit/core": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.9.tgz",
- "integrity": "sha512-iPHQiga08bbryiVq3QYzwpuq9sNb8CB/MVy65MHJ0fuW1z6RYDeUh1EziitBBUT2d81KWKPO1wQ2DuUoxOg4mg==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.11.tgz",
+ "integrity": "sha512-JgOKDr6zQu/uVZ5le5shgCeIoq3zQvybZGwxjkdWZdoO8rc5oggoiB2PZrPStolhIjFkQ2/mUvhtqnn7D+w8UA==",
"dev": true,
"requires": {
"ajv": "8.6.2",
@@ -17096,25 +17236,25 @@
}
},
"@angular/common": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/common/-/common-12.2.9.tgz",
- "integrity": "sha512-V7leBrq80CSJWHWVE3LEL6Z6onP2ibsITY3++86Uddz8AxzfOtNRslbs4/qCWc82nT7CIEn8a28NLP/BdOwNew==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/common/-/common-12.2.11.tgz",
+ "integrity": "sha512-/3QS5YaHfm2taJYUVes076ZMpL2GRYVW3HDbHXiRNjoC9EMqQ7ahRD9RPFC8XUk709JuqzonE3bB+N5Ld3mzIA==",
"requires": {
"tslib": "^2.2.0"
}
},
"@angular/compiler": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-12.2.9.tgz",
- "integrity": "sha512-87Qn8HuQ+6ECUnapQxpgIvwuUs6i1oM6lmLSKrYe0/WpIzTabB30eXWCKfvqYrv516cMdrq+nLCIXJx1tPqzSw==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-12.2.11.tgz",
+ "integrity": "sha512-78b5Uf+79gOKEyF/ixFAGJANNHnhueofSxgToBmJkTTpqTX6Xzdfzw8W+ehpJADp52eBjmZ+rv7b9sgBsiJ1tg==",
"requires": {
"tslib": "^2.2.0"
}
},
"@angular/compiler-cli": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-12.2.9.tgz",
- "integrity": "sha512-jswNKFm3MNcY4oDO/8HcFLLVxDEcTOyqp9CeKzlbjBKb04Ntjaqpm9CKzlxLOtJJj9BSMHTz1CjE0hSNv76NPg==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-12.2.11.tgz",
+ "integrity": "sha512-mOEyAQQS28omIGOw71jXnAI+GLxLVHhsa5vcS9Cy+HLfgJzysTngwdKNO7iJvalsyAsb9EjJ3R82XRKKJspV0g==",
"dev": true,
"requires": {
"@babel/core": "^7.8.6",
@@ -17142,47 +17282,47 @@
}
},
"@angular/core": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/core/-/core-12.2.9.tgz",
- "integrity": "sha512-RgUmn0YM4GMcViTEkWxDVGCyz8+subF+98dJie+bwJszATMxRK2TSINEg2X/Y0LgNxpRt4mKzIK2kz62oaDH7g==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/core/-/core-12.2.11.tgz",
+ "integrity": "sha512-wzCFtVFdQlXJlzWpWNz3w8cDzhYzuO1qDqey15Wd4zPR8c8pDx3/XCZXSziskaUzA+fVzgHHSwQnOi9XSFFjzA==",
"requires": {
"tslib": "^2.2.0"
}
},
"@angular/forms": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-12.2.9.tgz",
- "integrity": "sha512-DugLX9h/hmphjdx0wGOp9koEpzFZpcMiYXfYO2rLyzc1NwopAcbSJTCvU+adfShZgh/b5v+7rb5n10JROj/ODw==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-12.2.11.tgz",
+ "integrity": "sha512-mylti7rtz2FcM3hwPSj2JnX8y8BrXmzrjEWjcLlXmwoMzv/M3vY5HlgKzOmPN03bVgxC7b7EFfGMXfJ3YoPWpg==",
"requires": {
"tslib": "^2.2.0"
}
},
"@angular/language-service": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-12.2.9.tgz",
- "integrity": "sha512-q6WH8CxS4nXKnIR/imQbRYTdP0PW63tDogzlol6gnB/jEmGgmQJphYRVeDqr5owIxuzCB06JkWXPVsyHY3yHvA==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-12.2.11.tgz",
+ "integrity": "sha512-ag0YlWvVmNQWKGB14SFgaPcWuYQJpr8OrD2JoY91P+WWpv6oawemHRVF1rvFjmPf9byXv4mnPK1h36qI7EJSpw==",
"dev": true
},
"@angular/platform-browser": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.2.9.tgz",
- "integrity": "sha512-moO5Fz4b15EWYQthOaQThmy0gm/d5W/+9RmCiZs2ZHiVjuC358lnFy626VdkZmJ/MLwMwqHpyQS9JhCYOZGOdw==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.2.11.tgz",
+ "integrity": "sha512-uJEnVOK3M1SrCWJoW2jFx5F8pUCbSISai7dbTBVc+/Gx6e9ZuNzBVOooLvSzV96DurhTV7xGSXR5Ry75UNZ48A==",
"requires": {
"tslib": "^2.2.0"
}
},
"@angular/platform-browser-dynamic": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.2.9.tgz",
- "integrity": "sha512-bBNsq2rrL08IaVCps9j54iu3Xoxf1PkjtbEyP5EqXbjccsF7KDM32+5Cjjf0AwYtzaWbjXPSP7awAXpCCsqSdA==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.2.11.tgz",
+ "integrity": "sha512-TF80norTsBbJiUsqo6IUNALV2W1YkEa5QAB6RkTrb1K/V6oGcWcGfqSyCMbjRHPEZTwiAzz4cYEmip5kFtE+oQ==",
"requires": {
"tslib": "^2.2.0"
}
},
"@angular/router": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular/router/-/router-12.2.9.tgz",
- "integrity": "sha512-Qh7Ugh6N7PIK4+ydRPHiKy8Q3wlB/ieXVyqYgkNfGFZ+QtNHpWgWBUXJuGPnmKk0Yn02EwSPOuPWEHV92rayhw==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular/router/-/router-12.2.11.tgz",
+ "integrity": "sha512-iqQujHKLDpE+xJwXqRY1U83xfDnmb7LIQ0UL6ORSw6mqDTxIeMXfVKRqux1dIlWX+ysU0uTHuug49R8T9q0fhg==",
"requires": {
"tslib": "^2.2.0"
}
@@ -18355,9 +18495,9 @@
}
},
"@babel/preset-modules": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz",
- "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==",
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
+ "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
@@ -18440,9 +18580,9 @@
"dev": true
},
"@cspotcode/source-map-support": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.6.1.tgz",
- "integrity": "sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg==",
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz",
+ "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==",
"dev": true,
"requires": {
"@cspotcode/source-map-consumer": "0.8.0"
@@ -18461,11 +18601,11 @@
"dev": true
},
"@ionic/angular": {
- "version": "5.8.3",
- "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-5.8.3.tgz",
- "integrity": "sha512-0girV4YrJEZ/PMFNmIOHQjsFfoqufOotpSx4LEA7jPqiUDoc7C5H5mqdzVPUY6aAhA9db3ZUO1fJ7GYd/fV2bg==",
+ "version": "5.8.4",
+ "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-5.8.4.tgz",
+ "integrity": "sha512-pvy7qOTVih3mqcyIV6C3BK8seeZOEoanRFw+Z5m+soXDcvgrouHBBAKzURu2RUx8uDZqlX38Pkn89ontvqIZUg==",
"requires": {
- "@ionic/core": "5.8.3",
+ "@ionic/core": "5.8.4",
"tslib": "^1.9.3"
},
"dependencies": {
@@ -18533,9 +18673,9 @@
}
},
"@ionic/core": {
- "version": "5.8.3",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-5.8.3.tgz",
- "integrity": "sha512-wKDKjLV4QsWlxw4tWEhUtGtLgSdJvNdtMyVRROWHHSOA1V3t5Wsktt09Xroi14hPOdjR+LxCM5sWcuHep4lz5g==",
+ "version": "5.8.4",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-5.8.4.tgz",
+ "integrity": "sha512-ioaH7wXAtexcpk23III0KArjSXStkpPrpZ5BCNkyter3EbOmDVd8XIXRcT86zRG68rbGI7Pd9GrugxeaDyMk/g==",
"requires": {
"@stencil/core": "^2.4.0",
"ionicons": "^5.5.3",
@@ -18592,9 +18732,9 @@
}
},
"@ngtools/webpack": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-12.2.9.tgz",
- "integrity": "sha512-IQkzvompjLdWbZ+33crtyVF8huF53C36k1FNFdq3x2j4Kw4ssDd6K9fq3aZpRCK0J8O79HJ5j4QH6ZtWjwajLg==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-12.2.11.tgz",
+ "integrity": "sha512-OgNClb9EhYR9lhVRR1RnWT1Xh75aI70IB4eQaDSiVOkBc6aymLzeskZ2WmkZWsDGlJBLOamnoB0XUPuU1GpmrQ==",
"dev": true,
"requires": {}
},
@@ -18688,20 +18828,20 @@
}
},
"@schematics/angular": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.2.9.tgz",
- "integrity": "sha512-IIczXVwegREekub0+bBxOc0dDL7j8p5rG6rB/2btJRR+tg04milP+BkvnQgksmIkW1OcZ5beRSB37R3jY/W/PA==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.2.11.tgz",
+ "integrity": "sha512-Xou0CSSD88LVxfl7GzqY3TYUG6mM4cN61zE7gTzqshCx3rR0JkbLn0Z+q67KhxYUs9qiPT5MHL0W06nJ0iLzDg==",
"dev": true,
"requires": {
- "@angular-devkit/core": "12.2.9",
- "@angular-devkit/schematics": "12.2.9",
+ "@angular-devkit/core": "12.2.11",
+ "@angular-devkit/schematics": "12.2.11",
"jsonc-parser": "3.0.0"
},
"dependencies": {
"@angular-devkit/core": {
- "version": "12.2.9",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.9.tgz",
- "integrity": "sha512-iPHQiga08bbryiVq3QYzwpuq9sNb8CB/MVy65MHJ0fuW1z6RYDeUh1EziitBBUT2d81KWKPO1wQ2DuUoxOg4mg==",
+ "version": "12.2.11",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.11.tgz",
+ "integrity": "sha512-JgOKDr6zQu/uVZ5le5shgCeIoq3zQvybZGwxjkdWZdoO8rc5oggoiB2PZrPStolhIjFkQ2/mUvhtqnn7D+w8UA==",
"dev": true,
"requires": {
"ajv": "8.6.2",
@@ -18747,9 +18887,9 @@
"integrity": "sha512-1dhiG03VkfEwSLx/JPKVms6srAbYFQgwfSGhwpUKMDliMXuAHGVaueStmqzVxn3JpH/HEVz0QW8w/PXHqjdiIg=="
},
"@stencil/core": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.8.1.tgz",
- "integrity": "sha512-iv9J6oLO/lv7/aO45M05yw3pp1J7olY400vlOZgdMVs3s5zHfalY1ZPYM0KyqU4+7DZuadKYbd0aQZ/g2PInZw=="
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.9.0.tgz",
+ "integrity": "sha512-kY3xYolZoJO1MKslL0NQccHy72R3TIl1prHgfmIrEoGcnMgc6uiskdWaGMuI5/sCGz9T+QuTVz76B1H2ySyBZg=="
},
"@tootallnate/once": {
"version": "1.1.2",
@@ -18814,9 +18954,9 @@
"dev": true
},
"@types/glob": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz",
- "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
"dev": true,
"requires": {
"@types/minimatch": "*",
@@ -18836,9 +18976,9 @@
"dev": true
},
"@types/marked": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@types/marked/-/marked-3.0.1.tgz",
- "integrity": "sha512-jry/WUAC511P2NBCeiCkfTRCN2VXobeeQa8p8gImOYsRfnuIVfeEsqOJ1pk+CzCwfMCdv3dkTQRCYaNkkFGtxw==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/marked/-/marked-3.0.2.tgz",
+ "integrity": "sha512-mGYI9qFs+i5eYaytWKBbtEMbIkrXGKuhsDpDcj70ogKS2gk1NmgEy9Z3VEKz922Lfms6eITXXqv5idlX7C/irw==",
"dev": true
},
"@types/minimatch": {
@@ -18854,9 +18994,9 @@
"dev": true
},
"@types/node": {
- "version": "16.10.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz",
- "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==",
+ "version": "16.11.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.2.tgz",
+ "integrity": "sha512-w34LtBB0OkDTs19FQHXy4Ig/TOXI4zqvXS2Kk1PAsRKZ0I+nik7LlMYxckW0tSNGtvWmzB+mrCTbuEjuB9DVsw==",
"dev": true
},
"@types/parse-json": {
@@ -19423,6 +19563,12 @@
"postcss-value-parser": "^4.1.0"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -19706,16 +19852,16 @@
}
},
"browserslist": {
- "version": "4.17.3",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz",
- "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==",
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.4.tgz",
+ "integrity": "sha512-Zg7RpbZpIJRW3am9Lyckue7PLytvVxxhJj1CaJVlCWENsGEAOlnlt8X0ZxGRPp7Bt9o8tIRM5SEXy4BCPMJjLQ==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001264",
- "electron-to-chromium": "^1.3.857",
+ "caniuse-lite": "^1.0.30001265",
+ "electron-to-chromium": "^1.3.867",
"escalade": "^3.1.1",
- "node-releases": "^1.1.77",
- "picocolors": "^0.2.1"
+ "node-releases": "^2.0.0",
+ "picocolors": "^1.0.0"
}
},
"buffer": {
@@ -19851,9 +19997,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001265",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz",
- "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==",
+ "version": "1.0.30001270",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001270.tgz",
+ "integrity": "sha512-TcIC7AyNWXhcOmv2KftOl1ShFAaHQYcB/EPL/hEyMrcS7ZX0/DvV1aoy6BzV0+16wTpoAyTMGDNAJfSqS/rz7A==",
"dev": true
},
"canonical-path": {
@@ -20099,9 +20245,9 @@
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
"colord": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/colord/-/colord-2.8.0.tgz",
- "integrity": "sha512-kNkVV4KFta3TYQv0bzs4xNwLaeag261pxgzGQSh4cQ1rEhYjcTJfFRP0SDlbhLONg0eSoLzrDd79PosjbltufA==",
+ "version": "2.9.1",
+ "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.1.tgz",
+ "integrity": "sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw==",
"dev": true
},
"colorette": {
@@ -20285,14 +20431,14 @@
}
},
"core-js": {
- "version": "3.18.2",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.2.tgz",
- "integrity": "sha512-zNhPOUoSgoizoSQFdX1MeZO16ORRb9FFQLts8gSYbZU5FcgXhp24iMWMxnOQo5uIaIG7/6FA/IqJPwev1o9ZXQ=="
+ "version": "3.18.3",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.3.tgz",
+ "integrity": "sha512-tReEhtMReZaPFVw7dajMx0vlsz3oOb8ajgPoHVYGxr8ErnZ6PcYEvvmjGmXlfpnxpkYSdOQttjB+MvVbCGfvLw=="
},
"core-js-compat": {
- "version": "3.18.2",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.2.tgz",
- "integrity": "sha512-25VJYCJtGjZwLguj7d66oiHfmnVw3TMOZ0zV8DyMJp/aeQ3OjR519iOOeck08HMyVVRAqXxafc2Hl+5QstJrsQ==",
+ "version": "3.18.3",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.3.tgz",
+ "integrity": "sha512-4zP6/y0a2RTHN5bRGT7PTq9lVt3WzvffTNjqnTKsXhkAYNDTkdCLOIfAdOLcQ/7TDdyRj3c+NeHe1NmF1eDScw==",
"dev": true,
"requires": {
"browserslist": "^4.17.3",
@@ -20333,15 +20479,16 @@
"dev": true
},
"critters": {
- "version": "0.0.10",
- "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.10.tgz",
- "integrity": "sha512-p5VKhP1803+f+0Jq5P03w1SbiHtpAKm+1EpJHkiPxQPq0Vu9QLZHviJ02GRrWi0dlcJqrmzMWInbwp4d22RsGw==",
+ "version": "0.0.11",
+ "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.11.tgz",
+ "integrity": "sha512-E1XlhQTmf0Y2Q6hYVrXKxibxps2LNarpZaDCRNaxA1LA5LxlgoIPN0rcOzFVlwRD47iNYhVtD4DmGtgr2edrlQ==",
"dev": true,
"requires": {
"chalk": "^4.1.0",
- "css": "^3.0.0",
+ "css-select": "^1.2.0",
"parse5": "^6.0.1",
"parse5-htmlparser2-tree-adapter": "^6.0.1",
+ "postcss": "^8.3.7",
"pretty-bytes": "^5.3.0"
},
"dependencies": {
@@ -20391,6 +20538,17 @@
"integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
"dev": true
},
+ "postcss": {
+ "version": "8.3.11",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz",
+ "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==",
+ "dev": true,
+ "requires": {
+ "nanoid": "^3.1.30",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^0.6.2"
+ }
+ },
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -20433,14 +20591,15 @@
}
},
"css": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz",
- "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==",
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
+ "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
"dev": true,
"requires": {
- "inherits": "^2.0.4",
+ "inherits": "^2.0.3",
"source-map": "^0.6.1",
- "source-map-resolve": "^0.6.0"
+ "source-map-resolve": "^0.5.2",
+ "urix": "^0.1.0"
},
"dependencies": {
"source-map": {
@@ -20460,6 +20619,12 @@
"postcss": "^7.0.5"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -20509,6 +20674,12 @@
"integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
"dev": true
},
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -20595,39 +20766,6 @@
"dev": true,
"requires": {
"css": "^2.0.0"
- },
- "dependencies": {
- "css": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
- "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "source-map": "^0.6.1",
- "source-map-resolve": "^0.5.2",
- "urix": "^0.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- },
- "source-map-resolve": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
- "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
- "dev": true,
- "requires": {
- "atob": "^2.1.2",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
- }
- }
}
},
"css-prefers-color-scheme": {
@@ -20639,6 +20777,12 @@
"postcss": "^7.0.5"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -21058,9 +21202,9 @@
"dev": true
},
"electron-to-chromium": {
- "version": "1.3.864",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.864.tgz",
- "integrity": "sha512-v4rbad8GO6/yVI92WOeU9Wgxc4NA0n4f6P1FvZTY+jyY7JHEhw3bduYu60v3Q1h81Cg6eo4ApZrFPuycwd5hGw==",
+ "version": "1.3.876",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.876.tgz",
+ "integrity": "sha512-a6LR4738psrubCtGx5HxM/gNlrIsh4eFTNnokgOqvQo81GWd07lLcOjITkAXn2y4lIp18vgS+DGnehj+/oEAxQ==",
"dev": true
},
"emoji-regex": {
@@ -21166,145 +21310,153 @@
"peer": true
},
"esbuild": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.4.tgz",
- "integrity": "sha512-wMA5eUwpavTBiNl+It6j8OQuKVh69l6z4DKDLzoTIqC+gChnPpcmqdA8WNHptUHRnfyML+mKEQPlW7Mybj8gHg==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.8.tgz",
+ "integrity": "sha512-A4af7G7YZLfG5OnARJRMtlpEsCkq/zHZQXewgPA864l9D6VjjbH1SuFYK/OSV6BtHwDGkdwyRrX0qQFLnMfUcw==",
"dev": true,
"optional": true,
"requires": {
- "esbuild-android-arm64": "0.13.4",
- "esbuild-darwin-64": "0.13.4",
- "esbuild-darwin-arm64": "0.13.4",
- "esbuild-freebsd-64": "0.13.4",
- "esbuild-freebsd-arm64": "0.13.4",
- "esbuild-linux-32": "0.13.4",
- "esbuild-linux-64": "0.13.4",
- "esbuild-linux-arm": "0.13.4",
- "esbuild-linux-arm64": "0.13.4",
- "esbuild-linux-mips64le": "0.13.4",
- "esbuild-linux-ppc64le": "0.13.4",
- "esbuild-openbsd-64": "0.13.4",
- "esbuild-sunos-64": "0.13.4",
- "esbuild-windows-32": "0.13.4",
- "esbuild-windows-64": "0.13.4",
- "esbuild-windows-arm64": "0.13.4"
+ "esbuild-android-arm64": "0.13.8",
+ "esbuild-darwin-64": "0.13.8",
+ "esbuild-darwin-arm64": "0.13.8",
+ "esbuild-freebsd-64": "0.13.8",
+ "esbuild-freebsd-arm64": "0.13.8",
+ "esbuild-linux-32": "0.13.8",
+ "esbuild-linux-64": "0.13.8",
+ "esbuild-linux-arm": "0.13.8",
+ "esbuild-linux-arm64": "0.13.8",
+ "esbuild-linux-mips64le": "0.13.8",
+ "esbuild-linux-ppc64le": "0.13.8",
+ "esbuild-netbsd-64": "0.13.8",
+ "esbuild-openbsd-64": "0.13.8",
+ "esbuild-sunos-64": "0.13.8",
+ "esbuild-windows-32": "0.13.8",
+ "esbuild-windows-64": "0.13.8",
+ "esbuild-windows-arm64": "0.13.8"
}
},
"esbuild-android-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.4.tgz",
- "integrity": "sha512-elDJt+jNyoHFId0/dKsuVYUPke3EcquIyUwzJCH17a3ERglN3A9aMBI5zbz+xNZ+FbaDNdpn0RaJHCFLbZX+fA==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.8.tgz",
+ "integrity": "sha512-AilbChndywpk7CdKkNSZ9klxl+9MboLctXd9LwLo3b0dawmOF/i/t2U5d8LM6SbT1Xw36F8yngSUPrd8yPs2RA==",
"dev": true,
"optional": true
},
"esbuild-darwin-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.4.tgz",
- "integrity": "sha512-zJQGyHRAdZUXlRzbN7W+7ykmEiGC+bq3Gc4GxKYjjWTgDRSEly98ym+vRNkDjXwXYD3gGzSwvH35+MiHAtWvLA==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.8.tgz",
+ "integrity": "sha512-b6sdiT84zV5LVaoF+UoMVGJzR/iE2vNUfUDfFQGrm4LBwM/PWXweKpuu6RD9mcyCq18cLxkP6w/LD/w9DtX3ng==",
"dev": true,
"optional": true
},
"esbuild-darwin-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.4.tgz",
- "integrity": "sha512-r8oYvAtqSGq8HNTZCAx4TdLE7jZiGhX9ooGi5AQAey37MA6XNaP8ZNlw9OCpcgpx3ryU2WctXwIqPzkHO7a8dg==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.8.tgz",
+ "integrity": "sha512-R8YuPiiJayuJJRUBG4H0VwkEKo6AvhJs2m7Tl0JaIer3u1FHHXwGhMxjJDmK+kXwTFPriSysPvcobXC/UrrZCQ==",
"dev": true,
"optional": true
},
"esbuild-freebsd-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.4.tgz",
- "integrity": "sha512-u9DRGkn09EN8+lCh6z7FKle7awi17PJRBuAKdRNgSo5ZrH/3m+mYaJK2PR2URHMpAfXiwJX341z231tSdVe3Yw==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.8.tgz",
+ "integrity": "sha512-zBn6urrn8FnKC+YSgDxdof9jhPCeU8kR/qaamlV4gI8R3KUaUK162WYM7UyFVAlj9N0MyD3AtB+hltzu4cysTw==",
"dev": true,
"optional": true
},
"esbuild-freebsd-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.4.tgz",
- "integrity": "sha512-q3B2k68Uf6gfjATjcK16DqxvjqRQkHL8aPoOfj4op+lSqegdXvBacB1d8jw8PxbWJ8JHpdTLdAVUYU80kotQXA==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.8.tgz",
+ "integrity": "sha512-pWW2slN7lGlkx0MOEBoUGwRX5UgSCLq3dy2c8RIOpiHtA87xAUpDBvZK10MykbT+aMfXc0NI2lu1X+6kI34xng==",
"dev": true,
"optional": true
},
"esbuild-linux-32": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.4.tgz",
- "integrity": "sha512-UUYJPHSiKAO8KoN3Ls/iZtgDLZvK5HarES96aolDPWZnq9FLx4dIHM/x2z4Rxv9IYqQ/DxlPoE2Co1UPBIYYeA==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.8.tgz",
+ "integrity": "sha512-T0I0ueeKVO/Is0CAeSEOG9s2jeNNb8jrrMwG9QBIm3UU18MRB60ERgkS2uV3fZ1vP2F8i3Z2e3Zju4lg9dhVmw==",
"dev": true,
"optional": true
},
"esbuild-linux-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.4.tgz",
- "integrity": "sha512-+RnohAKiiUW4UHLGRkNR1AnENW1gCuDWuygEtd4jxTNPIoeC7lbXGor7rtgjj9AdUzFgOEvAXyNNX01kJ8NueQ==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.8.tgz",
+ "integrity": "sha512-Bm8SYmFtvfDCIu9sjKppFXzRXn2BVpuCinU1ChTuMtdKI/7aPpXIrkqBNOgPTOQO9AylJJc1Zw6EvtKORhn64w==",
"dev": true,
"optional": true
},
"esbuild-linux-arm": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.4.tgz",
- "integrity": "sha512-BH5gKve4jglS7UPSsfwHSX79I5agC/lm4eKoRUEyo8lwQs89frQSRp2Xup+6SFQnxt3md5EsKcd2Dbkqeb3gPA==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.8.tgz",
+ "integrity": "sha512-4/HfcC40LJ4GPyboHA+db0jpFarTB628D1ifU+/5bunIgY+t6mHkJWyxWxAAE8wl/ZIuRYB9RJFdYpu1AXGPdg==",
"dev": true,
"optional": true
},
"esbuild-linux-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.4.tgz",
- "integrity": "sha512-+A188cAdd6QuSRxMIwRrWLjgphQA0LDAQ/ECVlrPVJwnx+1i64NjDZivoqPYLOTkSPIKntiWwMhhf0U5/RrPHQ==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.8.tgz",
+ "integrity": "sha512-X4pWZ+SL+FJ09chWFgRNO3F+YtvAQRcWh0uxKqZSWKiWodAB20flsW/OWFYLXBKiVCTeoGMvENZS/GeVac7+tQ==",
"dev": true,
"optional": true
},
"esbuild-linux-mips64le": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.4.tgz",
- "integrity": "sha512-0xkwtPaUkG5xMTFGaQPe1AadSe5QAiQuD4Gix1O9k5Xo/U8xGIkw9UFUTvfEUeu71vFb6ZgsIacfP1NLoFjWNw==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.8.tgz",
+ "integrity": "sha512-o7e0D+sqHKT31v+mwFircJFjwSKVd2nbkHEn4l9xQ1hLR+Bv8rnt3HqlblY3+sBdlrOTGSwz0ReROlKUMJyldA==",
"dev": true,
"optional": true
},
"esbuild-linux-ppc64le": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.4.tgz",
- "integrity": "sha512-E1+oJPP7A+j23GPo3CEpBhGwG1bni4B8IbTA3/3rvzjURwUMZdcN3Fhrz24rnjzdLSHmULtOE4VsbT42h1Om4Q==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.8.tgz",
+ "integrity": "sha512-eZSQ0ERsWkukJp2px/UWJHVNuy0lMoz/HZcRWAbB6reoaBw7S9vMzYNUnflfL3XA6WDs+dZn3ekHE4Y2uWLGig==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-netbsd-64": {
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.8.tgz",
+ "integrity": "sha512-gZX4kP7gVvOrvX0ZwgHmbuHczQUwqYppxqtoyC7VNd80t5nBHOFXVhWo2Ad/Lms0E8b+wwgI/WjZFTCpUHOg9Q==",
"dev": true,
"optional": true
},
"esbuild-openbsd-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.4.tgz",
- "integrity": "sha512-xEkI1o5HYxDzbv9jSox0EsDxpwraG09SRiKKv0W8pH6O3bt+zPSlnoK7+I7Q69tkvONkpIq5n2o+c55uq0X7cw==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.8.tgz",
+ "integrity": "sha512-afzza308X4WmcebexbTzAgfEWt9MUkdTvwIa8xOu4CM2qGbl2LanqEl8/LUs8jh6Gqw6WsicEK52GPrS9wvkcw==",
"dev": true,
"optional": true
},
"esbuild-sunos-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.4.tgz",
- "integrity": "sha512-bjXUMcODMnB6hQicLBBmmnBl7OMDyVpFahKvHGXJfDChIi5udiIRKCmFUFIRn+AUAKVlfrofRKdyPC7kBsbvGQ==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.8.tgz",
+ "integrity": "sha512-mWPZibmBbuMKD+LDN23LGcOZ2EawMYBONMXXHmbuxeT0XxCNwadbCVwUQ/2p5Dp5Kvf6mhrlIffcnWOiCBpiVw==",
"dev": true,
"optional": true
},
"esbuild-wasm": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.13.4.tgz",
- "integrity": "sha512-2dN7njr9/2QzKLqbTEgXr73vDbSqffdJMv4EfaMQoy04cej0owbGHH5apPgED0wN9I5e7sBT0/Q81tVy3wQBlA==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.13.8.tgz",
+ "integrity": "sha512-UbD+3nloiSpJWXTCInZQrqPe8Y+RLfDkY/5kEHiXsw/lmaEvibe69qTzQu16m5R9je/0bF7VYQ5jaEOq0z9lLA==",
"dev": true
},
"esbuild-windows-32": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.4.tgz",
- "integrity": "sha512-z4CH07pfyVY0XF98TCsGmLxKCl0kyvshKDbdpTekW9f2d+dJqn5mmoUyWhpSVJ0SfYWJg86FoD9nMbbaMVyGdg==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.8.tgz",
+ "integrity": "sha512-QsZ1HnWIcnIEApETZWw8HlOhDSWqdZX2SylU7IzGxOYyVcX7QI06ety/aDcn437mwyO7Ph4RrbhB+2ntM8kX8A==",
"dev": true,
"optional": true
},
"esbuild-windows-64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.4.tgz",
- "integrity": "sha512-uVL11vORRPjocGLYam67rwFLd0LvkrHEs+JG+1oJN4UD9MQmNGZPa4gBHo6hDpF+kqRJ9kXgQSeDqUyRy0tj/Q==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.8.tgz",
+ "integrity": "sha512-76Fb57B9eE/JmJi1QmUW0tRLQZfGo0it+JeYoCDTSlbTn7LV44ecOHIMJSSgZADUtRMWT9z0Kz186bnaB3amSg==",
"dev": true,
"optional": true
},
"esbuild-windows-arm64": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.4.tgz",
- "integrity": "sha512-vA6GLvptgftRcDcWngD5cMlL4f4LbL8JjU2UMT9yJ0MT5ra6hdZNFWnOeOoEtY4GtJ6OjZ0i+81sTqhAB0fMkg==",
+ "version": "0.13.8",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.8.tgz",
+ "integrity": "sha512-HW6Mtq5eTudllxY2YgT62MrVcn7oq2o8TAoAvDUhyiEmRmDY8tPwAhb1vxw5/cdkbukM3KdMYtksnUhF/ekWeg==",
"dev": true,
"optional": true
},
@@ -21692,6 +21844,11 @@
"micromatch": "^4.0.4"
}
},
+ "fast-json-patch": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.0.tgz",
+ "integrity": "sha512-IhpytlsVTRndz0hU5t0/MGzS/etxLlfrpG5V5M9mVbuj9TrJLWaMfsox9REM5rkuGX0T+5qjpe8XA1o0gZ42nA=="
+ },
"fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
@@ -21811,11 +21968,6 @@
"integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
"dev": true
},
- "foreach": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
- "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
- },
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
@@ -22806,9 +22958,9 @@
"dev": true
},
"is-core-module": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz",
- "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==",
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz",
+ "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==",
"dev": true,
"requires": {
"has": "^1.0.3"
@@ -23009,9 +23161,9 @@
"dev": true
},
"istanbul-lib-coverage": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz",
- "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
"dev": true
},
"istanbul-lib-instrument": {
@@ -23035,9 +23187,9 @@
}
},
"jest-worker": {
- "version": "27.2.5",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.5.tgz",
- "integrity": "sha512-HTjEPZtcNKZ4LnhSp02NEH4vE+5OpJ0EsOWYvGQpHgUMLngydESAAMH5Wd/asPf29+XUDQZszxpLg1BkIIA2aw==",
+ "version": "27.3.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz",
+ "integrity": "sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==",
"dev": true,
"requires": {
"@types/node": "*",
@@ -23102,14 +23254,6 @@
"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
"dev": true
},
- "json-pointer": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.1.tgz",
- "integrity": "sha512-3OvjqKdCBvH41DLpV4iSt6v2XhZXV1bPB4OROuknvUXI7ZQNofieCPkmE26stEJ9zdQuvIxDHCuYhfgxFAAs+Q==",
- "requires": {
- "foreach": "^2.0.4"
- }
- },
"json-schema": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
@@ -23154,11 +23298,6 @@
"integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
"dev": true
},
- "jsonpointerx": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/jsonpointerx/-/jsonpointerx-1.1.4.tgz",
- "integrity": "sha512-Mh8XOqCB5de7ErUH91V/bSOZ9WsoQln6hU8GvfXuUgdQEAR+2V6wmZxQG7cHljQXcfteC/bhHAmnDR/J8rO9NQ=="
- },
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
@@ -23674,9 +23813,9 @@
"dev": true
},
"mini-css-extract-plugin": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.2.1.tgz",
- "integrity": "sha512-A0GBXpz8WIPgh2HfASJ0EeY8grd2dGxmC4R8uTujFJXZY7zFy0nvYSYW6SKCLKlz7y45BdHONfaxZQMIZpeF/w==",
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.4.2.tgz",
+ "integrity": "sha512-ZmqShkn79D36uerdED+9qdo1ZYG8C1YsWvXu0UMJxurZnSdgz7gQKO2EGv8T55MhDqG3DYmGtizZNpM/UbTlcA==",
"dev": true,
"requires": {
"schema-utils": "^3.1.0"
@@ -23856,9 +23995,9 @@
"dev": true
},
"nanoid": {
- "version": "3.1.29",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.29.tgz",
- "integrity": "sha512-dW2pUSGZ8ZnCFIlBIA31SV8huOGCHb6OwzVCc7A69rb/a+SgPBwfmLvK5TKQ3INPbRkcI8a/Owo0XbiTNH19wg==",
+ "version": "3.1.30",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz",
+ "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==",
"dev": true
},
"nanomatch": {
@@ -23917,9 +24056,9 @@
"dev": true
},
"ng-qrcode": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/ng-qrcode/-/ng-qrcode-5.1.1.tgz",
- "integrity": "sha512-wf0lkZGreNDeWUO9lyyX3WtLC0TH7q1LukiXF4MnAEsXyqvI+b6dzuNp8oPZSkWDcGxHBHSRaSGF7KexP+42hQ==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ng-qrcode/-/ng-qrcode-5.2.0.tgz",
+ "integrity": "sha512-ild1nEULoKn2v5TpWz8aou8xEkM5h7wVXrvPLioAgvrSIgjD3+NM8bAkdOImb6eEFTMyN3LcqwlseNOUHyeOAQ==",
"requires": {
"qrcode": "^1.4.4",
"tslib": "^2.0.0"
@@ -24004,9 +24143,9 @@
}
},
"css-what": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz",
- "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz",
+ "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==",
"dev": true
},
"dom-serializer": {
@@ -24064,9 +24203,9 @@
}
},
"node-releases": {
- "version": "1.1.77",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz",
- "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz",
+ "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==",
"dev": true
},
"nopt": {
@@ -24752,9 +24891,9 @@
"dev": true
},
"picocolors": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
- "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
"dev": true
},
"picomatch": {
@@ -24876,6 +25015,12 @@
"postcss-selector-parser": "^6.0.2"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -24914,6 +25059,12 @@
"postcss-values-parser": "^2.0.0"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -24943,6 +25094,12 @@
"postcss-values-parser": "^2.0.0"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -24971,6 +25128,12 @@
"postcss-values-parser": "^2.0.1"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25000,6 +25163,12 @@
"postcss-values-parser": "^2.0.0"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25028,6 +25197,12 @@
"postcss-values-parser": "^2.0.0"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25076,6 +25251,12 @@
"postcss": "^7.0.14"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25104,6 +25285,12 @@
"postcss-values-parser": "^2.0.1"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25138,6 +25325,12 @@
"integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
"dev": true
},
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25183,6 +25376,12 @@
"integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
"dev": true
},
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25250,6 +25449,12 @@
"postcss-values-parser": "^2.0.0"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25278,6 +25483,12 @@
"postcss-values-parser": "^2.0.0"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25305,6 +25516,12 @@
"postcss": "^7.0.2"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25332,6 +25549,12 @@
"postcss": "^7.0.2"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25359,6 +25582,12 @@
"postcss": "^7.0.2"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25386,6 +25615,12 @@
"postcss": "^7.0.2"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25414,6 +25649,12 @@
"postcss-values-parser": "^2.0.0"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25452,6 +25693,12 @@
"postcss": "^7.0.2"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25481,6 +25728,12 @@
"postcss-values-parser": "^2.0.0"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25519,6 +25772,12 @@
"postcss": "^7.0.2"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25546,6 +25805,12 @@
"postcss": "^7.0.2"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25676,6 +25941,12 @@
"postcss": "^7.0.2"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25798,6 +26069,12 @@
"postcss": "^7.0.2"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25825,6 +26102,12 @@
"postcss": "^7.0.2"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25853,6 +26136,12 @@
"postcss-values-parser": "^2.0.0"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25916,6 +26205,12 @@
"postcss-selector-not": "^4.0.0"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -25950,6 +26245,12 @@
"integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
"dev": true
},
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -26008,6 +26309,12 @@
"postcss": "^7.0.2"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -26036,6 +26343,12 @@
"postcss": "^7.0.2"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -26064,6 +26377,12 @@
"postcss": "^7.0.2"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -26681,6 +27000,12 @@
"source-map": "0.6.1"
},
"dependencies": {
+ "picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true
+ },
"postcss": {
"version": "7.0.39",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
@@ -27169,19 +27494,6 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true
- },
- "source-map-resolve": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
- "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
- "dev": true,
- "requires": {
- "atob": "^2.1.2",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
- }
}
}
},
@@ -27333,13 +27645,16 @@
}
},
"source-map-resolve": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz",
- "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==",
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
"dev": true,
"requires": {
"atob": "^2.1.2",
- "decode-uri-component": "^0.2.0"
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
}
},
"source-map-support": {
@@ -27678,9 +27993,9 @@
}
},
"css-what": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz",
- "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz",
+ "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==",
"dev": true
},
"dom-serializer": {
@@ -27918,12 +28233,12 @@
"dev": true
},
"ts-node": {
- "version": "10.2.1",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.2.1.tgz",
- "integrity": "sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==",
+ "version": "10.3.1",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.3.1.tgz",
+ "integrity": "sha512-Yw3W2mYzhHfCHOICGNJqa0i+rbL0rAyg7ZIHxU+K4pgY8gd2Lh1j+XbHCusJMykbj6RZMJVOY0MlHVd+GOivcw==",
"dev": true,
"requires": {
- "@cspotcode/source-map-support": "0.6.1",
+ "@cspotcode/source-map-support": "0.7.0",
"@tsconfig/node10": "^1.0.7",
"@tsconfig/node12": "^1.0.7",
"@tsconfig/node14": "^1.0.0",
@@ -28300,9 +28615,9 @@
}
},
"webpack": {
- "version": "5.58.1",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.58.1.tgz",
- "integrity": "sha512-4Z/dmbTU+VmkCb2XNgW7wkE5TfEcSooclprn/UEuVeAkwHhn07OcgUsyaKHGtCY/VobjnsYBlyhKeMLiSoOqPg==",
+ "version": "5.59.1",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.59.1.tgz",
+ "integrity": "sha512-I01IQV9K96FlpXX3V0L4nvd7gb0r7thfuu1IfT2P4uOHOA77nKARAKDYGe/tScSHKnffNIyQhLC8kRXzY4KEHQ==",
"dev": true,
"peer": true,
"requires": {
@@ -29011,45 +29326,12 @@
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
},
"wide-align": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
- "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
"dev": true,
"requires": {
- "string-width": "^1.0.2 || 2"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "dev": true
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "dev": true,
- "requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- }
+ "string-width": "^1.0.2 || 2 || 3 || 4"
}
},
"wildcard": {
diff --git a/ui/package.json b/ui/package.json
index 4ab5b2fc3..14165a664 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -24,9 +24,8 @@
"@start9labs/emver": "0.1.5",
"ajv": "^6.12.6",
"core-js": "^3.17.2",
+ "fast-json-patch": "^3.1.0",
"fuse.js": "^6.4.6",
- "json-pointer": "^0.6.1",
- "jsonpointerx": "^1.1.4",
"marked": "3.0.2",
"mustache": "^4.2.0",
"ng-qrcode": "^5.0.0",
diff --git a/ui/src/app/components/form-object/form-error.component.html b/ui/src/app/components/form-object/form-error.component.html
index cf7912af2..03f974658 100644
--- a/ui/src/app/components/form-object/form-error.component.html
+++ b/ui/src/app/components/form-object/form-error.component.html
@@ -30,5 +30,8 @@
{{ control.errors.listNotUnique.value }}
+
+ {{ control.errors.listItemIssue.value }}
+
\ No newline at end of file
diff --git a/ui/src/app/components/form-object/form-label.component.html b/ui/src/app/components/form-object/form-label.component.html
index 04bafbf18..ce7418f5f 100644
--- a/ui/src/app/components/form-object/form-label.component.html
+++ b/ui/src/app/components/form-object/form-label.component.html
@@ -1,11 +1,16 @@
-
+
+
+
+
+
+
{{ data.spec.name }}
- (New)
- (Edited)
+ (New)
+ (Edited)
*
diff --git a/ui/src/app/components/form-object/form-object.component.html b/ui/src/app/components/form-object/form-object.component.html
index 61f08e1c0..2e190e0d4 100644
--- a/ui/src/app/components/form-object/form-object.component.html
+++ b/ui/src/app/components/form-object/form-object.component.html
@@ -26,8 +26,8 @@
@@ -73,8 +73,8 @@
@@ -97,8 +97,8 @@
@@ -117,8 +117,9 @@
-
+
{{ getEnumListDisplay(formArr.value, $any(spec.spec)) }}
@@ -211,7 +212,7 @@
*ngIf="formGroup.get(entry.key).errors"
[control]="$any(formGroup.get(entry.key))"
[spec]="spec"
- >
+ >
diff --git a/ui/src/app/components/form-object/form-object.component.scss b/ui/src/app/components/form-object/form-object.component.scss
index 6c09caa77..a61403383 100644
--- a/ui/src/app/components/form-object/form-object.component.scss
+++ b/ui/src/app/components/form-object/form-object.component.scss
@@ -1,4 +1,4 @@
-.help-button {
+.slot-start {
display: inline-block;
vertical-align: middle;
}
diff --git a/ui/src/app/components/form-object/form-object.component.ts b/ui/src/app/components/form-object/form-object.component.ts
index e37409595..b57b40848 100644
--- a/ui/src/app/components/form-object/form-object.component.ts
+++ b/ui/src/app/components/form-object/form-object.component.ts
@@ -1,12 +1,12 @@
import { Component, Input, Output, SimpleChange, EventEmitter } from '@angular/core'
-import { AbstractControl, AbstractFormGroupDirective, FormArray, FormGroup } from '@angular/forms'
+import { AbstractFormGroupDirective, FormArray, FormGroup } from '@angular/forms'
import { AlertButton, AlertController, IonicSafeString, ModalController } from '@ionic/angular'
-import { ConfigSpec, ListValueSpecOf, ListValueSpecString, ValueSpec, ValueSpecBoolean, ValueSpecEnum, ValueSpecList, ValueSpecListOf, ValueSpecNumber, ValueSpecString, ValueSpecUnion } from 'src/app/pkg-config/config-types'
+import { ConfigSpec, ListValueSpecOf, ValueSpec, ValueSpecBoolean, ValueSpecList, ValueSpecListOf, ValueSpecUnion } from 'src/app/pkg-config/config-types'
import { FormService } from 'src/app/services/form.service'
import { Range } from 'src/app/pkg-config/config-utilities'
import { EnumListPage } from 'src/app/modals/enum-list/enum-list.page'
-const Mustache = require('mustache')
import { pauseFor } from 'src/app/util/misc.util'
+const Mustache = require('mustache')
@Component({
selector: 'form-object',
@@ -76,6 +76,7 @@ export class FormObjectComponent {
addListItem (key: string, markDirty = true, val?: string): void {
const arr = this.formGroup.get(key) as FormArray
if (markDirty) arr.markAsDirty()
+ // @TODO why are these commented out?
// const validators = this.formService.getListItemValidators(this.objectSpec[key] as ValueSpecList, key, arr.length)
// arr.push(new FormControl(value, validators))
const listSpec = this.objectSpec[key] as ValueSpecList
@@ -225,8 +226,9 @@ export class FormObjectComponent {
interface HeaderData {
spec: ValueSpec
- isEdited: boolean
- isNew: boolean
+ edited: boolean
+ new: boolean
+ invalid?: boolean
}
@Component({
diff --git a/ui/src/app/modals/app-config/app-config.page.html b/ui/src/app/modals/app-config/app-config.page.html
index 32db6cd0b..2bfba9a4b 100644
--- a/ui/src/app/modals/app-config/app-config.page.html
+++ b/ui/src/app/modals/app-config/app-config.page.html
@@ -38,33 +38,23 @@
-
-
-
-
-
-
-
-
- {{ rec.dependentTitle }}
-
-
-
{{ pkg.manifest.title }} config has been modified to satisfy {{ rec.dependentTitle }}.
- To accept the changes, click “Save” above.
-
-
More Info
-
-
- hide
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ {{ pkg.manifest.title }}
+
+
+
+ {{ pkg.manifest.title }} has been modified to satisfy {{ dependentInfo.title }}.
+
+
+ To accept the modifications, click "Save".
+
+
+
+
@@ -78,7 +68,7 @@
diff --git a/ui/src/app/modals/app-config/app-config.page.ts b/ui/src/app/modals/app-config/app-config.page.ts
index d8c06aab7..2a85f8b96 100644
--- a/ui/src/app/modals/app-config/app-config.page.ts
+++ b/ui/src/app/modals/app-config/app-config.page.ts
@@ -1,7 +1,7 @@
import { Component, Input, ViewChild } from '@angular/core'
import { AlertController, ModalController, IonContent, LoadingController, IonicSafeString } from '@ionic/angular'
import { ApiService } from 'src/app/services/api/embassy-api.service'
-import { isEmptyObject, isObject, Recommendation } from 'src/app/util/misc.util'
+import { DependentInfo, isEmptyObject } from 'src/app/util/misc.util'
import { wizardModal } from 'src/app/components/install-wizard/install-wizard.component'
import { WizardBaker } from 'src/app/components/install-wizard/prebaked-wizards'
import { ConfigSpec } from 'src/app/pkg-config/config-types'
@@ -10,6 +10,7 @@ import { PatchDbService } from 'src/app/services/patch-db/patch-db.service'
import { ErrorToastService, getErrorMessage } from 'src/app/services/error-toast.service'
import { FormGroup } from '@angular/forms'
import { convertValuesRecursive, FormService } from 'src/app/services/form.service'
+import { compare, Operation } from 'fast-json-patch'
@Component({
selector: 'app-config',
@@ -19,16 +20,14 @@ import { convertValuesRecursive, FormService } from 'src/app/services/form.servi
export class AppConfigPage {
@ViewChild(IonContent) content: IonContent
@Input() pkgId: string
- @Input() rec: Recommendation | null = null
+ @Input() dependentInfo?: DependentInfo
pkg: PackageDataEntry
loadingText: string | undefined
configSpec: ConfigSpec
configForm: FormGroup
- current: object
+ original: object
hasConfig = false
saving = false
- showRec = true
- openRec = false
loadingError: string | IonicSafeString
constructor (
@@ -49,23 +48,32 @@ export class AppConfigPage {
if (!this.hasConfig) return
try {
-
let oldConfig: object
let newConfig: object
let spec: ConfigSpec
- if (this.rec) {
- this.loadingText = `Setting properties to accommodate ${this.rec.dependentTitle}`
- const { 'old-config': oc, 'new-config': nc, spec: s } = await this.embassyApi.dryConfigureDependency({ 'dependency-id': this.pkgId, 'dependent-id': this.rec.dependentId })
+ let patch: Operation[]
+ if (this.dependentInfo) {
+ this.loadingText = `Setting properties to accommodate ${this.dependentInfo.title}`
+ const { 'old-config': oc, 'new-config': nc, spec: s } = await this.embassyApi.dryConfigureDependency({ 'dependency-id': this.pkgId, 'dependent-id': this.dependentInfo.id })
oldConfig = oc
newConfig = nc
spec = s
+ patch = compare(oldConfig, newConfig)
} else {
this.loadingText = 'Loading Config'
- const { config: oc, spec: s } = await this.embassyApi.getPackageConfig({ id: this.pkgId })
- oldConfig = oc
+ const { config: c, spec: s } = await this.embassyApi.getPackageConfig({ id: this.pkgId })
+ oldConfig = c
spec = s
}
- this.setConfig(spec, oldConfig, newConfig)
+
+ this.original = oldConfig
+ this.configSpec = spec
+ this.configForm = this.formService.createForm(spec, newConfig || oldConfig)
+ this.configForm.markAllAsTouched()
+
+ if (patch) {
+ this.markDirty(patch)
+ }
} catch (e) {
this.loadingError = getErrorMessage(e)
} finally {
@@ -79,11 +87,8 @@ export class AppConfigPage {
resetDefaults () {
this.configForm = this.formService.createForm(this.configSpec)
- this.alterConfigRecursive(this.configForm, this.current)
- }
-
- dismissRec () {
- this.showRec = false
+ const patch = compare(this.original, this.configForm.value)
+ this.markDirty(patch)
}
async dismiss () {
@@ -143,33 +148,20 @@ export class AppConfigPage {
}
}
- private setConfig (spec: ConfigSpec, config: object, depConfig?: object) {
- this.configSpec = spec
- this.current = config
- this.configForm = this.formService.createForm(spec, { ...config, ...depConfig })
- this.configForm.markAllAsTouched()
+ private markDirty (patch: Operation[]) {
+ patch.forEach(op => {
+ const arrPath = op.path.substring(1)
+ .split('/')
+ .map(node => {
+ const num = Number(node)
+ return isNaN(num) ? node : num
+ })
- if (depConfig) {
- this.alterConfigRecursive(this.configForm, depConfig)
- }
- }
+ if (op.op !== 'remove') this.configForm.get(arrPath).markAsDirty()
- private alterConfigRecursive (group: FormGroup, config: object) {
- Object.keys(config).forEach(key => {
- const next = group.get(key)
- if (!next) throw new Error('Dependency config not compatible with service version. Please contact support')
- const newVal = config[key]
- // check if val is an object
- if (isObject(newVal)) {
- this.alterConfigRecursive(next as FormGroup, newVal)
- } else {
- let val1 = group.get(key).value
- let val2 = config[key]
- if (Array.isArray(newVal)) {
- val1 = JSON.stringify(val1)
- val2 = JSON.stringify(val2)
- }
- if (val1 != val2) next.markAsDirty()
+ if (typeof arrPath[arrPath.length - 1] === 'number') {
+ const prevPath = arrPath.slice(0, arrPath.length - 1)
+ this.configForm.get(prevPath).markAsDirty()
}
})
}
diff --git a/ui/src/app/modals/enum-list/enum-list.page.ts b/ui/src/app/modals/enum-list/enum-list.page.ts
index 790e892ad..6e13684da 100644
--- a/ui/src/app/modals/enum-list/enum-list.page.ts
+++ b/ui/src/app/modals/enum-list/enum-list.page.ts
@@ -1,7 +1,6 @@
import { Component, Input } from '@angular/core'
import { ModalController } from '@ionic/angular'
import { ValueSpecListOf } from '../../pkg-config/config-types'
-// import { Range } from '../../pkg-config/config-utilities'
@Component({
selector: 'enum-list',
@@ -13,12 +12,6 @@ export class EnumListPage {
@Input() spec: ValueSpecListOf<'enum'>
@Input() current: string[]
options: { [option: string]: boolean } = { }
-
- // min: number | undefined
- // max: number | undefined
- // minMessage: string
- // maxMessage: string
-
selectAll = true
constructor (
@@ -26,12 +19,6 @@ export class EnumListPage {
) { }
ngOnInit () {
- // const range = Range.from(this.spec.range)
- // this.min = range.integralMin()
- // this.max = range.integralMax()
- // this.minMessage = `The minimum number of ${this.key} is ${this.min}.`
- // this.maxMessage = `The maximum number of ${this.key} is ${this.max}.`
-
for (let val of this.spec.spec.values) {
this.options[val] = this.current.includes(val)
}
diff --git a/ui/src/app/pages/apps-routes/app-properties/app-properties.page.ts b/ui/src/app/pages/apps-routes/app-properties/app-properties.page.ts
index a852cf6be..6aecde6a4 100644
--- a/ui/src/app/pages/apps-routes/app-properties/app-properties.page.ts
+++ b/ui/src/app/pages/apps-routes/app-properties/app-properties.page.ts
@@ -9,7 +9,7 @@ import { QRComponent } from 'src/app/components/qr/qr.component'
import { PatchDbService } from 'src/app/services/patch-db/patch-db.service'
import { PackageMainStatus } from 'src/app/services/patch-db/data-model'
import { ErrorToastService } from 'src/app/services/error-toast.service'
-import * as JsonPointer from 'json-pointer'
+import { getValueByPointer } from 'fast-json-patch'
@Component({
selector: 'app-properties',
@@ -49,7 +49,7 @@ export class AppPropertiesPage {
.subscribe(queryParams => {
if (queryParams['pointer'] === this.pointer) return
this.pointer = queryParams['pointer']
- this.node = JsonPointer.get(this.properties, this.pointer || '')
+ this.node = getValueByPointer(this.properties, this.pointer || '')
}),
this.patch.watch$('package-data', this.pkgId, 'installed', 'status', 'main', 'status')
.subscribe(status => {
@@ -119,7 +119,7 @@ export class AppPropertiesPage {
this.loading = true
try {
this.properties = await this.embassyApi.getPackageProperties({ id: this.pkgId })
- this.node = JsonPointer.get(this.properties, this.pointer || '')
+ this.node = getValueByPointer(this.properties, this.pointer || '')
} catch (e) {
this.errToast.present(e)
} finally {
diff --git a/ui/src/app/pages/apps-routes/app-show/app-show.page.html b/ui/src/app/pages/apps-routes/app-show/app-show.page.html
index 41125288f..ad2a4404f 100644
--- a/ui/src/app/pages/apps-routes/app-show/app-show.page.html
+++ b/ui/src/app/pages/apps-routes/app-show/app-show.page.html
@@ -100,7 +100,6 @@
{{ dep.errorText || 'satisfied' }}
-
{{ dep.actionText }}
diff --git a/ui/src/app/pages/apps-routes/app-show/app-show.page.ts b/ui/src/app/pages/apps-routes/app-show/app-show.page.ts
index 7e0b5f06b..e3ea77fa7 100644
--- a/ui/src/app/pages/apps-routes/app-show/app-show.page.ts
+++ b/ui/src/app/pages/apps-routes/app-show/app-show.page.ts
@@ -2,13 +2,13 @@ import { Component, ViewChild } from '@angular/core'
import { AlertController, NavController, ModalController, IonContent, LoadingController } from '@ionic/angular'
import { ApiService } from 'src/app/services/api/embassy-api.service'
import { ActivatedRoute, NavigationExtras } from '@angular/router'
-import { exists, isEmptyObject, Recommendation } from 'src/app/util/misc.util'
-import { Subscription } from 'rxjs'
+import { DependentInfo, exists, isEmptyObject } from 'src/app/util/misc.util'
+import { combineLatest, Subscription } from 'rxjs'
import { wizardModal } from 'src/app/components/install-wizard/install-wizard.component'
import { WizardBaker } from 'src/app/components/install-wizard/prebaked-wizards'
import { ConfigService } from 'src/app/services/config.service'
import { PatchDbService } from 'src/app/services/patch-db/patch-db.service'
-import { DependencyErrorConfigUnsatisfied, DependencyErrorType, HealthCheckResult, HealthResult, PackageDataEntry, PackageMainStatus, PackageState } from 'src/app/services/patch-db/data-model'
+import { DependencyError, DependencyErrorType, HealthCheckResult, HealthResult, PackageDataEntry, PackageMainStatus, PackageState } from 'src/app/services/patch-db/data-model'
import { DependencyStatus, HealthStatus, PrimaryRendering, PrimaryStatus, renderPkgStatus } from 'src/app/services/pkg-status-rendering.service'
import { ConnectionFailure, ConnectionService } from 'src/app/services/connection.service'
import { ErrorToastService } from 'src/app/services/error-toast.service'
@@ -83,34 +83,18 @@ export class AppShowPage {
}),
// 2
- this.patch.watch$('package-data', this.pkgId, 'installed', 'current-dependencies')
+ combineLatest([
+ this.patch.watch$('package-data', this.pkgId, 'installed', 'current-dependencies'),
+ this.patch.watch$('package-data', this.pkgId, 'installed', 'status', 'dependency-errors'),
+ ])
.pipe(
- filter(obj => exists(obj)),
+ filter(([currentDeps, depErrors]) => exists(currentDeps) && exists(depErrors)),
)
- .subscribe(currentDeps => {
- // remove deleted
- this.dependencies.forEach((dep, i) => {
- if (!currentDeps[dep.id]) {
- dep.sub.unsubscribe()
- this.dependencies.splice(i, 1)
- }
- })
-
- // subscribe
- Object.keys(currentDeps)
- .filter(id => {
- const inManifest = !!this.pkg.manifest.dependencies[id]
- const exists = this.dependencies.find(d => d.id === id)
- return inManifest && !exists
- })
- .forEach(id => {
- const version = this.pkg.manifest.dependencies[id].version
- const dep = { id, version } as DependencyInfo
- dep.sub = this.patch.watch$('package-data', id)
- .subscribe(localDep => {
- this.setDepValues(dep, localDep)
- })
- this.dependencies.push(dep)
+ .subscribe(([currentDeps, depErrors]) => {
+ this.dependencies = Object.keys(currentDeps)
+ .filter(id => !!this.pkg.manifest.dependencies[id])
+ .map(id => {
+ return this.setDepValues(id, depErrors)
})
}),
@@ -142,9 +126,6 @@ export class AppShowPage {
ngOnDestroy () {
this.subs.forEach(sub => sub.unsubscribe())
- this.dependencies.forEach(dep => {
- dep.sub.unsubscribe()
- })
}
launchUi (): void {
@@ -213,7 +194,7 @@ export class AppShowPage {
}
}
- async presentModalConfig (props: { pkgId: string, rec?: Recommendation }): Promise {
+ async presentModalConfig (props: { pkgId: string, dependentInfo?: DependentInfo }): Promise {
const modal = await this.modalCtrl.create({
component: AppConfigPage,
componentProps: props,
@@ -221,36 +202,27 @@ export class AppShowPage {
await modal.present()
}
- private setDepValues (dep: DependencyInfo, localDep: PackageDataEntry | undefined): void {
+ private setDepValues (id: string, errors: { [id: string]: DependencyError }): DependencyInfo {
let errorText = ''
- let spinnerColor = ''
let actionText = 'View'
- let action: () => any = () => this.navCtrl.navigateForward(`/services/${dep.id}`)
+ let action: () => any = () => this.navCtrl.navigateForward(`/services/${id}`)
- const error = this.pkg.installed.status['dependency-errors'][dep.id]
+ const error = errors[id]
if (error) {
// health checks failed
if ([DependencyErrorType.InterfaceHealthChecksFailed, DependencyErrorType.HealthChecksFailed].includes(error.type)) {
errorText = 'Health check failed'
- // not fully installed (same as !localDep?.installed)
+ // not installed
} else if (error.type === DependencyErrorType.NotInstalled) {
- if (localDep) {
- errorText = localDep.state // 'Installing' | 'Removing'
- } else {
- errorText = 'Not installed'
- actionText = 'Install'
- action = () => this.fixDep('install', dep.id)
- }
+ errorText = 'Not installed'
+ actionText = 'Install'
+ action = () => this.fixDep('install', id)
// incorrect version
} else if (error.type === DependencyErrorType.IncorrectVersion) {
- if (localDep) {
- errorText = localDep.state // 'Updating' | 'Removing'
- } else {
- errorText = 'Incorrect version'
- actionText = 'Update'
- action = () => this.fixDep('update', dep.id)
- }
+ errorText = 'Incorrect version'
+ actionText = 'Update'
+ action = () => this.fixDep('update', id)
// not running
} else if (error.type === DependencyErrorType.NotRunning) {
errorText = 'Not running'
@@ -259,60 +231,50 @@ export class AppShowPage {
} else if (error.type === DependencyErrorType.ConfigUnsatisfied) {
errorText = 'Config not satisfied'
actionText = 'Auto config'
- action = () => this.fixDep('configure', dep.id)
+ action = () => this.fixDep('configure', id)
} else if (error.type === DependencyErrorType.Transitive) {
errorText = 'Dependency has a dependency issue'
}
-
- if (localDep && localDep.state !== PackageState.Installed) {
- spinnerColor = localDep.state === PackageState.Removing ? 'danger' : 'primary'
- }
}
- const depInfo = this.pkg.installed['dependency-info'][dep.id]
+ const depInfo = this.pkg.installed['dependency-info'][id]
- Object.assign(dep, {
+ return {
+ id,
+ version: this.pkg.manifest.dependencies[id].version,
title: depInfo.manifest.title,
icon: depInfo.icon,
errorText,
actionText,
- spinnerColor,
action,
- })
+ }
}
private async installDep (depId: string): Promise {
- const title = this.pkg.installed['dependency-info'][depId].manifest.title
const version = this.pkg.manifest.dependencies[depId].version
- const dependentTitle = this.pkg.manifest.title
- const installRec: Recommendation = {
- dependentId: this.pkgId,
- dependentTitle,
- dependentIcon: this.pkg['static-files'].icon,
+ const dependentInfo: DependentInfo = {
+ id: this.pkgId,
+ title: this.pkg.manifest.title,
version,
- description: `${dependentTitle} requires an install of ${title} satisfying ${version}.`,
}
const navigationExtras: NavigationExtras = {
- state: { installRec },
+ state: { dependentInfo },
}
await this.navCtrl.navigateForward(`/marketplace/${depId}`, navigationExtras)
}
- private async configureDep (depId: string): Promise {
- const configRecommendation: Recommendation = {
- dependentId: this.pkgId,
- dependentTitle: this.pkg.manifest.title,
- dependentIcon: this.pkg['static-files'].icon,
- description: (this.pkg.installed.status['dependency-errors'][depId] as DependencyErrorConfigUnsatisfied).error,
- }
- const params = {
- pkgId: depId,
- rec: configRecommendation,
+ private async configureDep (dependencyId: string): Promise {
+ const dependentInfo: DependentInfo = {
+ id: this.pkgId,
+ title: this.pkg.manifest.title,
}
- await this.presentModalConfig(params)
+ await this.presentModalConfig({
+ pkgId: dependencyId,
+ dependentInfo,
+ })
}
private async presentAlertStart (message: string): Promise {
@@ -434,10 +396,8 @@ interface DependencyInfo {
icon: string
version: string
errorText: string
- spinnerColor: string
actionText: string
action: () => any
- sub: Subscription
}
interface Button {
diff --git a/ui/src/app/pages/marketplace-routes/marketplace-show/marketplace-show.page.html b/ui/src/app/pages/marketplace-routes/marketplace-show/marketplace-show.page.html
index 32f9a70ff..8870ae2a5 100644
--- a/ui/src/app/pages/marketplace-routes/marketplace-show/marketplace-show.page.html
+++ b/ui/src/app/pages/marketplace-routes/marketplace-show/marketplace-show.page.html
@@ -72,23 +72,21 @@
-
-
+
+
-
-
-
- {{ rec.dependentTitle }}
+ {{ pkg.manifest.title }}
-
-
{{ rec.description }}
-
{{ pkg.manifest.title }} version {{ pkg.manifest.version | displayEmver }} is compatible.
-
{{ pkg.manifest.title }} version {{ pkg.manifest.version | displayEmver }} is NOT compatible.
-
-
-
-
+
+
+ {{ dependentInfo.title }} requires an install of {{ pkg.manifest.title }} satisfying {{ dependentInfo.version }}.
+
+
+ {{ pkg.manifest.title }} version {{ pkg.manifest.version | displayEmver }} is compatible.
+ {{ pkg.manifest.title }} version {{ pkg.manifest.version | displayEmver }} is NOT compatible.
+
+
diff --git a/ui/src/app/pages/marketplace-routes/marketplace-show/marketplace-show.page.ts b/ui/src/app/pages/marketplace-routes/marketplace-show/marketplace-show.page.ts
index 7cd3a7852..5ac6da8d7 100644
--- a/ui/src/app/pages/marketplace-routes/marketplace-show/marketplace-show.page.ts
+++ b/ui/src/app/pages/marketplace-routes/marketplace-show/marketplace-show.page.ts
@@ -5,7 +5,7 @@ import { wizardModal } from 'src/app/components/install-wizard/install-wizard.co
import { WizardBaker } from 'src/app/components/install-wizard/prebaked-wizards'
import { Emver } from 'src/app/services/emver.service'
import { displayEmver } from 'src/app/pipes/emver.pipe'
-import { pauseFor, Recommendation } from 'src/app/util/misc.util'
+import { DependentInfo, pauseFor } from 'src/app/util/misc.util'
import { PatchDbService } from 'src/app/services/patch-db/patch-db.service'
import { ErrorToastService } from 'src/app/services/error-toast.service'
import { PackageDataEntry, PackageState } from 'src/app/services/patch-db/data-model'
@@ -27,8 +27,7 @@ export class MarketplaceShowPage {
pkg: MarketplacePkg
localPkg: PackageDataEntry
PackageState = PackageState
- rec: Recommendation | null = null
- showRec = true
+ dependentInfo: DependentInfo
subs: Subscription[] = []
constructor (
@@ -47,7 +46,7 @@ export class MarketplaceShowPage {
async ngOnInit () {
this.pkgId = this.route.snapshot.paramMap.get('pkgId')
- this.rec = history.state && history.state.installRec as Recommendation
+ this.dependentInfo = history.state && history.state.dependentInfo as DependentInfo
this.subs = [
this.patch.watch$('package-data', this.pkgId)
@@ -171,10 +170,6 @@ export class MarketplaceShowPage {
this.navCtrl.back()
}
- dismissRec () {
- this.showRec = false
- }
-
private async getPkg (version?: string): Promise {
this.loading = true
try {
diff --git a/ui/src/app/pages/server-routes/server-backup/server-backup.page.ts b/ui/src/app/pages/server-routes/server-backup/server-backup.page.ts
index 591ff2c04..94fccd4e3 100644
--- a/ui/src/app/pages/server-routes/server-backup/server-backup.page.ts
+++ b/ui/src/app/pages/server-routes/server-backup/server-backup.page.ts
@@ -84,7 +84,7 @@ export class ServerBackupPage {
take(1),
)
.subscribe(pkgs => {
- const pkgArr = Object.values(pkgs)
+ const pkgArr = Object.keys(pkgs).sort().map(key => pkgs[key])
const activeIndex = pkgArr.findIndex(pkg => pkg.installed.status.main.status === PackageMainStatus.BackingUp)
this.pkgs = pkgArr.map((pkg, i) => {
diff --git a/ui/src/app/services/api/api.fixures.ts b/ui/src/app/services/api/api.fixures.ts
index b2cfdf1cb..9d6aa8422 100644
--- a/ui/src/app/services/api/api.fixures.ts
+++ b/ui/src/app/services/api/api.fixures.ts
@@ -1,5 +1,6 @@
import { DependencyErrorType, DockerIoFormat, Manifest, PackageDataEntry, PackageMainStatus, PackageState } from 'src/app/services/patch-db/data-model'
import { Log, MarketplacePkg, Metric, NotificationLevel, RR, ServerNotifications } from './api.types'
+import { Operation } from 'fast-json-patch'
export module Mock {
@@ -1081,405 +1082,21 @@ export module Mock {
},
} as any // @TODO why is this necessary?
- export const PackageConfig: RR.GetPackageConfigRes = {
- // config spec
- spec: {
- 'testnet': {
- 'name': 'Testnet',
- 'type': 'boolean',
- 'description': 'determines whether your node is running on testnet or mainnet',
- 'warning': 'Chain will have to resync!',
- 'default': true,
- },
- 'object-list': {
- 'name': 'Object List',
- 'type': 'list',
- 'subtype': 'object',
- 'description': 'This is a list of objects, like users or something',
- 'range': '[0,4]',
- 'default': [
- {
- 'first-name': 'Admin',
- 'last-name': 'User',
- 'age': 40,
- },
- {
- 'first-name': 'Admin2',
- 'last-name': 'User',
- 'age': 40,
- },
- ],
- // the outer spec here, at the list level, says that what's inside (the inner spec) pertains to its inner elements.
- // it just so happens that ValueSpecObject's have the field { spec: ConfigSpec }
- // see 'union-list' below for a different example.
- 'spec': {
- 'unique-by': 'last-name',
- 'display-as': `I'm {{last-name}}, {{first-name}} {{last-name}}`,
- 'spec': {
- 'first-name': {
- 'name': 'First Name',
- 'type': 'string',
- 'description': 'User first name',
- 'nullable': true,
- 'default': null,
- 'masked': false,
- 'copyable': false,
- },
- 'last-name': {
- 'name': 'Last Name',
- 'type': 'string',
- 'description': 'User first name',
- 'nullable': true,
- 'default': {
- 'charset': 'a-g,2-9',
- 'len': 12,
- },
- 'pattern': '^[a-zA-Z]+$',
- 'pattern-description': 'must contain only letters.',
- 'masked': false,
- 'copyable': true,
- },
- 'age': {
- 'name': 'Age',
- 'type': 'number',
- 'description': 'The age of the user',
- 'nullable': true,
- 'default': null,
- 'integral': false,
- 'warning': 'User must be at least 18.',
- 'range': '[18,*)',
- },
- },
- },
- },
- 'union-list': {
- 'name': 'Union List',
- 'type': 'list',
- 'subtype': 'union',
- 'description': 'This is a sample list of unions',
- 'warning': 'If you change this, things may work.',
- // a list of union selections. e.g. 'summer', 'winter',...
- 'default': [
- 'summer',
- ],
- 'range': '[0, 2]',
- 'spec': {
- 'tag': {
- 'id': 'preference',
- 'name': 'Preferences',
- 'variant-names': {
- 'summer': 'Summer',
- 'winter': 'Winter',
- 'other': 'Other',
- },
- },
- // this default is used to make a union selection when a new list element is first created
- 'default': 'summer',
- 'variants': {
- 'summer': {
- 'favorite-tree': {
- 'name': 'Favorite Tree',
- 'type': 'string',
- 'nullable': false,
- 'description': 'What is your favorite tree?',
- 'default': 'Maple',
- 'masked': false,
- 'copyable': false,
- },
- 'favorite-flower': {
- 'name': 'Favorite Flower',
- 'type': 'enum',
- 'description': 'Select your favorite flower',
- 'value-names': {
- 'none': 'Hate Flowers',
- 'red': 'Red',
- 'blue': 'Blue',
- 'purple': 'Purple',
- },
- 'values': [
- 'none',
- 'red',
- 'blue',
- 'purple',
- ],
- 'default': 'none',
- },
- },
- 'winter': {
- 'like-snow': {
- 'name': 'Like Snow?',
- 'type': 'boolean',
- 'description': 'Do you like snow or not?',
- 'default': true,
- },
- },
- },
- 'unique-by': 'preference',
- },
- },
- 'random-enum': {
- 'name': 'Random Enum',
- 'type': 'enum',
- 'value-names': {
- 'null': 'Null',
- 'option1': 'One 1',
- 'option2': 'Two 2',
- 'option3': 'Three 3',
- },
- 'default': 'null',
- 'description': 'This is not even real.',
- 'warning': 'Be careful changing this!',
- 'values': [
- 'null',
- 'option1',
- 'option2',
- 'option3',
- ],
- },
- 'favorite-number': {
- 'name': 'Favorite Number',
- 'type': 'number',
- 'integral': false,
- 'description': 'Your favorite number of all time',
- 'warning': 'Once you set this number, it can never be changed without severe consequences.',
- 'nullable': true,
- 'default': 7,
- 'range': '(-100,100]',
- 'units': 'BTC',
- },
- 'unlucky-numbers': {
- 'name': 'Unlucky Numbers',
- 'type': 'list',
- 'subtype': 'number',
- 'description': 'Numbers that you like but are not your top favorite.',
- 'spec': {
- 'integral': false,
- 'range': '[-100,200)',
- },
- 'range': '[0,10]',
- 'default': [
- 2,
- 3,
- ],
- },
- 'rpcsettings': {
- 'name': 'RPC Settings',
- 'type': 'object',
- 'unique-by': null,
- 'description': 'rpc username and password',
- 'warning': 'Adding RPC users gives them special permissions on your node.',
- 'spec': {
- 'laws': {
- 'name': 'Laws',
- 'type': 'object',
- 'unique-by': 'law1',
- 'description': 'the law of the realm',
- 'spec': {
- 'law1': {
- 'name': 'First Law',
- 'type': 'string',
- 'description': 'the first law',
- 'nullable': true,
- 'masked': false,
- 'copyable': true,
- },
- 'law2': {
- 'name': 'Second Law',
- 'type': 'string',
- 'description': 'the second law',
- 'nullable': true,
- 'masked': false,
- 'copyable': true,
- },
- },
- },
- 'rulemakers': {
- 'name': 'Rule Makers',
- 'type': 'list',
- 'subtype': 'object',
- 'description': 'the people who make the rules',
- 'range': '[0,2]',
- 'default': [],
- 'spec': {
- 'unique-by': null,
- 'spec': {
- 'rulemakername': {
- 'name': 'Rulemaker Name',
- 'type': 'string',
- 'description': 'the name of the rule maker',
- 'nullable': false,
- 'default': {
- 'charset': 'a-g,2-9',
- 'len': 12,
- },
- 'masked': false,
- 'copyable': false,
- },
- 'rulemakerip': {
- 'name': 'Rulemaker IP',
- 'type': 'string',
- 'description': 'the ip of the rule maker',
- 'nullable': false,
- 'default': '192.168.1.0',
- 'pattern': '^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$',
- 'pattern-description': 'may only contain numbers and periods',
- 'masked': false,
- 'copyable': true,
- },
- },
- },
- },
- 'rpcuser': {
- 'name': 'RPC Username',
- 'type': 'string',
- 'description': 'rpc username',
- 'nullable': false,
- 'default': 'defaultrpcusername',
- 'pattern': '^[a-zA-Z]+$',
- 'pattern-description': 'must contain only letters.',
- 'masked': false,
- 'copyable': true,
- },
- 'rpcpass': {
- 'name': 'RPC User Password',
- 'type': 'string',
- 'description': 'rpc password',
- 'nullable': false,
- 'default': {
- 'charset': 'a-z,A-Z,2-9',
- 'len': 20,
- },
- 'masked': true,
- 'copyable': true,
- },
- },
- },
- 'advanced': {
- 'name': 'Advanced',
- 'type': 'object',
- 'unique-by': null,
- 'description': 'Advanced settings',
- 'spec': {
- 'notifications': {
- 'name': 'Notification Preferences',
- 'type': 'list',
- 'subtype': 'enum',
- 'description': 'how you want to be notified',
- 'range': '[1,3]',
- 'default': [
- 'email',
- ],
- 'spec': {
- 'value-names': {
- 'email': 'EEEEmail',
- 'text': 'Texxxt',
- 'call': 'Ccccall',
- 'push': 'PuuuusH',
- 'webhook': 'WebHooookkeee',
- },
- 'values': [
- 'email',
- 'text',
- 'call',
- 'push',
- 'webhook',
- ],
- },
- },
- },
- },
- 'bitcoin-node': {
- 'name': 'Bitcoin Node Settings',
- 'type': 'union',
- 'unique-by': null,
- 'description': 'The node settings',
- 'default': 'internal',
- 'warning': 'Careful changing this',
- 'tag': {
- 'id': 'type',
- 'name': 'Type',
- 'variant-names': {
- 'internal': 'Internal',
- 'external': 'External',
- },
- },
- 'variants': {
- 'internal': {
- 'lan-address': {
- 'name': 'LAN Address',
- 'type': 'pointer',
- 'subtype': 'app',
- 'target': 'lan-address',
- 'app-id': 'bitcoind',
- 'description': 'the lan address',
- },
- },
- 'external': {
- 'public-domain': {
- 'name': 'Public Domain',
- 'type': 'string',
- 'description': 'the public address of the node',
- 'nullable': false,
- 'default': 'bitcoinnode.com',
- 'pattern': '.*',
- 'pattern-description': 'anything',
- 'masked': false,
- 'copyable': true,
- },
- },
- },
- },
- 'port': {
- 'name': 'Port',
- 'type': 'number',
- 'integral': true,
- 'description': 'the default port for your Bitcoin node. default: 8333, testnet: 18333, regtest: 18444',
- 'nullable': false,
- 'default': 8333,
- 'range': '(0, 9998]',
- },
- 'favorite-slogan': {
- 'name': 'Favorite Slogan',
- 'type': 'string',
- 'description': 'You most favorite slogan in the whole world, used for paying you.',
- 'nullable': true,
- 'masked': true,
- 'copyable': true,
- },
- 'rpcallowip': {
- 'name': 'RPC Allowed IPs',
- 'type': 'list',
- 'subtype': 'string',
- 'description': 'external ip addresses that are authorized to access your Bitcoin node',
- 'warning': 'Any IP you allow here will have RPC access to your Bitcoin node.',
- 'range': '[1,10]',
- 'default': [
- '192.168.1.1',
- ],
- 'spec': {
- 'masked': false,
- 'copyable': false,
- 'pattern': '((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|((^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$)|(^[a-z2-7]{16}\\.onion$)|(^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$))',
- 'pattern-description': 'must be a valid ipv4, ipv6, or domain name',
- },
- },
- 'rpcauth': {
- 'name': 'RPC Auth',
- 'type': 'list',
- 'subtype': 'string',
- 'description': 'api keys that are authorized to access your Bitcoin node.',
- 'range': '[0,*)',
- 'default': [],
- 'spec': {
- 'masked': false,
- 'copyable': false,
- },
- },
+ export const ConfigSpec: RR.GetPackageConfigRes['spec'] = {
+ 'testnet': {
+ 'name': 'Testnet',
+ 'type': 'boolean',
+ 'description': 'determines whether your node is running on testnet or mainnet',
+ 'warning': 'Chain will have to resync!',
+ 'default': true,
},
- // actual config
- config: {
- testnet: false,
- 'object-list': [
+ 'object-list': {
+ 'name': 'Object List',
+ 'type': 'list',
+ 'subtype': 'object',
+ 'description': 'This is a list of objects, like users or something',
+ 'range': '[0,4]',
+ 'default': [
{
'first-name': 'Admin',
'last-name': 'User',
@@ -1491,51 +1108,462 @@ export module Mock {
'age': 40,
},
],
- 'union-list': undefined,
- 'random-enum': 'option1',
- 'favorite-number': null,
- 'secondary-numbers': undefined,
- rpcsettings: {
- laws: {
- law1: 'The first law',
- law2: 'The second law',
+ // the outer spec here, at the list level, says that what's inside (the inner spec) pertains to its inner elements.
+ // it just so happens that ValueSpecObject's have the field { spec: ConfigSpec }
+ // see 'union-list' below for a different example.
+ 'spec': {
+ 'unique-by': 'last-name',
+ 'display-as': `I'm {{last-name}}, {{first-name}} {{last-name}}`,
+ 'spec': {
+ 'first-name': {
+ 'name': 'First Name',
+ 'type': 'string',
+ 'description': 'User first name',
+ 'nullable': true,
+ 'default': null,
+ 'masked': false,
+ 'copyable': false,
+ },
+ 'last-name': {
+ 'name': 'Last Name',
+ 'type': 'string',
+ 'description': 'User first name',
+ 'nullable': true,
+ 'default': {
+ 'charset': 'a-g,2-9',
+ 'len': 12,
+ },
+ 'pattern': '^[a-zA-Z]+$',
+ 'pattern-description': 'must contain only letters.',
+ 'masked': false,
+ 'copyable': true,
+ },
+ 'age': {
+ 'name': 'Age',
+ 'type': 'number',
+ 'description': 'The age of the user',
+ 'nullable': true,
+ 'default': null,
+ 'integral': false,
+ 'warning': 'User must be at least 18.',
+ 'range': '[18,*)',
+ },
},
- rpcpass: null,
- rpcuser: '123',
- rulemakers: [],
},
- advanced: {
- notifications: ['email'],
+ },
+ 'union-list': {
+ 'name': 'Union List',
+ 'type': 'list',
+ 'subtype': 'union',
+ 'description': 'This is a sample list of unions',
+ 'warning': 'If you change this, things may work.',
+ // a list of union selections. e.g. 'summer', 'winter',...
+ 'default': [
+ 'summer',
+ ],
+ 'range': '[0, 2]',
+ 'spec': {
+ 'tag': {
+ 'id': 'preference',
+ 'name': 'Preferences',
+ 'variant-names': {
+ 'summer': 'Summer',
+ 'winter': 'Winter',
+ 'other': 'Other',
+ },
+ },
+ // this default is used to make a union selection when a new list element is first created
+ 'default': 'summer',
+ 'variants': {
+ 'summer': {
+ 'favorite-tree': {
+ 'name': 'Favorite Tree',
+ 'type': 'string',
+ 'nullable': false,
+ 'description': 'What is your favorite tree?',
+ 'default': 'Maple',
+ 'masked': false,
+ 'copyable': false,
+ },
+ 'favorite-flower': {
+ 'name': 'Favorite Flower',
+ 'type': 'enum',
+ 'description': 'Select your favorite flower',
+ 'value-names': {
+ 'none': 'Hate Flowers',
+ 'red': 'Red',
+ 'blue': 'Blue',
+ 'purple': 'Purple',
+ },
+ 'values': [
+ 'none',
+ 'red',
+ 'blue',
+ 'purple',
+ ],
+ 'default': 'none',
+ },
+ },
+ 'winter': {
+ 'like-snow': {
+ 'name': 'Like Snow?',
+ 'type': 'boolean',
+ 'description': 'Do you like snow or not?',
+ 'default': true,
+ },
+ },
+ },
+ 'unique-by': 'preference',
+ },
+ },
+ 'random-enum': {
+ 'name': 'Random Enum',
+ 'type': 'enum',
+ 'value-names': {
+ 'null': 'Null',
+ 'option1': 'One 1',
+ 'option2': 'Two 2',
+ 'option3': 'Three 3',
+ },
+ 'default': 'null',
+ 'description': 'This is not even real.',
+ 'warning': 'Be careful changing this!',
+ 'values': [
+ 'null',
+ 'option1',
+ 'option2',
+ 'option3',
+ ],
+ },
+ 'favorite-number': {
+ 'name': 'Favorite Number',
+ 'type': 'number',
+ 'integral': false,
+ 'description': 'Your favorite number of all time',
+ 'warning': 'Once you set this number, it can never be changed without severe consequences.',
+ 'nullable': true,
+ 'default': 7,
+ 'range': '(-100,100]',
+ 'units': 'BTC',
+ },
+ 'unlucky-numbers': {
+ 'name': 'Unlucky Numbers',
+ 'type': 'list',
+ 'subtype': 'number',
+ 'description': 'Numbers that you like but are not your top favorite.',
+ 'spec': {
+ 'integral': false,
+ 'range': '[-100,200)',
+ },
+ 'range': '[0,10]',
+ 'default': [
+ 2,
+ 3,
+ ],
+ },
+ 'rpcsettings': {
+ 'name': 'RPC Settings',
+ 'type': 'object',
+ 'unique-by': null,
+ 'description': 'rpc username and password',
+ 'warning': 'Adding RPC users gives them special permissions on your node.',
+ 'spec': {
+ 'laws': {
+ 'name': 'Laws',
+ 'type': 'object',
+ 'unique-by': 'law1',
+ 'description': 'the law of the realm',
+ 'spec': {
+ 'law1': {
+ 'name': 'First Law',
+ 'type': 'string',
+ 'description': 'the first law',
+ 'nullable': true,
+ 'masked': false,
+ 'copyable': true,
+ },
+ 'law2': {
+ 'name': 'Second Law',
+ 'type': 'string',
+ 'description': 'the second law',
+ 'nullable': true,
+ 'masked': false,
+ 'copyable': true,
+ },
+ },
+ },
+ 'rulemakers': {
+ 'name': 'Rule Makers',
+ 'type': 'list',
+ 'subtype': 'object',
+ 'description': 'the people who make the rules',
+ 'range': '[0,2]',
+ 'default': [],
+ 'spec': {
+ 'unique-by': null,
+ 'spec': {
+ 'rulemakername': {
+ 'name': 'Rulemaker Name',
+ 'type': 'string',
+ 'description': 'the name of the rule maker',
+ 'nullable': false,
+ 'default': {
+ 'charset': 'a-g,2-9',
+ 'len': 12,
+ },
+ 'masked': false,
+ 'copyable': false,
+ },
+ 'rulemakerip': {
+ 'name': 'Rulemaker IP',
+ 'type': 'string',
+ 'description': 'the ip of the rule maker',
+ 'nullable': false,
+ 'default': '192.168.1.0',
+ 'pattern': '^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$',
+ 'pattern-description': 'may only contain numbers and periods',
+ 'masked': false,
+ 'copyable': true,
+ },
+ },
+ },
+ },
+ 'rpcuser': {
+ 'name': 'RPC Username',
+ 'type': 'string',
+ 'description': 'rpc username',
+ 'nullable': false,
+ 'default': 'defaultrpcusername',
+ 'pattern': '^[a-zA-Z]+$',
+ 'pattern-description': 'must contain only letters.',
+ 'masked': false,
+ 'copyable': true,
+ },
+ 'rpcpass': {
+ 'name': 'RPC User Password',
+ 'type': 'string',
+ 'description': 'rpc password',
+ 'nullable': false,
+ 'default': {
+ 'charset': 'a-z,A-Z,2-9',
+ 'len': 20,
+ },
+ 'masked': true,
+ 'copyable': true,
+ },
+ },
+ },
+ 'advanced': {
+ 'name': 'Advanced',
+ 'type': 'object',
+ 'unique-by': null,
+ 'description': 'Advanced settings',
+ 'spec': {
+ 'notifications': {
+ 'name': 'Notification Preferences',
+ 'type': 'list',
+ 'subtype': 'enum',
+ 'description': 'how you want to be notified',
+ 'range': '[1,3]',
+ 'default': [
+ 'email',
+ ],
+ 'spec': {
+ 'value-names': {
+ 'email': 'EEEEmail',
+ 'text': 'Texxxt',
+ 'call': 'Ccccall',
+ 'push': 'PuuuusH',
+ 'webhook': 'WebHooookkeee',
+ },
+ 'values': [
+ 'email',
+ 'text',
+ 'call',
+ 'push',
+ 'webhook',
+ ],
+ },
+ },
+ },
+ },
+ 'bitcoin-node': {
+ 'name': 'Bitcoin Node Settings',
+ 'type': 'union',
+ 'unique-by': null,
+ 'description': 'The node settings',
+ 'default': 'internal',
+ 'warning': 'Careful changing this',
+ 'tag': {
+ 'id': 'type',
+ 'name': 'Type',
+ 'variant-names': {
+ 'internal': 'Internal',
+ 'external': 'External',
+ },
+ },
+ 'variants': {
+ 'internal': {
+ 'lan-address': {
+ 'name': 'LAN Address',
+ 'type': 'pointer',
+ 'subtype': 'app',
+ 'target': 'lan-address',
+ 'app-id': 'bitcoind',
+ 'description': 'the lan address',
+ },
+ },
+ 'external': {
+ 'public-domain': {
+ 'name': 'Public Domain',
+ 'type': 'string',
+ 'description': 'the public address of the node',
+ 'nullable': false,
+ 'default': 'bitcoinnode.com',
+ 'pattern': '.*',
+ 'pattern-description': 'anything',
+ 'masked': false,
+ 'copyable': true,
+ },
+ },
+ },
+ },
+ 'port': {
+ 'name': 'Port',
+ 'type': 'number',
+ 'integral': true,
+ 'description': 'the default port for your Bitcoin node. default: 8333, testnet: 18333, regtest: 18444',
+ 'nullable': false,
+ 'default': 8333,
+ 'range': '(0, 9998]',
+ },
+ 'favorite-slogan': {
+ 'name': 'Favorite Slogan',
+ 'type': 'string',
+ 'description': 'You most favorite slogan in the whole world, used for paying you.',
+ 'nullable': true,
+ 'masked': true,
+ 'copyable': true,
+ },
+ 'rpcallowip': {
+ 'name': 'RPC Allowed IPs',
+ 'type': 'list',
+ 'subtype': 'string',
+ 'description': 'external ip addresses that are authorized to access your Bitcoin node',
+ 'warning': 'Any IP you allow here will have RPC access to your Bitcoin node.',
+ 'range': '[1,10]',
+ 'default': [
+ '192.168.1.1',
+ ],
+ 'spec': {
+ 'masked': false,
+ 'copyable': false,
+ 'pattern': '((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|((^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$)|(^[a-z2-7]{16}\\.onion$)|(^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$))',
+ 'pattern-description': 'must be a valid ipv4, ipv6, or domain name',
+ },
+ },
+ 'rpcauth': {
+ 'name': 'RPC Auth',
+ 'type': 'list',
+ 'subtype': 'string',
+ 'description': 'api keys that are authorized to access your Bitcoin node.',
+ 'range': '[0,*)',
+ 'default': [],
+ 'spec': {
+ 'masked': false,
+ 'copyable': false,
},
- 'bitcoin-node': undefined,
- port: 5959,
- rpcallowip: undefined,
- rpcauth: ['matt: 8273gr8qwoidm1uid91jeh8y23gdio1kskmwejkdnm'],
},
}
- export const mockCupsDependentConfig = {
- 'random-enum': 'option1',
+ export const MockConfig = {
testnet: false,
- 'favorite-number': 8,
- 'secondary-numbers': [13, 58, 20],
- 'object-list': [],
- 'union-list': [],
+ 'object-list': [
+ {
+ 'first-name': 'First',
+ 'last-name': 'Last',
+ 'age': 30,
+ },
+ {
+ 'first-name': 'First2',
+ 'last-name': 'Last2',
+ 'age': 40,
+ },
+ ],
+ 'union-list': undefined,
+ 'random-enum': 'option1',
+ 'favorite-number': null,
rpcsettings: {
- laws: null,
+ laws: {
+ law1: 'The first law',
+ law2: 'The second law',
+ },
rpcpass: null,
rpcuser: '123',
rulemakers: [],
},
advanced: {
- notifications: [],
+ notifications: ['email', 'text'],
},
- 'bitcoin-Node': { type: 'internal' },
+ 'bitcoin-node': undefined,
port: 5959,
- rpcallowip: [],
+ rpcallowip: undefined,
rpcauth: ['matt: 8273gr8qwoidm1uid91jeh8y23gdio1kskmwejkdnm'],
}
+ export const MockDependencyConfig = {
+ testnet: true,
+ 'object-list': [
+ {
+ 'first-name': 'First',
+ 'last-name': 'Last',
+ 'age': 30,
+ },
+ {
+ 'first-name': 'First2',
+ 'last-name': 'Last2',
+ 'age': 40,
+ },
+ {
+ 'first-name': 'First3',
+ 'last-name': 'Last3',
+ 'age': 60,
+ },
+ ],
+ 'union-list': undefined,
+ 'random-enum': 'option2',
+ 'favorite-number': null,
+ rpcsettings: {
+ laws: {
+ law1: 'The first law Amended',
+ law2: 'The second law',
+ },
+ rpcpass: null,
+ rpcuser: '123',
+ rulemakers: [],
+ },
+ advanced: {
+ notifications: ['email', 'text', 'push'],
+ },
+ 'bitcoin-node': undefined,
+ port: 20,
+ rpcallowip: undefined,
+ rpcauth: ['matt: 8273gr8qwoidm1uid91jeh8y23gdio1kskmwejkdnm'],
+ }
+
+ export const Patch: Operation[] = [
+ {
+ op: 'replace',
+ path: '/testnet',
+ value: true,
+ },
+ {
+ op: 'add',
+ path: '/advanced/notifications/1',
+ value: 'text',
+ },
+ ]
+
export const bitcoind: PackageDataEntry = {
state: PackageState.Installed,
'static-files': {
diff --git a/ui/src/app/services/api/embassy-mock-api.service.ts b/ui/src/app/services/api/embassy-mock-api.service.ts
index 52dbb2e10..709546acf 100644
--- a/ui/src/app/services/api/embassy-mock-api.service.ts
+++ b/ui/src/app/services/api/embassy-mock-api.service.ts
@@ -3,7 +3,7 @@ import { pauseFor } from '../../util/misc.util'
import { ApiService } from './embassy-api.service'
import { PatchOp } from 'patch-db-client'
import { DependencyErrorType, InstallProgress, PackageDataEntry, PackageMainStatus, PackageState, ServerStatus } from 'src/app/services/patch-db/data-model'
-import { RR, WithRevision } from './api.types'
+import { Log, RR, WithRevision } from './api.types'
import { parsePropertiesPermissive } from 'src/app/util/properties.util'
import { Mock } from './api.fixures'
import { HttpService } from '../http.service'
@@ -75,7 +75,7 @@ export class MockApiService extends ApiService {
async getServerLogs (params: RR.GetServerLogsReq): Promise {
await pauseFor(2000)
- let entries
+ let entries: Log[]
if (Math.random() < .2) {
entries = Mock.ServerLogs
} else {
@@ -390,7 +390,10 @@ export class MockApiService extends ApiService {
async getPackageConfig (params: RR.GetPackageConfigReq): Promise {
await pauseFor(2000)
- return Mock.PackageConfig
+ return {
+ config: Mock.MockConfig,
+ spec: Mock.ConfigSpec,
+ }
}
async drySetPackageConfig (params: RR.DrySetPackageConfigReq): Promise {
@@ -542,32 +545,9 @@ export class MockApiService extends ApiService {
async dryConfigureDependency (params: RR.DryConfigureDependencyReq): Promise {
await pauseFor(2000)
return {
- 'old-config': Mock.PackageConfig.config,
- spec: Mock.PackageConfig.spec,
- 'new-config': {
- testnet: true,
- // objectList: [],
- // unionList: [],
- randomEnum: 'option2',
- favoriteNumber: 9,
- secondaryNumbers: [2, 3, 5, 6],
- rpcsettings: {
- laws: {
- law1: 'The 1st law',
- law2: 'The 2nd law',
- },
- rpcpass: null,
- rpcuser: '123',
- rulemakers: [],
- },
- advanced: {
- notifications: ['call', 'text'],
- },
- // bitcoinNode: undefined,
- port: 22,
- // rpcallowip: undefined,
- // rpcauth: ['matt: 8273gr8qwoidm1uid91jeh8y23gdio1kskmwejkdnm'],
- },
+ 'old-config': Mock.MockConfig,
+ 'new-config': Mock.MockDependencyConfig,
+ spec: Mock.ConfigSpec,
}
}
diff --git a/ui/src/app/services/form.service.ts b/ui/src/app/services/form.service.ts
index c8cc08bc1..87007c145 100644
--- a/ui/src/app/services/form.service.ts
+++ b/ui/src/app/services/form.service.ts
@@ -1,6 +1,6 @@
import { Injectable } from '@angular/core'
import { AbstractControl, FormArray, FormBuilder, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms'
-import { ConfigSpec, isValueSpecListOf, ListValueSpecNumber, ListValueSpecObject, ListValueSpecString, ListValueSpecUnion, UniqueBy, ValueSpec, ValueSpecEnum, ValueSpecList, ValueSpecListOf, ValueSpecNumber, ValueSpecObject, ValueSpecString, ValueSpecUnion } from '../pkg-config/config-types'
+import { ConfigSpec, isValueSpecListOf, ListValueSpecNumber, ListValueSpecObject, ListValueSpecOf, ListValueSpecString, ListValueSpecUnion, UniqueBy, ValueSpec, ValueSpecEnum, ValueSpecList, ValueSpecNumber, ValueSpecObject, ValueSpecString, ValueSpecUnion } from '../pkg-config/config-types'
import { getDefaultString, Range } from '../pkg-config/config-utilities'
const Mustache = require('mustache')
@@ -13,8 +13,8 @@ export class FormService {
private readonly formBuilder: FormBuilder,
) { }
- createForm (config: ConfigSpec, current: { [key: string]: any } = { }): FormGroup {
- return this.getFormGroup(config, [], current)
+ createForm (spec: ConfigSpec, current: { [key: string]: any } = { }): FormGroup {
+ return this.getFormGroup(spec, [], current)
}
getUnionObject (spec: ValueSpecUnion | ListValueSpecUnion, selection: string, current?: { [key: string]: any }): FormGroup {
@@ -60,12 +60,12 @@ export class FormService {
let group = { }
Object.entries(config).map(([key, spec]) => {
if (spec.type === 'pointer') return
- group[key] = this.getFormEntry(key, spec, current ? current[key] : { })
+ group[key] = this.getFormEntry(spec, current ? current[key] : undefined)
})
return this.formBuilder.group(group, { validators } )
}
- private getFormEntry (key: string, spec: ValueSpec, currentValue: any): FormGroup | FormArray | FormControl {
+ private getFormEntry (spec: ValueSpec, currentValue?: any): FormGroup | FormArray | FormControl {
let validators: ValidatorFn[]
let value: any
switch (spec.type) {
@@ -89,7 +89,7 @@ export class FormService {
return this.getFormGroup(spec.spec, [], currentValue)
case 'list':
validators = this.listValidators(spec)
- const mapped = (Array.isArray(currentValue) ? currentValue : spec.default as any[]).map((entry: any, index) => {
+ const mapped = (Array.isArray(currentValue) ? currentValue : spec.default as any[]).map(entry => {
return this.getListItem(spec, entry)
})
return this.formBuilder.array(mapped, validators)
@@ -139,6 +139,8 @@ export class FormService {
validators.push(listInRange(spec.range))
+ validators.push(listItemIssue())
+
if (!isValueSpecListOf(spec, 'enum')) {
validators.push(listUnique(spec))
}
@@ -181,29 +183,40 @@ export function isInteger (): ValidatorFn {
}
export function listInRange (stringRange: string): ValidatorFn {
- return (control: AbstractControl): ValidationErrors | null => {
+ return (control: FormArray): ValidationErrors | null => {
try {
Range.from(stringRange).checkIncludes(control.value.length)
return null
} catch (e) {
- return { numberNotInRange: { value: `List must be ${e.message}` } }
+ return { listNotInRange: { value: `List must be ${e.message}` } }
+ }
+ }
+}
+
+export function listItemIssue (): ValidatorFn {
+ return (parentControl: FormArray): ValidationErrors | null => {
+ const problemChild = parentControl.controls.find(c => c.invalid)
+ if (problemChild) {
+ return { listItemIssue: { value: 'Invalid entries' } }
+ } else {
+ return null
}
}
}
export function listUnique (spec: ValueSpecList): ValidatorFn {
- return (control: AbstractControl): ValidationErrors | null => {
- for (let idx = 0; idx < control.value.length; idx++) {
- for (let idx2 = idx + 1; idx2 < control.value.length; idx2++) {
- if (listItemEquals(spec, control.value[idx], control.value[idx2])) {
+ return (control: FormArray): ValidationErrors | null => {
+ const list = control.value
+ for (let idx = 0; idx < list.length; idx++) {
+ for (let idx2 = idx + 1; idx2 < list.length; idx2++) {
+ if (listItemEquals(spec, list[idx], list[idx2])) {
let display1: string
let display2: string
- let uniqueMessage = isObjectOrUnion(spec.spec) ? uniqueByMessageWrapper(spec.spec['unique-by'], spec.spec, control.value[idx]) : ''
-
+ let uniqueMessage = isObjectOrUnion(spec.spec) ? uniqueByMessageWrapper(spec.spec['unique-by'], spec.spec, list[idx]) : ''
if (isObjectOrUnion(spec.spec) && spec.spec['display-as']) {
- display1 = `"${(Mustache as any).render(spec.spec['display-as'], control.value[idx])}"`
- display2 = `"${(Mustache as any).render(spec.spec['display-as'], control.value[idx2])}"`
+ display1 = `"${(Mustache as any).render(spec.spec['display-as'], list[idx])}"`
+ display2 = `"${(Mustache as any).render(spec.spec['display-as'], list[idx2])}"`
} else {
display1 = `Entry ${idx + 1}`
display2 = `Entry ${idx2 + 1}`
@@ -367,7 +380,7 @@ function uniqueByMessage (uniqueBy: UniqueBy, configSpec: ConfigSpec, outermost
return outermost || subSpecs.filter(ss => ss).length === 1 ? ret : '(' + ret + ')'
}
-function isObjectOrUnion (spec: any): spec is ListValueSpecObject | ListValueSpecUnion {
+function isObjectOrUnion (spec: ListValueSpecOf): spec is ListValueSpecObject | ListValueSpecUnion {
// only lists of objects and unions have unique-by
return spec['unique-by'] !== undefined
}
diff --git a/ui/src/app/util/misc.util.ts b/ui/src/app/util/misc.util.ts
index 74e737eb3..92cbf11ca 100644
--- a/ui/src/app/util/misc.util.ts
+++ b/ui/src/app/util/misc.util.ts
@@ -5,11 +5,9 @@ import { DriveInfo, PartitionInfo } from '../services/api/api.types'
export type Omit = Pick>
export type PromiseRes = { result: 'resolve', value: T } | { result: 'reject', value: Error }
-export type Recommendation = {
- dependentId: string
- dependentTitle: string
- dependentIcon: string,
- description: string
+export interface DependentInfo {
+ id: string
+ title: string
version?: string
}
diff --git a/ui/src/app/util/properties.util.ts b/ui/src/app/util/properties.util.ts
index 4da425c71..f8e2c85ab 100644
--- a/ui/src/app/util/properties.util.ts
+++ b/ui/src/app/util/properties.util.ts
@@ -1,5 +1,5 @@
import * as Ajv from 'ajv'
-import { JsonPointer } from 'jsonpointerx'
+import { applyOperation } from 'fast-json-patch'
const ajv = new Ajv({ jsonPointers: true, allErrors: true, nullable: true })
const ajvWithDefaults = new Ajv({ jsonPointers: true, allErrors: true, useDefaults: true, nullable: true, removeAdditional: 'failing' })
@@ -88,7 +88,7 @@ function parsePropertiesV2Permissive (properties: PackagePropertiesV2, errorCall
for (let err of schemaV2Compiled.errors) {
errorCallback(new Error(`/data/${idx}${err.dataPath}: ${err.message}`))
if (err.dataPath) {
- JsonPointer.set(value, err.dataPath, undefined)
+ applyOperation(value, { op: 'replace', path: err.dataPath, value: undefined })
}
}
if (!schemaV2CompiledWithDefaults(value)) {