diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..19f7f6833 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,22 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node +{ + "name": "Node.js & TypeScript", + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "mcr.microsoft.com/devcontainers/typescript-node:1-20-bullseye" + + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + // "postCreateCommand": "yarn install", + + // Configure tool-specific properties. + // "customizations": {}, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} diff --git a/firebase.json b/firebase.json index 50521685f..0a07be0d6 100644 --- a/firebase.json +++ b/firebase.json @@ -20,7 +20,7 @@ { "key" : "X-XSS-Protection", "value" : "1; mode=block" }, { "key": "Content-Security-Policy", - "value": "default-src 'self'; frame-src 'self' *.gov.bc.ca *.hotjar.com *.googleapis.com https://*.nr-data.net https://*.newrelic.com https://*.cac1.pure.cloud; script-src 'self' 'unsafe-eval' 'unsafe-inline' *.gov.bc.ca *.hotjar.com *.googleapis.com https://*.nr-data.net https://*.newrelic.com https://*.cac1.pure.cloud; style-src 'self' 'unsafe-inline' *.cloudflare.com *.googleapis.com; font-src 'self' *.gov.bc.ca *.hotjar.com *.cloudflare.com *.googleapis.com *.gstatic.com *.jsdelivr.net; img-src 'self' data: *.hotjar.com https://*.cac1.pure.cloud; connect-src 'self' https://*.run.app *.gov.bc.ca *.launchdarkly.com *.hotjar.com *.postescanada-canadapost.ca *.sentry.io *.apigee.net wss://*.hotjar.com *.hotjar.io https://*.nr-data.net https://shyrka-prod-cac1.s3.ca-central-1.amazonaws.com https://*.newrelic.com https://*.cac1.pure.cloud wss://*.cac1.pure.cloud; manifest-src 'self'; media-src 'self' https://*.cac1.pure.cloud; object-src 'self' https://*.cac1.pure.cloud; child-src 'self' https://*.cac1.pure.cloud;" + "value": "default-src 'self'; frame-src 'self' *.gov.bc.ca *.hotjar.com *.googleapis.com https://*.nr-data.net https://*.newrelic.com https://*.cac1.pure.cloud; script-src 'self' 'unsafe-eval' 'unsafe-inline' *.gov.bc.ca *.hotjar.com *.googleapis.com https://*.nr-data.net https://*.newrelic.com https://*.cac1.pure.cloud; style-src 'self' 'unsafe-inline' *.cloudflare.com *.googleapis.com; font-src 'self' *.gov.bc.ca *.hotjar.com *.cloudflare.com *.googleapis.com *.gstatic.com *.jsdelivr.net; img-src 'self' data: *.hotjar.com https://*.cac1.pure.cloud; connect-src 'self' https://*.run.app *.gov.bc.ca wss://*.gov.bc.ca *.launchdarkly.com *.hotjar.com *.postescanada-canadapost.ca *.sentry.io *.apigee.net wss://*.hotjar.com *.hotjar.io https://*.nr-data.net https://shyrka-prod-cac1.s3.ca-central-1.amazonaws.com https://*.newrelic.com https://*.cac1.pure.cloud wss://*.cac1.pure.cloud; manifest-src 'self'; media-src 'self' https://*.cac1.pure.cloud; object-src 'self' https://*.cac1.pure.cloud; child-src 'self' https://*.cac1.pure.cloud;" }, { "key": "Cache-Control", "value": "no-cache, no-store, must-revalidate"}, { "key": "Pragma", "value": "no-cache"}, diff --git a/package-lock.json b/package-lock.json index 91a2e3307..9d1277f28 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,28 +1,30 @@ { "name": "business-filings-ui", - "version": "6.10.0", + "version": "8.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "business-filings-ui", - "version": "6.10.0", + "version": "8.0.0", "dependencies": { "@babel/compat-data": "^7.21.5", - "@bcrs-shared-components/base-address": "2.0.7", + "@bcrs-shared-components/base-address": "2.0.9", "@bcrs-shared-components/breadcrumb": "2.1.11", "@bcrs-shared-components/confirm-dialog": "1.2.1", - "@bcrs-shared-components/corp-type-module": "1.0.11", + "@bcrs-shared-components/corp-type-module": "1.0.14", "@bcrs-shared-components/court-order-poa": "2.1.4", + "@bcrs-shared-components/date-picker": "1.2.39", "@bcrs-shared-components/document-delivery": "1.2.1", - "@bcrs-shared-components/enums": "1.0.50", - "@bcrs-shared-components/expandable-help": "^1.0.0", + "@bcrs-shared-components/enums": "1.1.4", + "@bcrs-shared-components/expandable-help": "1.0.1", "@bcrs-shared-components/folio-number-input": "1.1.18", - "@bcrs-shared-components/interfaces": "1.0.75", - "@bcrs-shared-components/mixins": "1.1.25", + "@bcrs-shared-components/interfaces": "1.1.2", + "@bcrs-shared-components/mixins": "1.1.30", "@bcrs-shared-components/staff-comments": "1.3.11", "@bcrs-shared-components/staff-payment": "2.1.11", "@mdi/font": "^5.9.55", + "@reactivex/rxjs": "^6.6.7", "@sentry/integrations": "^7.50.0", "@sentry/vue": "^7.50.0", "axios": "^0.27.2", @@ -39,6 +41,7 @@ "qrcode.vue": "1.7.0", "regenerator-runtime": "^0.13.11", "register-service-worker": "^1.7.2", + "rxjs": "^7.8.1", "sbc-common-components": "3.0.8", "vue": "2.7.14", "vue-affix": "^0.5.2", @@ -71,7 +74,7 @@ "sass": "^1.55.0", "sinon": "^14.0.2", "typescript": "4.5.5", - "vite": "4.3.9", + "vite": "4.5.2", "vite-plugin-environment": "^1.1.3", "vitest": "0.33.0", "vue-class-component": "^7.2.6", @@ -85,18 +88,16 @@ }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/@ampproject/remapping": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -107,35 +108,31 @@ }, "node_modules/@babel/code-frame": { "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/highlight": "^7.10.4" } }, "node_modules/@babel/compat-data": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", - "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", + "version": "7.23.2", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -147,9 +144,8 @@ }, "node_modules/@babel/highlight/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -159,9 +155,8 @@ }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -173,42 +168,37 @@ }, "node_modules/@babel/highlight/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/highlight/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -218,8 +208,7 @@ }, "node_modules/@babel/parser": { "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -229,16 +218,15 @@ }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@bcrs-shared-components/base-address": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@bcrs-shared-components/base-address/-/base-address-2.0.7.tgz", - "integrity": "sha512-8BEklPFUkbXkdWS1p4NItQS+ZRJSh4WppmuJp98iZmR/4EFe+olSjACdEEA0q4X+5uRnoYoYHdrusN1jDM5kIQ==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@bcrs-shared-components/base-address/-/base-address-2.0.9.tgz", + "integrity": "sha512-0vAFlzWxBLU1Pxv+eDJ1mrHjOfk45jG9wtY1HJ82SyViVK0kvZWI1AOzWaVQ+p/1WU6+60OR8uhyixzUwggAjQ==", "dependencies": { - "@bcrs-shared-components/mixins": "^1.1.25", + "@bcrs-shared-components/mixins": "^1.1.27", "lodash.uniqueid": "^4.0.1", "vue": "^2.7.14", "vuelidate": "0.6.2" @@ -246,8 +234,6 @@ }, "node_modules/@bcrs-shared-components/breadcrumb": { "version": "2.1.11", - "resolved": "https://registry.npmjs.org/@bcrs-shared-components/breadcrumb/-/breadcrumb-2.1.11.tgz", - "integrity": "sha512-p3rxQqchkbbXFIISoXRVQ0fOIzLT4kzxdp+WVrgwVlQAb0SrNEDJC/XNc850mLJUlt/N5uI9debf5+ItQtytlA==", "dependencies": { "@bcrs-shared-components/interfaces": "^1.0.54", "vue-property-decorator": "^9.1.2" @@ -255,80 +241,106 @@ }, "node_modules/@bcrs-shared-components/confirm-dialog": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@bcrs-shared-components/confirm-dialog/-/confirm-dialog-1.2.1.tgz", - "integrity": "sha512-cwCj01zXavyvS/7VQiBFfU5GlZXrSP+A3BJus35xDjYscduTPsszA86+AWKeR6KBmq+GNjSC9RlxsY613ocD7w==", "dependencies": { "vue-property-decorator": "^9.1.2" } }, "node_modules/@bcrs-shared-components/corp-type-module": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@bcrs-shared-components/corp-type-module/-/corp-type-module-1.0.11.tgz", - "integrity": "sha512-+iE3qiySSafiA311m14DuoG9Rq/ranBJNT7Kf7KQ9dJFDNNuTA326pCGwKBeuT1L6pFpGeibXGE+vQ0AYnSPUA==" + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@bcrs-shared-components/corp-type-module/-/corp-type-module-1.0.14.tgz", + "integrity": "sha512-SZhJw4hpqQT2BL3RuVB0Z1hmShhrv5byhH4gnaF1fVl9jsUGkjC/Ytic08UnEX4DIyR1/VWNyjTclNgxi9+0Bw==" }, "node_modules/@bcrs-shared-components/court-order-poa": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@bcrs-shared-components/court-order-poa/-/court-order-poa-2.1.4.tgz", - "integrity": "sha512-dw2eMvs5DBa7E6WTymgUbLRoeTsr4Zlmx4CzViA4cIU5fePrppoNcP4IGz38ep9FRUoq7zKz8j5lBSJi+U/xAw==", "dependencies": { "@bcrs-shared-components/interfaces": "^1.0.47", "vue-property-decorator": "^9.1.2" } }, + "node_modules/@bcrs-shared-components/date-picker": { + "version": "1.2.39", + "resolved": "https://registry.npmjs.org/@bcrs-shared-components/date-picker/-/date-picker-1.2.39.tgz", + "integrity": "sha512-cVNsEHAXAD7A0bqwAS4PQU47AqvBsnIU2xirnyUmPSEykXlkHzKQaPQFx1Y6q0oJ6a1Lc31/y3/CBs19rE2gow==", + "dependencies": { + "@bcrs-shared-components/interfaces": "^1.1.2", + "@bcrs-shared-components/mixins": "^1.1.30", + "vue": "^2.7.14" + } + }, + "node_modules/@bcrs-shared-components/date-picker/node_modules/@bcrs-shared-components/corp-type-module": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@bcrs-shared-components/corp-type-module/-/corp-type-module-1.0.14.tgz", + "integrity": "sha512-SZhJw4hpqQT2BL3RuVB0Z1hmShhrv5byhH4gnaF1fVl9jsUGkjC/Ytic08UnEX4DIyR1/VWNyjTclNgxi9+0Bw==" + }, + "node_modules/@bcrs-shared-components/date-picker/node_modules/@bcrs-shared-components/interfaces": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@bcrs-shared-components/interfaces/-/interfaces-1.1.2.tgz", + "integrity": "sha512-MMZISHIbTkQ86PGWmGqo0aLlRjpRVJ1WOP0R99gay4fjpzylPgrNO/aYHWj7nyT0zeIEQ1g/aCW5UaUCIHHm8w==", + "dependencies": { + "@bcrs-shared-components/corp-type-module": "^1.0.14", + "@bcrs-shared-components/enums": "^1.1.2", + "vue": "^2.7.14" + } + }, + "node_modules/@bcrs-shared-components/date-picker/node_modules/@bcrs-shared-components/mixins": { + "version": "1.1.30", + "resolved": "https://registry.npmjs.org/@bcrs-shared-components/mixins/-/mixins-1.1.30.tgz", + "integrity": "sha512-piKdDz93Xv2np32k9Gm2S3HScicOtCctR+yPy5rgo2j9kLM5DoUrXFv8ptHiFoSx55EF+jd5c0lzIXYTIjZaYQ==", + "dependencies": { + "@bcrs-shared-components/enums": "^1.1.2", + "@bcrs-shared-components/interfaces": "^1.1.2", + "country-list": "^2.3.0", + "lodash": "4.17.21", + "provinces": "^1.11.0", + "vue": "^2.7.14" + } + }, "node_modules/@bcrs-shared-components/document-delivery": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@bcrs-shared-components/document-delivery/-/document-delivery-1.2.1.tgz", - "integrity": "sha512-jzbBvhKzgJb1v/+WdFOzqDNU+9yZGxr+YtSd4KC3lsa1qTIBsyIGjY5o323K1hnJdVDoHljWoN0gdBTc6TlBdg==", "dependencies": { "vue-property-decorator": "^9.1.2" } }, "node_modules/@bcrs-shared-components/enums": { - "version": "1.0.50", - "resolved": "https://registry.npmjs.org/@bcrs-shared-components/enums/-/enums-1.0.50.tgz", - "integrity": "sha512-a2FnvCt1Vb0PHdYzPW8oa7+956sUz4lUIzFMvgryJF1T+jop+RK3RM/aEfn2fath8PRWCRs9AqL6PMGTAyNcxw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@bcrs-shared-components/enums/-/enums-1.1.4.tgz", + "integrity": "sha512-EwHjFTfIiOJLzU3yWSPJnxfplF+cgQSPGFE+6T1jo/7aVpLPMw/cSSGi3cJIr3h7SjyQd8wTxsFP4QDVgCrH7A==", "dependencies": { - "@bcrs-shared-components/corp-type-module": "^1.0.13" + "@bcrs-shared-components/corp-type-module": "^1.0.14" } }, - "node_modules/@bcrs-shared-components/enums/node_modules/@bcrs-shared-components/corp-type-module": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/@bcrs-shared-components/corp-type-module/-/corp-type-module-1.0.13.tgz", - "integrity": "sha512-Wa8H/bxo8GAlcG7YdiP4zl1wzqxewiCO0TC+pBaYUc4+eufuInlS3yYFa9MFg8+vIL/pDfamRtXqdg1I6C6QYA==" - }, "node_modules/@bcrs-shared-components/expandable-help": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@bcrs-shared-components/expandable-help/-/expandable-help-1.0.0.tgz", - "integrity": "sha512-UsjE87YDfZqldplKSR6kzdcQUitz+rP4IyWmwy0qxR97xICzdOT3V4e5258QLEuDwcPt8ZudIZvbR5i80vTWJg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@bcrs-shared-components/expandable-help/-/expandable-help-1.0.1.tgz", + "integrity": "sha512-XhSYX1sSpoBUfCg5AoTe/1fKuOOtxuhhykhefRw8r+j34GK4hTJzeHYaUJBbXD87r2RkdITu3IFS4kA1yZm3OA==", "dependencies": { "vue": "^2.7.14" } }, "node_modules/@bcrs-shared-components/folio-number-input": { "version": "1.1.18", - "resolved": "https://registry.npmjs.org/@bcrs-shared-components/folio-number-input/-/folio-number-input-1.1.18.tgz", - "integrity": "sha512-e1nqsuZTwPIKWHQROnQVw2gOThBPYnRw14F3CRROf5+4yugBBEjvyvAo+s//JnXRTTCSQky5JesQDu6U3LEU6w==", "dependencies": { "@bcrs-shared-components/interfaces": "^1.0.61", "vue-property-decorator": "^9.1.2" } }, "node_modules/@bcrs-shared-components/interfaces": { - "version": "1.0.75", - "resolved": "https://registry.npmjs.org/@bcrs-shared-components/interfaces/-/interfaces-1.0.75.tgz", - "integrity": "sha512-duTiywSNipho1mfdJGj8K+r5MgsNMU06rP5T9wIVPhtUsq/u+8QTRIqr6JD565kFbSvWGFo/HZhqtpVaAmp6/w==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@bcrs-shared-components/interfaces/-/interfaces-1.1.2.tgz", + "integrity": "sha512-MMZISHIbTkQ86PGWmGqo0aLlRjpRVJ1WOP0R99gay4fjpzylPgrNO/aYHWj7nyT0zeIEQ1g/aCW5UaUCIHHm8w==", "dependencies": { - "@bcrs-shared-components/enums": "^1.0.50", + "@bcrs-shared-components/corp-type-module": "^1.0.14", + "@bcrs-shared-components/enums": "^1.1.2", "vue": "^2.7.14" } }, "node_modules/@bcrs-shared-components/mixins": { - "version": "1.1.25", - "resolved": "https://registry.npmjs.org/@bcrs-shared-components/mixins/-/mixins-1.1.25.tgz", - "integrity": "sha512-GGA75o+O+IlUJPDlGQPtYIIIYpYps7KBULEED0SISLZw/kuM4tT6/TeIvDSdvNNxWo7KyDQQnq2R7Sq5nRZuoQ==", + "version": "1.1.30", + "resolved": "https://registry.npmjs.org/@bcrs-shared-components/mixins/-/mixins-1.1.30.tgz", + "integrity": "sha512-piKdDz93Xv2np32k9Gm2S3HScicOtCctR+yPy5rgo2j9kLM5DoUrXFv8ptHiFoSx55EF+jd5c0lzIXYTIjZaYQ==", "dependencies": { - "@bcrs-shared-components/enums": "^1.0.50", - "@bcrs-shared-components/interfaces": "^1.0.75", + "@bcrs-shared-components/enums": "^1.1.2", + "@bcrs-shared-components/interfaces": "^1.1.2", "country-list": "^2.3.0", "lodash": "4.17.21", "provinces": "^1.11.0", @@ -337,8 +349,6 @@ }, "node_modules/@bcrs-shared-components/staff-comments": { "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@bcrs-shared-components/staff-comments/-/staff-comments-1.3.11.tgz", - "integrity": "sha512-ZncZwiWV4j+siL4Z73mXVkdqCvBMVpqAA5RQBwTry9OlygCFGNPpHNbCkyEkquuTG0kEgz29t4W9wyJqNI1qfQ==", "dependencies": { "@bcrs-shared-components/interfaces": "^1.0.54", "vue-property-decorator": "^9.1.2" @@ -346,8 +356,6 @@ }, "node_modules/@bcrs-shared-components/staff-payment": { "version": "2.1.11", - "resolved": "https://registry.npmjs.org/@bcrs-shared-components/staff-payment/-/staff-payment-2.1.11.tgz", - "integrity": "sha512-n/KpfyvsfU0C7FeRIg/BIKNZR8nq9qFP/cujNfpgcPIpDEnUPeeHEVvgcPHiTOqa/c+/9L+bIppbMvlPPvg5yg==", "dependencies": { "@bcrs-shared-components/enums": "^1.0.33", "@bcrs-shared-components/folio-number-input": "^1.1.11", @@ -356,9 +364,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", - "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", "cpu": [ "arm" ], @@ -372,9 +380,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", - "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", "cpu": [ "arm64" ], @@ -388,9 +396,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", - "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", "cpu": [ "x64" ], @@ -404,9 +412,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", - "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", "cpu": [ "arm64" ], @@ -420,9 +428,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", - "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", "cpu": [ "x64" ], @@ -436,9 +444,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", - "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", "cpu": [ "arm64" ], @@ -452,9 +460,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", - "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", "cpu": [ "x64" ], @@ -468,9 +476,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", - "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", "cpu": [ "arm" ], @@ -484,9 +492,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", - "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", "cpu": [ "arm64" ], @@ -500,9 +508,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", - "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", "cpu": [ "ia32" ], @@ -516,9 +524,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", - "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", "cpu": [ "loong64" ], @@ -532,9 +540,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", - "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", "cpu": [ "mips64el" ], @@ -548,9 +556,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", - "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", "cpu": [ "ppc64" ], @@ -564,9 +572,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", - "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", "cpu": [ "riscv64" ], @@ -580,9 +588,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", - "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", "cpu": [ "s390x" ], @@ -596,9 +604,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", - "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", "cpu": [ "x64" ], @@ -612,9 +620,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", - "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", "cpu": [ "x64" ], @@ -628,9 +636,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", - "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", "cpu": [ "x64" ], @@ -644,9 +652,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", - "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", "cpu": [ "x64" ], @@ -660,9 +668,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", - "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", "cpu": [ "arm64" ], @@ -676,9 +684,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", - "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", "cpu": [ "ia32" ], @@ -692,9 +700,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", - "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", "cpu": [ "x64" ], @@ -709,9 +717,8 @@ }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -723,19 +730,17 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.0.tgz", - "integrity": "sha512-zJmuCWj2VLBt4c25CfBIbMZLGLyhkvs7LznyVX5HfpzeocThgIj5XQK4L+g3U36mMcx8bPMhGyPpwCATamC4jQ==", + "version": "4.10.0", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.1.1", @@ -753,27 +758,24 @@ }, "node_modules/@eslint/eslintrc/node_modules/ignore": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/@eslint/js": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", - "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", + "version": "8.52.0", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^1.2.0", "debug": "^4.1.1", @@ -785,9 +787,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -798,24 +799,21 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/schemas": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, + "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -825,9 +823,8 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -839,92 +836,42 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "version": "0.3.20", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", - "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", - "optional": true, - "dependencies": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "optional": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "optional": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@mdi/font": { "version": "5.9.55", - "resolved": "https://registry.npmjs.org/@mdi/font/-/font-5.9.55.tgz", - "integrity": "sha512-jswRF6q3eq8NWpWiqct6q+6Fg/I7nUhrxYJfiEM8JJpap0wVJLQdbKtyS65GdlK7S7Ytnx3TTi/bmw+tBhkGmg==" + "license": "Apache-2.0" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -935,18 +882,16 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -957,15 +902,13 @@ }, "node_modules/@one-ini/wasm": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", - "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@pinia/testing": { "version": "0.0.16", - "resolved": "https://registry.npmjs.org/@pinia/testing/-/testing-0.0.16.tgz", - "integrity": "sha512-oa5kO82hzWekqMq1HTnS/b+ZM+ZKEcEApuuCTelvKK79jTxg7P026Qw8/2RbVn5eUGAvRWQu4ubObrshVqCRjQ==", "dev": true, + "license": "MIT", "dependencies": { "vue-demi": "*" }, @@ -978,10 +921,9 @@ }, "node_modules/@pinia/testing/node_modules/vue-demi": { "version": "0.14.6", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", - "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "vue-demi-fix": "bin/vue-demi-fix.js", "vue-demi-switch": "bin/vue-demi-switch.js" @@ -1002,106 +944,104 @@ } } }, + "node_modules/@reactivex/rxjs": { + "version": "6.6.7", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, "node_modules/@sentry-internal/tracing": { - "version": "7.72.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.72.0.tgz", - "integrity": "sha512-DToryaRSHk9R5RLgN4ktYEXZjQdqncOAWPqyyIurji8lIobXFRfmLtGL1wjoCK6sQNgWsjhSM9kXxwGnva1DNw==", + "version": "7.77.0", + "license": "MIT", "dependencies": { - "@sentry/core": "7.72.0", - "@sentry/types": "7.72.0", - "@sentry/utils": "7.72.0", - "tslib": "^2.4.1 || ^1.9.3" + "@sentry/core": "7.77.0", + "@sentry/types": "7.77.0", + "@sentry/utils": "7.77.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/browser": { - "version": "7.72.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.72.0.tgz", - "integrity": "sha512-fcFDTzqhPd3VZAmmYW3KvBTBaEfrKjPmRhlAsfhkGWYLCHqVkNtzsFER4cmUNRGNxjyt9tcG3WlTTqgLRucycQ==", + "version": "7.77.0", + "license": "MIT", "dependencies": { - "@sentry-internal/tracing": "7.72.0", - "@sentry/core": "7.72.0", - "@sentry/replay": "7.72.0", - "@sentry/types": "7.72.0", - "@sentry/utils": "7.72.0", - "tslib": "^2.4.1 || ^1.9.3" + "@sentry-internal/tracing": "7.77.0", + "@sentry/core": "7.77.0", + "@sentry/replay": "7.77.0", + "@sentry/types": "7.77.0", + "@sentry/utils": "7.77.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/core": { - "version": "7.72.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.72.0.tgz", - "integrity": "sha512-G03JdQ5ZsFNRjcNNi+QvCjqOuBvYqU92Gs1T2iK3GE8dSBTu2khThydMpG4xrKZQLIpHOyiIhlFZiuPtZ66W8w==", + "version": "7.77.0", + "license": "MIT", "dependencies": { - "@sentry/types": "7.72.0", - "@sentry/utils": "7.72.0", - "tslib": "^2.4.1 || ^1.9.3" + "@sentry/types": "7.77.0", + "@sentry/utils": "7.77.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/integrations": { - "version": "7.72.0", - "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.72.0.tgz", - "integrity": "sha512-ay2WgLtjsr0WS8+N7i7VmKzondoZRh3ISx8rb91LjmVrDNu8baleZAB59jkKe/JSy0gYh99umJuptc2te/65+A==", + "version": "7.77.0", + "license": "MIT", "dependencies": { - "@sentry/types": "7.72.0", - "@sentry/utils": "7.72.0", - "localforage": "^1.8.1", - "tslib": "^2.4.1 || ^1.9.3" + "@sentry/core": "7.77.0", + "@sentry/types": "7.77.0", + "@sentry/utils": "7.77.0", + "localforage": "^1.8.1" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/replay": { - "version": "7.72.0", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.72.0.tgz", - "integrity": "sha512-dHH/mYCFBwJ/kYmL9L5KihjwQKcefiuvcH0otHSwKSpbbeEoM/BV+SHQoYGd6OMSYnL9fq1dHfF7Zo26p5Yu0Q==", + "version": "7.77.0", + "license": "MIT", "dependencies": { - "@sentry/core": "7.72.0", - "@sentry/types": "7.72.0", - "@sentry/utils": "7.72.0" + "@sentry-internal/tracing": "7.77.0", + "@sentry/core": "7.77.0", + "@sentry/types": "7.77.0", + "@sentry/utils": "7.77.0" }, "engines": { "node": ">=12" } }, "node_modules/@sentry/types": { - "version": "7.72.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.72.0.tgz", - "integrity": "sha512-g6u0mk62yGshx02rfFADIfyR/S9VXcf3RG2qQPuvykrWtOfN/BOTrZypF7I+MiqKwRW76r3Pcu2C/AB+6z9XQA==", + "version": "7.77.0", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@sentry/utils": { - "version": "7.72.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.72.0.tgz", - "integrity": "sha512-o/MtqI7WJXuswidH0bSgBP40KN2lrnyQEIx5uoyJUJi/QEaboIsqbxU62vaFJpde8SYrbA+rTnP3J3ujF2gUag==", + "version": "7.77.0", + "license": "MIT", "dependencies": { - "@sentry/types": "7.72.0", - "tslib": "^2.4.1 || ^1.9.3" + "@sentry/types": "7.77.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/vue": { - "version": "7.72.0", - "resolved": "https://registry.npmjs.org/@sentry/vue/-/vue-7.72.0.tgz", - "integrity": "sha512-XTJK7C8WH370jBhXzKwPS3TgG5w5tT+qW25IQ+ypyBv4vclcaKeeGMlIehuH2n3hVI9ut/f4Wjj1EwCrQE4ORw==", + "version": "7.77.0", + "license": "MIT", "dependencies": { - "@sentry/browser": "7.72.0", - "@sentry/core": "7.72.0", - "@sentry/types": "7.72.0", - "@sentry/utils": "7.72.0", - "tslib": "^2.4.1 || ^1.9.3" + "@sentry/browser": "7.77.0", + "@sentry/core": "7.77.0", + "@sentry/types": "7.77.0", + "@sentry/utils": "7.77.0" }, "engines": { "node": ">=8" @@ -1112,42 +1052,37 @@ }, "node_modules/@sinclair/typebox": { "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@sinonjs/commons": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^1.7.0" } }, "node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/samsam": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", - "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^2.0.0", "lodash.get": "^4.4.2", @@ -1156,108 +1091,96 @@ }, "node_modules/@sinonjs/text-encoding": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", - "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", - "dev": true + "dev": true, + "license": "(Unlicense OR Apache-2.0)" }, "node_modules/@tootallnate/once": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/@types/chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==", - "dev": true + "version": "4.3.9", + "dev": true, + "license": "MIT" }, "node_modules/@types/chai-subset": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", - "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", + "version": "1.3.4", "dev": true, + "license": "MIT", "dependencies": { "@types/chai": "*" } }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true + "version": "2.0.5", + "dev": true, + "license": "MIT" }, "node_modules/@types/json-schema": { - "version": "7.0.13", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", - "dev": true + "version": "7.0.14", + "dev": true, + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/lodash": { - "version": "4.14.199", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz", - "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==", - "dev": true + "version": "4.14.200", + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "20.7.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.7.1.tgz", - "integrity": "sha512-LT+OIXpp2kj4E2S/p91BMe+VgGX2+lfO+XTpfXhh+bCk2LkQtHZSub8ewFBMGP5ClysPjTDFa4sMI8Q3n4T0wg==", - "dev": true + "version": "20.8.10", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", - "dev": true + "version": "7.5.4", + "dev": true, + "license": "MIT" }, "node_modules/@types/sinon": { - "version": "10.0.17", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.17.tgz", - "integrity": "sha512-+6ILpcixQ0Ma3dHMTLv4rSycbDXkDljgKL+E0nI2RUxxhYTFyPSjt6RVMxh7jUshvyVcBvicb0Ktj+lAJcjgeA==", + "version": "10.0.20", "dev": true, + "license": "MIT", "dependencies": { "@types/sinonjs__fake-timers": "*" } }, "node_modules/@types/sinonjs__fake-timers": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.3.tgz", - "integrity": "sha512-4g+2YyWe0Ve+LBh+WUm1697PD0Kdi6coG1eU0YjQbwx61AZ8XbEpL1zIT6WjuUKrCMCROpEaYQPDjBnDouBVAQ==", - "dev": true + "version": "8.1.4", + "dev": true, + "license": "MIT" }, "node_modules/@types/vue-the-mask": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/@types/vue-the-mask/-/vue-the-mask-0.11.2.tgz", - "integrity": "sha512-8XXSMyic/jLMJspzSkxILpF6P2p+lkp2T9DH/MyW/AlKuTDv6uWkObfwLM0lMiOzmYeQgM6clWHF4SRoDKrV8Q==", + "version": "0.11.4", "dev": true, + "license": "MIT", "dependencies": { "vue": "^2.6.10" } }, "node_modules/@types/vuelidate": { - "version": "0.7.19", - "resolved": "https://registry.npmjs.org/@types/vuelidate/-/vuelidate-0.7.19.tgz", - "integrity": "sha512-fXVthNVCuWurszolIxi5CML9jbwXDq1ZwYgt0aQR8zBZ0UjcFcn8oyQie4zykjBAiyzExlEoGktzYy0/xc5BlA==", + "version": "0.7.20", "dev": true, + "license": "MIT", "dependencies": { "vue": "^2.6.11" } }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.4.0", "@typescript-eslint/scope-manager": "5.62.0", @@ -1289,9 +1212,8 @@ }, "node_modules/@typescript-eslint/parser": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", @@ -1316,9 +1238,8 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0" @@ -1333,9 +1254,8 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "5.62.0", "@typescript-eslint/utils": "5.62.0", @@ -1360,9 +1280,8 @@ }, "node_modules/@typescript-eslint/types": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -1373,9 +1292,8 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0", @@ -1400,9 +1318,8 @@ }, "node_modules/@typescript-eslint/utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", @@ -1426,9 +1343,8 @@ }, "node_modules/@typescript-eslint/visitor-keys": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" @@ -1441,11 +1357,15 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "dev": true, + "license": "ISC" + }, "node_modules/@vitejs/plugin-vue2": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue2/-/plugin-vue2-2.2.0.tgz", - "integrity": "sha512-1km7zEuZ/9QRPvzXSjikbTYGQPG86Mq1baktpC4sXqsXlb02HQKfi+fl8qVS703JM7cgm24Ga9j+RwKmvFn90A==", "dev": true, + "license": "MIT", "engines": { "node": "^14.18.0 || >= 16.0.0" }, @@ -1455,10 +1375,9 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-0.34.5.tgz", - "integrity": "sha512-97xjhRTSdmeeHCm2nNHhT3hLsMYkAhHXm/rwj6SZ3voka8xiCJrwgtfIjoZIFEL4OO0KezGmVuHWQXcMunULIA==", + "version": "0.34.6", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.1", "@bcoe/v8-coverage": "^0.2.3", @@ -1481,9 +1400,8 @@ }, "node_modules/@vitest/expect": { "version": "0.33.0", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.33.0.tgz", - "integrity": "sha512-sVNf+Gla3mhTCxNJx+wJLDPp/WcstOe0Ksqz4Vec51MmgMth/ia0MGFEkIZmVGeTL5HtjYR4Wl/ZxBxBXZJTzQ==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/spy": "0.33.0", "@vitest/utils": "0.33.0", @@ -1495,9 +1413,8 @@ }, "node_modules/@vitest/runner": { "version": "0.33.0", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.33.0.tgz", - "integrity": "sha512-UPfACnmCB6HKRHTlcgCoBh6ppl6fDn+J/xR8dTufWiKt/74Y9bHci5CKB8tESSV82zKYtkBJo9whU3mNvfaisg==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/utils": "0.33.0", "p-limit": "^4.0.0", @@ -1509,9 +1426,8 @@ }, "node_modules/@vitest/snapshot": { "version": "0.33.0", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.33.0.tgz", - "integrity": "sha512-tJjrl//qAHbyHajpFvr8Wsk8DIOODEebTu7pgBrP07iOepR5jYkLFiqLq2Ltxv+r0uptUb4izv1J8XBOwKkVYA==", "dev": true, + "license": "MIT", "dependencies": { "magic-string": "^0.30.1", "pathe": "^1.1.1", @@ -1523,9 +1439,8 @@ }, "node_modules/@vitest/spy": { "version": "0.33.0", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.33.0.tgz", - "integrity": "sha512-Kv+yZ4hnH1WdiAkPUQTpRxW8kGtH8VRTnus7ZTGovFYM1ZezJpvGtb9nPIjPnptHbsyIAxYZsEpVPYgtpjGnrg==", "dev": true, + "license": "MIT", "dependencies": { "tinyspy": "^2.1.1" }, @@ -1535,9 +1450,8 @@ }, "node_modules/@vitest/utils": { "version": "0.33.0", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.33.0.tgz", - "integrity": "sha512-pF1w22ic965sv+EN6uoePkAOTkAPWM03Ri/jXNyMIKBb/XHLDPfhLvf/Fa9g0YECevAIz56oVYXhodLvLQ/awA==", "dev": true, + "license": "MIT", "dependencies": { "diff-sequences": "^29.4.3", "loupe": "^2.3.6", @@ -1568,14 +1482,11 @@ }, "node_modules/@vscode/l10n": { "version": "0.0.16", - "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.16.tgz", - "integrity": "sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@vue/compiler-sfc": { "version": "2.7.14", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz", - "integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==", "dependencies": { "@babel/parser": "^7.18.4", "postcss": "^8.4.14", @@ -1583,15 +1494,13 @@ } }, "node_modules/@vue/devtools-api": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", - "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + "version": "6.5.1", + "license": "MIT" }, "node_modules/@vue/eslint-config-standard": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-standard/-/eslint-config-standard-4.0.0.tgz", - "integrity": "sha512-bQghq1cw1BuMRHNhr3tRpAJx1tpGy0QtajQX873kLtA9YVuOIoXR7nAWnTN09bBHnSUh2N288vMsqPi2fI4Hzg==", "dev": true, + "license": "MIT", "dependencies": { "eslint-config-standard": "^12.0.0", "eslint-plugin-import": "^2.14.0", @@ -1602,9 +1511,8 @@ }, "node_modules/@vue/eslint-config-typescript": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-9.1.0.tgz", - "integrity": "sha512-j/852/ZYQ5wDvCD3HE2q4uqJwJAceer2FwoEch1nFo+zTOsPrbzbE3cuWIs3kvu5hdFsGTMYwRwjI6fqZKDMxQ==", "dev": true, + "license": "MIT", "dependencies": { "vue-eslint-parser": "^8.0.0" }, @@ -1620,9 +1528,8 @@ }, "node_modules/@vue/test-utils": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.3.6.tgz", - "integrity": "sha512-udMmmF1ts3zwxUJEIAj5ziioR900reDrt6C9H3XpWPsLBx2lpHKoA4BTdd9HNIYbkGltWw+JjWJ+5O6QBwiyEw==", "dev": true, + "license": "MIT", "dependencies": { "dom-event-types": "^1.0.0", "lodash": "^4.17.15", @@ -1635,21 +1542,18 @@ }, "node_modules/abab": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "devOptional": true + "dev": true, + "license": "ISC" }, "node_modules/acorn": { "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1659,27 +1563,24 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "version": "8.3.0", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/agent-base": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "devOptional": true, + "dev": true, + "license": "MIT", "dependencies": { "debug": "4" }, @@ -1689,9 +1590,8 @@ }, "node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1705,27 +1605,24 @@ }, "node_modules/ansi-colors": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "devOptional": true, + "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -1738,9 +1635,8 @@ }, "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1749,39 +1645,18 @@ "node": ">= 8" } }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "optional": true - }, - "node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/array-buffer-byte-length": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "is-array-buffer": "^3.0.1" @@ -1792,9 +1667,8 @@ }, "node_modules/array-includes": { "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -1811,18 +1685,16 @@ }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/array.prototype.findlastindex": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -1839,9 +1711,8 @@ }, "node_modules/array.prototype.flat": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -1857,9 +1728,8 @@ }, "node_modules/array.prototype.flatmap": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -1875,9 +1745,8 @@ }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.2", @@ -1896,32 +1765,28 @@ }, "node_modules/assertion-error": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/astral-regex": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "license": "MIT" }, "node_modules/available-typed-arrays": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -1931,8 +1796,7 @@ }, "node_modules/axios": { "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.14.9", "form-data": "^4.0.0" @@ -1940,14 +1804,11 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "devOptional": true + "dev": true, + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -1961,28 +1822,26 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/boolbase": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "devOptional": true, + "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1990,9 +1849,8 @@ }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -2002,30 +1860,28 @@ }, "node_modules/builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/cac": { "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2033,33 +1889,16 @@ }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/canvas": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz", - "integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.0", - "nan": "^2.17.0", - "simple-get": "^3.0.3" - }, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/chai": { "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", "dev": true, + "license": "MIT", "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.3", @@ -2075,9 +1914,8 @@ }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2091,18 +1929,16 @@ }, "node_modules/character-parser": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", - "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", "dev": true, + "license": "MIT", "dependencies": { "is-regex": "^1.0.3" } }, "node_modules/check-error": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "license": "MIT", "dependencies": { "get-func-name": "^2.0.2" }, @@ -2112,8 +1948,6 @@ }, "node_modules/chokidar": { "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "funding": [ { @@ -2121,6 +1955,7 @@ "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -2137,25 +1972,14 @@ "fsevents": "~2.3.2" } }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "optional": true, - "engines": { - "node": ">=10" - } - }, "node_modules/clickout-event": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/clickout-event/-/clickout-event-1.1.2.tgz", - "integrity": "sha512-oGb80mX872OcwV5Rfz6khuolsi3cJHLGHmJ+Tvw9w6J3MejH5StPfFma+Z3rPhNZ+vCXnAo+GLBl09bfxCLaSQ==" + "license": "MIT" }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -2165,23 +1989,12 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "optional": true, - "bin": { - "color-support": "bin.js" - } + "dev": true, + "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -2191,24 +2004,21 @@ }, "node_modules/commander": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "devOptional": true + "dev": true, + "license": "MIT" }, "node_modules/condense-newlines": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/condense-newlines/-/condense-newlines-0.2.1.tgz", - "integrity": "sha512-P7X+QL9Hb9B/c8HI5BFFKmjgBu2XpQuF98WZ9XkO+dBGgk5XgwiQz7o1SmpglNWId3581UcS0SFAWfoIhMHPfg==", "dev": true, + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-whitespace": "^0.3.0", @@ -2220,31 +2030,22 @@ }, "node_modules/config-chain": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, + "license": "MIT", "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" } }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "optional": true - }, "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "version": "2.0.0", + "dev": true, + "license": "MIT" }, "node_modules/core-js": { - "version": "3.32.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.32.2.tgz", - "integrity": "sha512-pxXSw1mYZPDGvTQqEc5vgIb83jGQKFGYWY76z4a7weZXUolw3G+OvpZqSRcfYOoOVUQJYEPsWeQK8pKEnUtWxQ==", + "version": "3.33.2", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -2252,14 +2053,12 @@ }, "node_modules/country-list": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/country-list/-/country-list-2.3.0.tgz", - "integrity": "sha512-qZk66RlmQm7fQjMYWku1AyjlKPogjPEorAZJG88owPExoPV8EsyCcuFLvO2afTXHEhi9liVOoyd+5A6ZS5QwaA==" + "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2271,9 +2070,8 @@ }, "node_modules/cssesc": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -2283,9 +2081,8 @@ }, "node_modules/cssstyle": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", - "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", "dev": true, + "license": "MIT", "dependencies": { "rrweb-cssom": "^0.6.0" }, @@ -2295,14 +2092,12 @@ }, "node_modules/csstype": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "license": "MIT" }, "node_modules/data-urls": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", - "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", "dev": true, + "license": "MIT", "dependencies": { "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", @@ -2314,16 +2109,14 @@ }, "node_modules/de-indent": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "devOptional": true, + "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -2338,27 +2131,13 @@ }, "node_modules/decimal.js": { "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true - }, - "node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "optional": true, - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } + "dev": true, + "license": "MIT" }, "node_modules/deep-eql": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, + "license": "MIT", "dependencies": { "type-detect": "^4.0.0" }, @@ -2368,15 +2147,13 @@ }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/define-data-property": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", - "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "version": "1.1.1", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", @@ -2388,9 +2165,8 @@ }, "node_modules/define-properties": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -2405,50 +2181,31 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "optional": true - }, - "node_modules/detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", - "optional": true, - "engines": { - "node": ">=8" - } - }, "node_modules/diff": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/diff-sequences": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -2458,9 +2215,8 @@ }, "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -2470,15 +2226,13 @@ }, "node_modules/dom-event-types": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/dom-event-types/-/dom-event-types-1.1.0.tgz", - "integrity": "sha512-jNCX+uNJ3v38BKvPbpki6j5ItVlnSqVV6vDWGS6rExzCMjsc39frLjm1n91o6YaKK6AZl0wLloItW6C6mr61BQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/domexception": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", "dev": true, + "license": "MIT", "dependencies": { "webidl-conversions": "^7.0.0" }, @@ -2488,9 +2242,8 @@ }, "node_modules/editorconfig": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", - "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", "dev": true, + "license": "MIT", "dependencies": { "@one-ini/wasm": "0.1.1", "commander": "^10.0.0", @@ -2506,18 +2259,16 @@ }, "node_modules/editorconfig/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/editorconfig/node_modules/minimatch": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -2530,15 +2281,13 @@ }, "node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "devOptional": true + "dev": true, + "license": "MIT" }, "node_modules/enquirer": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "^4.1.1", "strip-ansi": "^6.0.1" @@ -2549,9 +2298,8 @@ }, "node_modules/entities": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -2560,26 +2308,25 @@ } }, "node_modules/es-abstract": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", + "version": "1.22.3", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", "arraybuffer.prototype.slice": "^1.0.2", "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.5", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.1", + "get-intrinsic": "^1.2.2", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", + "hasown": "^2.0.0", "internal-slot": "^1.0.5", "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", @@ -2589,7 +2336,7 @@ "is-string": "^1.0.7", "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.5.1", @@ -2603,7 +2350,7 @@ "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -2613,33 +2360,30 @@ } }, "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "version": "2.0.2", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "version": "1.0.2", "dev": true, + "license": "MIT", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -2653,9 +2397,9 @@ } }, "node_modules/esbuild": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", - "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "dev": true, "hasInstallScript": true, "bin": { @@ -2665,34 +2409,33 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" } }, "node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -2702,9 +2445,8 @@ }, "node_modules/eslint": { "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.3", @@ -2759,9 +2501,8 @@ }, "node_modules/eslint-config-standard": { "version": "12.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz", - "integrity": "sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==", "dev": true, + "license": "MIT", "peerDependencies": { "eslint": ">=5.0.0", "eslint-plugin-import": ">=2.13.0", @@ -2772,9 +2513,8 @@ }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -2783,18 +2523,16 @@ }, "node_modules/eslint-import-resolver-node/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-module-utils": { "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -2809,18 +2547,16 @@ }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-es": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz", - "integrity": "sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-utils": "^1.4.2", "regexpp": "^2.0.1" @@ -2834,9 +2570,8 @@ }, "node_modules/eslint-plugin-es/node_modules/eslint-utils": { "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -2846,43 +2581,40 @@ }, "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=4" } }, "node_modules/eslint-plugin-es/node_modules/regexpp": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.5.0" } }, "node_modules/eslint-plugin-import": { - "version": "2.28.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", - "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", + "version": "2.29.0", "dev": true, + "license": "MIT", "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.findlastindex": "^1.2.2", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", + "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.8.0", - "has": "^1.0.3", - "is-core-module": "^2.13.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.6", - "object.groupby": "^1.0.0", - "object.values": "^1.1.6", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", "semver": "^6.3.1", "tsconfig-paths": "^3.14.2" }, @@ -2895,18 +2627,16 @@ }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -2916,18 +2646,16 @@ }, "node_modules/eslint-plugin-import/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-plugin-node": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz", - "integrity": "sha512-ZjOjbjEi6jd82rIpFSgagv4CHWzG9xsQAVp1ZPlhRnnYxcTgENUVBvhYmkQ7GvT1QFijUSo69RaiOJKhMu6i8w==", "dev": true, + "license": "MIT", "dependencies": { "eslint-plugin-es": "^1.3.1", "eslint-utils": "^1.3.1", @@ -2945,9 +2673,8 @@ }, "node_modules/eslint-plugin-node/node_modules/eslint-utils": { "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -2957,35 +2684,30 @@ }, "node_modules/eslint-plugin-node/node_modules/eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=4" } }, "node_modules/eslint-plugin-node/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/eslint-plugin-promise": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz", - "integrity": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=6" } }, "node_modules/eslint-plugin-standard": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz", - "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==", "dev": true, "funding": [ { @@ -3001,15 +2723,15 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "peerDependencies": { "eslint": ">=5.0.0" } }, "node_modules/eslint-plugin-vue": { "version": "8.7.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz", - "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==", "dev": true, + "license": "MIT", "dependencies": { "eslint-utils": "^3.0.0", "natural-compare": "^1.4.0", @@ -3027,9 +2749,8 @@ }, "node_modules/eslint-plugin-vue/node_modules/eslint-utils": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^2.0.0" }, @@ -3045,18 +2766,16 @@ }, "node_modules/eslint-plugin-vue/node_modules/eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10" } }, "node_modules/eslint-plugin-vuetify": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vuetify/-/eslint-plugin-vuetify-1.1.0.tgz", - "integrity": "sha512-I1YRUCGkDqe8F7O0tdf63UZVKtk4734+8fzbZ24YIZKTTyQp/FIR0nSZYG8mPFhTWerzPta7oXNzliBOwP2XeQ==", "dev": true, + "license": "MIT", "dependencies": { "eslint-plugin-vue": "^7.0.0", "requireindex": "^1.2.0" @@ -3068,9 +2787,8 @@ }, "node_modules/eslint-plugin-vuetify/node_modules/eslint-plugin-vue": { "version": "7.20.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz", - "integrity": "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==", "dev": true, + "license": "MIT", "dependencies": { "eslint-utils": "^2.1.0", "natural-compare": "^1.4.0", @@ -3086,18 +2804,16 @@ }, "node_modules/eslint-plugin-vuetify/node_modules/eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=4" } }, "node_modules/eslint-plugin-vuetify/node_modules/espree": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^7.1.1", "acorn-jsx": "^5.2.0", @@ -3109,18 +2825,16 @@ }, "node_modules/eslint-plugin-vuetify/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-plugin-vuetify/node_modules/vue-eslint-parser": { "version": "7.11.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz", - "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.1", "eslint-scope": "^5.1.1", @@ -3142,9 +2856,8 @@ }, "node_modules/eslint-scope": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -3155,9 +2868,8 @@ }, "node_modules/eslint-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -3170,18 +2882,16 @@ }, "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=4" } }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -3191,27 +2901,24 @@ }, "node_modules/eslint/node_modules/eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10" } }, "node_modules/eslint/node_modules/ignore": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/espree": { "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", @@ -3223,18 +2930,16 @@ }, "node_modules/espree/node_modules/eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=4" } }, "node_modules/esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -3245,9 +2950,8 @@ }, "node_modules/esquery": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -3257,18 +2961,16 @@ }, "node_modules/esquery/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -3278,36 +2980,32 @@ }, "node_modules/esrecurse/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -3317,15 +3015,13 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -3339,30 +3035,26 @@ }, "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", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fastq": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -3372,9 +3064,8 @@ }, "node_modules/fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -3384,9 +3075,8 @@ }, "node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -3399,12 +3089,11 @@ } }, "node_modules/flat-cache": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", - "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "version": "3.1.1", "dev": true, + "license": "MIT", "dependencies": { - "flatted": "^3.2.7", + "flatted": "^3.2.9", "keyv": "^4.5.3", "rimraf": "^3.0.2" }, @@ -3414,26 +3103,23 @@ }, "node_modules/flatted": { "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/flush-promises": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flush-promises/-/flush-promises-1.0.2.tgz", - "integrity": "sha512-G0sYfLQERwKz4+4iOZYQEZVpOt9zQrlItIxQAAYAWpfby3gbHrx0osCHz5RLl/XoXevXk0xoN4hDFky/VV9TrA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/follow-redirects": { "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -3445,17 +3131,15 @@ }, "node_modules/for-each": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } }, "node_modules/form-data": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -3465,35 +3149,10 @@ "node": ">= 6" } }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "devOptional": true + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", @@ -3510,16 +3169,17 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -3535,58 +3195,34 @@ }, "node_modules/functional-red-black-tree": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/functions-have-names": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "optional": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/get-func-name": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.2", "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3594,9 +3230,8 @@ }, "node_modules/get-symbol-description": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -3610,9 +3245,8 @@ }, "node_modules/glob": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3629,9 +3263,8 @@ }, "node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -3641,18 +3274,16 @@ }, "node_modules/glob/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/glob/node_modules/minimatch": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3661,10 +3292,9 @@ } }, "node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", + "version": "13.23.0", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -3677,9 +3307,8 @@ }, "node_modules/globalthis": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3" }, @@ -3692,9 +3321,8 @@ }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -3712,9 +3340,8 @@ }, "node_modules/gopd": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -3724,47 +3351,31 @@ }, "node_modules/graphemer": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } + "license": "MIT" }, "node_modules/has-bigints": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.1", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.1" + "get-intrinsic": "^1.2.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3772,9 +3383,8 @@ }, "node_modules/has-proto": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3784,9 +3394,8 @@ }, "node_modules/has-symbols": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3796,9 +3405,8 @@ }, "node_modules/has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -3809,17 +3417,21 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "optional": true + "node_modules/hasown": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/he": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, + "license": "MIT", "peer": true, "bin": { "he": "bin/he" @@ -3827,9 +3439,8 @@ }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", "dev": true, + "license": "MIT", "dependencies": { "whatwg-encoding": "^2.0.0" }, @@ -3839,15 +3450,13 @@ }, "node_modules/html-escaper": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/http-proxy-agent": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, + "license": "MIT", "dependencies": { "@tootallnate/once": "2", "agent-base": "6", @@ -3859,14 +3468,12 @@ }, "node_modules/http-status-codes": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.3.0.tgz", - "integrity": "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==" + "license": "MIT" }, "node_modules/https-proxy-agent": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "devOptional": true, + "dev": true, + "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -3877,9 +3484,8 @@ }, "node_modules/iconv-lite": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -3889,29 +3495,25 @@ }, "node_modules/ignore": { "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/immediate": { "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + "license": "MIT" }, "node_modules/immutable": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", - "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -3925,18 +3527,16 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "devOptional": true, + "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -3944,24 +3544,21 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "devOptional": true + "dev": true, + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "version": "1.0.6", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -3970,9 +3567,8 @@ }, "node_modules/is-array-buffer": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.0", @@ -3984,9 +3580,8 @@ }, "node_modules/is-bigint": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, + "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -3996,9 +3591,8 @@ }, "node_modules/is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -4008,9 +3602,8 @@ }, "node_modules/is-boolean-object": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -4024,15 +3617,13 @@ }, "node_modules/is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-callable": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -4041,12 +3632,11 @@ } }, "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", "dev": true, + "license": "MIT", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4054,9 +3644,8 @@ }, "node_modules/is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -4069,9 +3658,8 @@ }, "node_modules/is-expression": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", - "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", "dev": true, + "license": "MIT", "dependencies": { "acorn": "^7.1.1", "object-assign": "^4.1.1" @@ -4079,36 +3667,32 @@ }, "node_modules/is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "devOptional": true, + "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -4118,9 +3702,8 @@ }, "node_modules/is-negative-zero": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -4130,18 +3713,16 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -4154,24 +3735,21 @@ }, "node_modules/is-path-inside": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -4185,9 +3763,8 @@ }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -4197,9 +3774,8 @@ }, "node_modules/is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -4212,9 +3788,8 @@ }, "node_modules/is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -4227,9 +3802,8 @@ }, "node_modules/is-typed-array": { "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, + "license": "MIT", "dependencies": { "which-typed-array": "^1.1.11" }, @@ -4242,9 +3816,8 @@ }, "node_modules/is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -4254,39 +3827,34 @@ }, "node_modules/is-whitespace": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz", - "integrity": "sha512-RydPhl4S6JwAyj0JJjshWJEFG6hNye3pZFBRZaTUfZFwGHxzppNaNOVgQuS/E/SlhrApuMXrpnK1EEIXfdo3Dg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/isarray": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/istanbul-lib-coverage": { "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, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-report": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -4298,9 +3866,8 @@ }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -4312,9 +3879,8 @@ }, "node_modules/istanbul-reports": { "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -4325,9 +3891,8 @@ }, "node_modules/js-beautify": { "version": "1.14.9", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.9.tgz", - "integrity": "sha512-coM7xq1syLcMyuVGyToxcj2AlzhkDjmfklL8r0JgJ7A76wyGMpJ1oA35mr4APdYNO/o/4YY8H54NQIJzhMbhBg==", "dev": true, + "license": "MIT", "dependencies": { "config-chain": "^1.1.13", "editorconfig": "^1.0.3", @@ -4345,9 +3910,8 @@ }, "node_modules/js-beautify/node_modules/nopt": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", "dev": true, + "license": "ISC", "dependencies": { "abbrev": "^1.0.0" }, @@ -4360,20 +3924,17 @@ }, "node_modules/js-sha256": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + "license": "MIT" }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -4384,9 +3945,8 @@ }, "node_modules/jsdom": { "version": "22.1.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz", - "integrity": "sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==", "dev": true, + "license": "MIT", "dependencies": { "abab": "^2.0.6", "cssstyle": "^3.0.0", @@ -4426,27 +3986,23 @@ }, "node_modules/json-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json5": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -4456,20 +4012,17 @@ }, "node_modules/jsonc-parser": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/just-extend": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/keycloak-js": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/keycloak-js/-/keycloak-js-9.0.3.tgz", - "integrity": "sha512-c8FFPa8YiJmPbJEMZ/mIrHflBR6FIFUm5xTWtIDzlrnoeF4u0wDmTBfo1u71rWIL1HanLvg3T+9AgR1NqfmGbA==", + "license": "Apache-2.0", "dependencies": { "base64-js": "1.3.1", "js-sha256": "0.9.0" @@ -4477,23 +4030,20 @@ }, "node_modules/keycloak-js/node_modules/base64-js": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + "license": "MIT" }, "node_modules/keyv": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", - "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "version": "4.5.4", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } }, "node_modules/kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -4503,8 +4053,7 @@ }, "node_modules/launchdarkly-js-client-sdk": { "version": "2.24.2", - "resolved": "https://registry.npmjs.org/launchdarkly-js-client-sdk/-/launchdarkly-js-client-sdk-2.24.2.tgz", - "integrity": "sha512-8jrLOia0vfZ4stqQRv9TjAYfRGK2JyWpLIL6PbTl99LqTtJMuYtryFUQp0b8WH1153YN+gVdoqPVI7uwbbzLLQ==", + "license": "Apache-2.0", "dependencies": { "escape-string-regexp": "^4.0.0", "launchdarkly-js-sdk-common": "3.8.2" @@ -4512,8 +4061,7 @@ }, "node_modules/launchdarkly-js-sdk-common": { "version": "3.8.2", - "resolved": "https://registry.npmjs.org/launchdarkly-js-sdk-common/-/launchdarkly-js-sdk-common-3.8.2.tgz", - "integrity": "sha512-pEqZ3FTKtYrTaPdbPntFJs87svzcezrkoRWY2GEFmyPC33txOqU788x0yby2+haC/saFPNfXpH6bbiJE/GjMSA==", + "license": "Apache-2.0", "dependencies": { "base64-js": "^1.3.0", "fast-deep-equal": "^2.0.1", @@ -4522,14 +4070,12 @@ }, "node_modules/launchdarkly-js-sdk-common/node_modules/fast-deep-equal": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==" + "license": "MIT" }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -4540,17 +4086,15 @@ }, "node_modules/lie": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", - "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", + "license": "MIT", "dependencies": { "immediate": "~3.0.5" } }, "node_modules/local-pkg": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", - "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" }, @@ -4560,17 +4104,15 @@ }, "node_modules/localforage": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", - "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "license": "Apache-2.0", "dependencies": { "lie": "3.1.1" } }, "node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -4583,57 +4125,48 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "license": "MIT" }, "node_modules/lodash.clonedeep": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.get": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.omit": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", - "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==" + "license": "MIT" }, "node_modules/lodash.truncate": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.uniqueid": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.uniqueid/-/lodash.uniqueid-4.0.1.tgz", - "integrity": "sha512-GQQWaIeGlL6DIIr06kj1j6sSmBxyNMwI8kaX9aKpHR/XsMTiaXDVPNPAkiboOTK9OJpTJF/dXT3xYoFQnj386Q==" + "license": "MIT" }, "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "version": "2.3.7", "dev": true, + "license": "MIT", "dependencies": { - "get-func-name": "^2.0.0" + "get-func-name": "^2.0.1" } }, "node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "devOptional": true, + "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -4642,10 +4175,9 @@ } }, "node_modules/magic-string": { - "version": "0.30.3", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz", - "integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==", + "version": "0.30.5", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" }, @@ -4655,9 +4187,8 @@ }, "node_modules/make-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -4670,18 +4201,16 @@ }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -4692,16 +4221,14 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -4709,23 +4236,10 @@ "node": ">= 0.6" } }, - "node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "optional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "devOptional": true, + "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4735,64 +4249,16 @@ }, "node_modules/minimist": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/mlly": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz", - "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", "dev": true, + "license": "MIT", "dependencies": { "acorn": "^8.10.0", "pathe": "^1.1.1", @@ -4801,10 +4267,9 @@ } }, "node_modules/mlly/node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.2", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -4814,26 +4279,18 @@ }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "devOptional": true - }, - "node_modules/nan": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", - "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", - "optional": true + "dev": true, + "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -4843,21 +4300,18 @@ }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/natural-compare-lite": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nise": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", - "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==", + "version": "5.1.5", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^2.0.0", "@sinonjs/fake-timers": "^10.0.2", @@ -4868,105 +4322,32 @@ }, "node_modules/nise/node_modules/@sinonjs/fake-timers": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.0" } }, "node_modules/nise/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "optional": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "optional": true - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "optional": true - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "optional": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "optional": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "optional": true, - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, "node_modules/nth-check": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -4976,42 +4357,37 @@ }, "node_modules/nwsapi": { "version": "2.2.7", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", - "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "devOptional": true, + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.1", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -5027,9 +4403,8 @@ }, "node_modules/object.fromentries": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -5044,9 +4419,8 @@ }, "node_modules/object.groupby": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -5056,9 +4430,8 @@ }, "node_modules/object.values": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -5073,18 +4446,16 @@ }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "devOptional": true, + "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/optionator": { "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, + "license": "MIT", "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", @@ -5099,9 +4470,8 @@ }, "node_modules/p-limit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -5114,9 +4484,8 @@ }, "node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -5129,9 +4498,8 @@ }, "node_modules/p-locate/node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -5144,9 +4512,8 @@ }, "node_modules/p-locate/node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -5156,9 +4523,8 @@ }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -5168,9 +4534,8 @@ }, "node_modules/parse5": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, + "license": "MIT", "dependencies": { "entities": "^4.4.0" }, @@ -5180,65 +4545,57 @@ }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "devOptional": true, + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-to-regexp": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, + "license": "MIT", "dependencies": { "isarray": "0.0.1" } }, "node_modules/path-to-regexp/node_modules/isarray": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path2d-polyfill": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path2d-polyfill/-/path2d-polyfill-2.0.1.tgz", - "integrity": "sha512-ad/3bsalbbWhmBo0D6FZ4RNMwsLsPpL6gnvhuSaU5Vm7b06Kr5ubSltQQ0T7YKsiJQO+g22zJ4dJKNTXIyOXtA==", + "license": "MIT", "optional": true, "engines": { "node": ">=8" @@ -5246,23 +4603,20 @@ }, "node_modules/pathe": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", - "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pathval": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/pdfjs-dist": { "version": "3.9.179", - "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-3.9.179.tgz", - "integrity": "sha512-AZBEIAORYDaOAlM0/A4Zg465+XF3ugYDdgrVmioVvNW5tH3xs3RpGFBYOG5PM9/vLM3M/wNncsMLTgyIKdqMKg==", + "license": "Apache-2.0", "engines": { "node": ">=18" }, @@ -5273,14 +4627,12 @@ }, "node_modules/picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -5289,9 +4641,8 @@ } }, "node_modules/pinia": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.6.tgz", - "integrity": "sha512-bIU6QuE5qZviMmct5XwCesXelb5VavdOWKWaB17ggk++NUwQWWbP5YnsONTk3b752QkW9sACiR81rorpeOMSvQ==", + "version": "2.1.7", + "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.5.0", "vue-demi": ">=0.14.5" @@ -5315,8 +4666,7 @@ }, "node_modules/pinia-class": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/pinia-class/-/pinia-class-0.0.3.tgz", - "integrity": "sha512-7l1ZB6c50v5aDaSZRauK1CVaUL0ZrOC2Z1xwX03AZCGKnV+EzZmmQ3fm19LgaXhD9oGExb6eezJ8hZDu86s8vw==", + "license": "MIT", "peerDependencies": { "pinia": "^2.0.0", "vue-class-component": "^7.0.0" @@ -5324,9 +4674,8 @@ }, "node_modules/pinia/node_modules/vue-demi": { "version": "0.14.6", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", - "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", "hasInstallScript": true, + "license": "MIT", "bin": { "vue-demi-fix": "bin/vue-demi-fix.js", "vue-demi-switch": "bin/vue-demi-switch.js" @@ -5349,9 +4698,8 @@ }, "node_modules/pkg-types": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", - "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", "dev": true, + "license": "MIT", "dependencies": { "jsonc-parser": "^3.2.0", "mlly": "^1.2.0", @@ -5360,8 +4708,6 @@ }, "node_modules/postcss": { "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { "type": "opencollective", @@ -5376,6 +4722,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", @@ -5387,9 +4734,8 @@ }, "node_modules/postcss-selector-parser": { "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -5400,18 +4746,16 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -5424,9 +4768,8 @@ }, "node_modules/pretty": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pretty/-/pretty-2.0.0.tgz", - "integrity": "sha512-G9xUchgTEiNpormdYBl+Pha50gOUovT18IvAe7EYMZ1/f9W/WWMPRn+xI68yXNMUk3QXHDwo/1wV/4NejVNe1w==", "dev": true, + "license": "MIT", "dependencies": { "condense-newlines": "^0.2.1", "extend-shallow": "^2.0.1", @@ -5438,9 +4781,8 @@ }, "node_modules/pretty-format": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -5452,9 +4794,8 @@ }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -5464,41 +4805,35 @@ }, "node_modules/progress": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/proto-list": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/provinces": { "version": "1.11.0", - "resolved": "https://registry.npmjs.org/provinces/-/provinces-1.11.0.tgz", - "integrity": "sha512-5hoDYWtKr89stoSVajofU1rFGKzB2wpUqJJfnldokWfLUnLamQK9PnA8svh2j3XOYdb8BI2vbU4q3DtEcdNQ9w==" + "license": "MIT" }, "node_modules/psl": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pug-error": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", - "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pug-lexer": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", - "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", "dev": true, + "license": "MIT", "dependencies": { "character-parser": "^2.2.0", "is-expression": "^4.0.0", @@ -5506,32 +4841,27 @@ } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/qrcode.vue": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/qrcode.vue/-/qrcode.vue-1.7.0.tgz", - "integrity": "sha512-R7t6Y3fDDtcU7L4rtqwGUDP9xD64gJhIwpfjhRCTKmBoYF6SS49PIJHRJ048cse6OI7iwTwgyy2C46N9Ygoc6g==", + "license": "MIT", "peerDependencies": { "vue": "^2.0.0" } }, "node_modules/querystringify": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -5546,33 +4876,18 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/react-is": { "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "optional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } + "dev": true, + "license": "MIT" }, "node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -5582,14 +4897,12 @@ }, "node_modules/regenerator-runtime": { "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "license": "MIT" }, "node_modules/regexp.prototype.flags": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -5604,9 +4917,8 @@ }, "node_modules/regexpp": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -5616,38 +4928,33 @@ }, "node_modules/register-service-worker": { "version": "1.7.2", - "resolved": "https://registry.npmjs.org/register-service-worker/-/register-service-worker-1.7.2.tgz", - "integrity": "sha512-CiD3ZSanZqcMPRhtfct5K9f7i3OLCcBBWsJjLh1gW9RO/nS94sVzY59iS+fgYBOBqaBpf4EzfqUF3j9IG+xo8A==" + "license": "MIT" }, "node_modules/require-from-string": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/requireindex": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", - "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.5" } }, "node_modules/requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.6", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", - "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "version": "1.22.8", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -5662,18 +4969,16 @@ }, "node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -5681,9 +4986,8 @@ }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "devOptional": true, + "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -5696,9 +5000,8 @@ }, "node_modules/rimraf/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "devOptional": true, + "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -5716,9 +5019,8 @@ }, "node_modules/rollup": { "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, + "license": "MIT", "bin": { "rollup": "dist/bin/rollup" }, @@ -5732,14 +5034,11 @@ }, "node_modules/rrweb-cssom": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", - "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -5755,15 +5054,26 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, + "node_modules/rxjs": { + "version": "7.8.1", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "2.6.2", + "license": "0BSD" + }, "node_modules/safe-array-concat": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -5777,31 +5087,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true - }, "node_modules/safe-regex-test": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -5813,15 +5102,13 @@ }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/sass": { - "version": "1.68.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.68.0.tgz", - "integrity": "sha512-Lmj9lM/fef0nQswm1J2HJcEsBUba4wgNx2fea6yJHODREoMFnwRpZydBnX/RjyXw2REIwdkbqE4hrTo4qfDBUA==", + "version": "1.69.5", "dev": true, + "license": "MIT", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -5836,9 +5123,8 @@ }, "node_modules/saxes": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, + "license": "ISC", "dependencies": { "xmlchars": "^2.2.0" }, @@ -5848,8 +5134,7 @@ }, "node_modules/sbc-common-components": { "version": "3.0.8", - "resolved": "https://registry.npmjs.org/sbc-common-components/-/sbc-common-components-3.0.8.tgz", - "integrity": "sha512-TjZA8xRxtwrynI/EXLbGKr68+NFBlFPXDs1n7Uc+EaGD+zwmi8flSi6FEQNbrfb01YfVmlZ8GNghU7f1YP41rw==", + "license": "Apache-2.0", "dependencies": { "@mdi/font": "^4.5.95", "axios": "^0.21.1", @@ -5871,27 +5156,22 @@ } }, "node_modules/sbc-common-components/node_modules/@mdi/font": { - "version": "4.9.95", - "resolved": "https://registry.npmjs.org/@mdi/font/-/font-4.9.95.tgz", - "integrity": "sha512-m2sbAs+SMwRnWpkMriBxEulwuhmqRyh6X+hdOZlqSxYZUM2C2TaDnQ4gcilzdoAgru2XYnWViZ/xPuSDGgRXVw==" + "version": "4.9.95" }, "node_modules/sbc-common-components/node_modules/axios": { "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.14.0" } }, "node_modules/sbc-common-components/node_modules/vue2-filters": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/vue2-filters/-/vue2-filters-0.7.2.tgz", - "integrity": "sha512-7I74isiBUQFGaNbVv57NzHGqh54cLe0JNJmJmu66wxP5eOK/CqHN4iqHMgwPPPvPbgbFbpI/GjbHiIx8tNruwg==" + "license": "MIT" }, "node_modules/sbc-common-components/node_modules/vuelidate": { "version": "0.7.7", - "resolved": "https://registry.npmjs.org/vuelidate/-/vuelidate-0.7.7.tgz", - "integrity": "sha512-pT/U2lDI67wkIqI4tum7cMSIfGcAMfB+Phtqh2ttdXURwvHRBJEAQ0tVbUsW9Upg83Q5QH59bnCoXI7A9JDGnA==", + "license": "MIT", "engines": { "node": ">= 4.0.0", "npm": ">= 3.0.0" @@ -5899,9 +5179,8 @@ }, "node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "devOptional": true, + "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5912,17 +5191,24 @@ "node": ">=10" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "optional": true + "node_modules/set-function-length": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/set-function-name": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "functions-have-names": "^1.2.3", @@ -5934,9 +5220,8 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -5946,18 +5231,16 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -5969,52 +5252,13 @@ }, "node_modules/siginfo": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "optional": true - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true - }, - "node_modules/simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "optional": true, - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } + "dev": true, + "license": "ISC" }, "node_modules/sinon": { "version": "14.0.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.2.tgz", - "integrity": "sha512-PDpV0ZI3ZCS3pEqx0vpNp6kzPhHrLx72wA0G+ZLaaJjLIYeE0n8INlgaohKuGy7hP0as5tbUd23QWu5U233t+w==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^2.0.0", "@sinonjs/fake-timers": "^9.1.2", @@ -6030,18 +5274,16 @@ }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/slice-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -6056,52 +5298,37 @@ }, "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==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/stackback": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/std-env": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.4.3.tgz", - "integrity": "sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==", - "dev": true - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } + "dev": true, + "license": "MIT" }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "devOptional": true, + "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -6113,9 +5340,8 @@ }, "node_modules/string.prototype.trim": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -6130,9 +5356,8 @@ }, "node_modules/string.prototype.trimend": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -6144,9 +5369,8 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -6158,9 +5382,8 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "devOptional": true, + "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -6170,18 +5393,16 @@ }, "node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -6191,9 +5412,8 @@ }, "node_modules/strip-literal": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", - "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", "dev": true, + "license": "MIT", "dependencies": { "acorn": "^8.10.0" }, @@ -6202,10 +5422,9 @@ } }, "node_modules/strip-literal/node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.2", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -6215,9 +5434,8 @@ }, "node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -6227,9 +5445,8 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6239,15 +5456,13 @@ }, "node_modules/symbol-tree": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/table": { "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -6261,9 +5476,8 @@ }, "node_modules/table/node_modules/ajv": { "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -6277,32 +5491,13 @@ }, "node_modules/table/node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", - "optional": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } + "dev": true, + "license": "MIT" }, "node_modules/test-exclude": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -6314,9 +5509,8 @@ }, "node_modules/test-exclude/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6334,39 +5528,34 @@ }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tinybench": { "version": "2.5.1", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz", - "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tinypool": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.6.0.tgz", - "integrity": "sha512-FdswUUo5SxRizcBc6b1GSuLpLjisa8N8qMyYoP3rl+bym+QauhtJP5bvZY1ytt8krKGmMLYIRl36HBZfeAoqhQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/tinyspy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.1.1.tgz", - "integrity": "sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==", + "version": "2.2.0", "dev": true, + "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -6376,9 +5565,8 @@ }, "node_modules/tough-cookie": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -6391,9 +5579,8 @@ }, "node_modules/tr46": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", - "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", "dev": true, + "license": "MIT", "dependencies": { "punycode": "^2.3.0" }, @@ -6403,9 +5590,8 @@ }, "node_modules/tsconfig-paths": { "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -6414,16 +5600,13 @@ } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "1.14.1", + "license": "0BSD" }, "node_modules/tslint": { "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", "dev": true, + "license": "Apache-2.0", "dependencies": { "@babel/code-frame": "^7.0.0", "builtin-modules": "^1.1.1", @@ -6451,9 +5634,8 @@ }, "node_modules/tslint/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -6463,9 +5645,8 @@ }, "node_modules/tslint/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -6477,48 +5658,42 @@ }, "node_modules/tslint/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/tslint/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tslint/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tslint/node_modules/diff": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/tslint/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/tslint/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6536,18 +5711,16 @@ }, "node_modules/tslint/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/tslint/node_modules/mkdirp": { "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -6557,18 +5730,16 @@ }, "node_modules/tslint/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/tslint/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -6576,17 +5747,10 @@ "node": ">=4" } }, - "node_modules/tslint/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/tslint/node_modules/tsutils": { "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -6596,9 +5760,8 @@ }, "node_modules/tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -6609,17 +5772,10 @@ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -6629,18 +5785,16 @@ }, "node_modules/type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -6650,9 +5804,8 @@ }, "node_modules/typed-array-buffer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -6664,9 +5817,8 @@ }, "node_modules/typed-array-byte-length": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -6682,9 +5834,8 @@ }, "node_modules/typed-array-byte-offset": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -6701,9 +5852,8 @@ }, "node_modules/typed-array-length": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -6715,9 +5865,8 @@ }, "node_modules/typescript": { "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", "devOptional": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -6728,15 +5877,13 @@ }, "node_modules/ufo": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.1.tgz", - "integrity": "sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/unbox-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -6747,29 +5894,31 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "dev": true, + "license": "MIT" + }, "node_modules/universalify": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0.0" } }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/url-parse": { "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dev": true, + "license": "MIT", "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -6777,48 +5926,43 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "devOptional": true + "dev": true, + "license": "MIT" }, "node_modules/uuid": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "license": "MIT", "bin": { "uuid": "bin/uuid" } }, "node_modules/v8-compile-cache": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", - "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "version": "9.1.3", "dev": true, + "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "convert-source-map": "^2.0.0" }, "engines": { "node": ">=10.12.0" } }, "node_modules/vite": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", - "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz", + "integrity": "sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==", "dev": true, "dependencies": { - "esbuild": "^0.17.5", - "postcss": "^8.4.23", - "rollup": "^3.21.0" + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" }, "bin": { "vite": "bin/vite.js" @@ -6826,12 +5970,16 @@ "engines": { "node": "^14.18.0 || >=16.0.0" }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, "optionalDependencies": { "fsevents": "~2.3.2" }, "peerDependencies": { "@types/node": ">= 14", "less": "*", + "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", @@ -6844,6 +5992,9 @@ "less": { "optional": true }, + "lightningcss": { + "optional": true + }, "sass": { "optional": true }, @@ -6860,9 +6011,8 @@ }, "node_modules/vite-node": { "version": "0.33.0", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.33.0.tgz", - "integrity": "sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw==", "dev": true, + "license": "MIT", "dependencies": { "cac": "^6.7.14", "debug": "^4.3.4", @@ -6883,18 +6033,16 @@ }, "node_modules/vite-plugin-environment": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/vite-plugin-environment/-/vite-plugin-environment-1.1.3.tgz", - "integrity": "sha512-9LBhB0lx+2lXVBEWxFZC+WO7PKEyE/ykJ7EPWCq95NEcCpblxamTbs5Dm3DLBGzwODpJMEnzQywJU8fw6XGGGA==", "dev": true, + "license": "MIT", "peerDependencies": { "vite": ">= 2.7" } }, "node_modules/vitest": { "version": "0.33.0", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.33.0.tgz", - "integrity": "sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/chai": "^4.3.5", "@types/chai-subset": "^1.3.3", @@ -6968,10 +6116,9 @@ } }, "node_modules/vitest/node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.2", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -6981,9 +6128,8 @@ }, "node_modules/vls": { "version": "0.8.5", - "resolved": "https://registry.npmjs.org/vls/-/vls-0.8.5.tgz", - "integrity": "sha512-61kbdO2COZWBMC4wq59QfDdev9ruXd0226f57DFJTFpFXv85S+qnHakQlAmbSYFFLGKcx95HB2UjnuQh4YRwFA==", "dev": true, + "license": "MIT", "dependencies": { "eslint": "^8.34.0", "eslint-plugin-vue": "^9.9.0", @@ -7001,9 +6147,8 @@ }, "node_modules/vls/node_modules/@eslint/eslintrc": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -7023,12 +6168,11 @@ } }, "node_modules/vls/node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "version": "0.11.13", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", "minimatch": "^3.0.5" }, @@ -7036,11 +6180,15 @@ "node": ">=10.10.0" } }, + "node_modules/vls/node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/vls/node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.2", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -7050,23 +6198,22 @@ }, "node_modules/vls/node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/vls/node_modules/eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", - "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", + "version": "8.52.0", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.50.0", - "@humanwhocodes/config-array": "^0.11.11", + "@eslint/js": "8.52.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -7109,10 +6256,9 @@ } }, "node_modules/vls/node_modules/eslint-plugin-vue": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.17.0.tgz", - "integrity": "sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==", + "version": "9.18.1", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "natural-compare": "^1.4.0", @@ -7131,9 +6277,8 @@ }, "node_modules/vls/node_modules/eslint-scope": { "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -7147,9 +6292,8 @@ }, "node_modules/vls/node_modules/espree": { "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -7164,18 +6308,16 @@ }, "node_modules/vls/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/vls/node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -7185,9 +6327,8 @@ }, "node_modules/vls/node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -7197,9 +6338,8 @@ }, "node_modules/vls/node_modules/typescript": { "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -7209,10 +6349,9 @@ } }, "node_modules/vls/node_modules/vue-eslint-parser": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz", - "integrity": "sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==", + "version": "9.3.2", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4", "eslint-scope": "^7.1.1", @@ -7233,39 +6372,34 @@ } }, "node_modules/vscode-html-languageservice": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.1.0.tgz", - "integrity": "sha512-cGOu5+lrz+2dDXSGS15y24lDtPaML1T8K/SfqgFbLmCZ1btYOxceFieR+ybTS2es/A67kRc62m2cKFLUQPWG5g==", + "version": "5.1.1", "dev": true, + "license": "MIT", "dependencies": { "@vscode/l10n": "^0.0.16", - "vscode-languageserver-textdocument": "^1.0.8", - "vscode-languageserver-types": "^3.17.3", - "vscode-uri": "^3.0.7" + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-languageserver-types": "^3.17.5", + "vscode-uri": "^3.0.8" } }, "node_modules/vscode-languageserver-textdocument": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", - "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/vscode-languageserver-types": { "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", - "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/vscode-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz", - "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==", - "dev": true + "version": "3.0.8", + "dev": true, + "license": "MIT" }, "node_modules/vue": { "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.14.tgz", - "integrity": "sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==", + "license": "MIT", "dependencies": { "@vue/compiler-sfc": "2.7.14", "csstype": "^3.1.0" @@ -7273,37 +6407,32 @@ }, "node_modules/vue-affix": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/vue-affix/-/vue-affix-0.5.2.tgz", - "integrity": "sha512-60TedWOHHuqTpaZsTni9yyc+FwH4qP/Kjt6QegK7Hv1G+tP/CJ7+K1mTRsrEJkjUq55Q0a7hjHTblv+Y+u4o0Q==" + "license": "MIT" }, "node_modules/vue-class-component": { "version": "7.2.6", - "resolved": "https://registry.npmjs.org/vue-class-component/-/vue-class-component-7.2.6.tgz", - "integrity": "sha512-+eaQXVrAm/LldalI272PpDe3+i4mPis0ORiMYxF6Ae4hyuCh15W8Idet7wPUEs4N4YptgFHGys4UrgNQOMyO6w==", + "license": "MIT", "peerDependencies": { "vue": "^2.0.0" } }, "node_modules/vue-debounce-decorator": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vue-debounce-decorator/-/vue-debounce-decorator-1.0.1.tgz", - "integrity": "sha512-2XUI5deMvWDK810Py3b002rpgGdBBUI1Qvggl1rfFo1kDBEo49FDYFYo1yBuwK+Bs7p3XqF++z0K37RuGjgmIQ==", "dev": true, + "license": "MIT", "dependencies": { "vue-class-component": "^6.3.2" } }, "node_modules/vue-debounce-decorator/node_modules/vue-class-component": { "version": "6.3.2", - "resolved": "https://registry.npmjs.org/vue-class-component/-/vue-class-component-6.3.2.tgz", - "integrity": "sha512-cH208IoM+jgZyEf/g7mnFyofwPDJTM/QvBNhYMjqGB8fCsRyTf68rH2ISw/G20tJv+5mIThQ3upKwoL4jLTr1A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/vue-eslint-parser": { "version": "8.3.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz", - "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.2", "eslint-scope": "^7.0.0", @@ -7324,10 +6453,9 @@ } }, "node_modules/vue-eslint-parser/node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.2", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -7337,9 +6465,8 @@ }, "node_modules/vue-eslint-parser/node_modules/eslint-scope": { "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -7353,9 +6480,8 @@ }, "node_modules/vue-eslint-parser/node_modules/espree": { "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -7370,27 +6496,23 @@ }, "node_modules/vue-eslint-parser/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/vue-hotjar": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/vue-hotjar/-/vue-hotjar-1.4.0.tgz", - "integrity": "sha512-C/4lfjB1R3+eXiC+jSpNn3z0GWicpnADeRWpEHLdP2FSIi/AjupoIBikugHvGV334QYGUueXUyVZz6GHr+3eYQ==" + "license": "MIT" }, "node_modules/vue-i18n": { "version": "8.28.2", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.28.2.tgz", - "integrity": "sha512-C5GZjs1tYlAqjwymaaCPDjCyGo10ajUphiwA922jKt9n7KPpqR7oM1PCwYzhB/E7+nT3wfdG3oRre5raIT1rKA==" + "license": "MIT" }, "node_modules/vue-property-decorator": { "version": "9.1.2", - "resolved": "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-9.1.2.tgz", - "integrity": "sha512-xYA8MkZynPBGd/w5QFJ2d/NM0z/YeegMqYTphy7NJQXbZcuU6FC6AOdUAcy4SXP+YnkerC6AfH+ldg7PDk9ESQ==", + "license": "MIT", "peerDependencies": { "vue": "*", "vue-class-component": "*" @@ -7398,14 +6520,12 @@ }, "node_modules/vue-router": { "version": "3.6.5", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.6.5.tgz", - "integrity": "sha512-VYXZQLtjuvKxxcshuRAwjHnciqZVoXAjTjcqBTz4rKc8qih9g9pI3hbDjmqXaHdgL3v8pV6P8Z335XvHzESxLQ==" + "license": "MIT" }, "node_modules/vue-template-compiler": { "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", - "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "de-indent": "^1.0.2", @@ -7423,13 +6543,11 @@ }, "node_modules/vue2-filters": { "version": "0.14.0", - "resolved": "https://registry.npmjs.org/vue2-filters/-/vue2-filters-0.14.0.tgz", - "integrity": "sha512-2tFWC6gx1SVIr+6VXoufkL+bZa8Gn0/P09T/bnGjOEAGH1+eVT05bPm/VF2V/nL/HMyWkLdlvxKh9JNqpfFlyw==" + "license": "MIT" }, "node_modules/vuelidate": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/vuelidate/-/vuelidate-0.6.2.tgz", - "integrity": "sha512-rowo/OSwC8XEGdWg+ZgTpcgxYtmbQKbGOw4Z+lfT/BkNPoNyPEVgIeObUhhFO7Q7Lz0u0p429qfus/BHs9tMpg==", + "license": "MIT", "engines": { "node": ">= 4.0.0", "npm": ">= 3.0.0" @@ -7437,9 +6555,8 @@ }, "node_modules/vuelidate-property-decorators": { "version": "1.0.28", - "resolved": "https://registry.npmjs.org/vuelidate-property-decorators/-/vuelidate-property-decorators-1.0.28.tgz", - "integrity": "sha512-ktb+9bYkTSmUFLi9g7gMGY035F5WvNnBQ/yl1U8MlclcFT65bYU/vBQ5HcZ4T1Ko6IL5wIPD4XJ+KkllKvgycg==", "dev": true, + "license": "MIT", "dependencies": { "vue-class-component": "^7.0.1", "vuelidate": "^0.7.4" @@ -7447,9 +6564,8 @@ }, "node_modules/vuelidate-property-decorators/node_modules/vuelidate": { "version": "0.7.7", - "resolved": "https://registry.npmjs.org/vuelidate/-/vuelidate-0.7.7.tgz", - "integrity": "sha512-pT/U2lDI67wkIqI4tum7cMSIfGcAMfB+Phtqh2ttdXURwvHRBJEAQ0tVbUsW9Upg83Q5QH59bnCoXI7A9JDGnA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0.0", "npm": ">= 3.0.0" @@ -7457,8 +6573,7 @@ }, "node_modules/vuetify": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-2.7.1.tgz", - "integrity": "sha512-DVFmRsDtYrITw9yuGLwpFWngFYzEgk0KwloDCIV3+vhZw+NBFJOSzdbttbYmOwtqvQlhDxUyIRQolrRbSFAKlg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/johnleider" @@ -7469,17 +6584,15 @@ }, "node_modules/vuex": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz", - "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==", + "license": "MIT", "peerDependencies": { "vue": "^2.0.0" } }, "node_modules/vuex-class": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/vuex-class/-/vuex-class-0.3.2.tgz", - "integrity": "sha512-m0w7/FMsNcwJgunJeM+wcNaHzK2KX1K1rw2WUQf7Q16ndXHo7pflRyOV/E8795JO/7fstyjH3EgqBI4h4n4qXQ==", "dev": true, + "license": "MIT", "peerDependencies": { "vue": "^2.5.0", "vue-class-component": "^6.0.0 || ^7.0.0", @@ -7488,10 +6601,9 @@ }, "node_modules/vuex-module-decorators": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vuex-module-decorators/-/vuex-module-decorators-1.2.0.tgz", - "integrity": "sha512-3lHp75qVgrNXUpFKs4J4eRnrxjY3BYUkHwR+ZKvvIycw/7tDwlL0RPuiYLwrHEUBTvJePSZaehZJ0BMTw1/ugQ==", "dev": true, "hasInstallScript": true, + "license": "MIT", "engines": { "node": ">= 8", "npm": ">= 5", @@ -7504,9 +6616,8 @@ }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", "dev": true, + "license": "MIT", "dependencies": { "xml-name-validator": "^4.0.0" }, @@ -7516,18 +6627,16 @@ }, "node_modules/webidl-conversions": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" } }, "node_modules/whatwg-encoding": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", "dev": true, + "license": "MIT", "dependencies": { "iconv-lite": "0.6.3" }, @@ -7537,18 +6646,16 @@ }, "node_modules/whatwg-mimetype": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" } }, "node_modules/whatwg-url": { "version": "12.0.1", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", - "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", "dev": true, + "license": "MIT", "dependencies": { "tr46": "^4.1.1", "webidl-conversions": "^7.0.0" @@ -7559,9 +6666,8 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -7574,9 +6680,8 @@ }, "node_modules/which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, + "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -7589,13 +6694,12 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "version": "1.1.13", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.4", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" @@ -7609,9 +6713,8 @@ }, "node_modules/why-is-node-running": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", - "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", "dev": true, + "license": "MIT", "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" @@ -7623,26 +6726,15 @@ "node": ">=8" } }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "optional": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "devOptional": true + "dev": true, + "license": "ISC" }, "node_modules/ws": { "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -7661,30 +6753,26 @@ }, "node_modules/xml-name-validator": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12" } }, "node_modules/xmlchars": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "devOptional": true + "dev": true, + "license": "ISC" }, "node_modules/yocto-queue": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.20" }, diff --git a/package.json b/package.json index 326bc7874..14a1b11c5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "business-filings-ui", - "version": "6.10.0", + "version": "8.0.0", "private": true, "appName": "Filings UI", "sbcName": "SBC Common Components", @@ -14,20 +14,22 @@ }, "dependencies": { "@babel/compat-data": "^7.21.5", - "@bcrs-shared-components/base-address": "2.0.7", + "@bcrs-shared-components/base-address": "2.0.9", "@bcrs-shared-components/breadcrumb": "2.1.11", "@bcrs-shared-components/confirm-dialog": "1.2.1", - "@bcrs-shared-components/corp-type-module": "1.0.11", + "@bcrs-shared-components/corp-type-module": "1.0.14", "@bcrs-shared-components/court-order-poa": "2.1.4", + "@bcrs-shared-components/date-picker": "1.2.39", "@bcrs-shared-components/document-delivery": "1.2.1", - "@bcrs-shared-components/enums": "1.0.50", - "@bcrs-shared-components/expandable-help": "^1.0.0", + "@bcrs-shared-components/enums": "1.1.4", + "@bcrs-shared-components/expandable-help": "1.0.1", "@bcrs-shared-components/folio-number-input": "1.1.18", - "@bcrs-shared-components/interfaces": "1.0.75", - "@bcrs-shared-components/mixins": "1.1.25", + "@bcrs-shared-components/interfaces": "1.1.2", + "@bcrs-shared-components/mixins": "1.1.30", "@bcrs-shared-components/staff-comments": "1.3.11", "@bcrs-shared-components/staff-payment": "2.1.11", "@mdi/font": "^5.9.55", + "@reactivex/rxjs": "^6.6.7", "@sentry/integrations": "^7.50.0", "@sentry/vue": "^7.50.0", "axios": "^0.27.2", @@ -44,6 +46,7 @@ "qrcode.vue": "1.7.0", "regenerator-runtime": "^0.13.11", "register-service-worker": "^1.7.2", + "rxjs": "^7.8.1", "sbc-common-components": "3.0.8", "vue": "2.7.14", "vue-affix": "^0.5.2", @@ -76,7 +79,7 @@ "sass": "^1.55.0", "sinon": "^14.0.2", "typescript": "4.5.5", - "vite": "4.3.9", + "vite": "4.5.2", "vite-plugin-environment": "^1.1.3", "vitest": "0.33.0", "vue-class-component": "^7.2.6", diff --git a/src/App.vue b/src/App.vue index bdd65bbab..b96c571c7 100644 --- a/src/App.vue +++ b/src/App.vue @@ -75,10 +75,10 @@ - +
@@ -88,7 +88,7 @@ indeterminate />
- Fetching Data + {{ spinnerText }}
@@ -104,7 +104,7 @@ type="warning" >
@@ -114,6 +114,7 @@
{ const breadcrumbs = this.$route?.meta?.breadcrumb @@ -393,6 +410,7 @@ export default { 'setRecordsAddress', 'setRegisteredAddress', 'setTasks', + 'setUserInfo', 'setUserKeycloakGuid' ]), @@ -436,12 +454,14 @@ export default { // fetch user info and update Launch Darkly // and save user's Keycloak GUID try { - const userInfo = await AuthServices.fetchUserInfo(this.getAuthApiUrl).then(response => response?.data) + const userInfo = await AuthServices.fetchUserInfo(this.getAuthApiUrl) + this.setUserInfo(userInfo) await this.updateLaunchDarkly(userInfo) this.setUserKeycloakGuid(userInfo.keycloakGuid) } catch (error) { // just log the error -- no need to halt app - console.log('Error updating Launch Darkly =', error) // eslint-disable-line no-console + // eslint-disable-next-line no-console + console.log('Error fetching user info or updating Launch Darkly =', error) } // is this a business entity? @@ -460,7 +480,7 @@ export default { } } - // is this a draft app entity? + // is this a draft app entity (incorporation/registration/amalgamation)? if (this.tempRegNumber) { try { await this.fetchDraftAppData() // throws on error @@ -520,15 +540,15 @@ export default { async fetchDraftAppData (): Promise { this.nameRequestInvalidType = null // reset for new fetches - const draft = await LegalServices.fetchDraftApp(this.tempRegNumber) + const application = await LegalServices.fetchDraftApp(this.tempRegNumber) - // Handle Draft filings - this.storeDraftApp(draft) + // handle draft application + this.storeDraftApp(application) - // if the draft has a NR, load it - if (this.localNrNumber) { + // if this app is a task (not a filing), and it has a NR, load it + if (this.isAppTask && this.localNrNumber) { const nr = await LegalServices.fetchNameRequest(this.localNrNumber) - this.storeNrData(nr, draft) + this.storeNrData(nr, application) } }, @@ -607,23 +627,53 @@ export default { } }, - /** Verifies and stores a draft applications data. */ + /** Verifies and stores a draft application's data. */ storeDraftApp (application: any): void { const filing = application?.filing const filingName = filing.header?.name as FilingTypes + if (!filing || !filing.header || !filingName) { throw new Error(`Invalid ${filingName} filing`) } - if (![FilingTypes.INCORPORATION_APPLICATION, FilingTypes.REGISTRATION].includes(filingName)) { - throw new Error(`Invalid ${filingName} filing - filing name`) - } - const status = filing.header.status as FilingStatus if (!status) { throw new Error(`Invalid ${filingName} filing - filing status`) } + const isAmalgamation = (filingName === FilingTypes.AMALGAMATION_APPLICATION) + const isIncorporationApplication = (filingName === FilingTypes.INCORPORATION_APPLICATION) + const isRegistration = (filingName === FilingTypes.REGISTRATION) + + let entityStatus: EntityStatus + switch (status) { + case FilingStatus.DRAFT: + case FilingStatus.PENDING: + // this is a draft application + if (isAmalgamation) entityStatus = EntityStatus.DRAFT_AMALGAMATION + else if (isIncorporationApplication) entityStatus = EntityStatus.DRAFT_INCORP_APP + else if (isRegistration) entityStatus = EntityStatus.DRAFT_REGISTRATION + else throw new Error(`Invalid ${filingName} filing - filing name`) + break + + case FilingStatus.COMPLETED: + case FilingStatus.PAID: + // this is a filed application + if (isAmalgamation) entityStatus = EntityStatus.FILED_AMALGAMATION + else if (isIncorporationApplication) entityStatus = EntityStatus.FILED_INCORP_APP + else if (isRegistration) entityStatus = EntityStatus.FILED_REGISTRATION + else throw new Error(`Invalid ${filingName} filing - filing name`) + break + + default: + throw new Error(`Invalid ${filingName} filing - filing status`) + } + + // special check for amalgamation application + if (isAmalgamation && !filing.amalgamationApplication.type) { + throw new Error('Missing amalgamation type') + } + // NB: different object from actual NR const nameRequest = filing[filingName].nameRequest as { legalName?: string @@ -641,11 +691,10 @@ export default { } // store business info + this.setEntityStatus(entityStatus) this.setIdentifier(this.tempRegNumber) this.setLegalType(legalType) - - // Draft Applications are always in good standing - this.setGoodStanding(true) + this.setGoodStanding(true) // draft apps are always in good standing // save local NR Number if present this.localNrNumber = nameRequest.nrNumber || null @@ -653,29 +702,27 @@ export default { // store Legal Name if present if (nameRequest.legalName) this.setLegalName(nameRequest.legalName) - switch (status) { - case FilingStatus.DRAFT: - case FilingStatus.PENDING: - // this is a draft application - this.setEntityStatus(EntityStatus.DRAFT_APP) - this.storeDraftAppTask(application) - break - - case FilingStatus.COMPLETED: - case FilingStatus.PAID: - // this is a filed application - this.setEntityStatus(EntityStatus.FILED_APP) - this.storeFiledApp(application) - break - - default: - throw new Error(`Invalid ${filingName} filing - filing status`) - } + // store the application in the right list + if (this.isAppTask) this.storeDraftAppTask(application) + else if (this.isAppFiling) this.storeDraftAppFiling(application) + else throw new Error(`Invalid ${filingName} filing - filing status`) }, /** Stores draft application as a task in the Todo List. */ storeDraftAppTask (application: any): void { const filing = application.filing as TaskTodoIF + // NB: these were already validated in storeDraftApp() + const header = filing.header + const data = filing[header.name] + + const description = GetCorpFullDescription(data.nameRequest.legalType) + const dba = this.isSoleProp ? ' / Doing Business As (DBA) ' : ' ' + const filingName = EnumUtilities.filingTypeToName(header.name, null, data.type) + + // save display name for later + filing.displayName = `${description}${dba}${filingName}` + + // add this as a task item const taskItem: ApiTaskIF = { enabled: true, order: 1, @@ -685,29 +732,34 @@ export default { }, /** Stores filed application as a filing in the Filing History List. */ - storeFiledApp (filedApplication: any): void { - const filing = filedApplication.filing as TaskTodoIF + storeDraftAppFiling (application: any): void { + const filing = application.filing as TaskTodoIF // NB: these were already validated in storeDraftApp() const header = filing.header - const application = filing[header.name] + const data = filing[header.name] // set addresses - this.storeAddresses({ data: application.offices || [] }) + this.storeAddresses({ data: data.offices || [] }) + + // set parties + this.storeParties({ data: { parties: data.parties || [] } }) - // Set parties - this.storeParties({ data: { parties: application.parties || [] } }) + const description = GetCorpFullDescription(data.nameRequest.legalType) + const filingName = EnumUtilities.filingTypeToName(header.name, null, data.type) - // add this as a filing (for Filing History List) + // add this as a filing item const filingItem = { availableOnPaperOnly: header.availableOnPaperOnly, businessIdentifier: this.getIdentifier, - commentsCount: filedApplication.commentsCount, - commentsLink: filedApplication.commentsLink, - displayName: EnumUtilities.filingTypeToName(header.name), - documentsLink: filedApplication.documentsLink, + commentsCount: application.commentsCount, + commentsLink: application.commentsLink, + displayLedger: application.displayLedger, + displayName: `${description} ${filingName}`, + documentsLink: application.documentsLink, effectiveDate: this.apiToUtcString(header.effectiveDate), filingId: header.filingId, - filingLink: filedApplication.filingLink, + filingLink: application.filingLink, + filingSubType: data.type, isFutureEffective: header.isFutureEffective, name: header.name, status: header.status, @@ -721,7 +773,7 @@ export default { this.setFilings([filingItem]) }, - storeNrData (nr: NameRequestIF, ia: any): void { + storeNrData (nr: NameRequestIF, app: any): void { // verify that NR is valid const error = this.isNrInvalid(nr) if (error) { @@ -737,7 +789,7 @@ export default { // if IA is not yet completed, check if NR is consumable // (once IA is completed, NR state will be CONSUMED) - if (ia.filing.header.status !== FilingStatus.COMPLETED) { + if (app.filing.header.status !== FilingStatus.COMPLETED) { const nrState = this.getNrState(nr) as NameRequestStates if (nrState !== NameRequestStates.APPROVED && nrState !== NameRequestStates.CONDITIONAL) { this.nameRequestInvalidDialog = true diff --git a/src/assets/images/bc_wallet_app.png b/src/assets/images/bc_wallet_app.png new file mode 100644 index 000000000..b0b51dc01 Binary files /dev/null and b/src/assets/images/bc_wallet_app.png differ diff --git a/src/assets/images/bc_wallet_app_store.png b/src/assets/images/bc_wallet_app_store.png new file mode 100644 index 000000000..7d2ced331 Binary files /dev/null and b/src/assets/images/bc_wallet_app_store.png differ diff --git a/src/assets/images/business_card_feature.png b/src/assets/images/business_card_feature.png new file mode 100644 index 000000000..b5abde33a Binary files /dev/null and b/src/assets/images/business_card_feature.png differ diff --git a/src/assets/images/business_card_issuance_steps.png b/src/assets/images/business_card_issuance_steps.png new file mode 100644 index 000000000..fa2b41056 Binary files /dev/null and b/src/assets/images/business_card_issuance_steps.png differ diff --git a/src/assets/styles/base.scss b/src/assets/styles/base.scss index 27e1fa2b7..a5495009f 100644 --- a/src/assets/styles/base.scss +++ b/src/assets/styles/base.scss @@ -315,6 +315,32 @@ ul.list { border-left: 1px solid $gray6; } -.colour-dk-text { +.message-box { + background-color: $BCgovGold0 !important; + border-color: $BCgovGold5 !important; + border-radius: 0; + + p { + margin: 1.25rem; + padding: 0; + font-size: $px-14; + letter-spacing: 0.01rem; + color: $gray7; + } +} + +.color-dk-text { color: $gray9 !important; } + +.bg-color-blue { + background-color: $BCgovBlue5O !important; +} + +.word-break-normal { + word-break: normal; +} + +.overflow-auto { + overflow: auto; +} diff --git a/src/assets/styles/theme.scss b/src/assets/styles/theme.scss index 95d93ad2d..4bdc381c7 100644 --- a/src/assets/styles/theme.scss +++ b/src/assets/styles/theme.scss @@ -81,3 +81,7 @@ $px-15: 0.9375rem; $px-16: 1.0000rem; $px-20: 1.2500rem; $px-24: 1.5000rem; +$px-28: 1.7500rem; +$px-32: 2.0000rem; +$px-34: 2.1250rem; +$px-36: 2.2500rem; \ No newline at end of file diff --git a/src/components/AgmExtension/AboutTheBusiness.vue b/src/components/AgmExtension/AboutTheBusiness.vue new file mode 100644 index 000000000..f65ca08b7 --- /dev/null +++ b/src/components/AgmExtension/AboutTheBusiness.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/src/components/AgmExtension/AgmExtensionEvaluation.vue b/src/components/AgmExtension/AgmExtensionEvaluation.vue new file mode 100644 index 000000000..b7bc4d3ed --- /dev/null +++ b/src/components/AgmExtension/AgmExtensionEvaluation.vue @@ -0,0 +1,135 @@ + + + diff --git a/src/components/AgmExtension/AgmExtensionHelp.vue b/src/components/AgmExtension/AgmExtensionHelp.vue new file mode 100644 index 000000000..8ff89a828 --- /dev/null +++ b/src/components/AgmExtension/AgmExtensionHelp.vue @@ -0,0 +1,31 @@ + + + diff --git a/src/components/AgmExtension/ExtensionRequest.vue b/src/components/AgmExtension/ExtensionRequest.vue new file mode 100644 index 000000000..b46c693b5 --- /dev/null +++ b/src/components/AgmExtension/ExtensionRequest.vue @@ -0,0 +1,529 @@ + + + + + diff --git a/src/components/AgmLocationChange/AgmLocation.vue b/src/components/AgmLocationChange/AgmLocation.vue new file mode 100644 index 000000000..84b91ca96 --- /dev/null +++ b/src/components/AgmLocationChange/AgmLocation.vue @@ -0,0 +1,67 @@ + + + diff --git a/src/components/AgmLocationChange/AgmYear.vue b/src/components/AgmLocationChange/AgmYear.vue new file mode 100644 index 000000000..c8fa7cc78 --- /dev/null +++ b/src/components/AgmLocationChange/AgmYear.vue @@ -0,0 +1,76 @@ + + + diff --git a/src/components/Dashboard/Alerts/Amalgamation.vue b/src/components/Dashboard/Alerts/Amalgamation.vue new file mode 100644 index 000000000..120bbeb92 --- /dev/null +++ b/src/components/Dashboard/Alerts/Amalgamation.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/src/components/Dashboard/FilingHistoryList.vue b/src/components/Dashboard/FilingHistoryList.vue index e146c4610..060204124 100644 --- a/src/components/Dashboard/FilingHistoryList.vue +++ b/src/components/Dashboard/FilingHistoryList.vue @@ -143,7 +143,9 @@ export default class FilingHistoryList extends Mixins(FilingMixin) { is (filing: ApiFilingIF): string { switch (true) { case filing.availableOnPaperOnly: return 'paper-filing' // must come first + case EnumUtilities.isTypeAgmExtension(filing): return 'agm-extension' case EnumUtilities.isTypeAlteration(filing): return 'alteration-filing' + case EnumUtilities.isTypeAmalgamation(filing): return 'amalgamation-filing' case EnumUtilities.isTypeChangeOfAddress(filing): return 'change-of-address' case EnumUtilities.isTypeConsentContinuationOut(filing): return 'consent-continuation-out' case EnumUtilities.isTypeContinuationOut(filing): return 'continuation-out' @@ -231,7 +233,9 @@ export default class FilingHistoryList extends Mixins(FilingMixin) { } :deep(.v-expansion-panel-header) { + min-height: auto !important; padding: 0; + margin-top: 0.25rem; .v-expansion-panel-header__icon { display: none; diff --git a/src/components/Dashboard/FilingHistoryList/FilingTemplate.vue b/src/components/Dashboard/FilingHistoryList/FilingTemplate.vue index d7ce4941f..0c13d6296 100644 --- a/src/components/Dashboard/FilingHistoryList/FilingTemplate.vue +++ b/src/components/Dashboard/FilingHistoryList/FilingTemplate.vue @@ -53,7 +53,7 @@
- +
The period of restoration was successfuly extended and is active - until {{ expiryDateFriendly }}. At the end of the extended limited - restoration period, the company will be automatically dissolved. If you require assistance - to extend a limited restoration/reinstatement or wish to convert your restoration from a - limited period to a full restoration, please contact BC Registries staff: + until {{ expiryDateFriendly || '[unknown]' }}. At the end of the extended + limited restoration period, the company will be automatically dissolved. If you require + assistance to extend a limited restoration/reinstatement or wish to convert your restoration + from a limited period to a full restoration, please contact BC Registries staff:

@@ -33,7 +33,7 @@ export default class LimitedRestorationExtensionFiling extends Vue { /** The expiry date of the limited restoration extension filing. */ get expiryDateFriendly (): string { const date = DateUtilities.yyyyMmDdToDate(this.filing.expiry) - return (DateUtilities.dateToPacificDate(date, true) || 'Unknown') + return DateUtilities.dateToPacificDate(date, true) } } diff --git a/src/components/Dashboard/FilingHistoryList/filings/AgmExtension.vue b/src/components/Dashboard/FilingHistoryList/filings/AgmExtension.vue new file mode 100644 index 000000000..935ab7de1 --- /dev/null +++ b/src/components/Dashboard/FilingHistoryList/filings/AgmExtension.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/src/components/Dashboard/FilingHistoryList/filings/AmalgamationFiling.vue b/src/components/Dashboard/FilingHistoryList/filings/AmalgamationFiling.vue new file mode 100644 index 000000000..130586ad3 --- /dev/null +++ b/src/components/Dashboard/FilingHistoryList/filings/AmalgamationFiling.vue @@ -0,0 +1,145 @@ + + + + + diff --git a/src/components/Dashboard/FilingHistoryList/filings/ConsentContinuationOut.vue b/src/components/Dashboard/FilingHistoryList/filings/ConsentContinuationOut.vue index b894830d0..95be34f96 100644 --- a/src/components/Dashboard/FilingHistoryList/filings/ConsentContinuationOut.vue +++ b/src/components/Dashboard/FilingHistoryList/filings/ConsentContinuationOut.vue @@ -73,7 +73,7 @@ export default class ConsentContinuationOut extends Mixins(CountriesProvincesMix /** Check if Consent is Expired. */ get isConsentExpired (): boolean { const date = DateUtilities.apiToDate(this.filing.data?.consentContinuationOut?.expiry) - const daysToExpire = DateUtilities.daysFromToday(new Date(), date) + const daysToExpire = DateUtilities.daysBetweenTwoDates(new Date(), date) if (isNaN(daysToExpire) || daysToExpire < 0) { return true } @@ -112,12 +112,16 @@ export default class ConsentContinuationOut extends Mixins(CountriesProvincesMix } private getRegionNameFromCode (short: string): string { + if (short === 'FEDERAL') { + return 'Federal' + } + const region = this.canadaUsaRegions?.find(region => region.short === short) return region?.name } /** Get the respective regions of the country selected as an array of objects. */ - get canadaUsaRegions (): Array { + get canadaUsaRegions (): Array { const foreignJusrisdictionCountry = this.filing.data?.consentContinuationOut?.country if (foreignJusrisdictionCountry === 'CA') { return this.getCountryRegions('CA') @@ -141,5 +145,4 @@ p { .warn-icon { margin-bottom: 6px; } - diff --git a/src/components/Dashboard/FilingHistoryList/filings/ContinuationOut.vue b/src/components/Dashboard/FilingHistoryList/filings/ContinuationOut.vue index debb201c1..356f69a93 100644 --- a/src/components/Dashboard/FilingHistoryList/filings/ContinuationOut.vue +++ b/src/components/Dashboard/FilingHistoryList/filings/ContinuationOut.vue @@ -73,7 +73,7 @@ export default class ContinuationOut extends Mixins(CountriesProvincesMixin) { } /** Get the respective regions of the country selected as an array of objects. */ - get canadaUsaRegions (): Array { + get canadaUsaRegions (): Array { const foreignJusrisdictionCountry = this.filing.data?.continuationOut?.country if (foreignJusrisdictionCountry === 'CA') { return this.getCountryRegions('CA') diff --git a/src/components/Dashboard/FilingHistoryList/filings/IncorporationApplication.vue b/src/components/Dashboard/FilingHistoryList/filings/IncorporationApplication.vue index 5149d17ab..18d9f5beb 100644 --- a/src/components/Dashboard/FilingHistoryList/filings/IncorporationApplication.vue +++ b/src/components/Dashboard/FilingHistoryList/filings/IncorporationApplication.vue @@ -32,13 +32,13 @@ />

Incorporation Complete

- {{ getLegalName || 'A Numbered Benefit Company' }} has been successfully incorporated. + {{ companyName }} has been successfully incorporated.

@@ -84,9 +84,15 @@ export default class IncorporationApplication extends Vue { @Prop({ required: true }) readonly filing!: ApiFilingIF @Prop({ required: true }) readonly index!: number + @Getter(useBusinessStore) getEntityName!: string @Getter(useBusinessStore) getLegalName!: string @Getter(useConfigurationStore) getMyBusinessRegistryUrl!: string + /** The Temporary Registration Number string (may be null). */ + get tempRegNumber (): string { + return sessionStorage.getItem('TEMP_REG_NUMBER') + } + /** Whether this filing is in Complete status. */ get isStatusCompleted (): boolean { return EnumUtilities.isStatusCompleted(this.filing) @@ -110,6 +116,13 @@ export default class IncorporationApplication extends Vue { ) } + /** The legal name or numbered description of the new company. */ + get companyName (): string { + if (this.getLegalName) return this.getLegalName + if (this.getEntityName) return `A ${this.getEntityName}` + return 'Unknown Name' + } + returnToMyBusinessRegistry (): void { navigate(this.getMyBusinessRegistryUrl) } diff --git a/src/components/Dashboard/FilingHistoryList/filings/RegistrationFiling.vue b/src/components/Dashboard/FilingHistoryList/filings/RegistrationFiling.vue index 99b13b723..1b9643f03 100644 --- a/src/components/Dashboard/FilingHistoryList/filings/RegistrationFiling.vue +++ b/src/components/Dashboard/FilingHistoryList/filings/RegistrationFiling.vue @@ -6,14 +6,18 @@ > diff --git a/src/components/DigitalCredentials/CredentialsWebSocket.vue b/src/components/DigitalCredentials/CredentialsWebSocket.vue new file mode 100644 index 000000000..52f6ce5b8 --- /dev/null +++ b/src/components/DigitalCredentials/CredentialsWebSocket.vue @@ -0,0 +1,107 @@ + + + diff --git a/src/components/DigitalCredentials/DigitalWalletDownload.vue b/src/components/DigitalCredentials/DigitalWalletDownload.vue deleted file mode 100644 index 886fbcc5b..000000000 --- a/src/components/DigitalCredentials/DigitalWalletDownload.vue +++ /dev/null @@ -1,192 +0,0 @@ - - - - - diff --git a/src/components/DigitalCredentials/IssueCredentials.vue b/src/components/DigitalCredentials/IssueCredentials.vue deleted file mode 100644 index 720922de6..000000000 --- a/src/components/DigitalCredentials/IssueCredentials.vue +++ /dev/null @@ -1,165 +0,0 @@ - - - - - diff --git a/src/components/DigitalCredentials/RegisterWallet.vue b/src/components/DigitalCredentials/RegisterWallet.vue deleted file mode 100644 index 472de3dfb..000000000 --- a/src/components/DigitalCredentials/RegisterWallet.vue +++ /dev/null @@ -1,107 +0,0 @@ - - - - - diff --git a/src/components/DigitalCredentials/dialogs/ConfirmCredentialsTermsofUseDialog.vue b/src/components/DigitalCredentials/dialogs/ConfirmCredentialsTermsofUseDialog.vue new file mode 100644 index 000000000..dfbc79cb3 --- /dev/null +++ b/src/components/DigitalCredentials/dialogs/ConfirmCredentialsTermsofUseDialog.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/components/DigitalCredentials/dialogs/ConfirmReplaceCredentialDialog.vue b/src/components/DigitalCredentials/dialogs/ConfirmReplaceCredentialDialog.vue new file mode 100644 index 000000000..1cee667cc --- /dev/null +++ b/src/components/DigitalCredentials/dialogs/ConfirmReplaceCredentialDialog.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/src/components/DigitalCredentials/dialogs/ConfirmRevokeCredentialDialog.vue b/src/components/DigitalCredentials/dialogs/ConfirmRevokeCredentialDialog.vue new file mode 100644 index 000000000..a57e63f9d --- /dev/null +++ b/src/components/DigitalCredentials/dialogs/ConfirmRevokeCredentialDialog.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/src/components/DigitalCredentials/dialogs/CredentialNotReceivedDialog.vue b/src/components/DigitalCredentials/dialogs/CredentialNotReceivedDialog.vue new file mode 100644 index 000000000..5ef6cd123 --- /dev/null +++ b/src/components/DigitalCredentials/dialogs/CredentialNotReceivedDialog.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/src/components/DigitalCredentials/dialogs/CredentialRevokedDialog.vue b/src/components/DigitalCredentials/dialogs/CredentialRevokedDialog.vue new file mode 100644 index 000000000..254d26e4d --- /dev/null +++ b/src/components/DigitalCredentials/dialogs/CredentialRevokedDialog.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/components/DigitalCredentials/dialogs/ReplaceCredentialErrorDialog.vue b/src/components/DigitalCredentials/dialogs/ReplaceCredentialErrorDialog.vue new file mode 100644 index 000000000..99ca55521 --- /dev/null +++ b/src/components/DigitalCredentials/dialogs/ReplaceCredentialErrorDialog.vue @@ -0,0 +1,67 @@ + + + diff --git a/src/components/DigitalCredentials/dialogs/RevokeCredentialErrorDialog.vue b/src/components/DigitalCredentials/dialogs/RevokeCredentialErrorDialog.vue new file mode 100644 index 000000000..98e1aa328 --- /dev/null +++ b/src/components/DigitalCredentials/dialogs/RevokeCredentialErrorDialog.vue @@ -0,0 +1,67 @@ + + + diff --git a/src/components/DigitalCredentials/enums/routes.ts b/src/components/DigitalCredentials/enums/routes.ts new file mode 100644 index 000000000..6229a60d9 --- /dev/null +++ b/src/components/DigitalCredentials/enums/routes.ts @@ -0,0 +1,4 @@ +export enum Routes { + DIGITAL_CREDENTIALS = 'digital-credentials', // Root route for Digital Credentials + ISSUE_CREDENTIAL = 'issue' +} diff --git a/src/components/DigitalCredentials/index.ts b/src/components/DigitalCredentials/index.ts index 820f90882..9b8bcad17 100644 --- a/src/components/DigitalCredentials/index.ts +++ b/src/components/DigitalCredentials/index.ts @@ -1,5 +1,8 @@ +export { default as CredentialsDashboard } from './CredentialsDashboard.vue' +export { default as CredentialsDetailSteps } from './CredentialsDetailSteps.vue' +export { default as CredentialsInfo } from './CredentialsInfo.vue' export { default as CredentialsLanding } from './CredentialsLanding.vue' -export { default as DigitalWalletDownload } from './DigitalWalletDownload.vue' -export { default as RegisterWallet } from './RegisterWallet.vue' -export { default as IssueCredentials } from './IssueCredentials.vue' -export { default as CredentialsFooter } from './CredentialsFooter.vue' +export { default as CredentialsSimpleSteps } from './CredentialsSimpleSteps.vue' +export { default as CredentialsStepper } from './CredentialsStepper.vue' +export { default as CredentialsTable } from './CredentialsTable.vue' +export { default as CredentialsWebSocket } from './CredentialsWebSocket.vue' diff --git a/src/components/EntityInfo.vue b/src/components/EntityInfo.vue index c06b792fd..33c2438e7 100644 --- a/src/components/EntityInfo.vue +++ b/src/components/EntityInfo.vue @@ -18,7 +18,7 @@ :tempRegNumber="tempRegNumber" /> route.path.includes(DCRoutes.DIGITAL_CREDENTIALS)) + } + /** The Temporary Registration Number string (may be null). */ get tempRegNumber (): string { return sessionStorage.getItem('TEMP_REG_NUMBER') diff --git a/src/components/EntityInfo/EntityHeader.vue b/src/components/EntityInfo/EntityHeader.vue index b1709e5f9..7e271eeaa 100644 --- a/src/components/EntityInfo/EntityHeader.vue +++ b/src/components/EntityInfo/EntityHeader.vue @@ -72,18 +72,18 @@ @@ -95,6 +95,7 @@ import { Getter } from 'pinia-class' import { CorpTypeCd, GetCorpFullDescription } from '@bcrs-shared-components/corp-type-module' import { FilingNames } from '@/enums' import { useBusinessStore, useFilingHistoryListStore, useRootStore } from '@/stores' +import { ApiFilingIF, ApiTaskIF } from '@/interfaces' @Component({}) export default class EntityHeader extends Vue { @@ -102,10 +103,14 @@ export default class EntityHeader extends Vue { @Prop({ required: true }) readonly tempRegNumber!: string // may be null @Getter(useBusinessStore) getEntityName!: string + @Getter(useFilingHistoryListStore) getFilings!: ApiFilingIF[] @Getter(useBusinessStore) getLegalType!: CorpTypeCd @Getter(useRootStore) getLimitedRestorationActiveUntil!: string @Getter(useRootStore) getReasonText!: string + @Getter(useRootStore) getTasks!: ApiTaskIF[] @Getter(useFilingHistoryListStore) isAuthorizedToContinueOut!: boolean + @Getter(useRootStore) isDraftAmalgamation!: boolean + @Getter(useRootStore) isFiledAmalgamation!: boolean @Getter(useBusinessStore) isHistorical!: boolean @Getter(useRootStore) isInLimitedRestoration!: boolean @Getter(useBusinessStore) isSoleProp!: boolean @@ -120,8 +125,15 @@ export default class EntityHeader extends Vue { } } - /** The incorporation application or registration description. */ - get iaRegDescription (): string { + /** The incorporation/registration/amalgamation application description. */ + get appDescription (): string { + if (this.isDraftAmalgamation) { + return this.getTasks[0]?.task.filing.displayName + } + if (this.isFiledAmalgamation) { + return this.getFilings[0]?.displayName + } + const filingName = [CorpTypeCd.SOLE_PROP, CorpTypeCd.PARTNERSHIP].includes(this.getLegalType) ? FilingNames.REGISTRATION : FilingNames.INCORPORATION_APPLICATION @@ -136,7 +148,7 @@ export default class EntityHeader extends Vue { @import '@/assets/styles/theme.scss'; #entity-legal-name, -#ia-reg-name { +#app-name { display: inline-block; color: $gray9; letter-spacing: -0.01rem; @@ -148,7 +160,7 @@ export default class EntityHeader extends Vue { #business-description, #limited-restoration, #active-util, -#ia-reg-description { +#app-description { font-size: $px-14; color: $gray7; } diff --git a/src/components/EntityInfo/EntityMenu.vue b/src/components/EntityInfo/EntityMenu.vue index 9e70d9e1f..0ab4cc0c2 100644 --- a/src/components/EntityInfo/EntityMenu.vue +++ b/src/components/EntityInfo/EntityMenu.vue @@ -69,32 +69,8 @@ - - - - - Manage the digital credentials generated for the business. - - - - + - - - - Dissolving the business will make this business historical - and it will be struck from the corporate registry. - - - - - - Submit a Consent to Continue Out of the province of B.C. - - - - - - Request an AGM extension. The longest extension granted at one time is six months. - - - - - - Request an AGM location change. - + + + + + Manage the digital cards generated for the business. + + + + + + + + Dissolving the business will make this business historical + and it will be struck from the corporate registry. + + + + + + Submit a Consent to Continue Out of the province of B.C. + + + + + + {{ agmExtensionToolTipText }} + + + + + + {{ agmLocationChgToolTipText }} + + + + + + {{ amalgamateTooltipText }} + + @@ -230,6 +265,7 @@ export default class EntityMenu extends Mixins(AllowableActionsMixin) { @Getter(useConfigurationStore) getEditUrl!: string @Getter(useBusinessStore) getIdentifier!: string + @Getter(useBusinessStore) isAdminFrozen!: boolean @Getter(useBusinessStore) isBenBcCccUlc!: boolean @Getter(useBusinessStore) isHistorical!: boolean @Getter(useRootStore) isPendingDissolution!: boolean @@ -245,12 +281,51 @@ export default class EntityMenu extends Mixins(AllowableActionsMixin) { return !!this.businessId } + /** + * More actions should only display if an entity is not historical or if the Digital Credentials + * feature is available, otherwise an empty menu will display for historical entities. */ + get areMoreActionsAvailable (): boolean { + return !this.isHistorical || this.isAllowed(AllowableActions.DIGITAL_CREDENTIALS) + } + get enableAgmExtension (): boolean { - return !!GetFeatureFlag('enable-agm-extension') + return !!GetFeatureFlag('supported-agm-extension-entities').includes(this.getLegalType) } get enableAgmLocationChg (): boolean { - return !!GetFeatureFlag('enable-agm-location-chg') + return !!GetFeatureFlag('supported-agm-location-chg-entities').includes(this.getLegalType) + } + + get enableAmalgamation (): boolean { + return !!GetFeatureFlag('supported-amalgamation-entities').includes(this.getLegalType) + } + + /** The tooltip text for AGM Extension list item. Text is different if action item is disabled. */ + get agmExtensionToolTipText (): string { + if (!this.isAllowed(AllowableActions.AGM_EXTENSION)) { + return 'The business must be in good standing to request an AGM extension.' + } else { + return 'Request an AGM extension. The longest extension granted at one time is six months.' + } + } + + /** The tooltip text for AGM Location Change list item. Text is different if action item is disabled. */ + get agmLocationChgToolTipText (): string { + if (!this.isAllowed(AllowableActions.AGM_LOCATION_CHANGE)) { + return 'The business must be in good standing to request an AGM location change.' + } else { + return 'Request an AGM location change.' + } + } + + /** The tooltip text for the amalgamate button. Text changes depending on the business status. */ + get amalgamateTooltipText (): string { + if (this.isAdminFrozen) { + return 'This business is frozen and cannot be involved in an amalgamation.' + } else if (this.isPendingDissolution) { + return 'This business has a future effective dissolution and cannot be involved in an amalgamation.' + } + return 'Amalgamate with other businesses.' } /** @@ -282,6 +357,10 @@ export default class EntityMenu extends Mixins(AllowableActionsMixin) { this.emitConfirmDissolution() } + goToAmalgamationSelection (): void { + this.$router.push({ name: Routes.AMALGAMATION_SELECTION, params: { filingId: '0' } }) + } + goToConsentContinuationOutFiling (): void { // 0 means "new filing" this.$router.push({ name: Routes.CONSENT_CONTINUATION_OUT, params: { filingId: '0' } }) @@ -294,7 +373,7 @@ export default class EntityMenu extends Mixins(AllowableActionsMixin) { goToAgmLocationChgFiling (): void { // 0 means "new filing" - this.$router.push({ name: Routes.AGM_LOCATION_CHG, params: { filingId: '0' } }) + this.$router.push({ name: Routes.AGM_LOCATION_CHANGE, params: { filingId: '0' } }) } /** Emits an event to confirm dissolution. */ diff --git a/src/components/common/Certify.vue b/src/components/common/Certify.vue index 7e6f04426..fb0c105bc 100644 --- a/src/components/common/Certify.vue +++ b/src/components/common/Certify.vue @@ -20,6 +20,7 @@ filled persistent-hint label="Person's legal name" + :disabled="disableEdit" :value="certifiedBy" :rules="[ v => !!v || 'A person\'s legal name is required.']" @input="emitCertifiedBy($event)" @@ -37,7 +38,7 @@

- Date: {{ getCurrentDate }} + Date: {{ formattedCurrentDate || '[unknown]' }}

{{ message }} @@ -50,6 +51,7 @@ diff --git a/src/components/common/DetailComment.vue b/src/components/common/DetailComment.vue index 79e83d437..270d76904 100644 --- a/src/components/common/DetailComment.vue +++ b/src/components/common/DetailComment.vue @@ -32,20 +32,6 @@ export default class DetailComment extends Vue { textarea: any } - /** Array of validations rules for the textarea. */ - get rules (): Array<(val) => boolean | string> { - // include whitespace in maximum length check - return [ - val => (val && val.trim().length > 0) || 'Detail is required.', - val => (val && val.length <= this.maxLength) || 'Maximum characters exceeded.' - ] - } - - /** Public method to reset Vuetify validation on textarea. */ - resetValidation (): void { - (this.$refs.textarea as any).resetValidation() - } - /** Comment (v-model) passed into this component (required). */ @Prop({ default: '' }) readonly value!: string @@ -61,8 +47,25 @@ export default class DetailComment extends Vue { /** Prompt the validations. Used for global validations. */ @Prop({ default: false }) readonly validateForm!: boolean + /** Text is required error message. */ + @Prop({ default: 'Detail is required.' }) readonly textRequiredErrorMsg!: string + detailedComment = '' + /** Array of validations rules for the textarea. */ + get rules (): Array<(val) => boolean | string> { + // include whitespace in maximum length check + return [ + val => (val && val.trim().length > 0) || this.textRequiredErrorMsg, + val => (val && val.length <= this.maxLength) || 'Maximum characters exceeded.' + ] + } + + /** Public method to reset Vuetify validation on textarea. */ + resetValidation (): void { + (this.$refs.textarea as any).resetValidation() + } + /** Called when component is created. */ created (): void { // inform parent of initial validity @@ -90,8 +93,9 @@ export default class DetailComment extends Vue { /** Emits an event with the changed comment (ie, updated v-model). */ @Emit('input') - // eslint-disable-next-line @typescript-eslint/no-unused-vars - emitInput (val: string): void {} + emitInput (val: string): void { + this.detailedComment = val + } /** Emits an event indicating whether or not this component is valid. */ @Emit('valid') @@ -113,7 +117,6 @@ export default class DetailComment extends Vue { // Move the placeholder and input text from the edges. :deep() { .theme--light.v-input input, .theme--light.v-input textarea { - background-color: $gray1; padding-top: 0.5rem; padding-left: 0.5rem; } diff --git a/src/components/common/ForeignJurisdiction.vue b/src/components/common/ForeignJurisdiction.vue index 4e4928952..6f4a7adf2 100644 --- a/src/components/common/ForeignJurisdiction.vue +++ b/src/components/common/ForeignJurisdiction.vue @@ -80,7 +80,7 @@ export default class ForeignJurisdiction extends Mixins(CountriesProvincesMixin) } /** Get the respective regions of the country selected as an array of objects. */ - get canadaUsaRegions (): Array { + get canadaUsaRegions (): Array { if (this.selectedCountryName === 'Canada') { let regions = this.getCountryRegions('CA') regions = regions.filter(province => province.short !== 'BC') diff --git a/src/components/common/NameRequestInfo.vue b/src/components/common/NameRequestInfo.vue index 7c3483d06..2e8be7daf 100644 --- a/src/components/common/NameRequestInfo.vue +++ b/src/components/common/NameRequestInfo.vue @@ -91,7 +91,7 @@ import { Component, Mixins, Prop } from 'vue-property-decorator' import { Getter } from 'pinia-class' import { getName } from 'country-list' import { capitalize, formatPhoneNumber } from '@/utils' -import { NameRequestStates } from '@/enums' +import { NameRequestStates, NameRequestTypes } from '@/enums' import { NameRequestIF, NameRequestApplicantIF } from '@/interfaces' import { DateMixin, EnumMixin, NameRequestMixin } from '@/mixins' import { GetCorpFullDescription } from '@bcrs-shared-components/corp-type-module' @@ -124,6 +124,9 @@ export default class NameRequestInfo extends Mixins(DateMixin, EnumMixin, NameRe /** The request type. */ get requestType (): string { + if (this.nameRequest.request_action_cd === NameRequestTypes.AMALGAMATION) { + return 'Amalgamation' + } return 'New Business' } @@ -167,11 +170,9 @@ export default class NameRequestInfo extends Mixins(DateMixin, EnumMixin, NameRe /** The applicant's name. */ get applicantName (): string { let name: string - if (this.applicant?.middleName) { - name = `${this.applicant?.firstName} ${this.applicant?.middleName} ${this.applicant?.lastName}` - } else { - name = `${this.applicant?.firstName} ${this.applicant?.lastName}` - } + const firstName = this.applicant?.firstName ? this.applicant.firstName + ' ' : '' + const middleName = this.applicant?.middleName ? this.applicant.middleName + ' ' : '' + name = `${firstName}${middleName}${this.applicant?.lastName}` return name } diff --git a/src/components/common/VcardTemplate.vue b/src/components/common/VcardTemplate.vue new file mode 100644 index 000000000..ec165f180 --- /dev/null +++ b/src/components/common/VcardTemplate.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/components/common/index.ts b/src/components/common/index.ts index d6cbe2e14..b702225ef 100644 --- a/src/components/common/index.ts +++ b/src/components/common/index.ts @@ -13,6 +13,7 @@ import OfficeAddresses from './OfficeAddresses.vue' import Stepper from '@/components/common/Stepper.vue' import SummaryDirectors from './SummaryDirectors.vue' import SummaryOfficeAddresses from './SummaryOfficeAddresses.vue' +import VcardTemplate from './VcardTemplate.vue' import WarningPopover from './WarningPopover.vue' // NB: importing/exporting Directors gives us weird errors, @@ -34,5 +35,6 @@ export { Stepper, SummaryDirectors, SummaryOfficeAddresses, + VcardTemplate, WarningPopover } diff --git a/src/components/dialogs/AddStaffNotationDialog.vue b/src/components/dialogs/AddStaffNotationDialog.vue index 180ff47c3..0d94ae1d2 100644 --- a/src/components/dialogs/AddStaffNotationDialog.vue +++ b/src/components/dialogs/AddStaffNotationDialog.vue @@ -155,6 +155,7 @@ import { FormIF } from '@/interfaces' import { EffectOfOrderTypes, FilingSubTypes, FilingTypes, PageSizes } from '@/enums' import { EnumUtilities, LegalServices } from '@/services' import { useAuthenticationStore, useBusinessStore, useRootStore } from '@/stores' +import { CorpTypeCd } from '@bcrs-shared-components/corp-type-module' @Component({ components: { @@ -198,7 +199,7 @@ export default class AddStaffNotationDialog extends Mixins(DateMixin) { @Getter(useRootStore) getCurrentDate!: string @Getter(useBusinessStore) getFoundingDate!: Date @Getter(useBusinessStore) getLegalName!: string - @Getter(useBusinessStore) getLegalType!: string + @Getter(useBusinessStore) getLegalType!: CorpTypeCd @Getter(useBusinessStore) getIdentifier!: string @Getter(useAuthenticationStore) getKeycloakGuid!: string @Getter(useBusinessStore) isAdminFrozen!: boolean diff --git a/src/components/dialogs/ConfirmDissolutionDialog.vue b/src/components/dialogs/ConfirmDissolutionDialog.vue index ab88a18b4..7720e5bbe 100644 --- a/src/components/dialogs/ConfirmDissolutionDialog.vue +++ b/src/components/dialogs/ConfirmDissolutionDialog.vue @@ -83,11 +83,11 @@ + + diff --git a/src/components/dialogs/TechnicalErrorDialog.vue b/src/components/dialogs/TechnicalErrorDialog.vue new file mode 100644 index 000000000..75c91c60a --- /dev/null +++ b/src/components/dialogs/TechnicalErrorDialog.vue @@ -0,0 +1,64 @@ + + + diff --git a/src/components/dialogs/index.ts b/src/components/dialogs/index.ts index b7c38efab..7155bade8 100644 --- a/src/components/dialogs/index.ts +++ b/src/components/dialogs/index.ts @@ -13,11 +13,13 @@ import FileCorrectionDialog from './FileCorrectionDialog.vue' import LoadCorrectionDialog from './LoadCorrectionDialog.vue' import NameRequestAuthErrorDialog from './NameRequestAuthErrorDialog.vue' import NameRequestInvalidDialog from './NameRequestInvalidDialog.vue' +import NotEligibleExtensionDialog from './NotEligibleExtensionDialog.vue' import NotInGoodStandingDialog from '@/components/dialogs/NotInGoodStandingDialog.vue' import PaymentErrorDialog from './PaymentErrorDialog.vue' import ResumeErrorDialog from './ResumeErrorDialog.vue' import SaveErrorDialog from './SaveErrorDialog.vue' import StaffPaymentDialog from './StaffPaymentDialog.vue' +import TechnicalErrorDialog from './TechnicalErrorDialog.vue' export { AddCommentDialog, @@ -35,9 +37,11 @@ export { LoadCorrectionDialog, NameRequestAuthErrorDialog, NameRequestInvalidDialog, + NotEligibleExtensionDialog, NotInGoodStandingDialog, PaymentErrorDialog, ResumeErrorDialog, SaveErrorDialog, - StaffPaymentDialog + StaffPaymentDialog, + TechnicalErrorDialog } diff --git a/src/enums/allowableActions.ts b/src/enums/allowableActions.ts index 2e6524255..1422cb805 100644 --- a/src/enums/allowableActions.ts +++ b/src/enums/allowableActions.ts @@ -3,7 +3,8 @@ export enum AllowableActions { ADDRESS_CHANGE = 1, // skip 0 which is falsy ADMINISTRATIVE_DISSOLUTION, AGM_EXTENSION, - AGM_LOCATION_CHG, + AGM_LOCATION_CHANGE, + AMALGAMATION, ANNUAL_REPORT, BUSINESS_INFORMATION, BUSINESS_SUMMARY, diff --git a/src/enums/amalgamationEnums.ts b/src/enums/amalgamationEnums.ts new file mode 100644 index 000000000..28573900a --- /dev/null +++ b/src/enums/amalgamationEnums.ts @@ -0,0 +1,9 @@ +export enum AmlRoles { + AMALGAMATING = 'amalgamating', + HOLDING = 'holding' +} + +export enum AmlTypes { + LEAR = 'lear', + FOREIGN = 'foreign' +} diff --git a/src/enums/entityStatus.ts b/src/enums/entityStatus.ts index d4ac99eb7..d06f0fa2c 100644 --- a/src/enums/entityStatus.ts +++ b/src/enums/entityStatus.ts @@ -1,5 +1,9 @@ /** Statuses used before business exists. */ export enum EntityStatus { - DRAFT_APP = 'DRAFT_APP', - FILED_APP = 'FILED_APP', + DRAFT_AMALGAMATION = 'DRAFT_AMALGAMATION', + DRAFT_INCORP_APP = 'DRAFT_INCORP_APP', + DRAFT_REGISTRATION = 'DRAFT_REGISTRATION', + FILED_AMALGAMATION = 'FILED_AMALGAMATION', + FILED_INCORP_APP = 'FILED_INCORP_APP', + FILED_REGISTRATION = 'FILED_REGISTRATION', } diff --git a/src/enums/filingSubTypes.ts b/src/enums/filingSubTypes.ts index 4904bef5f..afb380d72 100644 --- a/src/enums/filingSubTypes.ts +++ b/src/enums/filingSubTypes.ts @@ -1,16 +1,21 @@ +import { AmalgamationTypes, RestorationTypes } from '@bcrs-shared-components/enums' + /** Filing sub-types used by Legal API. */ // FUTURE: move these to shared enum and import that instead export enum FilingSubTypes { ADMIN_FREEZE = 'adminFreeze', ADMIN_UNFREEZE = 'adminUnfreeze', + AMALGAMATION_REGULAR = AmalgamationTypes.REGULAR, + AMALGAMATION_HORIZONTAL = AmalgamationTypes.HORIZONTAL, + AMALGAMATION_VERTICAL = AmalgamationTypes.VERTICAL, COURT_ORDERED_LIQUIDATION = 'courtOrderedLiquidation', DISSOLUTION_ADMINISTRATIVE = 'administrative', DISSOLUTION_INVOLUNTARY = 'involuntary', DISSOLUTION_VOLUNTARY = 'voluntary', - FULL_RESTORATION = 'fullRestoration', - LIMITED_RESTORATION = 'limitedRestoration', - LIMITED_RESTORATION_EXTENSION = 'limitedRestorationExtension', - LIMITED_RESTORATION_TO_FULL = 'limitedRestorationToFull', + FULL_RESTORATION = RestorationTypes.FULL, + LIMITED_RESTORATION = RestorationTypes.LIMITED, + LIMITED_RESTORATION_EXTENSION = RestorationTypes.LTD_EXTEND, + LIMITED_RESTORATION_TO_FULL = RestorationTypes.LTD_TO_FULL, VOLUNTARY_LIQUIDATION = 'voluntaryLiquidation', // FUTURE: add these dissolution names as needed diff --git a/src/enums/index.ts b/src/enums/index.ts index 30d8d60ae..f08167277 100644 --- a/src/enums/index.ts +++ b/src/enums/index.ts @@ -1,5 +1,6 @@ export * from './actions' export * from './allowableActions' +export * from './amalgamationEnums' export * from './applicationTypes' export * from './correctionTypes' export * from './effectOfOrderTypes' @@ -21,4 +22,5 @@ export * from './affiliationInvitation' // external enums export { CorpTypeCd, CorpClass } from '@bcrs-shared-components/corp-type-module' -export { AccountTypes, FilingCodes, FilingNames, FilingTypes, StaffPaymentOptions } from '@bcrs-shared-components/enums' +export { AccountTypes, AmalgamationTypes, FilingCodes, FilingNames, FilingTypes, StaffPaymentOptions } + from '@bcrs-shared-components/enums' diff --git a/src/enums/nameRequestTypes.ts b/src/enums/nameRequestTypes.ts index 8fda1cfc4..914a94105 100644 --- a/src/enums/nameRequestTypes.ts +++ b/src/enums/nameRequestTypes.ts @@ -1,5 +1,6 @@ /** Enum to help map name request type codes */ export enum NameRequestTypes { + AMALGAMATION = 'AML', NEW = 'NEW', CHANGE_OF_NAME = 'CHG', CONVERSION = 'CNV' diff --git a/src/enums/routes.ts b/src/enums/routes.ts index a8fb2e440..c6342c038 100644 --- a/src/enums/routes.ts +++ b/src/enums/routes.ts @@ -1,6 +1,9 @@ -export enum Routes { +import { Routes as DCRoutes } from '@/components/DigitalCredentials/enums/routes' + +export enum CoreRoutes { AGM_EXTENSION = 'agm-extension', - AGM_LOCATION_CHG = 'agm-location-chg', + AGM_LOCATION_CHANGE = 'agm-location-chg', + AMALGAMATION_SELECTION = 'amalgamation-selection', ANNUAL_REPORT = 'annual-report', CONSENT_CONTINUATION_OUT = 'consent-continuation-out', CONTINUATION_OUT = 'continuation-out', @@ -10,10 +13,13 @@ export enum Routes { STANDALONE_DIRECTORS = 'standalone-directors', SIGNIN = 'signin', SIGNOUT = 'signout', +} + +export { DCRoutes } - // Digital Credential Routes for Pilot - DIGITAL_CREDENTIALS = 'digital-credentials', - DOWNLOAD_WALLET = 'download-wallet', - REGISTER_WALLET = 'register-wallet', - ISSUE_CREDENTIALS = 'issue-credentials' +// Combined routes +export type Routes = CoreRoutes | DCRoutes +export const Routes = { + ...CoreRoutes, + ...DCRoutes } diff --git a/src/interfaces/agm-ext-eval-interface.ts b/src/interfaces/agm-ext-eval-interface.ts new file mode 100644 index 000000000..be4d700c0 --- /dev/null +++ b/src/interfaces/agm-ext-eval-interface.ts @@ -0,0 +1,35 @@ +/** Object that stores AGM Extension evaluation fields. */ +export interface AgmExtEvalIF { + currentDate: string // YYYY-MM-DD + alreadyExtended: boolean + requestExpired: boolean + isGoodStanding: boolean + incorporationDate: Date + isFirstAgm: boolean + agmYear: string // YYYY + prevAgmDate: string // YYYY-MM-DD + isPrevExtension: boolean + prevExpiryDate: string // YYYY-MM-DD + intendedAgmDate: string // YYYY-MM-DD + extensionDuration: number // in months + agmDueDate: string // YYYY-MM-DD + isEligible: boolean +} + +/** An empty AGM Extension Evaluation object. Note: don't assign this - make a copy instead. */ +export const EmptyAgmExtEval: AgmExtEvalIF = { + currentDate: null, + alreadyExtended: null, + requestExpired: null, + isGoodStanding: null, + incorporationDate: null, + isFirstAgm: null, + agmYear: null, + prevAgmDate: null, + isPrevExtension: null, + prevExpiryDate: null, + intendedAgmDate: null, + extensionDuration: NaN, + agmDueDate: null, + isEligible: null +} diff --git a/src/interfaces/amalgamation-interfaces.ts b/src/interfaces/amalgamation-interfaces.ts new file mode 100644 index 000000000..5e1e75543 --- /dev/null +++ b/src/interfaces/amalgamation-interfaces.ts @@ -0,0 +1,67 @@ +import { AmalgamationTypes, CorpTypeCd, FilingTypes } from '@/enums' +import { CorrectNameOptions } from '@bcrs-shared-components/enums' +import { CompletingPartyIF, ContactPointIF, CourtOrderIF, + NameTranslationIF, ShareClassIF } from '@bcrs-shared-components/interfaces' +import { OfficeAddressIF } from './address-interfaces' + +/** + * A filing's amalgamation application object from the API. See: + * https://github.com/bcgov/business-schemas/blob/main/src/registry_schemas/schemas/amalgamation_application.json + */ +export interface RegisteredRecordsAddressesIF { + registeredOffice: OfficeAddressIF + recordsOffice?: OfficeAddressIF +} + +export interface NameRequestFilingIF { + legalType: CorpTypeCd + legalName?: string + nrNumber?: string + correctNameOption?: CorrectNameOptions +} + +export interface AmalgamationApplicationIF { + amalgamatingBusinesses: any[] + courtApproval: boolean + type: AmalgamationTypes + nameRequest: NameRequestFilingIF + nameTranslations: NameTranslationIF[] + offices: RegisteredRecordsAddressesIF | object + contactPoint: ContactPointIF + parties: CompletingPartyIF[] + + // BEN / CC / BC / ULC only: + shareStructure?: { + shareClasses: ShareClassIF[] + } + incorporationAgreement?: { + agreementType: string + } + // ULC only: + courtOrder?: CourtOrderIF +} + +/** Amalgamation Application filing interface. */ +export interface AmalgamationApplicationFilingIF { + header: { + name: FilingTypes + certifiedBy: string + date: string + effectiveDate?: string + filingId?: number + folioNumber?: string + isFutureEffective: boolean + + // staff payment properties: + routingSlipNumber?: string + bcolAccountNumber?: string + datNumber?: string + waiveFees?: boolean + priority?: boolean + } + business: { + legalType: CorpTypeCd + identifier: string + } + amalgamationApplication: AmalgamationApplicationIF +} diff --git a/src/interfaces/api-filing-interface.ts b/src/interfaces/api-filing-interface.ts index 287af11fd..22833c1f5 100644 --- a/src/interfaces/api-filing-interface.ts +++ b/src/interfaces/api-filing-interface.ts @@ -1,10 +1,12 @@ -import { CorpTypeCd, EffectOfOrderTypes, FilingStatus, FilingSubTypes, FilingTypes } from '@/enums' +import { AmalgamationTypes, CorpTypeCd, EffectOfOrderTypes, FilingStatus, FilingSubTypes, FilingTypes } + from '@/enums' import { ApiDateTimeUtc, CommentIF, DocumentIF, FormattedDateTimeGmt, IsoDatePacific, SpecialResolutionIF } from '@/interfaces' /** - * A filing object from the Legal API ("filings" call). - * See also History Item interface. + * A filing object from the Legal API ("filings" call). This is the newer response with extra metadata + * instead of separate business / documents / header / filing objects. + * This object is also what the Filings History List uses directly. */ export interface ApiFilingIF { availableOnPaperOnly: boolean @@ -12,6 +14,7 @@ export interface ApiFilingIF { commentsCount: number commentsLink: string // URL to fetch this filing's comments displayName: string + displayLedger: boolean // whether to display this ledger item documentsLink: string // URL to fetch this filing's documents effectiveDate: FormattedDateTimeGmt filingId: number @@ -41,12 +44,34 @@ export interface ApiFilingIF { freeze: boolean } + agmExtension?: { + year: string // YYYY-MM-DD + isFirstAgm: boolean + prevAgmRefDate: string // YYYY-MM-DD + extReqForAgmYear: boolean + expireDateCurrExt: string // YYYY-MM-DD + intendedAgmDate: string // YYYY-MM-DD + totalApprovedExt: number // in months + extensionDuration: number // in months + expireDateApprovedExt: string // YYYY-MM-DD + } + + agmLocationChange?: { + year: string + reason: string + agmLocation: string + } + // alteration filings only alteration?: { fromLegalType?: CorpTypeCd toLegalType?: CorpTypeCd } + amalgamationApplication?: { + type: AmalgamationTypes + } + // AR filings only annualReport?: { annualGeneralMeetingDate: IsoDatePacific diff --git a/src/interfaces/api-task-interface.ts b/src/interfaces/api-task-interface.ts index c40cd7559..48393c108 100644 --- a/src/interfaces/api-task-interface.ts +++ b/src/interfaces/api-task-interface.ts @@ -1,7 +1,12 @@ -import { AlterationIF, ApiBusinessIF, RestorationIF, SpecialResolutionIF } from '@/interfaces' +import { AlterationIF, AmalgamationApplicationIF, + ApiBusinessIF, RestorationIF, SpecialResolutionIF } from '@/interfaces' import { FilingStatus, FilingTypes } from '@/enums' -/** A filing's header object from the Legal API. */ +/** + * The header object from the Legal API when the filing contains separate business / + * documents / header / filing objects. This is the older response from the "filings" + * call but is still used for fetching draft apps or tasks. + */ export interface ApiHeaderIF { accountId?: number // NOT USED ARFilingYear?: number // ARs only @@ -32,11 +37,14 @@ export interface ApiHeaderIF { } /** - * A task todo (or filing) object. + * The object for a draft application (or registration or amalgamation) filing or todo task. * Note that only `business` and `header` are required. */ export interface TaskTodoIF { + agmExtension?: any + agmLocationChange?: any alteration?: AlterationIF + amalgamationApplication?: AmalgamationApplicationIF annualReport?: any business: ApiBusinessIF changeOfAddress?: any @@ -47,6 +55,7 @@ export interface TaskTodoIF { conversion?: any correction?: any courtOrder?: any + displayName?: string // for app tasks only dissolution?: any documents?: Array header: ApiHeaderIF @@ -59,8 +68,8 @@ export interface TaskTodoIF { } /** - * A task object from the Legal API ("tasks" call). - * See also Todo Item interface. + * A task object from the Legal API ("tasks" call), which contains a draft filing or a todo item. + * See also TodoItemIF. */ export interface ApiTaskIF { enabled: boolean diff --git a/src/interfaces/authentication-state-interface.ts b/src/interfaces/authentication-state-interface.ts new file mode 100644 index 000000000..3ebaedaa5 --- /dev/null +++ b/src/interfaces/authentication-state-interface.ts @@ -0,0 +1,14 @@ +import { CurrentUserIF, CurrentAccountIF } from '@/interfaces' + +/** The state model interface for the Authentication Store. */ +export interface AuthenticationStateIF { + account: { + currentUser: CurrentUserIF + currentAccount: CurrentAccountIF + }, + auth: { + token: string + idToken: string + refreshToken: string + } +} diff --git a/src/interfaces/business-interfaces.ts b/src/interfaces/business-state-interfaces.ts similarity index 83% rename from src/interfaces/business-interfaces.ts rename to src/interfaces/business-state-interfaces.ts index 93c16c1df..9632379b9 100644 --- a/src/interfaces/business-interfaces.ts +++ b/src/interfaces/business-state-interfaces.ts @@ -1,4 +1,5 @@ import { EntityState, CorpTypeCd, FilingSubTypes, FilingTypes } from '@/enums' +import { AmalgamationTypes } from '@bcrs-shared-components/enums' import { IsoDatePacific, ApiDateTimeUtc } from '@bcrs-shared-components/interfaces' export interface FilingTypeIF { @@ -9,6 +10,7 @@ export interface FilingTypeIF { } export interface AllowedActionsIF { + digitalBusinessCard: boolean filing: { filingSubmissionLink: string filingTypes: Array @@ -24,11 +26,19 @@ export interface AlternateNameIF { operatingName: string } +export interface AmalgamatedIntoIF { + amalgamationDate: ApiDateTimeUtc + amalgamationType: AmalgamationTypes + identifier: string // eg, BC7654321 + legalName: string +} + export interface BusinessWarningIF { code: string // FUTURE: use an enum filing?: string // not used message: string warningType: string // FUTURE: use an enum + data?: any // optional extra properties (eg, amalgamationDate) } /** The Business object from the Legal API. */ @@ -37,6 +47,7 @@ export interface ApiBusinessIF { adminFreeze: boolean allowedActions: AllowedActionsIF alternateNames?: Array + amalgamatedInto?: AmalgamatedIntoIF arMaxDate?: IsoDatePacific // not used arMinDate?: IsoDatePacific // not used associationType: string // COOP only @@ -69,7 +80,7 @@ export interface ApiBusinessIF { warnings: Array } -/** The Business module state interface. */ +/** The state model interface for the Business Store. */ export interface BusinessStateIF { businessInfo: ApiBusinessIF } diff --git a/src/interfaces/configuration-state-interface.ts b/src/interfaces/configuration-state-interface.ts index b88be3a8f..b4fa4dbda 100644 --- a/src/interfaces/configuration-state-interface.ts +++ b/src/interfaces/configuration-state-interface.ts @@ -1,4 +1,4 @@ -/** The Configuration module state interface. */ +/** The state model interface for the Configuration Store. */ export interface ConfigurationStateIF { configuration: { VUE_APP_ADDRESS_COMPLETE_KEY: string, diff --git a/src/interfaces/digitalCredentials-interface.ts b/src/interfaces/digitalCredentials-interface.ts index 9283853b8..f85879b4a 100644 --- a/src/interfaces/digitalCredentials-interface.ts +++ b/src/interfaces/digitalCredentials-interface.ts @@ -1,9 +1,19 @@ import { DigitalCredentialTypes } from '@/enums' -export interface DigitalCredentialsIF { +export interface DigitalCredentialIF { legalName: string credentialType: DigitalCredentialTypes + credentialId: string isIssued: boolean dateOfIssue: string isRevoked: boolean + isDeleted: boolean +} + +export interface WalletConnectionIF { + businessId: string + connectionId: string + invitationUrl: string + isActive: boolean + connectionState: string } diff --git a/src/interfaces/filing-history-list-state-interface.ts b/src/interfaces/filing-history-list-state-interface.ts index dd689609e..89257d60b 100644 --- a/src/interfaces/filing-history-list-state-interface.ts +++ b/src/interfaces/filing-history-list-state-interface.ts @@ -1,6 +1,6 @@ import { ApiFilingIF } from '@/interfaces' -/** The Filing History List module state interface. */ +/** The state model interface for the Filing History List Store. */ export interface FilingHistoryListStateIF { addCommentDialog: boolean currentFiling: ApiFilingIF diff --git a/src/interfaces/index.ts b/src/interfaces/index.ts index 97056e614..9aa99c595 100644 --- a/src/interfaces/index.ts +++ b/src/interfaces/index.ts @@ -11,15 +11,17 @@ export type { AlterationIF, ContactPointIF, NameTranslationIF, ShareStructureIF, IncorporationApplicationIF, IncorporationAddressIf, ShareClassIF, CommentIF, ConfirmDialogType, StaffPaymentIF, ApiDateTimeUtc, FormattedDateTimeGmt, IsoDatePacific, SpecialResolutionIF } -// must come before other interfaces that use it -export * from './officer-interface' +export * from './officer-interface' // must come before other interfaces that use it export * from './address-interfaces' export * from './affiliation-invitation-interface' +export * from './agm-ext-eval-interface' export * from './alert-message-interface' +export * from './amalgamation-interfaces' export * from './api-filing-interface' export * from './api-task-interface' +export * from './authentication-state-interface' export * from './breadcrumb-interface' -export * from './business-interfaces' +export * from './business-state-interfaces' export * from './component-interface' export * from './configuration-state-interface' export * from './correction-filing-interface' @@ -44,7 +46,6 @@ export * from './presigned-url-interface' export * from './restoration-interfaces' export * from './role-interface' export * from './root-state-interface' -export * from './state-interface' export * from './steps-interface' export * from './table-header-interface' export * from './todo-item-interface' diff --git a/src/interfaces/root-state-interface.ts b/src/interfaces/root-state-interface.ts index 3f9ca863f..d2096bba8 100644 --- a/src/interfaces/root-state-interface.ts +++ b/src/interfaces/root-state-interface.ts @@ -1,14 +1,49 @@ -import { CurrentUserIF, CurrentAccountIF } from '@/interfaces' +import { CorpTypeCd, EntityStatus } from '@/enums' +import { ApiHeaderIF, ApiTaskIF, FilingDataIF, OfficeAddressIF, PartyIF } from '@/interfaces' -/** The ROOT state model interface. */ +/** Interface for the state filing object. */ +export interface StateFilingIF { + business: any + consentContinuationOut?: any + header: ApiHeaderIF + dissolution?: any + restoration?: any + putBackOn?: any +} + +/** The state model interface for the Root Store. */ export interface RootStateIF { - account: { - currentUser: CurrentUserIF, - currentAccount: CurrentAccountIF - }, - auth: { - token: string, - idToken: string, - refreshToken: string - } + // tombstone data + authRoles: Array + currentDate: string // 'today' as YYYY-MM-DD in Pacific timezone + currentJsDate: Date // 'now' as of dashboard loading in UTC + entityStatus: EntityStatus // for amalgamations/applications/registrations only + keycloakRoles: Array + stateFiling: StateFilingIF + userKeycloakGuid: string + + // entity info from auth db + businessEmail: string + businessPhone: string + businessPhoneExtension: string + corpTypeCd: CorpTypeCd + + // set by Todo List + ARFilingYear: number // YYYY + arMaxDate: string // YYYY-MM-DD // COOPs only + arMinDate: string // YYYY-MM-DD // COOPs only + nextARDate: string // YYYY-MM-DD // BCOMPs only + + // other global data + businessAddress: OfficeAddressIF + configObject: any + fetchingDataSpinner: boolean + startingAmalgamationSpinner: boolean + filingData: Array + nameRequest: any + parties: Array + recordsAddress: OfficeAddressIF + registeredAddress: OfficeAddressIF + tasks: Array // "tasks" data from API + userInfo: any // from auth db } diff --git a/src/interfaces/state-interface.ts b/src/interfaces/state-interface.ts deleted file mode 100644 index 1a6efce89..000000000 --- a/src/interfaces/state-interface.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { CorpTypeCd, EntityStatus, FilingStatus } from '@/enums' -import { ApiHeaderIF, ApiTaskIF, FilingDataIF, OfficeAddressIF, PartyIF } from '@/interfaces' - -export interface StateFilingIF { - business: any - consentContinuationOut?: any - header: ApiHeaderIF - dissolution?: any - restoration?: any - putBackOn?: any -} - -/** The state model interface. */ -export interface StateIF { - // tombstone data - authRoles: Array - currentDate: string // 'today' as YYYY-MM-DD in Pacific timezone - currentJsDate: Date // 'now' as of dashboard loading in UTC - entityStatus: EntityStatus // for draft app only - keycloakRoles: Array - stateFiling: StateFilingIF // the state filing object - userKeycloakGuid: string - - // entity info from auth db - businessEmail: string - businessPhone: string - businessPhoneExtension: string - corpTypeCd: CorpTypeCd - - // set by Todo List - ARFilingYear: number // YYYY - arMaxDate: string // YYYY-MM-DD // COOPs only - arMinDate: string // YYYY-MM-DD // COOPs only - nextARDate: string // YYYY-MM-DD // BCOMPs only - - // other global data - businessAddress: OfficeAddressIF - configObject: any - currentFilingStatus: FilingStatus - fetchingDataSpinner: boolean - filingData: Array - nameRequest: any - parties: Array - recordsAddress: OfficeAddressIF - registeredAddress: OfficeAddressIF - tasks: Array // "tasks" data from API -} diff --git a/src/interfaces/steps-interface.ts b/src/interfaces/steps-interface.ts index 78f64ec69..a9e781db6 100644 --- a/src/interfaces/steps-interface.ts +++ b/src/interfaces/steps-interface.ts @@ -4,5 +4,6 @@ export interface StepsIF { icon: string text: string to: string, + disabled?: boolean, component: any // Work around: Do components have types? } diff --git a/src/interfaces/todo-item-interface.ts b/src/interfaces/todo-item-interface.ts index 42a9acd58..edf7897c2 100644 --- a/src/interfaces/todo-item-interface.ts +++ b/src/interfaces/todo-item-interface.ts @@ -3,7 +3,7 @@ import { PaymentErrorIF } from '@/interfaces' /** * A Todo List item (ie, local object). - * See also Api Task interface. + * See also ApiTaskIF. */ export interface TodoItemIF { draftTitle: string diff --git a/src/main.ts b/src/main.ts index 9becacb00..51333ac44 100644 --- a/src/main.ts +++ b/src/main.ts @@ -123,16 +123,11 @@ async function start () { // execution and error handling start().catch(error => { - // log any error after configuring sentry. - // it helps to identify configuration issues specific to the environment. - // note that it won't log anything related to `fetchConfig()` since sentry is depending on a config value. + // Log any error after configuring sentry. + // It helps to identify configuration issues specific to the environment. + // Note that it won't log anything related to `fetchConfig()` since sentry is depending on a config value. Sentry.captureException(error) - console.log(error) // eslint-disable-line no-console - // bypass alert if this specific error - if (!error?.message?.startsWith('Missing or invalid')) { - alert('There was an error starting this page. (See console for details.)\n' + - 'Please try again later.') - } + alert(error) // try to navigate to Business Registry home page navigate(sessionStorage.getItem('BUSINESSES_URL')) }) diff --git a/src/mixins/allowable-actions-mixin.ts b/src/mixins/allowable-actions-mixin.ts index ed14ac147..2262e9f75 100644 --- a/src/mixins/allowable-actions-mixin.ts +++ b/src/mixins/allowable-actions-mixin.ts @@ -1,7 +1,7 @@ import { Component, Vue } from 'vue-property-decorator' import { Getter } from 'pinia-class' import { GetFeatureFlag } from '@/utils' -import { AllowableActions, CorpTypeCd, FilingSubTypes, FilingTypes, Routes } from '@/enums' +import { AllowableActions, CorpTypeCd, FilingSubTypes, FilingTypes } from '@/enums' import { AllowedActionsIF } from '@/interfaces' import { useBusinessStore, useRootStore } from '@/stores' @@ -9,9 +9,9 @@ import { useBusinessStore, useRootStore } from '@/stores' export default class AllowableActionsMixin extends Vue { @Getter(useBusinessStore) getAllowedActions!: AllowedActionsIF @Getter(useBusinessStore) getLegalType!: CorpTypeCd - @Getter(useBusinessStore) isBComp!: boolean @Getter(useBusinessStore) isCoop!: boolean @Getter(useBusinessStore) isFirm!: boolean + @Getter(useBusinessStore) isSoleProp!: boolean @Getter(useBusinessStore) isGoodStanding!: boolean @Getter(useRootStore) isRoleStaff!: boolean @@ -40,13 +40,15 @@ export default class AllowableActionsMixin extends Vue { } case AllowableActions.AGM_EXTENSION: { - return true // *** FOR DEBUGGING ONLY - // return this.isAllowedFiling(FilingTypes.AGM_EXTENSION) + return this.isAllowedFiling(FilingTypes.AGM_EXTENSION) } - case AllowableActions.AGM_LOCATION_CHG: { - return true // *** FOR DEBUGGING ONLY - // return this.isAllowedFiling(FilingTypes.AGM_LOCATION_CHG) + case AllowableActions.AGM_LOCATION_CHANGE: { + return this.isAllowedFiling(FilingTypes.AGM_LOCATION_CHANGE) + } + + case AllowableActions.AMALGAMATION: { + return this.isAllowedFiling(FilingTypes.AMALGAMATION_APPLICATION) } case AllowableActions.BUSINESS_INFORMATION: { @@ -91,11 +93,15 @@ export default class AllowableActionsMixin extends Vue { return (isBusiness && this.isRoleStaff) } + /** + * DBC feature is only available to self-registered owners of an SP + * who are logged in via BCSC. + */ case AllowableActions.DIGITAL_CREDENTIALS: { // NB: this feature is targeted via LaunchDarkly const ff = !!GetFeatureFlag('enable-digital-credentials') - const isNotaDcRoute = !(this.$route.matched.some(route => route.name === Routes.DIGITAL_CREDENTIALS)) - return (ff && isNotaDcRoute && this.isGoodStanding && this.isBComp && !this.isRoleStaff) + const isDigitalBusinessCardAllowed = this.getAllowedActions?.digitalBusinessCard + return (ff && isDigitalBusinessCardAllowed) } case AllowableActions.DIRECTOR_CHANGE: { @@ -111,11 +117,13 @@ export default class AllowableActionsMixin extends Vue { } case AllowableActions.LIMITED_RESTORATION_EXTENSION: { - return this.isAllowedFiling(FilingTypes.RESTORATION, FilingSubTypes.LIMITED_RESTORATION_EXTENSION) + return !!GetFeatureFlag('supported-restoration-entities')?.includes(this.getLegalType) && + this.isAllowedFiling(FilingTypes.RESTORATION, FilingSubTypes.LIMITED_RESTORATION_EXTENSION) } case AllowableActions.LIMITED_RESTORATION_TO_FULL: { - return this.isAllowedFiling(FilingTypes.RESTORATION, FilingSubTypes.LIMITED_RESTORATION_TO_FULL) + return !!GetFeatureFlag('supported-restoration-entities')?.includes(this.getLegalType) && + this.isAllowedFiling(FilingTypes.RESTORATION, FilingSubTypes.LIMITED_RESTORATION_TO_FULL) } case AllowableActions.PUT_BACK_ON: { @@ -137,9 +145,11 @@ export default class AllowableActionsMixin extends Vue { case AllowableActions.RESTORATION: { // full restoration or limited restoration // but not limited restoration extension or limited restoration to full + const ff = !!GetFeatureFlag('supported-restoration-entities')?.includes(this.getLegalType) return ( - this.isAllowedFiling(FilingTypes.RESTORATION, FilingSubTypes.FULL_RESTORATION) || - this.isAllowedFiling(FilingTypes.RESTORATION, FilingSubTypes.LIMITED_RESTORATION) + ff && + (this.isAllowedFiling(FilingTypes.RESTORATION, FilingSubTypes.FULL_RESTORATION) || + this.isAllowedFiling(FilingTypes.RESTORATION, FilingSubTypes.LIMITED_RESTORATION)) ) } diff --git a/src/mixins/date-mixin.ts b/src/mixins/date-mixin.ts index d13875480..33f077e7c 100644 --- a/src/mixins/date-mixin.ts +++ b/src/mixins/date-mixin.ts @@ -93,6 +93,16 @@ export default class DateMixin extends Vue { return DateUtilities.dateToPacificDateTime(date) } + /** + * Converts a date string (YYYY-MM-DD) to a date string (Month Day, Year) in Pacific timezone. + * @param longMonth whether to show long month name (eg, December vs Dec) + * @param showWeekday whether to show the weekday name (eg, Thursday) + * @example "2021-01-01" -> "Thursday, December 31, 2020" + */ + yyyyMmDdToPacificDate (dateStr: IsoDatePacific, longMonth = false, showWeekday = false): string { + return DateUtilities.dateToPacificDate(this.yyyyMmDdToDate(dateStr), longMonth, showWeekday) + } + /** * DEPRECATED - call resources/date-utilities instead * Converts a Date object to an API datetime string. @@ -201,6 +211,6 @@ export default class DateMixin extends Vue { * @returns NaN in case of error */ daysFromToday (date: Date): number { - return DateUtilities.daysFromToday(this.getCurrentJsDate, date) + return DateUtilities.daysBetweenTwoDates(this.getCurrentJsDate, date) } } diff --git a/src/mixins/enum-mixin.ts b/src/mixins/enum-mixin.ts index cc6674317..5f098ebed 100644 --- a/src/mixins/enum-mixin.ts +++ b/src/mixins/enum-mixin.ts @@ -45,6 +45,11 @@ export default class EnumMixin extends Vue { return (item.name === FilingTypes.ALTERATION) } + /** DEPRECATED Returns True if filing is an Amalgamation. */ + isTypeAmalgamation (item: any): boolean { + return (item.name === FilingTypes.AMALGAMATION_APPLICATION) + } + /** DEPRECATED Returns True if filing is an Annual Report. */ isTypeAnnualReport (item: any): boolean { return (item.name === FilingTypes.ANNUAL_REPORT) @@ -65,6 +70,11 @@ export default class EnumMixin extends Vue { return (item.name === FilingTypes.CORRECTION) } + /** DEPRECATED Returns True if filing is a Dissolution. */ + isTypeDissolution (item: any): boolean { + return (item.name === FilingTypes.DISSOLUTION) + } + /** DEPRECATED Returns True if filing is an Incorporation Application. */ isTypeIncorporationApplication (item: any): boolean { return (item.name === FilingTypes.INCORPORATION_APPLICATION) diff --git a/src/mixins/name-request-mixin.ts b/src/mixins/name-request-mixin.ts index fe673c511..0ca99d0e9 100644 --- a/src/mixins/name-request-mixin.ts +++ b/src/mixins/name-request-mixin.ts @@ -18,7 +18,10 @@ export default class NameRequestMixin extends Vue { if (!nr.legalType) return 'Invalid NR legal type' if (!this.getNrApprovedName(nr)) return 'Invalid NR approved name' if (!nr.nrNum) return 'Invalid NR number' - if (nr.request_action_cd !== NameRequestTypes.NEW) return 'Invalid NR action code' + if ( + nr.request_action_cd !== NameRequestTypes.NEW && + nr.request_action_cd !== NameRequestTypes.AMALGAMATION + ) return 'Invalid NR action code' if (!nr.state) return 'Invalid NR state' return null } diff --git a/src/resources/DigitalCredentialRoutes.ts b/src/resources/DigitalCredentialRoutes.ts index 4de61e26e..757debd83 100644 --- a/src/resources/DigitalCredentialRoutes.ts +++ b/src/resources/DigitalCredentialRoutes.ts @@ -1,55 +1,36 @@ import { Routes } from '@/enums' import DigitalCredentials from '@/views/DigitalCredentials.vue' import { getDigitalCredentialBreadcrumb } from '@/resources/BreadcrumbResources' -import { DigitalWalletDownload, IssueCredentials, RegisterWallet } from '@/components/DigitalCredentials' +import { CredentialsDashboard, CredentialsStepper } from '@/components/DigitalCredentials' export const DigitalCredentialRoutes = { path: `/${Routes.DIGITAL_CREDENTIALS}`, - name: Routes.DIGITAL_CREDENTIALS, component: DigitalCredentials, meta: { requiresAuth: true, - breadcrumb: [ getDigitalCredentialBreadcrumb() ] + breadcrumb: [getDigitalCredentialBreadcrumb()] }, children: [ { - name: Routes.DOWNLOAD_WALLET, - path: Routes.DOWNLOAD_WALLET, - component: DigitalWalletDownload, + path: '', + name: Routes.DIGITAL_CREDENTIALS, + component: CredentialsDashboard, meta: { breadcrumb: [ - getDigitalCredentialBreadcrumb(), - { - text: 'Download Wallet', - to: { name: Routes.DOWNLOAD_WALLET } - } - ] - } - }, - { - name: Routes.REGISTER_WALLET, - path: Routes.REGISTER_WALLET, - component: RegisterWallet, - meta: { - breadcrumb: [ - getDigitalCredentialBreadcrumb(), - { - text: 'Register Wallet', - to: { name: Routes.REGISTER_WALLET } - } + getDigitalCredentialBreadcrumb() ] } }, { - name: Routes.ISSUE_CREDENTIALS, - path: Routes.ISSUE_CREDENTIALS, - component: IssueCredentials, + path: Routes.ISSUE_CREDENTIAL, + name: Routes.ISSUE_CREDENTIAL, + component: CredentialsStepper, meta: { breadcrumb: [ getDigitalCredentialBreadcrumb(), { text: 'Issue Credentials', - to: { name: Routes.ISSUE_CREDENTIALS } + to: { name: Routes.ISSUE_CREDENTIAL } } ] } diff --git a/src/resources/business-config.ts b/src/resources/business-config.ts index a7e84d6fc..583443257 100644 --- a/src/resources/business-config.ts +++ b/src/resources/business-config.ts @@ -64,7 +64,7 @@ export const ConfigJson = [ ' A person who commits this offence is subject to a maximum fine of $5,000.' }, { - feeCode: FilingCodes.AGM_LOCATION_CHG, + feeCode: FilingCodes.AGM_LOCATION_CHANGE, displayName: 'AGM Location Change', certifyText: 'Note: It is an offence to make or assist in making a false or' + ' misleading statement in a record filed under the Business Corporations Act.' + @@ -356,7 +356,7 @@ export const ConfigJson = [ ' A person who commits this offence is subject to a maximum fine of $5,000.' }, { - feeCode: FilingCodes.AGM_LOCATION_CHG, + feeCode: FilingCodes.AGM_LOCATION_CHANGE, displayName: 'AGM Location Change', certifyText: 'Note: It is an offence to make or assist in making a false or' + ' misleading statement in a record filed under the Business Corporations Act.' + @@ -449,7 +449,7 @@ export const ConfigJson = [ ' A person who commits this offence is subject to a maximum fine of $5,000.' }, { - feeCode: FilingCodes.AGM_LOCATION_CHG, + feeCode: FilingCodes.AGM_LOCATION_CHANGE, displayName: 'AGM Location Change', certifyText: 'Note: It is an offence to make or assist in making a false or' + ' misleading statement in a record filed under the Business Corporations Act.' + @@ -542,7 +542,7 @@ export const ConfigJson = [ ' A person who commits this offence is subject to a maximum fine of $5,000.' }, { - feeCode: FilingCodes.AGM_LOCATION_CHG, + feeCode: FilingCodes.AGM_LOCATION_CHANGE, displayName: 'AGM Location Change', certifyText: 'Note: It is an offence to make or assist in making a false or' + ' misleading statement in a record filed under the Business Corporations Act.' + diff --git a/src/router.ts b/src/router.ts index 2b292071d..a358c7f16 100644 --- a/src/router.ts +++ b/src/router.ts @@ -1,7 +1,7 @@ import Vue from 'vue' import VueRouter, { Route } from 'vue-router' import routes from '@/routes' -import { Routes } from '@/enums' +import { Routes, DCRoutes } from '@/enums' import { SessionStorageKeys } from 'sbc-common-components/src/util/constants' import { GetFeatureFlag } from '@/utils' @@ -56,7 +56,7 @@ export function getVueRouter () { // See DIGITAL_CREDENTIALS in Allowable Actions Mixin. return ( !GetFeatureFlag('enable-digital-credentials') && - [Routes.DIGITAL_CREDENTIALS].includes(route.name as Routes) + [Routes.DIGITAL_CREDENTIALS].includes(route.name as DCRoutes) ) } diff --git a/src/routes.ts b/src/routes.ts index 66c6d3a32..b79dfa886 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -1,6 +1,7 @@ import Dashboard from '@/views/Dashboard.vue' import AgmExtension from '@/views/AgmExtension.vue' import AgmLocationChg from '@/views/AgmLocationChg.vue' +import AmalgamationSelection from '@/views/AmalgamationSelection.vue' import AnnualReport from '@/views/AnnualReport.vue' import StandaloneDirectorsFiling from '@/views/StandaloneDirectorsFiling.vue' import StandaloneOfficeAddressFiling from '@/views/StandaloneOfficeAddressFiling.vue' @@ -39,16 +40,32 @@ export default [ }, { path: '/agm-location-chg', - name: Routes.AGM_LOCATION_CHG, + name: Routes.AGM_LOCATION_CHANGE, component: AgmLocationChg, meta: { requiresAuth: true, breadcrumb: [ { - text: `File ${FilingNames.AGM_LOCATION_CHG}`, + text: `File ${FilingNames.AGM_LOCATION_CHANGE}`, disabled: false, exact: true, - to: { name: Routes.AGM_LOCATION_CHG } + to: { name: Routes.AGM_LOCATION_CHANGE } + } + ] + } + }, + { + path: '/amalgamation-selection', + name: Routes.AMALGAMATION_SELECTION, + component: AmalgamationSelection, + meta: { + requiresAuth: true, + breadcrumb: [ + { + text: 'Amalgamation Selection', + disabled: false, + exact: true, + to: { name: Routes.AMALGAMATION_SELECTION } } ] } diff --git a/src/services/auth-services.ts b/src/services/auth-services.ts index bc76a6e8b..3dc1647d0 100644 --- a/src/services/auth-services.ts +++ b/src/services/auth-services.ts @@ -19,11 +19,18 @@ export default class AuthServices { /** * Fetches user info for the current user. - * @returns the axios response + * @returns the user info object */ - static async fetchUserInfo (authApiUrl: string): Promise { + static async fetchUserInfo (authApiUrl: string): Promise { const url = `${authApiUrl}users/@me` return axios.get(url) + .then(response => { + const data = response?.data + if (!data) { + console.log('fetchUserInfo() error - invalid response =', response) + } + return data + }) } /** diff --git a/src/services/date-utilities.ts b/src/services/date-utilities.ts index d2952afed..4d7714dee 100644 --- a/src/services/date-utilities.ts +++ b/src/services/date-utilities.ts @@ -329,25 +329,26 @@ export default class DateUtilities { } /** - * Returns the number of days that 'date' is from today in Pacific timezone. + * Returns the number of days that 'date' is from 'initialDate' in Pacific timezone. * @returns -1 for yesterday * @returns 0 for today * @returns +1 for tomorrow * @returns NaN in case of error */ - static daysFromToday (today: Date, date: Date): number { + static daysBetweenTwoDates (initialDate: Date, date: Date): number { // safety check + if (!isDate(initialDate) || isNaN(initialDate.getTime())) return NaN if (!isDate(date) || isNaN(date.getTime())) return NaN // set "date" to 12:00 am Pacific date.setHours(0, 0, 0, 0) - // compute "today" at 12:00 am Pacific - today.setHours(0, 0, 0, 0) + // compute "initialDate" at 12:00 am Pacific + initialDate.setHours(0, 0, 0, 0) - // calculate difference between "date" and "today" + // calculate difference between "date" and "initialDate" // (result should be a whole number) - const diff = (date.valueOf() - today.valueOf()) / MS_IN_A_DAY + const diff = (date.valueOf() - initialDate.valueOf()) / MS_IN_A_DAY return Math.round(diff) } @@ -360,4 +361,45 @@ export default class DateUtilities { static isDateFuture (date: FormattedDateTimeGmt): boolean { return (new Date(date) > new Date()) } + + /** + * Add a number of months to a date and return "YYYY-MM-DD". + * Date must be in the format of "YYYY-MM-DD" and months is a number + * @example (3, 2023-02-03) -> "2023-05-03" + * @example (18, 2023-02-03) -> "2024-08-03" + */ + static addMonthsToDate (month: number, date: string): string { + // safety checks + if (month == null || !date) return null + if (date?.length !== 10) return null + + const temp = this.yyyyMmDdToDate(date) + temp.setMonth(temp.getMonth() + month) + const dateAfterAddition = this.dateToYyyyMmDd(temp) + return dateAfterAddition + } + + /** + * Decrease one date from another and return number of months as the difference. + * Dates must be in the "YYYY-MM-DD" format + * @example (2023-02-03, 2024-08-03) -> 18 + * @example (2023-02-03, 2023-04-03) -> 2 + */ + static subtractDates (dateFrom: string, dateTo: string): number { + // safety checks + if (!dateFrom || !dateTo) return null + if (dateFrom?.length !== 10) return null + if (dateTo?.length !== 10) return null + + const expiryDate = this.yyyyMmDdToDate(dateTo) + const currDate = this.yyyyMmDdToDate(dateFrom) + const monthDiff = expiryDate.getMonth() - currDate.getMonth() + const yearDiff = (12 * (expiryDate.getFullYear() - currDate.getFullYear())) + let difference = monthDiff + yearDiff + // For example if Jan 31st and March 1, difference is 1 not 2 + if ((expiryDate.getDate() + 25) < currDate.getDate()) { + difference-- + } + return difference + } } diff --git a/src/services/enum-utilities.ts b/src/services/enum-utilities.ts index 85b00c242..8972c61c4 100644 --- a/src/services/enum-utilities.ts +++ b/src/services/enum-utilities.ts @@ -67,6 +67,16 @@ export default class EnumUtilities { // Filing Type helpers // + /** Returns True if filing is an AGM Extension. */ + static isTypeAgmExtension (item: any): boolean { + return (item.name === FilingTypes.AGM_EXTENSION) + } + + /** Returns True if filing is an AGM Location Change. */ + static isTypeAgmLocationChange (item: any): boolean { + return (item.name === FilingTypes.AGM_LOCATION_CHANGE) + } + /** Returns True if filing is an Alteration. */ static isTypeAlteration (item: any): boolean { return (item.name === FilingTypes.ALTERATION) @@ -117,6 +127,46 @@ export default class EnumUtilities { return (item.name === FilingTypes.CORRECTION) } + /** Returns True if filing is a Dissolution. */ + static isTypeDissolution (item: any): boolean { + return (item.name === FilingTypes.DISSOLUTION) + } + + /** Returns True if filing is an Amalgamation. */ + static isTypeAmalgamation (item: any): boolean { + return (item.name === FilingTypes.AMALGAMATION_APPLICATION) + } + + /** Returns True if filing is a Regular Amalgamation. */ + static isTypeAmalgamationRegular (item: any): boolean { + return ( + // the property in a todo item or filing item: + item.filingSubType === FilingSubTypes.AMALGAMATION_REGULAR || + // the property in a state filing: + item.amalgamationApplication?.type === FilingSubTypes.AMALGAMATION_REGULAR + ) + } + + /** Returns True if filing is a Horizontal Amalgamation. */ + static isTypeAmalgamationHorizontal (item: any): boolean { + return ( + // the property in a todo item or filing item: + item.filingSubType === FilingSubTypes.AMALGAMATION_HORIZONTAL || + // the property in a state filing: + item.amalgamationApplication?.type === FilingSubTypes.AMALGAMATION_HORIZONTAL + ) + } + + /** Returns True if filing is a Vertical Amalgamation. */ + static isTypeAmalgamationVertical (item: any): boolean { + return ( + // the property in a todo item or filing item: + item.filingSubType === FilingSubTypes.AMALGAMATION_VERTICAL || + // the property in a state filing: + item.amalgamationApplication?.type === FilingSubTypes.AMALGAMATION_VERTICAL + ) + } + /** Returns True if filing is an Incorporation Application. */ static isTypeIncorporationApplication (item: any): boolean { return (item.name === FilingTypes.INCORPORATION_APPLICATION) @@ -299,7 +349,20 @@ export default class EnumUtilities { case FilingTypes.ADMIN_FREEZE: // FUTURE: add freeze/unfreeze checks here return FilingNames.ADMIN_FREEZE + case FilingTypes.AGM_EXTENSION: return FilingNames.AGM_EXTENSION + case FilingTypes.AGM_LOCATION_CHANGE: return FilingNames.AGM_LOCATION_CHANGE case FilingTypes.ALTERATION: return FilingNames.ALTERATION + case FilingTypes.AMALGAMATION_APPLICATION: + if (subType === FilingSubTypes.AMALGAMATION_HORIZONTAL) { + return `${FilingNames.AMALGAMATION_APPLICATION} - Horizontal` + } + if (subType === FilingSubTypes.AMALGAMATION_REGULAR) { + return `${FilingNames.AMALGAMATION_APPLICATION} - Regular` + } + if (subType === FilingSubTypes.AMALGAMATION_VERTICAL) { + return `${FilingNames.AMALGAMATION_APPLICATION} - Vertical` + } + return FilingNames.AMALGAMATION_APPLICATION case FilingTypes.ANNUAL_REPORT: return FilingNames.ANNUAL_REPORT + (agmYear ? ` (${agmYear})` : '') case FilingTypes.CHANGE_OF_ADDRESS: return FilingNames.CHANGE_OF_ADDRESS case FilingTypes.CHANGE_OF_COMPANY_INFO: return FilingNames.CHANGE_OF_COMPANY_INFO @@ -322,7 +385,7 @@ export default class EnumUtilities { if (subType === FilingSubTypes.LIMITED_RESTORATION_EXTENSION) return FilingNames.RESTORATION_EXTENSION if (subType === FilingSubTypes.FULL_RESTORATION) return FilingNames.RESTORATION_FULL if (subType === FilingSubTypes.LIMITED_RESTORATION) return FilingNames.RESTORATION_LIMITED - return FilingNames.UNKNOWN + return FilingNames.RESTORATION_APPLICATION case FilingTypes.SPECIAL_RESOLUTION: return FilingNames.SPECIAL_RESOLUTION case FilingTypes.TRANSITION: return FilingNames.TRANSITION_APPLICATION case FilingTypes.PUT_BACK_ON: return FilingNames.PUT_BACK_ON @@ -332,13 +395,15 @@ export default class EnumUtilities { } /** - * Converts a string in "camelCase" (or "PascalCase") to separate, title-case words, + * Converts a string in "camelCase" (or "PascalCase") to a string of separate, title-case words, * suitable for a title or proper name. * @param s the string to convert * @returns the converted string */ static camelCaseToWords (s: string): string { - return s?.split(/(?=[A-Z])/).join(' ').replace(/^\w/, c => c.toUpperCase()) || '' + const words = s?.split(/(?=[A-Z])/).join(' ').replace(/^\w/, c => c.toUpperCase()) || '' + // SPECIAL CASE: convert 'Agm' to uppercase + return words.replace('Agm', 'AGM') } /** diff --git a/src/services/legal-services.ts b/src/services/legal-services.ts index f18396e61..1bb29ef4b 100644 --- a/src/services/legal-services.ts +++ b/src/services/legal-services.ts @@ -1,9 +1,10 @@ // Libraries import axios from '@/axios-auth' import { AxiosResponse } from 'axios' -import { ApiBusinessIF, ApiFilingIF, CommentIF, DocumentIF, FetchDocumentsIF, NameRequestIF, - PresignedUrlIF } from '@/interfaces' +import { ApiBusinessIF, ApiFilingIF, CommentIF, DocumentIF, FetchDocumentsIF, PresignedUrlIF } + from '@/interfaces' import { DigitalCredentialTypes, FilingStatus, Roles } from '@/enums' +import { StatusCodes } from 'http-status-codes' /** * Class that provides integration with the Legal API. @@ -81,11 +82,11 @@ export default class LegalServices { } /** - * Fetches the draft Application filing. + * Fetches the draft IA / Registration / Amalgamation filing. * This is a unique request using the temp reg number. * This assumes a single filing is returned. * @param tempRegNumber the temporary registration number - * @returns the draft app response + * @returns the draft app response (a single filing) */ static async fetchDraftApp (tempRegNumber: string): Promise { const url = `businesses/${tempRegNumber}/filings` @@ -95,15 +96,33 @@ export default class LegalServices { } /** - * Fetches a Name Request. - * @param filingId the NR number - * @returns the name request object + * Fetches name request data. + * @param nrNumber the name request number (eg, NR 1234567) to fetch + * @param phone the name request phone (eg, 12321232) + * @param email the name request email (eg, nr@example.com) + * @returns a promise to return the NR data, or null if not found */ - static async fetchNameRequest (nrNumber: string): Promise { - const url = `nameRequests/${nrNumber}` + static async fetchNameRequest (nrNumber: string, phone = '', email = ''): Promise { + const url = `nameRequests/${nrNumber}/validate?phone=${phone}&email=${email}` + return axios.get(url) - // workaround because data is at "response.data.data" - .then(response => response?.data) + .then(response => { + if (response?.data) { + return response.data + } + // eslint-disable-next-line no-console + console.log('fetchNameRequest() error - invalid response =', response) + throw new Error('Invalid API response') + }).catch(error => { + if (error?.response?.status === StatusCodes.NOT_FOUND) { + return null // NR not found (not an error) + } else if (error?.response?.status === StatusCodes.BAD_REQUEST) { + throw new Error('Sent invalid email or phone number.') // Sent invalid email or phone + } else if (error?.response?.status === StatusCodes.FORBIDDEN) { + throw new Error('Not sent email or phone number.') // Not sent the email or phone + } + throw error + }) } /** @@ -136,6 +155,7 @@ export default class LegalServices { if (isDraft) { url += '?draft=true' } + return axios.post(url, { filing }) .then(response => { const filing = response?.data?.filing @@ -148,6 +168,26 @@ export default class LegalServices { }) } + /** + * Creates (posts) a draft business record, which is used to bootstrap a new business. + * @param businessRequest the object body of the request + * @returns the filing object associated with the temporary business + */ + static async createDraftBusiness (businessRequest: any): Promise { + const url = `businesses?draft=true` + + return axios.post(url, businessRequest) + .then(response => { + const filing = response?.data?.filing + if (!filing) { + // eslint-disable-next-line no-console + console.log('createDraftBusiness() error - invalid response =', response) + throw new Error('Invalid filing') + } + return filing + }) + } + /** * Updates (puts) a filing. * @param businessId the business identifier (aka entity inc no) @@ -161,6 +201,7 @@ export default class LegalServices { if (isDraft) { url += '?draft=true' } + return axios.put(url, { filing }) .then(response => { const filing = response?.data?.filing @@ -308,7 +349,7 @@ export default class LegalServices { // /** - * Fetches digital credential information. + * Fetches digital credentials for a business. * @param businessId the business identifier (aka entity inc no) * @returns the axios response */ @@ -323,7 +364,7 @@ export default class LegalServices { } /** - * Creates a digital credentials invitation. + * Creates a wallet connection invitation. * @param businessId the business identifier (aka entity inc no) * @returns the axios response */ @@ -338,12 +379,12 @@ export default class LegalServices { } /** - * Fetches a digital credentials connection information. + * Fetches a list of wallet connections for a business. * @param businessId the business identifier (aka entity inc no) * @returns the axios response */ - static async fetchCredentialConnection (businessId: string): Promise { - const url = `businesses/${businessId}/digitalCredentials/connection` + static async fetchCredentialConnections (businessId: string): Promise { + const url = `businesses/${businessId}/digitalCredentials/connections` return axios.get(url) .catch(error => { // eslint-disable-next-line no-console @@ -353,13 +394,46 @@ export default class LegalServices { } /** - * Issues a digital credentials offer. + * Removes an active credential wallet connection. + * @param businessId the business identifier (aka entity inc no) + * @returns the axios response + */ + static async removeActiveCredentialConnection (businessId: string): Promise { + const url = `businesses/${businessId}/digitalCredentials/activeConnection` + return axios.delete(url) + .catch(error => { + // eslint-disable-next-line no-console + console.log(error.message) + return null + }) + } + + /** + * Removes a credential wallet connection. + * @param businessId the business identifier (aka entity inc no) + * @param connectionId the connection identifier + * @returns the axios response + */ + static async removeCredentialConnection (businessId: string, connectionId: string): Promise { + const url = `businesses/${businessId}/digitalCredentials/connections/${connectionId}` + return axios.delete(url) + .catch(error => { + // eslint-disable-next-line no-console + console.log(error.message) + return null + }) + } + + /** + * Sends a digital credential offer. * @param businessId The business identifier (aka entity inc no) * @param credentialType The credential offer type * @returns the axios response */ - static async issueCredentialOffer (businessId: string, credentialType: DigitalCredentialTypes) - : Promise { + static async sendCredentialOffer ( + businessId: string, + credentialType: DigitalCredentialTypes) + : Promise { const url = `businesses/${businessId}/digitalCredentials/${credentialType}` return axios.post(url) .catch(error => { @@ -368,4 +442,40 @@ export default class LegalServices { return null }) } + + /** + * Revokes a digital credential. + * @param businessId The business identifier (aka entity inc no) + * @param credentialId The credential identifier + * @returns the axios response + */ + static async revokeCredential ( + businessId: string, + credentialId: string, + reissue = false) + : Promise { + const url = `businesses/${businessId}/digitalCredentials/${credentialId}/revoke` + return axios.post(url, { reissue }) + .catch(error => { + // eslint-disable-next-line no-console + console.log(error.message) + return null + }) + } + + /** + * Removes a digital credential. + * @param businessId The business identifier (aka entity inc no) + * @param credentialId The credential identifier + * @returns the axios response + */ + static async removeCredential (businessId: string, credentialId: string): Promise { + const url = `businesses/${businessId}/digitalCredentials/${credentialId}` + return axios.delete(url) + .catch(error => { + // eslint-disable-next-line no-console + console.log(error.message) + return null + }) + } } diff --git a/src/services/pay-services.ts b/src/services/pay-services.ts index e176455ac..a9183d136 100644 --- a/src/services/pay-services.ts +++ b/src/services/pay-services.ts @@ -18,4 +18,21 @@ export default class PayServices { .then(response => response?.data) .catch(() => {}) // ignore errors } + + /** + * Fetches the CFS account ID from the pay-api. + * @param payApiUrl the URL of the pay-api + * @param accountId the ID for which to fetch the CFS account ID + * @returns the CFS account ID + */ + static async fetchCfsAccountId (payApiUrl: string, accountId: number): Promise { + const url = `${payApiUrl}accounts/${accountId}` + try { + const response = await axios.get(url) + return response?.data?.cfsAccount?.cfsAccountNumber + } catch (error) { + console.error('Error fetching data from Pay API:', error) + throw error + } + } } diff --git a/src/stores/authenticationStore.ts b/src/stores/authenticationStore.ts index 457f361a7..4a28d134e 100644 --- a/src/stores/authenticationStore.ts +++ b/src/stores/authenticationStore.ts @@ -1,18 +1,18 @@ import { AccountTypes } from '@bcrs-shared-components/enums' -import { RootStateIF } from '@/interfaces' +import { AuthenticationStateIF } from '@/interfaces' import { defineStore } from 'pinia' import { useRootStore } from './rootStore' export const useAuthenticationStore = defineStore('authentication', { getters: { /** Whether the current account is a premium account. */ - isPremiumAccount (rootState: RootStateIF): boolean { - return (rootState.account.currentAccount.accountType === AccountTypes.PREMIUM) + isPremiumAccount (state: AuthenticationStateIF): boolean { + return (state.account.currentAccount.accountType === AccountTypes.PREMIUM) }, /** Whether the user is ServiceBC Staff (which is not the same as Staff). */ - isSbcStaff (rootState: RootStateIF): boolean { - return (rootState.account.currentAccount.accountType === AccountTypes.SBC_STAFF) + isSbcStaff (state: AuthenticationStateIF): boolean { + return (state.account.currentAccount.accountType === AccountTypes.SBC_STAFF) }, /** The user's Keycloak GUID. */ @@ -21,8 +21,8 @@ export const useAuthenticationStore = defineStore('authentication', { }, /** The user's Keycloak Bearer Token. */ - getKeycloakToken (rootState: RootStateIF): string { - return rootState.auth.token + getKeycloakToken (state: AuthenticationStateIF): string { + return state.auth.token }, /** Returns true is the user is Keycloak authenticated. */ @@ -31,26 +31,26 @@ export const useAuthenticationStore = defineStore('authentication', { }, /** Returns the Keycloak user object. */ - getKeycloakUser (rootState: RootStateIF): any { - return rootState.account.currentUser + getKeycloakUser (state: AuthenticationStateIF): any { + return state.account.currentUser }, /** Each Keycloak user can have many accounts. * This getter returns the account the user * has selected */ - getCurrentAccount (rootState: RootStateIF): any { - return rootState.account.currentAccount + getCurrentAccount (state: AuthenticationStateIF): any { + return state.account.currentAccount }, /** Returns the Keycloak roles. */ - getKeycloakRoles (rootState: RootStateIF): Array { - return rootState.account.currentUser.roles + getKeycloakRoles (state: AuthenticationStateIF): Array { + return state.account.currentUser.roles }, /** Is True if Keycloak Staff role is set. */ - isKeycloakRoleStaff (rootState: RootStateIF): boolean { - return rootState.account.currentUser.roles.includes('staff') + isKeycloakRoleStaff (state: AuthenticationStateIF): boolean { + return state.account.currentUser.roles.includes('staff') } } }) diff --git a/src/stores/businessStore.ts b/src/stores/businessStore.ts index 9d7fb50d7..8e981083e 100644 --- a/src/stores/businessStore.ts +++ b/src/stores/businessStore.ts @@ -1,8 +1,10 @@ -import { AllowedActionsIF, ApiBusinessIF, ApiDateTimeUtc, BusinessStateIF, BusinessWarningIF } from '@/interfaces' +import { AllowedActionsIF, AmalgamatedIntoIF, ApiBusinessIF, ApiDateTimeUtc, BusinessStateIF, BusinessWarningIF } + from '@/interfaces' import { defineStore } from 'pinia' import { CorpTypeCd, EntityState } from '@/enums' import { DateUtilities, LegalServices } from '@/services/' import { GetCorpNumberedDescription } from '@bcrs-shared-components/corp-type-module' +import { useRootStore } from './rootStore' export const useBusinessStore = defineStore('business', { state: (): BusinessStateIF => ({ @@ -33,11 +35,16 @@ export const useBusinessStore = defineStore('business', { }), getters: { - /** The allowed actions object. */ + /** The Allowed Actions object. */ getAllowedActions (state: BusinessStateIF): AllowedActionsIF { return state.businessInfo.allowedActions }, + /** The Amalgamated Info object. */ + getAmalgamatedInto (state: BusinessStateIF): AmalgamatedIntoIF { + return state.businessInfo.amalgamatedInto + }, + /** The business number (aka Tax ID). */ getBusinessNumber (state: BusinessStateIF): string { return state.businessInfo.taxId @@ -48,7 +55,7 @@ export const useBusinessStore = defineStore('business', { return state.businessInfo.warnings }, - /** The business state.businessInfo. */ + /** The business state. */ getBusinessState (state: BusinessStateIF): EntityState { return state.businessInfo.state }, @@ -101,9 +108,13 @@ export const useBusinessStore = defineStore('business', { /** The entity name, or numbered description, or empty string. */ getEntityName (): string { - return ( - this.getLegalName || GetCorpNumberedDescription(this.getLegalType) - ) + const rootStore = useRootStore() + + if (rootStore.isDraftAmalgamation || rootStore.isFiledAmalgamation) { + return this.getLegalName || 'Numbered Amalgamated Company' + } else { + return (this.getLegalName || GetCorpNumberedDescription(this.getLegalType)) + } }, /** The state filing URL (may be null). */ @@ -132,6 +143,11 @@ export const useBusinessStore = defineStore('business', { ) }, + /** Is True if the business is part of a future effective amalgamation filing. */ + isFutureEffectiveAmalgamation (): boolean { + return this.getBusinessWarnings.some(item => item.warningType === 'FUTURE_EFFECTIVE_AMALGAMATION') + }, + /** Is True if business is active. */ isActive (): boolean { return (this.getBusinessState === EntityState.ACTIVE) @@ -143,13 +159,23 @@ export const useBusinessStore = defineStore('business', { }, /** Is True if entity is a Benefit Company. */ - isBComp (state: BusinessStateIF): boolean { - return (state.businessInfo.legalType === CorpTypeCd.BENEFIT_COMPANY) + isBComp (): boolean { + return (this.getLegalType === CorpTypeCd.BENEFIT_COMPANY) }, /** Is True if entity is a BC Company. */ - isBcCompany (state: BusinessStateIF): boolean { - return (state.businessInfo.legalType === CorpTypeCd.BC_COMPANY) + isBcCompany (): boolean { + return (this.getLegalType === CorpTypeCd.BC_COMPANY) + }, + + /** Is True if entity is a BC Community Contribution Company. */ + isCcc (): boolean { + return (this.getLegalType === CorpTypeCd.BC_CCC) + }, + + /** Is True if entity is a BC ULC Company. */ + isUlc (): boolean { + return (this.getLegalType === CorpTypeCd.BC_ULC_COMPANY) }, /** Is True if entity is a BEN/BC/CCC/ULC. */ @@ -162,19 +188,24 @@ export const useBusinessStore = defineStore('business', { ) }, - /** Is True if entity is a BC Community Contribution Company. */ - isCcc (state: BusinessStateIF): boolean { - return (state.businessInfo.legalType === CorpTypeCd.BC_CCC) + /** Is True if entity is a Cooperative. */ + isCoop (): boolean { + return (this.getLegalType === CorpTypeCd.COOP) }, - /** Is True if entity is a Cooperative. */ - isCoop (state: BusinessStateIF): boolean { - return (state.businessInfo.legalType === CorpTypeCd.COOP) + /** Is True if entity is a Corporation. */ + isCorp (): boolean { + return (this.getLegalType === CorpTypeCd.CORPORATION) }, - /** Is True if entity is a BC Corporation. */ - isCorp (state: BusinessStateIF): boolean { - return (state.businessInfo.legalType === CorpTypeCd.BC_CORPORATION) + /** Is True if entity is a General Partnership. */ + isPartnership (): boolean { + return (this.getLegalType === CorpTypeCd.PARTNERSHIP) + }, + + /** Is True if entity is a Sole Proprietorship. */ + isSoleProp (): boolean { + return (this.getLegalType === CorpTypeCd.SOLE_PROP) }, /** Is True if entity is a Sole Proprietorship or General Partnership. */ @@ -195,21 +226,6 @@ export const useBusinessStore = defineStore('business', { /** Is True if business is in liquidation. */ isLiquidation (): boolean { return (this.getBusinessState === EntityState.LIQUIDATION) - }, - - /** Is True if entity is a General Partnership. */ - isPartnership (): boolean { - return (this.getLegalType === CorpTypeCd.PARTNERSHIP) - }, - - /** Is True if entity is a Sole Proprietorship. */ - isSoleProp (): boolean { - return (this.getLegalType === CorpTypeCd.SOLE_PROP) - }, - - /** Is True if entity is a BC ULC Company. */ - isUlc (): boolean { - return (this.getLegalType === CorpTypeCd.BC_ULC_COMPANY) } }, diff --git a/src/stores/configurationStore.ts b/src/stores/configurationStore.ts index b109e464c..8e5feac59 100644 --- a/src/stores/configurationStore.ts +++ b/src/stores/configurationStore.ts @@ -91,7 +91,7 @@ export const useConfigurationStore = defineStore('configuration', { }, setSessionVariables (data: any) { - // The following four session variables are used by SBC Header (a common component): + // The following four session variables are used by SBC Header (a common component): sessionStorage.setItem('AUTH_WEB_URL', data.VUE_APP_AUTH_WEB_URL) sessionStorage.setItem('BUSINESSES_URL', data.VUE_APP_BUSINESSES_URL) sessionStorage.setItem('REGISTRY_HOME_URL', data.VUE_APP_REGISTRY_HOME_URL) diff --git a/src/stores/filingHistoryListStore.ts b/src/stores/filingHistoryListStore.ts index d14e6461a..bb3079a5b 100644 --- a/src/stores/filingHistoryListStore.ts +++ b/src/stores/filingHistoryListStore.ts @@ -33,11 +33,40 @@ export const useFilingHistoryListStore = defineStore('filingHistoryList', { // eslint-disable-next-line no-console console.log('Invalid filing =', filing) return false + } else if (filing.displayLedger === false) { + // eslint-disable-next-line no-console + console.log('Not shown filing on the ledger =', filing) + return false } return true }) }, + /** The function to compute total AGM extension duration. Requires argument for AGM Year. */ + getTotalAgmExtensionDuration (state: FilingHistoryListStateIF): (year: number) => number { + return (year: number) => { + return state.filings.reduce((totalMonths, filing) => { + // Skip if not AGM_EXTENSION + if (filing.name !== FilingTypes.AGM_EXTENSION) { + return totalMonths + } + const filingExtension = filing.data?.agmExtension + // Skip if extension data is missing + if (!filingExtension) { + return totalMonths + } + // Cast year as number + // Skip if years don't match + if (Number(filingExtension.year) !== year) { + return totalMonths + } + // Add total months for the specific AGM year + totalMonths += filingExtension.extensionDuration || 0 + return totalMonths + }, 0) + } + }, + /** The count of filings in the Filing History List. */ getHistoryCount (): number { const filings = this.getFilings as ApiFilingIF[] @@ -192,7 +221,7 @@ export const useFilingHistoryListStore = defineStore('filingHistoryList', { // check if we're opening a new panel if (!isCurrentPanel) { - // get a reference to the filing so we can update it right in the main list + // get a reference to the filing so we can update it right in the main list const filing = this.getFilings[index] // check if we're missing comments or documents diff --git a/src/stores/rootStore.ts b/src/stores/rootStore.ts index 2520a31ef..f0cf45d95 100644 --- a/src/stores/rootStore.ts +++ b/src/stores/rootStore.ts @@ -1,13 +1,13 @@ import { defineStore } from 'pinia' -import { CorpTypeCd, EntityStatus, FilingStatus, FilingSubTypes, FilingTypes } from '@/enums' -import { ApiTaskIF, DissolutionConfirmationResourceIF, FilingDataIF, OfficeAddressIF, PartyIF, StateIF, - TodoListResourceIF, IsoDatePacific, StateFilingIF } from '@/interfaces' +import { CorpTypeCd, EntityStatus, FilingSubTypes, FilingTypes } from '@/enums' +import { ApiTaskIF, DissolutionConfirmationResourceIF, FilingDataIF, OfficeAddressIF, PartyIF, + RootStateIF, TodoListResourceIF, IsoDatePacific, StateFilingIF } from '@/interfaces' import { DateUtilities, EnumUtilities, LegalServices } from '@/services' import { useBusinessStore } from './businessStore' import { useFilingHistoryListStore } from './filingHistoryListStore' export const useRootStore = defineStore('root', { - state: (): StateIF => ({ + state: (): RootStateIF => ({ authRoles: [], currentDate: null, currentJsDate: null, @@ -25,19 +25,20 @@ export const useRootStore = defineStore('root', { nextARDate: null, businessAddress: null, configObject: null, - currentFilingStatus: null, fetchingDataSpinner: false, + startingAmalgamationSpinner: false, filingData: [], nameRequest: null, parties: [], recordsAddress: null, registeredAddress: null, - tasks: [] + tasks: [], + userInfo: null }), getters: { /** The list of tasks from the API. */ - getTasks (state: StateIF): ApiTaskIF[] { + getTasks (state: RootStateIF): ApiTaskIF[] { return state.tasks }, @@ -46,7 +47,7 @@ export const useRootStore = defineStore('root', { * NB: internally this is stored as UTC * NB: use date mixins to display this */ - getCurrentJsDate (state: StateIF): Date { + getCurrentJsDate (state: RootStateIF): Date { return state.currentJsDate }, @@ -54,22 +55,22 @@ export const useRootStore = defineStore('root', { * The current date (YYYY-MM-DD), which was refreshed when the dashload loaded, * in Pacific timezone. */ - getCurrentDate (state: StateIF): IsoDatePacific { + getCurrentDate (state: RootStateIF): IsoDatePacific { return state.currentDate }, /** The current year. */ - getCurrentYear (state: StateIF): number { + getCurrentYear (state: RootStateIF): number { return (state.currentDate ? +state.currentDate.substring(0, 4) : 0) }, /** The business email. */ - getBusinessEmail (state: StateIF): string { + getBusinessEmail (state: RootStateIF): string { return state.businessEmail }, /** The business phone number and optional extension. */ - getFullPhoneNumber (state: StateIF): string { + getFullPhoneNumber (state: RootStateIF): string { const phone = state.businessPhone const ext = state.businessPhoneExtension @@ -80,24 +81,25 @@ export const useRootStore = defineStore('root', { }, /** The roles from the Keycloak token (JWT). */ - getKeycloakRoles (state: StateIF): Array { + getKeycloakRoles (state: RootStateIF): Array { return state.keycloakRoles }, - /** Is True if Staff role is set. + /** + * Is True if Staff role is set. * DEPRECATED - use authentication/isKeycloakRoleStaff() instead */ - isRoleStaff (state: StateIF): boolean { + isRoleStaff (state: RootStateIF): boolean { return state.keycloakRoles.includes('staff') }, /** Is True if app permissions includes Edit role. */ - isRoleEdit (state: StateIF): boolean { + isRoleEdit (state: RootStateIF): boolean { return state.authRoles.includes('edit') }, /** Is True if app permission includes View role. */ - isRoleView (state: StateIF): boolean { + isRoleView (state: RootStateIF): boolean { return state.authRoles.includes('view') }, @@ -106,43 +108,68 @@ export const useRootStore = defineStore('root', { return false // FUTURE: implement this }, - /** Is True if this is a Draft Application. */ - isAppTask (state: StateIF): boolean { - return (state.entityStatus === EntityStatus.DRAFT_APP) + getEntityStatus (state: RootStateIF): EntityStatus { + return state.entityStatus }, - /** Is True if this is a Paid or Completed Application. */ - isAppFiling (state: StateIF): boolean { - return (state.entityStatus === EntityStatus.FILED_APP) + isDraftAmalgamation (state: RootStateIF): boolean { + return (state.entityStatus === EntityStatus.DRAFT_AMALGAMATION) }, - /** The Name Request (may be null). */ - getNameRequest (state: StateIF): any { - return (state.nameRequest) + isDraftIncorpApp (state: RootStateIF): boolean { + return (state.entityStatus === EntityStatus.DRAFT_INCORP_APP) }, - isCurrentFilingEditable (state: StateIF): boolean { - return (state.currentFilingStatus === FilingStatus.NEW || state.currentFilingStatus === FilingStatus.DRAFT) + isDraftRegistration (state: RootStateIF): boolean { + return (state.entityStatus === EntityStatus.DRAFT_REGISTRATION) }, - getReportState (state: StateIF): string { - switch (state.currentFilingStatus) { - case FilingStatus.NEW: return '' - case FilingStatus.DRAFT: return 'Draft' - } - return state.currentFilingStatus + isFiledAmalgamation (state: RootStateIF): boolean { + return (state.entityStatus === EntityStatus.FILED_AMALGAMATION) + }, + + isFiledIncorpApp (state: RootStateIF): boolean { + return (state.entityStatus === EntityStatus.FILED_INCORP_APP) + }, + + isFiledRegistration (state: RootStateIF): boolean { + return (state.entityStatus === EntityStatus.FILED_REGISTRATION) + }, + + /** Is True if this is a Draft or Pending application. */ + isAppTask (): boolean { + return ( + this.isDraftAmalgamation || this.isDraftIncorpApp || this.isDraftRegistration + ) + }, + + /** Is True if this is a Completed or Paid application. */ + isAppFiling (): boolean { + return ( + this.isFiledAmalgamation || this.isFiledIncorpApp || this.isFiledRegistration + ) + }, + + /** The Name Request (may be null). */ + getNameRequest (state: RootStateIF): any { + return (state.nameRequest) }, /** Whether to show the Fetching Data spinner. */ - showFetchingDataSpinner (state: StateIF): boolean { + showFetchingDataSpinner (state: RootStateIF): boolean { return state.fetchingDataSpinner }, + /** Whether to show the Starting Amalgamation spinner. */ + showStartingAmalgamationSpinner (state: RootStateIF): boolean { + return state.startingAmalgamationSpinner + }, + /** * This is used to show Legal Obligations only for a new business * that has no tasks and hasn't filed anything yet (except their IA). **/ - isBusinessWithNoMaintenanceFilings (state: StateIF): boolean { + isBusinessWithNoMaintenanceFilings (state: RootStateIF): boolean { const filingHistoryListStore = useFilingHistoryListStore() return ( // no todo items @@ -156,77 +183,116 @@ export const useRootStore = defineStore('root', { }, /** The entity registered office address. */ - getRegisteredOfficeAddress (state: StateIF): OfficeAddressIF { + getRegisteredOfficeAddress (state: RootStateIF): OfficeAddressIF { return state.registeredAddress }, /** The parties list from the API. */ - getParties (state: StateIF): Array { + getParties (state: RootStateIF): Array { return state.parties }, /** The entity business address. */ - getBusinessAddress (state: StateIF): OfficeAddressIF { + getBusinessAddress (state: RootStateIF): OfficeAddressIF { return state.businessAddress }, /** The entity resource text for confirmation modal. */ - getDissolutionConfirmationResource (state: StateIF): DissolutionConfirmationResourceIF { + getDissolutionConfirmationResource (state: RootStateIF): DissolutionConfirmationResourceIF { return state.configObject?.dissolutionConfirmation }, /** The entity TodoList resources. */ - getTodoListResource (state: StateIF): TodoListResourceIF { + getTodoListResource (state: RootStateIF): TodoListResourceIF { return state.configObject?.todoList }, /** The corp type code from Auth db (may be null). */ - getCorpTypeCd (state: StateIF): CorpTypeCd { + getCorpTypeCd (state: RootStateIF): CorpTypeCd { return state.corpTypeCd }, + /** The user info from Auth db (may be null). */ + getUserInfo (state: RootStateIF): any { + return state.userInfo + }, + // // State Filing getters // /** The filing that changed the business state, if there is one. */ - getStateFiling (state: StateIF): StateFilingIF { + getStateFiling (state: RootStateIF): StateFilingIF { return state.stateFiling }, - /** - * A formatted concatenation of the name and the effective date of the filing. - * Only used when entity is historical. - */ + /** The historical reason text to display in the info header. */ getReasonText (): string { + const enDash = '–' // ALT + 0150 const businessStore = useBusinessStore() - const stateFiling = this.getStateFiling as StateFilingIF // may be null + if (!businessStore.isHistorical) return null // safety check + + // check if historical reason is amalgamation + const amalgamatedInto = businessStore.getAmalgamatedInto + if (amalgamatedInto) return reasonTextAmalgamation() + + // get state filing (may be null) + const stateFiling = this.getStateFiling as StateFilingIF const filingType = stateFiling?.header?.name if (!filingType) return null // safety check - // create reason text to display in the info header - let name: string - let date: string + // check if historical reason is dissolution + if (filingType === FilingTypes.DISSOLUTION) return reasonTextDissolution() + + // check if historical reason is continuation out + if (filingType === FilingTypes.CONTINUATION_OUT) return reasonTextContinuationOut() + + // fallback reason text + return reasonTextOther() + + // + // helper functions + // + + /** The reason text for a business made historical by an amalgamation. */ + function reasonTextAmalgamation (): string { + const name = 'Amalgamation' + const amalgamationDate = DateUtilities.apiToDate(amalgamatedInto.amalgamationDate) + if (!amalgamationDate) throw new Error('Invalid amalgamation date') + const date = DateUtilities.dateToPacificDate(amalgamationDate, true) + const identifier = amalgamatedInto.identifier || 'Unknown Company' + return `${name} ${enDash} ${date} ${enDash} ${identifier}` + } - if (filingType === FilingTypes.DISSOLUTION) { - name = EnumUtilities.dissolutionTypeToName( + /** The reason text for a business made historical by a dissolution. */ + function reasonTextDissolution (): string { + const name = EnumUtilities.dissolutionTypeToName( businessStore.isFirm, - (stateFiling?.dissolution?.dissolutionType as FilingSubTypes) + (stateFiling.dissolution?.dissolutionType as FilingSubTypes) ) const dissolutionDate = DateUtilities.yyyyMmDdToDate(stateFiling.dissolution?.dissolutionDate) if (!dissolutionDate) throw new Error('Invalid dissolution date') - date = DateUtilities.dateToPacificDate(dissolutionDate, true) - } else { - name = (filingType === FilingTypes.CONTINUATION_OUT) - ? 'Continued Out' - : EnumUtilities.filingTypeToName(filingType) - const effectiveDate = DateUtilities.apiToDate(stateFiling.header.effectiveDate) + const date = DateUtilities.dateToPacificDate(dissolutionDate, true) + return `${name} ${enDash} ${date}` + } + + /** The reason text for a business made historical by a continuation out. */ + function reasonTextContinuationOut (): string { + const name = 'Continued Out' + const effectiveDate = DateUtilities.apiToDate(stateFiling.header?.effectiveDate) if (!effectiveDate) throw new Error('Invalid effective date') - date = DateUtilities.dateToPacificDateTime(effectiveDate) + const dateTime = DateUtilities.dateToPacificDateTime(effectiveDate) + return `${name} ${enDash} ${dateTime}` } - const enDash = '–' // ALT + 0150 - return `${name} ${enDash} ${date}` + /** The reason text for a business made historical by some other state filing. */ + function reasonTextOther (): string { + const name = EnumUtilities.filingTypeToName(filingType) + const effectiveDate = DateUtilities.apiToDate(stateFiling.header?.effectiveDate) + if (!effectiveDate) throw new Error('Invalid effective date') + const dateTime = DateUtilities.dateToPacificDateTime(effectiveDate) + return `${name} ${enDash} ${dateTime}` + } }, /** The limited restoration active-until date, if it exists, otherwise null. */ @@ -258,6 +324,10 @@ export const useRootStore = defineStore('root', { this.fetchingDataSpinner = val }, + setStartingAmalgamationSpinner (val: boolean) { + this.startingAmalgamationSpinner = val + }, + setStateFiling (stateFilingResponse: any) { this.stateFiling = stateFilingResponse }, @@ -271,6 +341,10 @@ export const useRootStore = defineStore('root', { this.userKeycloakGuid = userKeycloakGuid }, + setUserInfo (val: any) { + this.userInfo = val + }, + /** Set the app permissions. */ setAuthRoles (authRoles: Array) { this.authRoles = authRoles @@ -320,10 +394,6 @@ export const useRootStore = defineStore('root', { this.businessPhoneExtension = businessPhoneExtension }, - setCurrentFilingStatus (currentFilingStatus: FilingStatus) { - this.currentFilingStatus = currentFilingStatus - }, - setTasks (tasks: Array) { this.tasks = tasks }, diff --git a/src/stores/state.ts b/src/stores/state.ts index 06fb2f7ae..3a00cf5ed 100644 --- a/src/stores/state.ts +++ b/src/stores/state.ts @@ -1,6 +1,6 @@ -import { StateIF } from '@/interfaces' +import { RootStateIF } from '@/interfaces' -export const state: StateIF = { +export const state: RootStateIF = { authRoles: [], currentDate: null, currentJsDate: null, @@ -21,12 +21,12 @@ export const state: StateIF = { businessAddress: null, configObject: null, - currentFilingStatus: null, fetchingDataSpinner: false, filingData: [], nameRequest: null, parties: [], recordsAddress: null, registeredAddress: null, - tasks: [] + tasks: [], + userInfo: null } diff --git a/src/utils/feature-flags.ts b/src/utils/feature-flags.ts index 92d2ad943..653d0b92c 100644 --- a/src/utils/feature-flags.ts +++ b/src/utils/feature-flags.ts @@ -9,15 +9,17 @@ declare const window: any */ const defaultFlagSet: LDFlagSet = { 'banner-text': '', // by default, there is no banner text - 'enable-agm-extension': false, - 'enable-agm-location-chg': false, 'enable-digital-credentials': false, 'sentry-enable': false, // by default, no sentry logs 'show-alert-phone-numbers-firm': false, + 'supported-amalgamation-entities': [], 'supported-business-summary-entities': [], 'supported-correction-entities': [], 'supported-dissolution-entities': [], - 'supported-consent-continuation-out-entities': [] + 'supported-consent-continuation-out-entities': [], + 'supported-agm-extension-entities': [], + 'supported-agm-location-chg-entities': [], + 'supported-restoration-entities': [] } /** diff --git a/src/utils/set-base-route-and-business-id.ts b/src/utils/set-base-route-and-business-id.ts index 8fca95578..e6b167a74 100644 --- a/src/utils/set-base-route-and-business-id.ts +++ b/src/utils/set-base-route-and-business-id.ts @@ -23,7 +23,7 @@ export function setBaseRouteAndBusinessId (pathname: string, processEnvBaseUrl: // ensure we don't already have a Business ID in scope sessionStorage.removeItem('BUSINESS_ID') } else { - throw new Error('Missing or invalid Business ID or Temp Reg Number.') + throw new Error('Missing or invalid Business ID or Temporary Registration Number.') } // set Base for Vue Router diff --git a/src/views/AgmExtension.vue b/src/views/AgmExtension.vue index c6d2aa894..cee2f406a 100644 --- a/src/views/AgmExtension.vue +++ b/src/views/AgmExtension.vue @@ -14,57 +14,14 @@ @exit="onPaymentErrorDialogExit()" /> - - - - - - - -
-
- -
- {{ loadingMessage }} -
-
-
-
- - +
-
-

- AGM Extension -

-
+

AGM Extension

- -
-
-

Extension Eligibility

-

- Fill out the following section to evaluate the eligibility for extension. -

-
+
+

Extension Detail

+

+ Enter the details about the extension request to evaluate the eligibility. +

+
-
- - - - - Business in Good Standing - - - - Yes - - - - - - - - - Date of Incorporation - - - - (date goes here) - - - - - - - - - Date of the Last Extension Grant on Record - - - - (date goes here) - - - - - - - - - Date the Annual General Meeting is intended to be held - - - - (date picker goes here) - - - - - - - - - Date of Previous Annual General Meeting - - - - (radio buttons go here) - - - - - - - - - Was the above extension grant for the current AGM? - - - - (radio buttons go here) - - - -
-
+ + + + + + + + -
+

Certify

@@ -257,6 +82,7 @@ :isCertified.sync="isCertified" :certifiedBy.sync="certifiedBy" :class="{ 'invalid-certify': !certifyFormValid && showErrors }" + :disableEdit="!isRoleStaff" :entityDisplay="displayName()" :message="certifyText(FilingCodes.AGM_EXTENSION)" @valid="certifyFormValid=$event" @@ -292,27 +118,6 @@ id="buttons-container" class="list-item" > -

- - Save - - - Save and Resume Later - -
-
number; // enum for template readonly FilingCodes = FilingCodes + // evaluation object + data = { ...EmptyAgmExtEval } as AgmExtEvalIF + // variables for Certify component certifiedBy = '' isCertified = false certifyFormValid = false - // variables for Extension Eligiblity section - extensionEligibilityValid = false - - // variables for staff payment - staffPaymentData = { option: StaffPaymentOptions.NONE } as StaffPaymentIF - staffPaymentDialog = false + // variables for Extension Request section + extensionRequestValid = false // variables for displaying dialogs - resumeErrorDialog = false saveErrorReason: SaveErrorReasons = null paymentErrorDialog = false // other variables totalFee = 0 - dataLoaded = false - loadingMessage = '' - filingId = 0 // id of this consent to continuation out filing + filingId = 0 // id of this agm extension filing savedFiling: any = null // filing during save - saving = false // true only when saving - savingResuming = false // true only when saving and resuming showErrors = false // true when we press on File and Pay (trigger validation) filingPaying = false // true only when filing and paying haveChanges = false saveErrors = [] saveWarnings = [] - - /** True if loading container should be shown, else False. */ - get showLoadingContainer (): boolean { - // show loading container when data isn't yet loaded and when - // no dialogs are displayed (otherwise dialogs may be hidden) - return (!this.dataLoaded && !this.saveErrorReason && !this.paymentErrorDialog) - } + notEligibleExtensionDialog = false /** The Base URL string. */ get baseUrl (): string { @@ -443,12 +243,12 @@ export default class AgmExtension extends Mixins(CommonMixin, DateMixin, /** True if page is valid, else False. */ get isPageValid (): boolean { - return (this.certifyFormValid && this.extensionEligibilityValid) + return (this.extensionRequestValid && this.certifyFormValid) } - /** True when saving, saving and resuming, or filing and paying. */ + /** True when filing and paying. */ get busySaving (): boolean { - return (this.saving || this.savingResuming || this.filingPaying) + return (this.filingPaying) } /** True if payment is required, else False. */ @@ -472,184 +272,44 @@ export default class AgmExtension extends Mixins(CommonMixin, DateMixin, } // this is the id of THIS filing - // if 0, this is a new filing - // otherwise it's a draft filing + // it must be 0 (meaning new filing) -- we do not support resuming a draft filing this.filingId = +this.$route.params.filingId // number or NaN // if required data isn't set, go back to dashboard - if (!this.getIdentifier || isNaN(this.filingId)) { + if (!this.getIdentifier || this.filingId !== 0) { this.$router.push({ name: Routes.DASHBOARD }) } } /** Called when component is mounted. */ - async mounted (): Promise { - // wait until entire view is rendered (including all child components) - // see https://v3.vuejs.org/api/options-lifecycle-hooks.html#mounted - await this.$nextTick() - - if (this.filingId > 0) { - this.loadingMessage = `Resuming Your Request for AGM Extension` - } else { - this.loadingMessage = `Preparing Your Request for AGM Extension` + mounted (): void { + this.data.currentDate = this.getCurrentDate + this.data.isGoodStanding = this.isGoodStanding + this.data.incorporationDate = this.getFoundingDate + + // Pre-populate the certified block with the logged in user's name (if not staff) + if (!this.isRoleStaff && this.getUserInfo) { + this.certifiedBy = this.getUserInfo.firstname + ' ' + this.getUserInfo.lastname } - // fetch draft (which may overwrite some properties) - if (this.filingId > 0) { - await this.fetchDraftFiling() - } - - this.dataLoaded = true - - // always include consent continue out code - // use existing Priority and Waive Fees flags - this.updateFilingData('add', FilingCodes.AGM_EXTENSION, this.staffPaymentData.isPriority, - (this.staffPaymentData.option === StaffPaymentOptions.NO_FEE)) - } - - /** Fetches the draft consent filing. */ - async fetchDraftFiling (): Promise { - const url = `businesses/${this.getIdentifier}/filings/${this.filingId}` - await LegalServices.fetchFiling(url).then(filing => { - // verify data - if (!filing) throw new Error('Missing filing') - if (!filing.header) throw new Error('Missing header') - if (!filing.business) throw new Error('Missing business') - if (!filing.agmExtension) throw new Error('Missing agm extension object') - if (filing.header.name !== FilingTypes.AGM_EXTENSION) throw new Error('Invalid filing type') - if (filing.header.status !== FilingStatus.DRAFT) throw new Error('Invalid filing status') - if (filing.business.identifier !== this.getIdentifier) throw new Error('Invalid business identifier') - if (filing.business.legalName !== this.getLegalName) throw new Error('Invalid business legal name') - - // load Certified By (but not Date) - this.certifiedBy = filing.header.certifiedBy - - // load Staff Payment properties - if (filing.header.routingSlipNumber) { - this.staffPaymentData = { - option: StaffPaymentOptions.FAS, - routingSlipNumber: filing.header.routingSlipNumber, - isPriority: filing.header.priority - } as StaffPaymentIF - } else if (filing.header.bcolAccountNumber) { - this.staffPaymentData = { - option: StaffPaymentOptions.BCOL, - bcolAccountNumber: filing.header.bcolAccountNumber, - datNumber: filing.header.datNumber, - folioNumber: filing.header.folioNumber, - isPriority: filing.header.priority - } as StaffPaymentIF - } else if (filing.header.waiveFees) { - this.staffPaymentData = { - option: StaffPaymentOptions.NO_FEE - } as StaffPaymentIF - } else { - this.staffPaymentData = { - option: StaffPaymentOptions.NONE - } as StaffPaymentIF - } - }).catch(error => { - // eslint-disable-next-line no-console - console.log('fetchDraftFiling() error =', error) - this.resumeErrorDialog = true - }) - } - - /** - * Called when user clicks Save button - * or when user retries from Save Error dialog. - */ - async onClickSave (): Promise { - // prevent double saving - if (this.busySaving) return - - this.saving = true - - // save draft filing - this.savedFiling = await this.saveFiling(true).catch(error => { - this.saveErrorReason = SaveErrorReasons.SAVE - // try to return filing (which may exist depending on save error) - return error?.response?.data?.filing || null - }) - - const filingId = +this.savedFiling?.header?.filingId || 0 - if (filingId > 0) { - // save filing ID for possible future updates - this.filingId = filingId - } - - // if there was no error, finish save process now - // otherwise, dialog may finish this later - if (!this.saveErrorReason) this.onClickSaveFinish() - - this.saving = false - } - - onClickSaveFinish (): void { - // safety check - if (this.filingId > 0) { - // changes were saved, so clear flag - this.haveChanges = false - } else { - // eslint-disable-next-line no-console - console.log('onClickSaveFinish(): invalid filing ID, filing =', null) - } - } - - /** - * Called when user clicks Save and Resume later button - * or when user retries from Save Error dialog. - */ - async onClickSaveResume (): Promise { - // prevent double saving - if (this.busySaving) return - - this.savingResuming = true - - // save draft filing - this.savedFiling = await this.saveFiling(true).catch(error => { - this.saveErrorReason = SaveErrorReasons.SAVE_RESUME - // try to return filing (which may exist depending on save error) - return error?.response?.data?.filing || null - }) - - const filingId = +this.savedFiling?.header?.filingId || 0 - if (filingId > 0) { - // save filing ID for possible future updates - this.filingId = filingId - } - - // if there was no error, finish save-resume process now - // otherwise, dialog may finish this later - if (!this.saveErrorReason) this.onClickSaveResumeFinish() - - this.savingResuming = false - } - - onClickSaveResumeFinish (): void { - // safety check - if (this.filingId > 0) { - // changes were saved, so go to dashboard - this.goToDashboard(true) - } else { - // eslint-disable-next-line no-console - console.log('onClickSaveResumeFinish(): invalid filing ID, filing =', null) - } + // always include agm extension code + // (no Priority flag and no Waive Fees flag) + this.updateFilingData('add', FilingCodes.AGM_EXTENSION, undefined, undefined) } /** * Called when user clicks File and Pay button - * or when user retries from Save Error dialog - * or when user submits from Staff Payment dialog. + * or when user retries from Save Error dialog. */ - async onClickFilePay (fromStaffPayment = false): Promise { + async onClickFilePay (): Promise { // if there is an invalid component, scroll to it if (!this.isPageValid) { this.showErrors = true - // *** TODO: check for section errors here - if (!this.extensionEligibilityValid) { - // Show error message of detail comment text area if invalid - // this.$refs.detailCommentRef.$refs.textarea.error = true + // + // FUTURE: check for section errors here + // + if (!this.extensionRequestValid) { + // nothing to do here -- "showErrors" will do it all } if (!this.certifyFormValid) { // Show error message of legal name text field if invalid @@ -659,16 +319,15 @@ export default class AgmExtension extends Mixins(CommonMixin, DateMixin, return } - // prevent double saving - if (this.busySaving) return - - // if this is a staff user clicking File and Pay (not Submit) - // then detour via Staff Payment dialog - if (this.isRoleStaff && !fromStaffPayment) { - this.staffPaymentDialog = true + // if not eligible, display dialog + if (!this.data.isEligible) { + this.notEligibleExtensionDialog = true return } + // prevent double saving + if (this.busySaving) return + this.filingPaying = true // save final filing (not draft) @@ -749,33 +408,12 @@ export default class AgmExtension extends Mixins(CommonMixin, DateMixin, const header: any = { header: { - name: FilingTypes.CONSENT_CONTINUATION_OUT, + name: FilingTypes.AGM_EXTENSION, certifiedBy: this.certifiedBy || '', date: this.getCurrentDate // NB: API will reassign this date according to its clock } } - switch (this.staffPaymentData.option) { - case StaffPaymentOptions.FAS: - header.header['routingSlipNumber'] = this.staffPaymentData.routingSlipNumber - header.header['priority'] = this.staffPaymentData.isPriority - break - - case StaffPaymentOptions.BCOL: - header.header['bcolAccountNumber'] = this.staffPaymentData.bcolAccountNumber - header.header['datNumber'] = this.staffPaymentData.datNumber - header.header['folioNumber'] = this.staffPaymentData.folioNumber - header.header['priority'] = this.staffPaymentData.isPriority - break - - case StaffPaymentOptions.NO_FEE: - header.header['waiveFees'] = true - break - - case StaffPaymentOptions.NONE: // should never happen - break - } - const business: any = { business: { foundingDate: this.dateToApi(this.getFoundingDate), @@ -787,7 +425,20 @@ export default class AgmExtension extends Mixins(CommonMixin, DateMixin, const data: any = { [FilingTypes.AGM_EXTENSION]: { - // properties go here + // convert local properties into API/schema properties + year: this.data.agmYear, + isFirstAgm: this.data.isFirstAgm, + extReqForAgmYear: this.data.isPrevExtension, + intendedAgmDate: this.data.intendedAgmDate, + totalApprovedExt: this.getTotalAgmExtensionDuration(Number(this.data.agmYear)) + this.data.extensionDuration, + expireDateApprovedExt: this.data.agmDueDate, + // conditionally add properties if not null + ...(this.data.prevAgmDate && { prevAgmRefDate: this.data.prevAgmDate }), + ...(this.data.prevExpiryDate && { + expireDateCurrExt: this.data.prevExpiryDate + }), + // add in remaining local properties for future auditing + ...this.data } } @@ -803,7 +454,7 @@ export default class AgmExtension extends Mixins(CommonMixin, DateMixin, ret = await LegalServices.createFiling(this.getIdentifier, filing, isDraft) } return ret - } catch (error) { + } catch (error: any) { // save errors or warnings, if any this.saveErrors = error?.response?.data?.errors || [] this.saveWarnings = error?.response?.data?.warnings || [] @@ -862,76 +513,28 @@ export default class AgmExtension extends Mixins(CommonMixin, DateMixin, } } - /** Handles Retry events from Save Error dialog. */ - async onSaveErrorDialogRetry (): Promise { - switch (this.saveErrorReason) { - case SaveErrorReasons.SAVE: - // close the dialog and retry save - this.saveErrorReason = null - await this.onClickSave() - break - case SaveErrorReasons.SAVE_RESUME: - // close the dialog and retry save-resume - this.saveErrorReason = null - await this.onClickSaveResume() - break - case SaveErrorReasons.FILE_PAY: - // close the dialog and retry file-pay - this.saveErrorReason = null - if (this.isRoleStaff) await this.onClickFilePay(true) - else await this.onClickFilePay() - break - } - } - - /** Handles Okay events from Save Error dialog. */ - onSaveErrorDialogOkay (): void { - switch (this.saveErrorReason) { - case SaveErrorReasons.SAVE: - // close the dialog and finish save process - this.saveErrorReason = null - this.onClickSaveFinish() - break - case SaveErrorReasons.SAVE_RESUME: - // close the dialog and finish save-resume process - this.saveErrorReason = null - this.onClickSaveResumeFinish() - break - case SaveErrorReasons.FILE_PAY: - // close the dialog and finish file-pay process - this.saveErrorReason = null - this.onClickFilePayFinish() - break - } - } - /** Array of valid components. Must match validFlags. */ readonly validComponents = [ - 'extension-eligibility-section', + 'extension-request', 'certify-form-section' ] /** Object of valid flags. Must match validComponents. */ get validFlags (): object { return { - extensionEligibility: this.extensionEligibilityValid, + extensionEligibility: this.extensionRequestValid, certifyForm: this.certifyFormValid } } - @Watch('extensionEligibilityValid') - @Watch('certifyFormValid') - onHaveChanges (): void { - this.haveChanges = true - } - - @Watch('staffPaymentData') - onStaffPaymentDataChanged (val: StaffPaymentIF): void { - const waiveFees = (val.option === StaffPaymentOptions.NO_FEE) - - // add Waive Fees flag to all filing codes - this.updateFilingData('add', FilingCodes.CONSENT_CONTINUATION_OUT, val.isPriority, waiveFees) - + /** Watches all data properties to keep track of changes. */ + @Watch('data.isFirstAgm') + @Watch('data.agmYear') + @Watch('data.prevAgmDate') + @Watch('data.isPrevExtension') + @Watch('data.prevExpiryDate') + @Watch('data.intendedAgmDate') + private onHaveChanges (): void { this.haveChanges = true } } @@ -951,17 +554,6 @@ h2::before { content: counter(header-counter) '. '; } -article { - .v-card { - line-height: 1.2rem; - font-size: $px-14; - } -} - -section + section { - margin-top: 3rem; -} - h1 { margin-bottom: 1.25rem; line-height: 2rem; @@ -974,40 +566,18 @@ h2 { font-size: 1.125rem; } -strong { - color: $gray9; -} - // Save & Filing Buttons #buttons-container { padding-top: 2rem; border-top: 1px solid $gray5; - .buttons-left { - width: 50%; - } - .buttons-right { margin-left: auto; } - - .v-btn + .v-btn { - margin-left: 0.5rem; - } - - #consent-cancel-btn { - margin-left: 0.5rem; - } } // Fix font size and color to stay consistent. :deep() { - .invalid-extension-eligibility { - .title-label { - color: $app-red; - } - } - .certify-clause, .certify-stmt, .grey-text { color: $gray7; } diff --git a/src/views/AgmLocationChg.vue b/src/views/AgmLocationChg.vue index 547486b84..39f336eda 100644 --- a/src/views/AgmLocationChg.vue +++ b/src/views/AgmLocationChg.vue @@ -14,57 +14,8 @@ @exit="onPaymentErrorDialogExit()" /> - - - - - - - - -
-
- -
- {{ loadingMessage }} -
-
-
-
- - +
- + +
-

Section Title

+

Location Change Detail

- Section subtext. + Enter the calendar year the AGM is for and AGM location outside B.C.

-
- - + + +
- - Subtitle - - + AGM Year + + + + + +
+ + + + +
+ + + Reason + + + + + +
+ + + + +
+ - Section content goes here. - - + + AGM Location + + +

+ Enter the AGM location not in B.C. Include the city, province or state equivalent, + and country. E.g. "Red Deer, Alberta, Canada" +

+ +
+ +
@@ -140,8 +192,9 @@ :isCertified.sync="isCertified" :certifiedBy.sync="certifiedBy" :class="{ 'invalid-certify': !certifyFormValid && showErrors }" + :disableEdit="!isRoleStaff" :entityDisplay="displayName()" - :message="certifyText(FilingCodes.ANNUAL_REPORT_OT)" + :message="certifyText(FilingCodes.AGM_LOCATION_CHANGE)" @valid="certifyFormValid=$event" /> @@ -175,27 +228,6 @@ id="buttons-container" class="list-item" > -
- - Save - - - Save and Resume Later - -
-
0) } + /** Array of validations rules for AGM location. */ + get agmLocationRules (): Array<(val) => boolean | string> { + const rules = [] as Array<(val) => boolean | string> + rules.push(val => !!val || 'AGM location is required.') + rules.push(val => (val.length <= 400) || 'Must be 400 characters or less.') + return rules + } + + /** Array of validations rules for AGM year. */ + get agmYearRules (): Array<(val) => boolean | string> { + const rules = [] as Array<(val) => boolean | string> + rules.push(val => !!val || 'AGM year is required.') + rules.push(val => (val && +val <= this.maxAgmYear) || 'Must be on or before ' + this.maxAgmYear) + rules.push(val => (val && +val >= this.minAgmYear) || 'Must be on or after ' + this.minAgmYear) + return rules + } + + get minAgmYear () : number { + const today = new Date() + return (today.getFullYear() - 2) + } + + get maxAgmYear () : number { + const today = new Date() + return (today.getFullYear() + 1) + } + /** Called when component is created. */ created (): void { // init @@ -355,185 +406,35 @@ export default class AgmLocationChg extends Mixins(CommonMixin, DateMixin, } // this is the id of THIS filing - // if 0, this is a new filing - // otherwise it's a draft filing + // it must be 0 (meaning new filing) -- we do not support resuming a draft filing this.filingId = +this.$route.params.filingId // number or NaN // if required data isn't set, go back to dashboard - if (!this.getIdentifier || isNaN(this.filingId)) { + if (!this.getIdentifier || this.filingId !== 0) { this.$router.push({ name: Routes.DASHBOARD }) } } /** Called when component is mounted. */ - async mounted (): Promise { - // wait until entire view is rendered (including all child components) - // see https://v3.vuejs.org/api/options-lifecycle-hooks.html#mounted - await this.$nextTick() - - if (this.filingId > 0) { - this.loadingMessage = `Resuming Your Request for AGM Location Change` - } else { - this.loadingMessage = `Preparing Your Request for AGM Location Change` + mounted (): void { + // Pre-populate the certified block with the logged in user's name (if not staff) + if (!this.isRoleStaff && this.getUserInfo) { + this.certifiedBy = this.getUserInfo.firstname + ' ' + this.getUserInfo.lastname } - // fetch draft (which may overwrite some properties) - if (this.filingId > 0) { - await this.fetchDraftFiling() - } - - this.dataLoaded = true - - // always include consent continue out code - // use existing Priority and Waive Fees flags - this.updateFilingData('add', FilingCodes.AGM_LOCATION_CHG, this.staffPaymentData.isPriority, - (this.staffPaymentData.option === StaffPaymentOptions.NO_FEE)) - } - - /** Fetches the draft consent filing. */ - async fetchDraftFiling (): Promise { - const url = `businesses/${this.getIdentifier}/filings/${this.filingId}` - await LegalServices.fetchFiling(url).then(filing => { - // verify data - if (!filing) throw new Error('Missing filing') - if (!filing.header) throw new Error('Missing header') - if (!filing.business) throw new Error('Missing business') - if (!filing.agmLocationChg) throw new Error('Missing agm location chg object') - if (filing.header.name !== FilingTypes.AGM_LOCATION_CHG) throw new Error('Invalid filing type') - if (filing.header.status !== FilingStatus.DRAFT) throw new Error('Invalid filing status') - if (filing.business.identifier !== this.getIdentifier) throw new Error('Invalid business identifier') - if (filing.business.legalName !== this.getLegalName) throw new Error('Invalid business legal name') - - // load Certified By (but not Date) - this.certifiedBy = filing.header.certifiedBy - - // load Staff Payment properties - if (filing.header.routingSlipNumber) { - this.staffPaymentData = { - option: StaffPaymentOptions.FAS, - routingSlipNumber: filing.header.routingSlipNumber, - isPriority: filing.header.priority - } as StaffPaymentIF - } else if (filing.header.bcolAccountNumber) { - this.staffPaymentData = { - option: StaffPaymentOptions.BCOL, - bcolAccountNumber: filing.header.bcolAccountNumber, - datNumber: filing.header.datNumber, - folioNumber: filing.header.folioNumber, - isPriority: filing.header.priority - } as StaffPaymentIF - } else if (filing.header.waiveFees) { - this.staffPaymentData = { - option: StaffPaymentOptions.NO_FEE - } as StaffPaymentIF - } else { - this.staffPaymentData = { - option: StaffPaymentOptions.NONE - } as StaffPaymentIF - } - }).catch(error => { - // eslint-disable-next-line no-console - console.log('fetchDraftFiling() error =', error) - this.resumeErrorDialog = true - }) - } - - /** - * Called when user clicks Save button - * or when user retries from Save Error dialog. - */ - async onClickSave (): Promise { - // prevent double saving - if (this.busySaving) return - - this.saving = true - - // save draft filing - this.savedFiling = await this.saveFiling(true).catch(error => { - this.saveErrorReason = SaveErrorReasons.SAVE - // try to return filing (which may exist depending on save error) - return error?.response?.data?.filing || null - }) - - const filingId = +this.savedFiling?.header?.filingId || 0 - if (filingId > 0) { - // save filing ID for possible future updates - this.filingId = filingId - } - - // if there was no error, finish save process now - // otherwise, dialog may finish this later - if (!this.saveErrorReason) this.onClickSaveFinish() - - this.saving = false - } - - onClickSaveFinish (): void { - // safety check - if (this.filingId > 0) { - // changes were saved, so clear flag - this.haveChanges = false - } else { - // eslint-disable-next-line no-console - console.log('onClickSaveFinish(): invalid filing ID, filing =', null) - } - } - - /** - * Called when user clicks Save and Resume later button - * or when user retries from Save Error dialog. - */ - async onClickSaveResume (): Promise { - // prevent double saving - if (this.busySaving) return - - this.savingResuming = true - - // save draft filing - this.savedFiling = await this.saveFiling(true).catch(error => { - this.saveErrorReason = SaveErrorReasons.SAVE_RESUME - // try to return filing (which may exist depending on save error) - return error?.response?.data?.filing || null - }) - - const filingId = +this.savedFiling?.header?.filingId || 0 - if (filingId > 0) { - // save filing ID for possible future updates - this.filingId = filingId - } - - // if there was no error, finish save-resume process now - // otherwise, dialog may finish this later - if (!this.saveErrorReason) this.onClickSaveResumeFinish() - - this.savingResuming = false - } - - onClickSaveResumeFinish (): void { - // safety check - if (this.filingId > 0) { - // changes were saved, so go to dashboard - this.goToDashboard(true) - } else { - // eslint-disable-next-line no-console - console.log('onClickSaveResumeFinish(): invalid filing ID, filing =', null) - } + // always include agm location change code + // (no Priority flag and no Waive Fees flag) + this.updateFilingData('add', FilingCodes.AGM_LOCATION_CHANGE, undefined, undefined) } /** * Called when user clicks File and Pay button - * or when user retries from Save Error dialog - * or when user submits from Staff Payment dialog. + * or when user retries from Save Error dialog. */ - async onClickFilePay (fromStaffPayment = false): Promise { + async onClickFilePay (): Promise { // if there is an invalid component, scroll to it if (!this.isPageValid) { this.showErrors = true - // *** TODO: check for section errors here - if (!this.sectionValid) { - // Show error message of detail comment text area if invalid - // this.$refs.detailCommentRef.$refs.textarea.error = true - } if (!this.certifyFormValid) { // Show error message of legal name text field if invalid this.$refs.certifyRef.$refs.certifyTextfieldRef.error = true @@ -545,13 +446,6 @@ export default class AgmLocationChg extends Mixins(CommonMixin, DateMixin, // prevent double saving if (this.busySaving) return - // if this is a staff user clicking File and Pay (not Submit) - // then detour via Staff Payment dialog - if (this.isRoleStaff && !fromStaffPayment) { - this.staffPaymentDialog = true - return - } - this.filingPaying = true // save final filing (not draft) @@ -632,33 +526,12 @@ export default class AgmLocationChg extends Mixins(CommonMixin, DateMixin, const header: any = { header: { - name: FilingTypes.CONSENT_CONTINUATION_OUT, + name: FilingTypes.AGM_LOCATION_CHANGE, certifiedBy: this.certifiedBy || '', date: this.getCurrentDate // NB: API will reassign this date according to its clock } } - switch (this.staffPaymentData.option) { - case StaffPaymentOptions.FAS: - header.header['routingSlipNumber'] = this.staffPaymentData.routingSlipNumber - header.header['priority'] = this.staffPaymentData.isPriority - break - - case StaffPaymentOptions.BCOL: - header.header['bcolAccountNumber'] = this.staffPaymentData.bcolAccountNumber - header.header['datNumber'] = this.staffPaymentData.datNumber - header.header['folioNumber'] = this.staffPaymentData.folioNumber - header.header['priority'] = this.staffPaymentData.isPriority - break - - case StaffPaymentOptions.NO_FEE: - header.header['waiveFees'] = true - break - - case StaffPaymentOptions.NONE: // should never happen - break - } - const business: any = { business: { foundingDate: this.dateToApi(this.getFoundingDate), @@ -669,8 +542,10 @@ export default class AgmLocationChg extends Mixins(CommonMixin, DateMixin, } const data: any = { - [FilingTypes.AGM_LOCATION_CHG]: { - // properties go here + [FilingTypes.AGM_LOCATION_CHANGE]: { + year: this.agmYear, + reason: this.reason, + agmLocation: this.agmLocation } } @@ -686,7 +561,7 @@ export default class AgmLocationChg extends Mixins(CommonMixin, DateMixin, ret = await LegalServices.createFiling(this.getIdentifier, filing, isDraft) } return ret - } catch (error) { + } catch (error: any) { // save errors or warnings, if any this.saveErrors = error?.response?.data?.errors || [] this.saveWarnings = error?.response?.data?.warnings || [] @@ -745,76 +620,32 @@ export default class AgmLocationChg extends Mixins(CommonMixin, DateMixin, } } - /** Handles Retry events from Save Error dialog. */ - async onSaveErrorDialogRetry (): Promise { - switch (this.saveErrorReason) { - case SaveErrorReasons.SAVE: - // close the dialog and retry save - this.saveErrorReason = null - await this.onClickSave() - break - case SaveErrorReasons.SAVE_RESUME: - // close the dialog and retry save-resume - this.saveErrorReason = null - await this.onClickSaveResume() - break - case SaveErrorReasons.FILE_PAY: - // close the dialog and retry file-pay - this.saveErrorReason = null - if (this.isRoleStaff) await this.onClickFilePay(true) - else await this.onClickFilePay() - break - } - } - - /** Handles Okay events from Save Error dialog. */ - onSaveErrorDialogOkay (): void { - switch (this.saveErrorReason) { - case SaveErrorReasons.SAVE: - // close the dialog and finish save process - this.saveErrorReason = null - this.onClickSaveFinish() - break - case SaveErrorReasons.SAVE_RESUME: - // close the dialog and finish save-resume process - this.saveErrorReason = null - this.onClickSaveResumeFinish() - break - case SaveErrorReasons.FILE_PAY: - // close the dialog and finish file-pay process - this.saveErrorReason = null - this.onClickFilePayFinish() - break - } - } - /** Array of valid components. Must match validFlags. */ readonly validComponents = [ - 'main-section', + 'agm-year-section', + 'reason-section', + 'location-section', 'certify-form-section' ] /** Object of valid flags. Must match validComponents. */ get validFlags (): object { return { - mainSection: this.sectionValid, + // mainSection: this.sectionValid, + agmYear: this.agmYearValid, + reason: this.reasonValid, + location: this.agmLocationValid, certifyForm: this.certifyFormValid } } - @Watch('sectionValid') - @Watch('certifyFormValid') - onHaveChanges (): void { - this.haveChanges = true - } - - @Watch('staffPaymentData') - onStaffPaymentDataChanged (val: StaffPaymentIF): void { - const waiveFees = (val.option === StaffPaymentOptions.NO_FEE) - - // add Waive Fees flag to all filing codes - this.updateFilingData('add', FilingCodes.CONSENT_CONTINUATION_OUT, val.isPriority, waiveFees) - + /** Watches all data properties to keep track of changes. */ + @Watch('agmYear') + @Watch('agmLocation') + @Watch('certifiedBy') + @Watch('isCertified') + @Watch('reason') + private onHaveChanges (): void { this.haveChanges = true } } @@ -879,19 +710,13 @@ h2 { margin-left: 0.5rem; } - #consent-cancel-btn { + #agm-loctn-chg-cancel-btn { margin-left: 0.5rem; } } // Fix font size and color to stay consistent. :deep() { - .invalid-foreign-jurisdiction { - .title-label { - color: $app-red; - } - } - .certify-clause, .certify-stmt, .grey-text { color: $gray7; } @@ -901,5 +726,23 @@ h2 { color: $app-red; } } + + .invalid-component { + .title-label { + color: $app-red; + } + } + + // Setting the top and bottom red borders (error) radii to 0. + .v-card > *:first-child:not(.v-btn):not(.v-chip):not(.v-avatar), + .v-card > .v-card__progress + *:not(.v-btn):not(.v-chip):not(.v-avatar) { + border-top-left-radius: 0px; + border-top-right-radius: 0px; + } + + .v-card > *:last-child:not(.v-btn):not(.v-chip):not(.v-avatar) { + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + } } diff --git a/src/views/AmalgamationSelection.vue b/src/views/AmalgamationSelection.vue new file mode 100644 index 000000000..06c277f5b --- /dev/null +++ b/src/views/AmalgamationSelection.vue @@ -0,0 +1,300 @@ + + + + + diff --git a/src/views/AnnualReport.vue b/src/views/AnnualReport.vue index 7b2d8742f..e4ebd7295 100644 --- a/src/views/AnnualReport.vue +++ b/src/views/AnnualReport.vue @@ -106,9 +106,9 @@

File {{ ARFilingYear }} Annual Report — {{ getReportState }} + > — Draft

Select your Annual General Meeting date, then verify or change your Office Addresses @@ -201,9 +201,9 @@

File {{ ARFilingYear }} Annual Report — {{ getReportState }} + v-if="filingId > 0" + class="font-italic" + > — Draft

Please review all the information before you file and pay

@@ -306,7 +306,6 @@ >
Save + @@ -231,22 +232,23 @@