From d24826a58e1bef00070f2dceb9b194a06ed2dea1 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 21 Mar 2022 08:55:21 -0700 Subject: [PATCH 01/19] Project actions on dev too [ci skip] --- .github/workflows/project-actions.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/project-actions.yml b/.github/workflows/project-actions.yml index 2cf98bf4b..9c1acfaa9 100644 --- a/.github/workflows/project-actions.yml +++ b/.github/workflows/project-actions.yml @@ -8,6 +8,9 @@ on: types: - opened - reopened + branches: + - main + - dev # map fields with customized labels env: From e514b99c57f71476e7115468021254d0728d3535 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 21 Mar 2022 10:54:48 -0700 Subject: [PATCH 02/19] Fix pre-commit link [ci skip] --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 49e36e35b..2e629fda7 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -31,6 +31,6 @@ NOTE: Please check only one box! - [ ] I have read & agree with the [contributing guidelines](https://github.com/paperless-ngx/paperless-ngx/blob/main/CONTRIBUTING.md). - [ ] If applicable, I have tested my code for new features & regressions on both mobile & desktop devices, using the latest version of major browsers. - [ ] If applicable, I have checked that all tests pass, see [documentation](https://paperless-ngx.readthedocs.io/en/latest/extending.html#back-end-development). -- [ ] I have run all `pre-commit` hooks, see [documentation](https://paperless-ngx.readthedocs.io/en/latest/contributing.html#pre-commit-hooks). +- [ ] I have run all `pre-commit` hooks, see [documentation](https://paperless-ngx.readthedocs.io/en/latest/extending.html#code-formatting-with-pre-commit-hooks). - [ ] I have made corresponding changes to the documentation as needed. - [ ] I have checked my modifications for any breaking changes. From 30834eb8ff36bcbd46a00b6a0398e53a6165aae9 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 21 Mar 2022 14:53:56 -0700 Subject: [PATCH 03/19] Change dependabot to check npm monthly [ci skip] --- .github/dependabot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 789d117bb..7b8e87fde 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -10,7 +10,7 @@ updates: directory: "/src-ui" # Check the npm registry for updates every week schedule: - interval: "weekly" + interval: "monthly" # Add reviewers reviewers: - "paperless-ngx/frontend" From 8f152aac69ea7c9305636b288a59cbf5d1d07256 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 22 Mar 2022 00:55:23 -0700 Subject: [PATCH 04/19] Fix project automations failing from forks --- .github/workflows/project-actions.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/project-actions.yml b/.github/workflows/project-actions.yml index 9c1acfaa9..00525d279 100644 --- a/.github/workflows/project-actions.yml +++ b/.github/workflows/project-actions.yml @@ -1,10 +1,11 @@ -name: Project automations +name: Project Automations + on: issues: types: - opened - reopened - pull_request: + pull_request_target: #_target allows access to secrets types: - opened - reopened @@ -12,7 +13,6 @@ on: - main - dev -# map fields with customized labels env: todo: Todo done: Done @@ -32,10 +32,10 @@ jobs: project_id: 2 resource_node_id: ${{ github.event.issue.node_id }} status_value: ${{ env.todo }} # Target status - pr_opened_or_reopened_or_reviewrequested: - name: pr_opened_or_reopened_or_reviewrequested + pr_opened_or_reopened: + name: pr_opened_or_reopened runs-on: ubuntu-latest - if: github.event_name == 'pull_request' && (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'review_requested') + if: github.event_name == 'pull_request' && (github.event.action == 'opened' || github.event.action == 'reopened') steps: - name: Move PR to ${{ env.in_progress }} uses: leonsteinhaeuser/project-beta-automations@v1.2.1 From c25a107c0446eac081c8045bed0c7de8b4d3b478 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 22 Mar 2022 01:22:19 -0700 Subject: [PATCH 05/19] Fix project automations failing on PRs from forks --- .github/workflows/project-actions.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/project-actions.yml b/.github/workflows/project-actions.yml index 00525d279..adfbc6d40 100644 --- a/.github/workflows/project-actions.yml +++ b/.github/workflows/project-actions.yml @@ -24,7 +24,7 @@ jobs: runs-on: ubuntu-latest if: github.event_name == 'issues' && (github.event.action == 'opened' || github.event.action == 'reopened') steps: - - name: Move issue to ${{ env.todo }} + - name: Set issue status to ${{ env.todo }} uses: leonsteinhaeuser/project-beta-automations@v1.2.1 with: gh_token: ${{ secrets.GH_TOKEN }} @@ -35,9 +35,9 @@ jobs: pr_opened_or_reopened: name: pr_opened_or_reopened runs-on: ubuntu-latest - if: github.event_name == 'pull_request' && (github.event.action == 'opened' || github.event.action == 'reopened') + if: github.event_name == 'pull_request_target' && (github.event.action == 'opened' || github.event.action == 'reopened') steps: - - name: Move PR to ${{ env.in_progress }} + - name: Set PR status to ${{ env.in_progress }} uses: leonsteinhaeuser/project-beta-automations@v1.2.1 with: gh_token: ${{ secrets.GH_TOKEN }} From 023a42fa071843a62fccdaff66c2440c411dd254 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 21 Mar 2022 08:55:21 -0700 Subject: [PATCH 06/19] Project actions on dev too [ci skip] --- .github/workflows/project-actions.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/project-actions.yml b/.github/workflows/project-actions.yml index 2cf98bf4b..9c1acfaa9 100644 --- a/.github/workflows/project-actions.yml +++ b/.github/workflows/project-actions.yml @@ -8,6 +8,9 @@ on: types: - opened - reopened + branches: + - main + - dev # map fields with customized labels env: From 3b76fa3f92216db8b5575ca8b56b1f53c2ce26ad Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 21 Mar 2022 10:54:48 -0700 Subject: [PATCH 07/19] Fix pre-commit link [ci skip] --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 1ffc7ebcb..617233ec2 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -31,6 +31,6 @@ NOTE: Please check only one box! - [ ] I have read & agree with the [contributing guidelines](https://github.com/paperless-ngx/paperless-ngx/blob/main/CONTRIBUTING.md). - [ ] If applicable, I have tested my code for new features & regressions on both mobile & desktop devices, using the latest version of major browsers. - [ ] If applicable, I have checked that all tests pass, see [documentation](https://paperless-ngx.readthedocs.io/en/latest/extending.html#back-end-development). -- [ ] I have run all `pre-commit` hooks, see [documentation](https://paperless-ngx.readthedocs.io/en/latest/contributing.html#pre-commit-hooks). +- [ ] I have run all `pre-commit` hooks, see [documentation](https://paperless-ngx.readthedocs.io/en/latest/extending.html#code-formatting-with-pre-commit-hooks). - [ ] I have made corresponding changes to the documentation as needed. - [ ] I have checked my modifications for any breaking changes. From 863258f23d4756ec99ddb248bec3a9e66f8fce8f Mon Sep 17 00:00:00 2001 From: Frank Strieter Date: Tue, 22 Mar 2022 14:24:00 +0100 Subject: [PATCH 08/19] chore: replace protractor with cypress --- src-ui/cypress.json | 9 +++++++ src-ui/cypress/integration/spec.ts | 7 +++++ src-ui/cypress/plugins/index.ts | 3 +++ src-ui/cypress/support/commands.ts | 43 ++++++++++++++++++++++++++++++ src-ui/cypress/support/index.ts | 17 ++++++++++++ src-ui/cypress/tsconfig.json | 8 ++++++ 6 files changed, 87 insertions(+) create mode 100644 src-ui/cypress.json create mode 100644 src-ui/cypress/integration/spec.ts create mode 100644 src-ui/cypress/plugins/index.ts create mode 100644 src-ui/cypress/support/commands.ts create mode 100644 src-ui/cypress/support/index.ts create mode 100644 src-ui/cypress/tsconfig.json diff --git a/src-ui/cypress.json b/src-ui/cypress.json new file mode 100644 index 000000000..bd321dcbf --- /dev/null +++ b/src-ui/cypress.json @@ -0,0 +1,9 @@ +{ + "integrationFolder": "cypress/integration", + "supportFile": "cypress/support/index.ts", + "videosFolder": "cypress/videos", + "screenshotsFolder": "cypress/screenshots", + "pluginsFile": "cypress/plugins/index.ts", + "fixturesFolder": "cypress/fixtures", + "baseUrl": "http://localhost:4200" +} \ No newline at end of file diff --git a/src-ui/cypress/integration/spec.ts b/src-ui/cypress/integration/spec.ts new file mode 100644 index 000000000..6b0753a8a --- /dev/null +++ b/src-ui/cypress/integration/spec.ts @@ -0,0 +1,7 @@ +describe('My First Test', () => { + it('Visits the initial project page', () => { + cy.visit('/') + cy.contains('Welcome') + cy.contains('sandbox app is running!') + }) +}) diff --git a/src-ui/cypress/plugins/index.ts b/src-ui/cypress/plugins/index.ts new file mode 100644 index 000000000..bfc9d3b65 --- /dev/null +++ b/src-ui/cypress/plugins/index.ts @@ -0,0 +1,3 @@ +// Plugins enable you to tap into, modify, or extend the internal behavior of Cypress +// For more info, visit https://on.cypress.io/plugins-api +module.exports = (on, config) => {} diff --git a/src-ui/cypress/support/commands.ts b/src-ui/cypress/support/commands.ts new file mode 100644 index 000000000..af1f44a0f --- /dev/null +++ b/src-ui/cypress/support/commands.ts @@ -0,0 +1,43 @@ +// *********************************************** +// This example namespace declaration will help +// with Intellisense and code completion in your +// IDE or Text Editor. +// *********************************************** +// declare namespace Cypress { +// interface Chainable { +// customCommand(param: any): typeof customCommand; +// } +// } +// +// function customCommand(param: any): void { +// console.warn(param); +// } +// +// NOTE: You can use it like so: +// Cypress.Commands.add('customCommand', customCommand); +// +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add("login", (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) diff --git a/src-ui/cypress/support/index.ts b/src-ui/cypress/support/index.ts new file mode 100644 index 000000000..ac293b616 --- /dev/null +++ b/src-ui/cypress/support/index.ts @@ -0,0 +1,17 @@ +// *********************************************************** +// This example support/index.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// When a command from ./commands is ready to use, import with `import './commands'` syntax +// import './commands'; diff --git a/src-ui/cypress/tsconfig.json b/src-ui/cypress/tsconfig.json new file mode 100644 index 000000000..79d78d7ec --- /dev/null +++ b/src-ui/cypress/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig.json", + "include": ["**/*.ts"], + "compilerOptions": { + "sourceMap": false, + "types": ["cypress"] + } +} From f6a9d5b038681d95a125413deda704ec436829ce Mon Sep 17 00:00:00 2001 From: Frank Strieter Date: Tue, 22 Mar 2022 14:33:00 +0100 Subject: [PATCH 09/19] chore: replace karma with jest --- src-ui/angular.json | 329 +-- src-ui/jest.config.js | 8 + src-ui/karma.conf.js | 32 - src-ui/package-lock.json | 4573 ++++++++++++++++++++++++++-------- src-ui/package.json | 24 +- src-ui/setup-jest.ts | 30 + src-ui/src/test.ts | 32 - src-ui/test-config.helper.ts | 21 + src-ui/tsconfig.spec.json | 9 +- 9 files changed, 3794 insertions(+), 1264 deletions(-) create mode 100644 src-ui/jest.config.js delete mode 100644 src-ui/karma.conf.js create mode 100644 src-ui/setup-jest.ts delete mode 100644 src-ui/src/test.ts create mode 100644 src-ui/test-config.helper.ts diff --git a/src-ui/angular.json b/src-ui/angular.json index 08bb9fde4..6edccee5b 100644 --- a/src-ui/angular.json +++ b/src-ui/angular.json @@ -2,160 +2,179 @@ "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "newProjectRoot": "projects", - "projects": { - "paperless-ui": { - "projectType": "application", - "schematics": { - "@schematics/angular:component": { - "style": "scss" - } - }, - "root": "", - "sourceRoot": "src", - "prefix": "app", - "i18n": { - "sourceLocale": "en-US", - "locales": { - "cs-CZ": "src/locale/messages.cs_CZ.xlf", - "da-DK": "src/locale/messages.da_DK.xlf", - "de-DE": "src/locale/messages.de_DE.xlf", - "en-GB": "src/locale/messages.en_GB.xlf", - "es-ES": "src/locale/messages.es_ES.xlf", - "fr-FR": "src/locale/messages.fr_FR.xlf", - "it-IT": "src/locale/messages.it_IT.xlf", - "lb-LU": "src/locale/messages.lb_LU.xlf", - "nl-NL": "src/locale/messages.nl_NL.xlf", - "pl-PL": "src/locale/messages.pl_PL.xlf", - "pt-BR": "src/locale/messages.pt_BR.xlf", - "pt-PT": "src/locale/messages.pt_PT.xlf", - "ro-RO": "src/locale/messages.ro_RO.xlf", - "ru-RU": "src/locale/messages.ru_RU.xlf", - "sl-SI": "src/locale/messages.sl_SI.xlf", - "sr-CS": "src/locale/messages.sr_CS.xlf", - "sv-SE": "src/locale/messages.sv_SE.xlf", - "zh-CN": "src/locale/messages.zh_CN.xlf" + "projects": { + "paperless-ui": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" } - }, - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:browser", - "options": { - "outputPath": "dist/paperless-ui", - "outputHashing": "none", - "index": "src/index.html", - "main": "src/main.ts", - "polyfills": "src/polyfills.ts", - "tsConfig": "tsconfig.app.json", - "localize": true, - "assets": [ - "src/favicon.ico", - "src/apple-touch-icon.png", - "src/assets", - "src/manifest.webmanifest", { - "glob": "pdf.worker.min.js", - "input": "node_modules/pdfjs-dist/build/", - "output": "/assets/js/" - } - ], - "styles": [ - "src/styles.scss" - ], - "scripts": [], - "allowedCommonJsDependencies": [ - "ng2-pdf-viewer" - ], - "vendorChunk": true, - "extractLicenses": false, - "buildOptimizer": false, - "sourceMap": true, - "optimization": false, - "namedChunks": true - }, - "configurations": { - "production": { - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.prod.ts" - } - ], - "outputPath": "../src/documents/static/frontend/", - "optimization": true, - "outputHashing": "none", - "sourceMap": false, - "namedChunks": false, - "extractLicenses": true, - "vendorChunk": false, - "buildOptimizer": true, - "budgets": [ - { - "type": "initial", - "maximumWarning": "2mb", - "maximumError": "5mb" - }, - { - "type": "anyComponentStyle", - "maximumWarning": "6kb", - "maximumError": "10kb" - } - ] - }, - "en-US": { - "localize": ["en-US"] - } - }, - "defaultConfiguration": "" - }, - "serve": { - "builder": "@angular-devkit/build-angular:dev-server", - "options": { - "browserTarget": "paperless-ui:build:en-US" - }, - "configurations": { - "production": { - "browserTarget": "paperless-ui:build:production" - } - } - }, - "extract-i18n": { - "builder": "@angular-devkit/build-angular:extract-i18n", - "options": { - "browserTarget": "paperless-ui:build" - } - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "main": "src/test.ts", - "polyfills": "src/polyfills.ts", - "tsConfig": "tsconfig.spec.json", - "karmaConfig": "karma.conf.js", - "assets": [ - "src/favicon.ico", - "src/apple-touch-icon.png", - "src/assets", - "src/manifest.webmanifest" - ], - "styles": [ - "src/styles.scss" - ], - "scripts": [] - } - }, - "e2e": { - "builder": "@angular-devkit/build-angular:protractor", - "options": { - "protractorConfig": "e2e/protractor.conf.js", - "devServerTarget": "paperless-ui:serve" - }, - "configurations": { - "production": { - "devServerTarget": "paperless-ui:serve:production" - } - } - } - } - } - }, - "defaultProject": "paperless-ui" + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "i18n": { + "sourceLocale": "en-US", + "locales": { + "cs-CZ": "src/locale/messages.cs_CZ.xlf", + "da-DK": "src/locale/messages.da_DK.xlf", + "de-DE": "src/locale/messages.de_DE.xlf", + "en-GB": "src/locale/messages.en_GB.xlf", + "es-ES": "src/locale/messages.es_ES.xlf", + "fr-FR": "src/locale/messages.fr_FR.xlf", + "it-IT": "src/locale/messages.it_IT.xlf", + "lb-LU": "src/locale/messages.lb_LU.xlf", + "nl-NL": "src/locale/messages.nl_NL.xlf", + "pl-PL": "src/locale/messages.pl_PL.xlf", + "pt-BR": "src/locale/messages.pt_BR.xlf", + "pt-PT": "src/locale/messages.pt_PT.xlf", + "ro-RO": "src/locale/messages.ro_RO.xlf", + "ru-RU": "src/locale/messages.ru_RU.xlf", + "sl-SI": "src/locale/messages.sl_SI.xlf", + "sr-CS": "src/locale/messages.sr_CS.xlf", + "sv-SE": "src/locale/messages.sv_SE.xlf", + "zh-CN": "src/locale/messages.zh_CN.xlf" + } + }, + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist/paperless-ui", + "outputHashing": "none", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.app.json", + "localize": true, + "assets": [ + "src/favicon.ico", + "src/apple-touch-icon.png", + "src/assets", + "src/manifest.webmanifest", + { + "glob": "pdf.worker.min.js", + "input": "node_modules/pdfjs-dist/build/", + "output": "/assets/js/" + } + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [], + "allowedCommonJsDependencies": [ + "ng2-pdf-viewer" + ], + "vendorChunk": true, + "extractLicenses": false, + "buildOptimizer": false, + "sourceMap": true, + "optimization": false, + "namedChunks": true + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "outputPath": "../src/documents/static/frontend/", + "optimization": true, + "outputHashing": "none", + "sourceMap": false, + "namedChunks": false, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "budgets": [ + { + "type": "initial", + "maximumWarning": "2mb", + "maximumError": "5mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "6kb", + "maximumError": "10kb" + } + ] + }, + "en-US": { + "localize": [ + "en-US" + ] + } + }, + "defaultConfiguration": "" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "paperless-ui:build:en-US" + }, + "configurations": { + "production": { + "browserTarget": "paperless-ui:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "paperless-ui:build" + } + }, + "test": { + "builder": "@angular-builders/jest:run", + "options": { + "tsConfig": "tsconfig.spec.json", + "assets": [ + "src/favicon.ico", + "src/apple-touch-icon.png", + "src/assets", + "src/manifest.webmanifest" + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [] + } + }, + "e2e": { + "builder": "@cypress/schematic:cypress", + "options": { + "devServerTarget": "paperless-ui:serve", + "watch": true, + "headless": false + }, + "configurations": { + "production": { + "devServerTarget": "paperless-ui:serve:production" + } + } + }, + "cypress-run": { + "builder": "@cypress/schematic:cypress", + "options": { + "devServerTarget": "paperless-ui:serve" + }, + "configurations": { + "production": { + "devServerTarget": "paperless-ui:serve:production" + } + } + }, + "cypress-open": { + "builder": "@cypress/schematic:cypress", + "options": { + "watch": true, + "headless": false + } + } + } + } + }, + "defaultProject": "paperless-ui" } diff --git a/src-ui/jest.config.js b/src-ui/jest.config.js new file mode 100644 index 000000000..45ef68959 --- /dev/null +++ b/src-ui/jest.config.js @@ -0,0 +1,8 @@ +module.exports = { + moduleNameMapper: { + "@core/(.*)": "/src/app/core/$1", + }, + preset: "jest-preset-angular", + setupFilesAfterEnv: ["/setup-jest.ts"], + testPathIgnorePatterns: ["/node_modules/", "/cypress/"], +}; diff --git a/src-ui/karma.conf.js b/src-ui/karma.conf.js deleted file mode 100644 index 7a0b7490c..000000000 --- a/src-ui/karma.conf.js +++ /dev/null @@ -1,32 +0,0 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/1.0/config/configuration-file.html - -module.exports = function (config) { - config.set({ - basePath: '', - frameworks: ['jasmine', '@angular-devkit/build-angular'], - plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-jasmine-html-reporter'), - require('karma-coverage-istanbul-reporter'), - require('@angular-devkit/build-angular/plugins/karma'), - ], - client: { - clearContext: false, // leave Jasmine Spec Runner output visible in browser - }, - coverageIstanbulReporter: { - dir: require('path').join(__dirname, './coverage/paperless-ui'), - reports: ['html', 'lcovonly', 'text-summary'], - fixWebpackSourcePaths: true, - }, - reporters: ['progress', 'kjhtml'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['Chrome'], - singleRun: false, - restartOnFileChange: true, - }) -} diff --git a/src-ui/package-lock.json b/src-ui/package-lock.json index 94376e035..af21d32a7 100644 --- a/src-ui/package-lock.json +++ b/src-ui/package-lock.json @@ -14212,6 +14212,15 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, "@babel/plugin-syntax-class-properties": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", @@ -14248,6 +14257,15 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -14329,6 +14347,15 @@ "@babel/helper-plugin-utils": "^7.14.5" } }, + "@babel/plugin-syntax-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", + "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, "@babel/plugin-transform-arrow-functions": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", @@ -14830,10 +14857,10 @@ "to-fast-properties": "^2.0.0" } }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "@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 }, "@cspotcode/source-map-consumer": { @@ -14865,6 +14892,84 @@ "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.4.0.tgz", "integrity": "sha512-JZButFdZ1+/xAfpguQHoabIXkcqRRKpMrWKBkpEZZyxfY9C1DpADFB8PEqGSTeFr135SaTRfKqGKx5xSCLI7ZQ==" }, + "@cypress/request": { + "version": "2.88.10", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", + "integrity": "sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "dependencies": { + "http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + } + }, + "jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true + } + } + }, + "@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, "@discoveryjs/json-ext": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", @@ -14896,6 +15001,507 @@ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, + "@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dev": true, + "requires": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dev": true, + "requires": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + } + }, + "@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dev": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + } + }, + "@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dev": true, + "requires": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dev": true, + "requires": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + } + }, + "@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "@jridgewell/resolve-uri": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", @@ -15077,11 +15683,23 @@ "jsonc-parser": "3.0.0" } }, - "@socket.io/base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", - "dev": true + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } }, "@tootallnate/once": { "version": "1.1.2", @@ -15113,6 +15731,47 @@ "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", "dev": true }, + "@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", + "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, "@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -15132,12 +15791,6 @@ "@types/node": "*" } }, - "@types/component-emitter": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", - "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", - "dev": true - }, "@types/connect": { "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", @@ -15157,18 +15810,6 @@ "@types/node": "*" } }, - "@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true - }, - "@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", - "dev": true - }, "@types/eslint": { "version": "8.4.1", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", @@ -15218,6 +15859,15 @@ "@types/range-parser": "*" } }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/http-proxy": { "version": "1.17.8", "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", @@ -15233,13 +15883,32 @@ "integrity": "sha512-KvhqNz4NaONk7cfp4E9x+uXOUp7x4H2Zeyb4yXnw2vIuxD5YfSi1767x+aF7z54elhZcC0OH9/78/WL6+5jcDg==", "dev": true }, - "@types/jasminewd2": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.10.tgz", - "integrity": "sha512-J7mDz7ovjwjc+Y9rR9rY53hFWKATcIkrr9DwQWmOas4/pnIPJTXawnzjwpHm3RSxz/e3ZVUvQ7cRbd5UQLo10g==", + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, "requires": { - "@types/jasmine": "*" + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "27.4.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz", + "integrity": "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==", + "dev": true, + "requires": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" } }, "@types/json-schema": { @@ -15266,10 +15935,10 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, - "@types/q": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", - "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "@types/prettier": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz", + "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==", "dev": true }, "@types/qs": { @@ -15290,12 +15959,6 @@ "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", "dev": true }, - "@types/selenium-webdriver": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.19.tgz", - "integrity": "sha512-OFUilxQg+rWL2FMxtmIgCkUDlJB6pskkpvmew7yeXfzzsOBb5rc+y2+DjHm+r3r1ZPPcJefK3DveNSYWGiy68g==", - "dev": true - }, "@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -15315,6 +15978,18 @@ "@types/node": "*" } }, + "@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true + }, + "@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "dev": true + }, "@types/sockjs": { "version": "0.3.33", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", @@ -15324,6 +15999,12 @@ "@types/node": "*" } }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, "@types/ws": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", @@ -15333,6 +16014,31 @@ "@types/node": "*" } }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "@types/yauzl": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", + "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + } + }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -15525,6 +16231,30 @@ "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + } + } + }, "acorn-import-assertions": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", @@ -15561,12 +16291,6 @@ } } }, - "adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", - "dev": true - }, "agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -15680,6 +16404,12 @@ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "dev": true }, + "arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, "are-we-there-yet": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", @@ -15735,18 +16465,6 @@ "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", "dev": true }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, "asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", @@ -15768,6 +16486,12 @@ "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", "dev": true }, + "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 + }, "async": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", @@ -15783,6 +16507,12 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -15824,6 +16554,79 @@ "ast-types-flow": "0.0.7" } }, + "babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dev": true, + "requires": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "babel-loader": { "version": "8.2.3", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", @@ -15880,6 +16683,18 @@ "test-exclude": "^6.0.0" } }, + "babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, "babel-plugin-polyfill-corejs2": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", @@ -15918,6 +16733,36 @@ "@babel/helper-define-polyfill-provider": "^0.3.1" } }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -15929,12 +16774,6 @@ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true }, - "base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true - }, "batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -15972,14 +16811,17 @@ "readable-stream": "^3.4.0" } }, - "blocking-proxy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", - "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } + "blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true }, "body-parser": { "version": "1.19.2", @@ -16059,6 +16901,12 @@ "fill-range": "^7.0.1" } }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, "browserslist": { "version": "4.20.0", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.0.tgz", @@ -16071,43 +16919,22 @@ "picocolors": "^1.0.0" } }, - "browserstack": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", - "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, "requires": { - "https-proxy-agent": "^2.2.1" - }, - "dependencies": { - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "dev": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - } - } + "fast-json-stable-stringify": "2.x" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" } }, "buffer": { @@ -16120,6 +16947,12 @@ "ieee754": "^1.1.13" } }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -16176,6 +17009,12 @@ "unique-filename": "^1.1.1" } }, + "cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true + }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -16219,12 +17058,24 @@ "supports-color": "^5.3.0" } }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, + "check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true + }, "chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -16252,6 +17103,12 @@ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true }, + "ci-info": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", + "dev": true + }, "circular-dependency-plugin": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", @@ -16259,6 +17116,12 @@ "dev": true, "requires": {} }, + "cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -16280,6 +17143,26 @@ "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", "dev": true }, + "cli-table3": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz", + "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==", + "dev": true, + "requires": { + "colors": "1.4.0", + "string-width": "^4.2.0" + } + }, + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, "cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", @@ -16313,6 +17196,12 @@ "shallow-clone": "^3.0.0" } }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, "codelyzer": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.2.tgz", @@ -16378,6 +17267,12 @@ } } }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -16407,7 +17302,8 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true + "dev": true, + "optional": true }, "combined-stream": { "version": "1.0.8", @@ -16424,18 +17320,18 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true + }, "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, "compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -16488,35 +17384,6 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, "connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", @@ -16657,16 +17524,6 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, "cosmiconfig": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", @@ -16883,12 +17740,206 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, - "custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", "dev": true }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } + } + }, + "cypress": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.5.2.tgz", + "integrity": "sha512-gYiQYvJozMzDOriUV1rCt6CeRM/pRK4nhwGJj3nJQyX2BoUdTCVwp30xDMKc771HiNVhBtgj5o5/iBdVDVXQUg==", + "dev": true, + "requires": { + "@cypress/request": "^2.88.10", + "@cypress/xvfb": "^1.2.4", + "@types/node": "^14.14.31", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.6.0", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^5.1.0", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.2", + "enquirer": "^2.3.6", + "eventemitter2": "^6.4.3", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.0", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.5", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.3.2", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "@types/node": { + "version": "14.18.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", + "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", + "dev": true + }, + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "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 + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + } + } + }, "damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -16904,10 +17955,21 @@ "assert-plus": "^1.0.0" } }, - "date-format": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.4.tgz", - "integrity": "sha512-/jyf4rhB17ge328HJuJjAcmRtCsGd+NDeAtahRBTaK6vSPR6MO5HlrAit3Nn7dVjaa6sowW0WXt8yQtLyZQFRg==", + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "dayjs": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.0.tgz", + "integrity": "sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==", "dev": true }, "debug": { @@ -16918,10 +17980,10 @@ "ms": "2.1.2" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", "dev": true }, "decode-uri-component": { @@ -16930,6 +17992,12 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, "deep-equal": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", @@ -16944,6 +18012,18 @@ "regexp.prototype.flags": "^1.2.0" } }, + "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 + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, "default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", @@ -16977,55 +18057,6 @@ "object-keys": "^1.0.12" } }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - }, - "dependencies": { - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -17055,24 +18086,30 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, "detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, - "di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, + "diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true + }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -17107,18 +18144,6 @@ "buffer-indexof": "^1.0.0" } }, - "dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "dev": true, - "requires": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, "dom-serializer": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", @@ -17136,6 +18161,23 @@ "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", "dev": true }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true + } + } + }, "domhandler": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", @@ -17177,6 +18219,12 @@ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.76.tgz", "integrity": "sha512-3Vftv7cenJtQb+k00McEBZ2vVmZ/x+HEF7pcZONZIkOsESqAqVuACmBxMv0JhzX7u0YltU0vSqRqgBSTAhFUjA==" }, + "emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -17216,31 +18264,13 @@ } } }, - "engine.io": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", - "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "requires": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", - "ws": "~8.2.3" - } - }, - "engine.io-parser": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", - "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", - "dev": true, - "requires": { - "@socket.io/base64-arraybuffer": "~1.0.2" + "once": "^1.4.0" } }, "enhanced-resolve": { @@ -17253,11 +18283,14 @@ "tapable": "^2.2.0" } }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } }, "entities": { "version": "2.2.0", @@ -17302,21 +18335,6 @@ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, "esbuild": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.22.tgz", @@ -17500,6 +18518,34 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, "eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -17557,6 +18603,12 @@ "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", "dev": true }, + "eventemitter2": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.5.tgz", + "integrity": "sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw==", + "dev": true + }, "eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -17586,12 +18638,33 @@ "strip-final-newline": "^2.0.0" } }, + "executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "requires": { + "pify": "^2.2.0" + } + }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true }, + "expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + } + }, "express": { "version": "4.17.3", "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", @@ -17676,6 +18749,29 @@ "tmp": "^0.0.33" } }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -17707,6 +18803,12 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, "fastparse": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", @@ -17731,6 +18833,24 @@ "websocket-driver": ">=0.5.1" } }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -17806,12 +18926,6 @@ "path-exists": "^4.0.0" } }, - "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, "follow-redirects": { "version": "1.14.9", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", @@ -17853,17 +18967,6 @@ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, - "fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, "fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -17946,6 +19049,23 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, + "getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "requires": { + "async": "^3.2.0" + }, + "dependencies": { + "async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "dev": true + } + } + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -17982,6 +19102,15 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, + "global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "requires": { + "ini": "2.0.0" + } + }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -18013,42 +19142,6 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "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 - } - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -18058,23 +19151,6 @@ "function-bind": "^1.1.1" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } - } - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -18165,6 +19241,15 @@ } } }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, "html-entities": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", @@ -18243,17 +19328,6 @@ "micromatch": "^4.0.2" } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, "https-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", @@ -18323,12 +19397,6 @@ "dev": true, "optional": true }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", - "dev": true - }, "immutable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", @@ -18353,6 +19421,16 @@ } } }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -18500,6 +19578,15 @@ "binary-extensions": "^2.0.0" } }, + "is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "requires": { + "ci-info": "^3.2.0" + } + }, "is-core-module": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", @@ -18534,6 +19621,12 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -18542,6 +19635,24 @@ "is-extglob": "^2.1.1" } }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "dependencies": { + "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 + } + } + }, "is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -18559,30 +19670,6 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, "is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", @@ -18598,6 +19685,12 @@ "isobject": "^3.0.1" } }, + "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 + }, "is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -18647,12 +19740,6 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, - "isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", - "dev": true - }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -18726,64 +19813,6 @@ } } }, - "istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" - }, - "dependencies": { - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", - "dev": true - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, "istanbul-reports": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", @@ -18794,46 +19823,1449 @@ "istanbul-lib-report": "^3.0.0" } }, - "jasmine": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", - "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", "dev": true, "requires": { - "exit": "^0.1.2", - "glob": "^7.0.6", - "jasmine-core": "~2.8.0" + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" }, "dependencies": { - "jasmine-core": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", - "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dev": true, + "requires": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + } + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true } } }, - "jasmine-core": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.0.1.tgz", - "integrity": "sha512-w+JDABxQCkxbGGxg+a2hUVZyqUS2JKngvIyLGu/xiw2ZwgsoSB0iiecLQsQORSeaKQ6iGrCyWG86RfNDuoA7Lg==", - "dev": true - }, - "jasmine-spec-reporter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-7.0.0.tgz", - "integrity": "sha512-OtC7JRasiTcjsaCBPtMO0Tl8glCejM4J4/dNuOJdA8lBjz4PmWjYQ6pzb0uzpBNAWJMDudYuj9OdXJWqM2QTJg==", + "jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", "dev": true, "requires": { - "colors": "1.4.0" + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" } }, - "jasminewd2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", - "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dev": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dev": true, + "requires": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dev": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + } + }, + "jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dev": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", "dev": true }, + "jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dev": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dev": true, + "requires": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true + }, + "jest-preset-angular": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-11.1.0.tgz", + "integrity": "sha512-R4ePMBiQub95ESJlN7TozIpRIyMU7buvIdjm8KXqxZK/w8MYwLOSszVStsoZycDmWq5ifZI1eRvhOCUFktFotw==", + "dev": true, + "requires": { + "bs-logger": "^0.2.6", + "esbuild": "0.14.2", + "esbuild-wasm": "0.14.2", + "jest-environment-jsdom": "^27.0.0", + "pretty-format": "^27.0.0", + "ts-jest": "^27.0.0" + }, + "dependencies": { + "esbuild": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.2.tgz", + "integrity": "sha512-l076A6o/PIgcyM24s0dWmDI/b8RQf41uWoJu9I0M71CtW/YSw5T5NUeXxs5lo2tFQD+O4CW4nBHJXx3OY5NpXg==", + "dev": true, + "optional": true, + "requires": { + "esbuild-android-arm64": "0.14.2", + "esbuild-darwin-64": "0.14.2", + "esbuild-darwin-arm64": "0.14.2", + "esbuild-freebsd-64": "0.14.2", + "esbuild-freebsd-arm64": "0.14.2", + "esbuild-linux-32": "0.14.2", + "esbuild-linux-64": "0.14.2", + "esbuild-linux-arm": "0.14.2", + "esbuild-linux-arm64": "0.14.2", + "esbuild-linux-mips64le": "0.14.2", + "esbuild-linux-ppc64le": "0.14.2", + "esbuild-netbsd-64": "0.14.2", + "esbuild-openbsd-64": "0.14.2", + "esbuild-sunos-64": "0.14.2", + "esbuild-windows-32": "0.14.2", + "esbuild-windows-64": "0.14.2", + "esbuild-windows-arm64": "0.14.2" + } + }, + "esbuild-android-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.2.tgz", + "integrity": "sha512-hEixaKMN3XXCkoe+0WcexO4CcBVU5DCSUT+7P8JZiWZCbAjSkc9b6Yz2X5DSfQmRCtI/cQRU6TfMYrMQ5NBfdw==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.2.tgz", + "integrity": "sha512-Uq8t0cbJQkxkQdbUfOl2wZqZ/AtLZjvJulR1HHnc96UgyzG9YlCLSDMiqjM+NANEy7/zzvwKJsy3iNC9wwqLJA==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.2.tgz", + "integrity": "sha512-619MSa17sr7YCIrUj88KzQu2ESA4jKYtIYfLU/smX6qNgxQt3Y/gzM4s6sgJ4fPQzirvmXgcHv1ZNQAs/Xh48A==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.2.tgz", + "integrity": "sha512-aP6FE/ZsChZpUV6F3HE3x1Pz0paoYXycJ7oLt06g0G9dhJKknPawXCqQg/WMyD+ldCEZfo7F1kavenPdIT/SGQ==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.2.tgz", + "integrity": "sha512-LSm98WTb1QIhyS83+Po0KTpZNdd2XpVpI9ua5rLWqKWbKeNRFwOsjeiuwBaRNc+O32s9oC2ZMefETxHBV6VNkQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.2.tgz", + "integrity": "sha512-8VxnNEyeUbiGflTKcuVc5JEPTqXfsx2O6ABwUbfS1Hp26lYPRPC7pKQK5Dxa0MBejGc50jy7YZae3EGQUQ8EkQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.2.tgz", + "integrity": "sha512-4bzMS2dNxOJoFIiHId4w+tqQzdnsch71JJV1qZnbnErSFWcR9lRgpSqWnTTFtv6XM+MvltRzSXC5wQ7AEBY6Hg==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.2.tgz", + "integrity": "sha512-PaylahvMHhH8YMfJPMKEqi64qA0Su+d4FNfHKvlKes/2dUe4QxgbwXT9oLVgy8iJdcFMrO7By4R8fS8S0p8aVQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.2.tgz", + "integrity": "sha512-RlIVp0RwJrdtasDF1vTFueLYZ8WuFzxoQ1OoRFZOTyJHCGCNgh7xJIC34gd7B7+RT0CzLBB4LcM5n0LS+hIoww==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.2.tgz", + "integrity": "sha512-Fdwrq2roFnO5oetIiUQQueZ3+5soCxBSJswg3MvYaXDomj47BN6oAWMZgLrFh1oVrtWrxSDLCJBenYdbm2s+qQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.2.tgz", + "integrity": "sha512-vxptskw8JfCDD9QqpRO0XnsM1osuWeRjPaXX1TwdveLogYsbdFtcuiuK/4FxGiNMUr1ojtnCS2rMPbY8puc5NA==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.2.tgz", + "integrity": "sha512-I8+LzYK5iSNpspS9eCV9sW67Rj8FgMHimGri4mKiGAmN0pNfx+hFX146rYtzGtewuxKtTsPywWteHx+hPRLDsw==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.2.tgz", + "integrity": "sha512-120HgMe9elidWUvM2E6mMf0csrGwx8sYDqUIJugyMy1oHm+/nT08bTAVXuwYG/rkMIqsEO9AlMxuYnwR6En/3Q==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.2.tgz", + "integrity": "sha512-Q3xcf9Uyfra9UuCFxoLixVvdigo0daZaKJ97TL2KNA4bxRUPK18wwGUk3AxvgDQZpRmg82w9PnkaNYo7a+24ow==", + "dev": true, + "optional": true + }, + "esbuild-wasm": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.2.tgz", + "integrity": "sha512-Rs8NjWoo1UdsVjhxT2o6kLCX9Sh65pyd3/h4XeJ3jjQNM6NgL+/CSowuJgvOIjDAXMLXpc6fdGnyZQDil9IUJA==", + "dev": true + }, + "esbuild-windows-32": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.2.tgz", + "integrity": "sha512-TW7O49tPsrq+N1sW8mb3m24j/iDGa4xzAZH4wHWwoIzgtZAYPKC0hpIhufRRG/LA30bdMChO9pjJZ5mtcybtBQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.2.tgz", + "integrity": "sha512-Rym6ViMNmi1E2QuQMWy0AFAfdY0wGwZD73BnzlsQBX5hZBuy/L+Speh7ucUZ16gwsrMM9v86icZUDrSN/lNBKg==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.2.tgz", + "integrity": "sha512-ZrLbhr0vX5Em/P1faMnHucjVVWPS+m3tktAtz93WkMZLmbRJevhiW1y4CbulBd2z0MEdXZ6emDa1zFHq5O5bSA==", + "dev": true, + "optional": true + } + } + }, + "jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "dev": true + }, + "jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + } + }, + "jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dev": true, + "requires": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dev": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + } + }, + "jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dev": true, + "requires": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dev": true, + "requires": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -18883,6 +21315,77 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, + "jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "requires": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dev": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "ws": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "dev": true + } + } + }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -19138,12 +21641,24 @@ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, "klona": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", "dev": true }, + "lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true + }, "less": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", @@ -19212,6 +21727,22 @@ "klona": "^2.0.4" } }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, "license-webpack-plugin": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", @@ -19221,21 +21752,39 @@ "webpack-sources": "^3.0.0" } }, - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dev": true, - "requires": { - "immediate": "~3.0.5" - } - }, "lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", + "dev": true, + "requires": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "rxjs": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", + "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + } + } + }, "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -19269,6 +21818,18 @@ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "dev": true + }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -19330,17 +21891,64 @@ } } }, - "log4js": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.2.tgz", - "integrity": "sha512-k80cggS2sZQLBwllpT1p06GtfvzMmSdUCkW96f0Hj83rKGJDAu2vZjt9B9ag2vx8Zz1IXzxoLgqvRJCdMKybGg==", + "log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, "requires": { - "date-format": "^4.0.4", - "debug": "^4.3.3", - "flatted": "^3.2.5", - "rfdc": "^1.3.0", - "streamroller": "^3.0.4" + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } } }, "lru-cache": { @@ -19407,6 +22015,15 @@ "ssri": "^8.0.0" } }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, "material-colors": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", @@ -19461,12 +22078,6 @@ "picomatch": "^2.2.3" } }, - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true - }, "mime-db": { "version": "1.51.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", @@ -19655,6 +22266,12 @@ "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, "needle": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", @@ -19795,6 +22412,12 @@ "dev": true, "optional": true }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, "node-releases": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", @@ -19986,16 +22609,10 @@ "boolbase": "^1.0.0" } }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", "dev": true }, "object-is": { @@ -20080,6 +22697,20 @@ "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, "ora": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", @@ -20154,6 +22785,12 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, + "ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", + "dev": true + }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -20316,12 +22953,6 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -20352,6 +22983,12 @@ "integrity": "sha512-Ti5VTB0VvSdtTtc7TG71ghMx0SEuNcEs4ghVuZxW0p6OqLjMc0xekZV1B+MmlxEG2Du2e5jgazucWIG/SXTcdA==", "requires": {} }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -20374,21 +23011,12 @@ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", "dev": true }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, "piscina": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz", @@ -20785,12 +23413,37 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, "pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true }, + "pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "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 + } + } + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -20813,199 +23466,14 @@ "retry": "^0.12.0" } }, - "protractor": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", - "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, "requires": { - "@types/q": "^0.0.32", - "@types/selenium-webdriver": "^3.0.0", - "blocking-proxy": "^1.0.0", - "browserstack": "^1.5.1", - "chalk": "^1.1.3", - "glob": "^7.0.3", - "jasmine": "2.8.0", - "jasminewd2": "^2.1.0", - "q": "1.4.1", - "saucelabs": "^1.5.0", - "selenium-webdriver": "3.6.0", - "source-map-support": "~0.4.0", - "webdriver-js-extender": "2.1.0", - "webdriver-manager": "^12.1.7", - "yargs": "^15.3.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "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, - "requires": { - "color-name": "~1.1.4" - } - }, - "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 - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "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, - "requires": { - "color-convert": "^2.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" } }, "proxy-addr": { @@ -21026,6 +23494,12 @@ } } }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", + "dev": true + }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -21039,24 +23513,22 @@ "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", "dev": true }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, - "q": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", - "dev": true - }, - "qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", - "dev": true - }, "qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", @@ -21096,6 +23568,12 @@ "unpipe": "1.0.0" } }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -21222,46 +23700,13 @@ } } }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", "dev": true, "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } + "throttleit": "^1.0.0" } }, "require-directory": { @@ -21275,12 +23720,6 @@ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -21298,6 +23737,15 @@ "supports-preserve-symlinks-flag": "^1.0.0" } }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -21336,6 +23784,12 @@ } } }, + "resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true + }, "restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -21428,51 +23882,21 @@ "neo-async": "^2.6.2" } }, - "saucelabs": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", - "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", - "dev": true, - "requires": { - "https-proxy-agent": "^2.2.1" - }, - "dependencies": { - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "dev": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - } - } - } - }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, "schema-utils": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", @@ -21510,38 +23934,6 @@ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", "dev": true }, - "selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", - "dev": true, - "requires": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.1" - } - } - } - }, "selfsigned": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.0.tgz", @@ -21711,12 +24103,6 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -21753,49 +24139,61 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, "slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + } + } + }, "smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true }, - "socket.io": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", - "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.2", - "engine.io": "~6.1.0", - "socket.io-adapter": "~2.3.3", - "socket.io-parser": "~4.0.4" - } - }, - "socket.io-adapter": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", - "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", - "dev": true - }, - "socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", - "dev": true, - "requires": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" - } - }, "sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", @@ -21954,21 +24352,47 @@ "minipass": "^3.1.1" } }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, - "streamroller": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.4.tgz", - "integrity": "sha512-GI9NzeD+D88UFuIlJkKNDH/IsuR+qIN7Qh8EsmhoRZr9bQoehTraRgwtLUkZbpcAw+hLPfHOypmppz8YyGK68w==", + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "requires": { - "date-format": "^4.0.4", - "debug": "^4.3.3", - "fs-extra": "^10.0.1" + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "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==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } }, "string_decoder": { @@ -21988,16 +24412,6 @@ } } }, - "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==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -22006,6 +24420,12 @@ "ansi-regex": "^5.0.1" } }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, "strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -22045,6 +24465,33 @@ "has-flag": "^3.0.0" } }, + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "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", @@ -22057,6 +24504,12 @@ "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", "dev": true }, + "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 + }, "tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -22077,6 +24530,16 @@ "yallist": "^4.0.0" } }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, "terser": { "version": "5.11.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz", @@ -22156,6 +24619,18 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "dev": true + }, + "throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "dev": true + }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -22177,6 +24652,12 @@ "os-tmpdir": "~1.0.2" } }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -22206,12 +24687,45 @@ "punycode": "^2.1.1" } }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, "tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true }, + "ts-jest": { + "version": "27.1.3", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.3.tgz", + "integrity": "sha512-6Nlura7s6uM9BVUAoqLH7JHyMXjz8gluryjpPXxr3IxZdAXnU6FhjvVLHFtfd1vsE1p8zD1OJfskkc0jhTSnkA==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^27.0.0", + "json5": "2.x", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "20.x" + }, + "dependencies": { + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, "ts-node": { "version": "10.7.0", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", @@ -22314,6 +24828,21 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "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 + }, "type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -22336,17 +24865,20 @@ "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", "dev": true }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, "typescript": { "version": "4.5.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==" }, - "ua-parser-js": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", - "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", - "dev": true - }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -22405,6 +24937,12 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -22437,6 +24975,17 @@ "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==", "dev": true }, + "v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + } + }, "validate-npm-package-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", @@ -22463,11 +25012,32 @@ "extsprintf": "^1.2.0" } }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } }, "watchpack": { "version": "2.3.1", @@ -22497,97 +25067,11 @@ "defaults": "^1.0.3" } }, - "webdriver-js-extender": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", - "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", - "dev": true, - "requires": { - "@types/selenium-webdriver": "^3.0.0", - "selenium-webdriver": "^3.0.1" - } - }, - "webdriver-manager": { - "version": "12.1.8", - "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", - "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", - "dev": true, - "requires": { - "adm-zip": "^0.4.9", - "chalk": "^1.1.1", - "del": "^2.2.0", - "glob": "^7.0.3", - "ini": "^1.3.4", - "minimist": "^1.2.0", - "q": "^1.4.1", - "request": "^2.87.0", - "rimraf": "^2.5.2", - "semver": "^5.3.0", - "xml2js": "^0.4.17" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true }, "webpack": { "version": "5.70.0", @@ -22859,21 +25343,32 @@ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", "dev": true, "requires": { - "isexe": "^2.0.0" + "iconv-lite": "0.4.24" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", "dev": true }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + }, "wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", @@ -22889,6 +25384,12 @@ "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", "dev": true }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -22927,6 +25428,18 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, "ws": { "version": "8.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", @@ -22934,20 +25447,16 @@ "dev": true, "requires": {} }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, "y18n": { @@ -22985,6 +25494,16 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", diff --git a/src-ui/package.json b/src-ui/package.json index 8d90297dc..ee84f427d 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -7,7 +7,9 @@ "build": "ng build", "test": "ng test", "lint": "ng lint", - "e2e": "ng e2e" + "e2e": "ng e2e", + "cypress:open": "cypress open", + "cypress:run": "cypress run" }, "private": true, "dependencies": { @@ -37,21 +39,15 @@ "zone.js": "~0.11.4" }, "devDependencies": { - "@angular-devkit/build-angular": "~13.3.0", - "@angular/cli": "~13.3.0", + "@angular-builders/jest": "latest", + "@angular-devkit/build-angular": "~13.2.5", + "@angular/cli": "~13.2.5", "@angular/compiler-cli": "~13.2.4", - "@types/jasmine": "~4.0.0", - "@types/jasminewd2": "~2.0.10", - "@types/node": "^17.0.22", + "@types/jest": "latest", + "@types/node": "^17.0.21", "codelyzer": "^6.0.2", - "jasmine-core": "~4.0.1", - "jasmine-spec-reporter": "~7.0.0", - "karma": "~6.3.16", - "karma-chrome-launcher": "~3.1.1", - "karma-coverage-istanbul-reporter": "~3.0.3", - "karma-jasmine": "~4.0.1", - "karma-jasmine-html-reporter": "^1.7.0", - "protractor": "~7.0.0", + "cypress": "~9.5.2", + "jest": "latest", "ts-node": "~10.7.0", "tslint": "~6.1.3", "typescript": "~4.5.5" diff --git a/src-ui/setup-jest.ts b/src-ui/setup-jest.ts new file mode 100644 index 000000000..c581590b2 --- /dev/null +++ b/src-ui/setup-jest.ts @@ -0,0 +1,30 @@ +import 'jest-preset-angular/setup-jest'; + +/* global mocks for jsdom */ +const mock = () => { + let storage: { [key: string]: string } = {}; + return { + getItem: (key: string) => (key in storage ? storage[key] : null), + setItem: (key: string, value: string) => (storage[key] = value || ''), + removeItem: (key: string) => delete storage[key], + clear: () => (storage = {}), + }; +}; + +Object.defineProperty(window, 'localStorage', { value: mock() }); +Object.defineProperty(window, 'sessionStorage', { value: mock() }); +Object.defineProperty(window, 'getComputedStyle', { + value: () => ['-webkit-appearance'], +}); + +Object.defineProperty(document.body.style, 'transform', { + value: () => { + return { + enumerable: true, + configurable: true, + }; + }, +}); + +/* output shorter and more meaningful Zone error stack traces */ +// Error.stackTraceLimit = 2; diff --git a/src-ui/src/test.ts b/src-ui/src/test.ts deleted file mode 100644 index 7b78038bb..000000000 --- a/src-ui/src/test.ts +++ /dev/null @@ -1,32 +0,0 @@ -// This file is required by karma.conf.js and loads recursively all the .spec and framework files - -import 'zone.js/testing' -import { getTestBed } from '@angular/core/testing' -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing' - -declare const require: { - context( - path: string, - deep?: boolean, - filter?: RegExp - ): { - keys(): string[] - (id: string): T - } -} - -// First, initialize the Angular testing environment. -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting(), - { - teardown: { destroyAfterEach: false }, - } -) -// Then we find all the tests. -const context = require.context('./', true, /\.spec\.ts$/) -// And load the modules. -context.keys().map(context) diff --git a/src-ui/test-config.helper.ts b/src-ui/test-config.helper.ts new file mode 100644 index 000000000..4bec94ea4 --- /dev/null +++ b/src-ui/test-config.helper.ts @@ -0,0 +1,21 @@ +import { TestBed } from '@angular/core/testing'; + +type CompilerOptions = Partial<{ + providers: any[]; + useJit: boolean; + preserveWhitespaces: boolean; +}>; +export type ConfigureFn = (testBed: typeof TestBed) => void; + +export const configureTests = (configure: ConfigureFn, compilerOptions: CompilerOptions = {}) => { + const compilerConfig: CompilerOptions = { + preserveWhitespaces: false, + ...compilerOptions, + }; + + const configuredTestBed = TestBed.configureCompiler(compilerConfig); + + configure(configuredTestBed); + + return configuredTestBed.compileComponents().then(() => configuredTestBed); +}; diff --git a/src-ui/tsconfig.spec.json b/src-ui/tsconfig.spec.json index 092345b02..58c6bb3a6 100644 --- a/src-ui/tsconfig.spec.json +++ b/src-ui/tsconfig.spec.json @@ -1,14 +1,15 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ { "extends": "./tsconfig.json", "compilerOptions": { "outDir": "./out-tsc/spec", "types": [ - "jasmine" - ] + "jest" + ], + "module": "commonjs", + "emitDecoratorMetadata": true, + "allowJs": true }, "files": [ - "src/test.ts", "src/polyfills.ts" ], "include": [ From d38bed1334ec77f4a495311c1d99412477140069 Mon Sep 17 00:00:00 2001 From: Frank Strieter Date: Tue, 22 Mar 2022 14:50:00 +0100 Subject: [PATCH 10/19] test: remove most of the boilerplate tests --- src-ui/src/app/app.component.spec.ts | 33 ----------------- .../app-frame/app-frame.component.spec.ts | 24 ------------- .../confirm-dialog.component.spec.ts | 24 ------------- .../date-dropdown.component.spec.ts | 24 ------------- .../edit-dialog/edit-dialog.component.spec.ts | 24 ------------- .../edit-dialog/edit-dialog.component.ts | 36 +++++++++---------- .../filterable-dropdown.component.spec.ts | 24 ------------- ...ggleable-dropdown-button.component.spec.ts | 24 ------------- .../input/check/check.component.spec.ts | 24 ------------- .../common/input/check/check.component.ts | 2 +- .../input/color/color.component.spec.ts | 24 ------------- .../common/input/date/date.component.spec.ts | 24 ------------- .../input/number/number.component.spec.ts | 24 ------------- .../input/select/select.component.spec.ts | 24 ------------- .../common/input/tags/tags.component.spec.ts | 24 ------------- .../common/input/text/text.component.spec.ts | 24 ------------- .../page-header/page-header.component.spec.ts | 24 ------------- .../select-dialog.component.spec.ts | 24 ------------- .../common/tag/tag.component.spec.ts | 24 ------------- .../common/toasts/toasts.component.spec.ts | 24 ------------- .../dashboard/dashboard.component.spec.ts | 24 ------------- .../saved-view-widget.component.spec.ts | 24 ------------- .../statistics-widget.component.spec.ts | 24 ------------- .../upload-file-widget.component.spec.ts | 24 ------------- .../welcome-widget.component.spec.ts | 24 ------------- .../widget-frame.component.spec.ts | 24 ------------- .../document-asn.component.spec.ts | 24 ------------- .../document-detail.component.spec.ts | 24 ------------- .../metadata-collapse.component.spec.ts | 24 ------------- .../bulk-editor/bulk-editor.component.spec.ts | 24 ------------- .../document-card-large.component.spec.ts | 24 ------------- .../document-card-small.component.spec.ts | 24 ------------- .../document-list.component.spec.ts | 24 ------------- .../filter-editor.component.spec.ts | 24 ------------- .../save-view-config-dialog.component.spec.ts | 24 ------------- ...orrespondent-edit-dialog.component.spec.ts | 24 ------------- .../correspondent-list.component.spec.ts | 24 ------------- ...ocument-type-edit-dialog.component.spec.ts | 24 ------------- .../document-type-list.component.spec.ts | 24 ------------- .../generic-list.component.spec.ts | 24 ------------- .../manage/logs/logs.component.spec.ts | 24 ------------- .../settings/settings.component.spec.ts | 24 ------------- .../tag-edit-dialog.component.spec.ts | 24 ------------- .../tag-list/tag-list.component.spec.ts | 24 ------------- .../not-found/not-found.component.spec.ts | 24 ------------- .../api-version.interceptor.spec.ts | 18 ---------- src-ui/src/app/pipes/custom-date.pipe.spec.ts | 8 ----- src-ui/src/app/pipes/safe.pipe.spec.ts | 8 ----- .../services/consumer-status.service.spec.ts | 16 --------- .../document-list-view.service.spec.ts | 16 --------- .../services/open-documents.service.spec.ts | 16 --------- .../rest/abstract-paperless-service.spec.ts | 7 ---- .../rest/correspondent.service.spec.ts | 16 --------- .../rest/document-type.service.spec.ts | 16 --------- .../services/rest/document.service.spec.ts | 16 --------- .../src/app/services/rest/log.service.spec.ts | 16 --------- .../services/rest/saved-view.service.spec.ts | 16 --------- .../app/services/rest/search.service.spec.ts | 16 --------- .../src/app/services/rest/tag.service.spec.ts | 16 --------- .../src/app/services/settings.service.spec.ts | 16 --------- src-ui/src/app/services/toast.service.spec.ts | 16 --------- 61 files changed, 19 insertions(+), 1293 deletions(-) delete mode 100644 src-ui/src/app/app.component.spec.ts delete mode 100644 src-ui/src/app/components/app-frame/app-frame.component.spec.ts delete mode 100644 src-ui/src/app/components/common/confirm-dialog/confirm-dialog.component.spec.ts delete mode 100644 src-ui/src/app/components/common/date-dropdown/date-dropdown.component.spec.ts delete mode 100644 src-ui/src/app/components/common/edit-dialog/edit-dialog.component.spec.ts delete mode 100644 src-ui/src/app/components/common/filterable-dropdown/filterable-dropdown.component.spec.ts delete mode 100644 src-ui/src/app/components/common/filterable-dropdown/toggleable-dropdown-button/toggleable-dropdown-button.component.spec.ts delete mode 100644 src-ui/src/app/components/common/input/check/check.component.spec.ts delete mode 100644 src-ui/src/app/components/common/input/color/color.component.spec.ts delete mode 100644 src-ui/src/app/components/common/input/date/date.component.spec.ts delete mode 100644 src-ui/src/app/components/common/input/number/number.component.spec.ts delete mode 100644 src-ui/src/app/components/common/input/select/select.component.spec.ts delete mode 100644 src-ui/src/app/components/common/input/tags/tags.component.spec.ts delete mode 100644 src-ui/src/app/components/common/input/text/text.component.spec.ts delete mode 100644 src-ui/src/app/components/common/page-header/page-header.component.spec.ts delete mode 100644 src-ui/src/app/components/common/select-dialog/select-dialog.component.spec.ts delete mode 100644 src-ui/src/app/components/common/tag/tag.component.spec.ts delete mode 100644 src-ui/src/app/components/common/toasts/toasts.component.spec.ts delete mode 100644 src-ui/src/app/components/dashboard/dashboard.component.spec.ts delete mode 100644 src-ui/src/app/components/dashboard/widgets/saved-view-widget/saved-view-widget.component.spec.ts delete mode 100644 src-ui/src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.spec.ts delete mode 100644 src-ui/src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.spec.ts delete mode 100644 src-ui/src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.spec.ts delete mode 100644 src-ui/src/app/components/dashboard/widgets/widget-frame/widget-frame.component.spec.ts delete mode 100644 src-ui/src/app/components/document-asn/document-asn.component.spec.ts delete mode 100644 src-ui/src/app/components/document-detail/document-detail.component.spec.ts delete mode 100644 src-ui/src/app/components/document-detail/metadata-collapse/metadata-collapse.component.spec.ts delete mode 100644 src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.spec.ts delete mode 100644 src-ui/src/app/components/document-list/document-card-large/document-card-large.component.spec.ts delete mode 100644 src-ui/src/app/components/document-list/document-card-small/document-card-small.component.spec.ts delete mode 100644 src-ui/src/app/components/document-list/document-list.component.spec.ts delete mode 100644 src-ui/src/app/components/document-list/filter-editor/filter-editor.component.spec.ts delete mode 100644 src-ui/src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.spec.ts delete mode 100644 src-ui/src/app/components/manage/correspondent-list/correspondent-edit-dialog/correspondent-edit-dialog.component.spec.ts delete mode 100644 src-ui/src/app/components/manage/correspondent-list/correspondent-list.component.spec.ts delete mode 100644 src-ui/src/app/components/manage/document-type-list/document-type-edit-dialog/document-type-edit-dialog.component.spec.ts delete mode 100644 src-ui/src/app/components/manage/document-type-list/document-type-list.component.spec.ts delete mode 100644 src-ui/src/app/components/manage/generic-list/generic-list.component.spec.ts delete mode 100644 src-ui/src/app/components/manage/logs/logs.component.spec.ts delete mode 100644 src-ui/src/app/components/manage/settings/settings.component.spec.ts delete mode 100644 src-ui/src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.spec.ts delete mode 100644 src-ui/src/app/components/manage/tag-list/tag-list.component.spec.ts delete mode 100644 src-ui/src/app/components/not-found/not-found.component.spec.ts delete mode 100644 src-ui/src/app/interceptors/api-version.interceptor.spec.ts delete mode 100644 src-ui/src/app/pipes/custom-date.pipe.spec.ts delete mode 100644 src-ui/src/app/pipes/safe.pipe.spec.ts delete mode 100644 src-ui/src/app/services/consumer-status.service.spec.ts delete mode 100644 src-ui/src/app/services/document-list-view.service.spec.ts delete mode 100644 src-ui/src/app/services/open-documents.service.spec.ts delete mode 100644 src-ui/src/app/services/rest/abstract-paperless-service.spec.ts delete mode 100644 src-ui/src/app/services/rest/correspondent.service.spec.ts delete mode 100644 src-ui/src/app/services/rest/document-type.service.spec.ts delete mode 100644 src-ui/src/app/services/rest/document.service.spec.ts delete mode 100644 src-ui/src/app/services/rest/log.service.spec.ts delete mode 100644 src-ui/src/app/services/rest/saved-view.service.spec.ts delete mode 100644 src-ui/src/app/services/rest/search.service.spec.ts delete mode 100644 src-ui/src/app/services/rest/tag.service.spec.ts delete mode 100644 src-ui/src/app/services/settings.service.spec.ts delete mode 100644 src-ui/src/app/services/toast.service.spec.ts diff --git a/src-ui/src/app/app.component.spec.ts b/src-ui/src/app/app.component.spec.ts deleted file mode 100644 index f3ce2b3c2..000000000 --- a/src-ui/src/app/app.component.spec.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { TestBed } from '@angular/core/testing' -import { RouterTestingModule } from '@angular/router/testing' -import { AppComponent } from './app.component' - -describe('AppComponent', () => { - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [RouterTestingModule], - declarations: [AppComponent], - }).compileComponents() - }) - - it('should create the app', () => { - const fixture = TestBed.createComponent(AppComponent) - const app = fixture.componentInstance - expect(app).toBeTruthy() - }) - - it(`should have as title 'paperless-ui'`, () => { - const fixture = TestBed.createComponent(AppComponent) - const app = fixture.componentInstance - expect(app.title).toEqual('paperless-ui') - }) - - it('should render title', () => { - const fixture = TestBed.createComponent(AppComponent) - fixture.detectChanges() - const compiled = fixture.nativeElement - expect(compiled.querySelector('.content span').textContent).toContain( - 'paperless-ui app is running!' - ) - }) -}) diff --git a/src-ui/src/app/components/app-frame/app-frame.component.spec.ts b/src-ui/src/app/components/app-frame/app-frame.component.spec.ts deleted file mode 100644 index ae32cc1f7..000000000 --- a/src-ui/src/app/components/app-frame/app-frame.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { AppFrameComponent } from './app-frame.component' - -describe('AppFrameComponent', () => { - let component: AppFrameComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [AppFrameComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(AppFrameComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/common/confirm-dialog/confirm-dialog.component.spec.ts b/src-ui/src/app/components/common/confirm-dialog/confirm-dialog.component.spec.ts deleted file mode 100644 index 7d92d78e5..000000000 --- a/src-ui/src/app/components/common/confirm-dialog/confirm-dialog.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { ConfirmDialogComponent } from './confirm-dialog.component' - -describe('ConfirmDialogComponent', () => { - let component: ConfirmDialogComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ConfirmDialogComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(ConfirmDialogComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/common/date-dropdown/date-dropdown.component.spec.ts b/src-ui/src/app/components/common/date-dropdown/date-dropdown.component.spec.ts deleted file mode 100644 index b689078e1..000000000 --- a/src-ui/src/app/components/common/date-dropdown/date-dropdown.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { DateDropdownComponent } from './date-dropdown.component' - -describe('DateDropdownComponent', () => { - let component: DateDropdownComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [DateDropdownComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(DateDropdownComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.spec.ts b/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.spec.ts deleted file mode 100644 index 2f258b4d1..000000000 --- a/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { EditDialogComponent } from './edit-dialog.component' - -describe('EditDialogComponent', () => { - let component: EditDialogComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [EditDialogComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(EditDialogComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.ts b/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.ts index 92b16a93d..1ba9c53ec 100644 --- a/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.ts +++ b/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.ts @@ -19,27 +19,27 @@ export abstract class EditDialogComponent ) {} @Input() - dialogMode: string = 'create' + dialogMode: string = 'create'; @Input() - object: T + object: T; @Output() - success = new EventEmitter() + success = new EventEmitter(); - networkActive = false + networkActive = false; - closeEnabled = false + closeEnabled = false; - error = null + error = null; - abstract getForm(): FormGroup + abstract getForm(): FormGroup; - objectForm: FormGroup = this.getForm() + objectForm: FormGroup = this.getForm(); ngOnInit(): void { if (this.object != null) { - this.objectForm.patchValue(this.object) + this.objectForm.patchValue(this.object); } // wait to enable close button so it doesnt steal focus from input since its the first clickable element in the DOM @@ -49,34 +49,34 @@ export abstract class EditDialogComponent } getCreateTitle() { - return $localize`Create new item` + return $localize`Create new item`; } getEditTitle() { - return $localize`Edit item` + return $localize`Edit item`; } getSaveErrorMessage(error: string) { - return $localize`Could not save element: ${error}` + return $localize`Could not save element: ${error}`; } getTitle() { switch (this.dialogMode) { case 'create': - return this.getCreateTitle() + return this.getCreateTitle(); case 'edit': - return this.getEditTitle() + return this.getEditTitle(); default: break } } getMatchingAlgorithms() { - return MATCHING_ALGORITHMS + return MATCHING_ALGORITHMS; } get patternRequired(): boolean { - return this.objectForm?.value.matching_algorithm !== MATCH_AUTO + return this.objectForm?.value.matching_algorithm !== MATCH_AUTO; } save() { @@ -90,7 +90,7 @@ export abstract class EditDialogComponent serverResponse = this.service.create(newObject) break case 'edit': - serverResponse = this.service.update(newObject) + serverResponse = this.service.update(newObject); default: break } @@ -108,6 +108,6 @@ export abstract class EditDialogComponent } cancel() { - this.activeModal.close() + this.activeModal.close(); } } diff --git a/src-ui/src/app/components/common/filterable-dropdown/filterable-dropdown.component.spec.ts b/src-ui/src/app/components/common/filterable-dropdown/filterable-dropdown.component.spec.ts deleted file mode 100644 index 30b00adff..000000000 --- a/src-ui/src/app/components/common/filterable-dropdown/filterable-dropdown.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { FilterableDropodownComponent } from './filterable-dropdown.component' - -describe('FilterableDropodownComponent', () => { - let component: FilterableDropodownComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [FilterableDropodownComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(FilterableDropodownComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/common/filterable-dropdown/toggleable-dropdown-button/toggleable-dropdown-button.component.spec.ts b/src-ui/src/app/components/common/filterable-dropdown/toggleable-dropdown-button/toggleable-dropdown-button.component.spec.ts deleted file mode 100644 index 4c9d79396..000000000 --- a/src-ui/src/app/components/common/filterable-dropdown/toggleable-dropdown-button/toggleable-dropdown-button.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { ToggleableDropdownButtonComponent } from './toggleable-dropdown-button.component' - -describe('ToggleableDropdownButtonComponent', () => { - let component: ToggleableDropdownButtonComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ToggleableDropdownButtonComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(ToggleableDropdownButtonComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/common/input/check/check.component.spec.ts b/src-ui/src/app/components/common/input/check/check.component.spec.ts deleted file mode 100644 index 0ac6271a4..000000000 --- a/src-ui/src/app/components/common/input/check/check.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { CheckComponent } from './check.component' - -describe('CheckComponent', () => { - let component: CheckComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [CheckComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(CheckComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/common/input/check/check.component.ts b/src-ui/src/app/components/common/input/check/check.component.ts index f4a6e527e..bf99b3c6a 100644 --- a/src-ui/src/app/components/common/input/check/check.component.ts +++ b/src-ui/src/app/components/common/input/check/check.component.ts @@ -17,6 +17,6 @@ import { AbstractInputComponent } from '../abstract-input' }) export class CheckComponent extends AbstractInputComponent { constructor() { - super() + super(); } } diff --git a/src-ui/src/app/components/common/input/color/color.component.spec.ts b/src-ui/src/app/components/common/input/color/color.component.spec.ts deleted file mode 100644 index f431ebe73..000000000 --- a/src-ui/src/app/components/common/input/color/color.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { ColorComponent } from './color.component' - -describe('ColorComponent', () => { - let component: ColorComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ColorComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(ColorComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/common/input/date/date.component.spec.ts b/src-ui/src/app/components/common/input/date/date.component.spec.ts deleted file mode 100644 index e2f0f1014..000000000 --- a/src-ui/src/app/components/common/input/date/date.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { DateComponent } from './date.component' - -describe('DateComponent', () => { - let component: DateComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [DateComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(DateComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/common/input/number/number.component.spec.ts b/src-ui/src/app/components/common/input/number/number.component.spec.ts deleted file mode 100644 index f513af1d5..000000000 --- a/src-ui/src/app/components/common/input/number/number.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { NumberComponent } from './number.component' - -describe('NumberComponent', () => { - let component: NumberComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [NumberComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(NumberComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/common/input/select/select.component.spec.ts b/src-ui/src/app/components/common/input/select/select.component.spec.ts deleted file mode 100644 index ddab3ab94..000000000 --- a/src-ui/src/app/components/common/input/select/select.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { SelectComponent } from './select.component' - -describe('SelectComponent', () => { - let component: SelectComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [SelectComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(SelectComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/common/input/tags/tags.component.spec.ts b/src-ui/src/app/components/common/input/tags/tags.component.spec.ts deleted file mode 100644 index c2e22f806..000000000 --- a/src-ui/src/app/components/common/input/tags/tags.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { TagsComponent } from './tags.component' - -describe('TagsComponent', () => { - let component: TagsComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [TagsComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(TagsComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/common/input/text/text.component.spec.ts b/src-ui/src/app/components/common/input/text/text.component.spec.ts deleted file mode 100644 index 509d14ad3..000000000 --- a/src-ui/src/app/components/common/input/text/text.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { TextComponent } from './text.component' - -describe('TextComponent', () => { - let component: TextComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [TextComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(TextComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/common/page-header/page-header.component.spec.ts b/src-ui/src/app/components/common/page-header/page-header.component.spec.ts deleted file mode 100644 index 711fffbfd..000000000 --- a/src-ui/src/app/components/common/page-header/page-header.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { PageHeaderComponent } from './page-header.component' - -describe('PageHeaderComponent', () => { - let component: PageHeaderComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [PageHeaderComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(PageHeaderComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/common/select-dialog/select-dialog.component.spec.ts b/src-ui/src/app/components/common/select-dialog/select-dialog.component.spec.ts deleted file mode 100644 index 06ab79ef8..000000000 --- a/src-ui/src/app/components/common/select-dialog/select-dialog.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { SelectDialogComponent } from './select-dialog.component' - -describe('SelectDialogComponent', () => { - let component: SelectDialogComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [SelectDialogComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(SelectDialogComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/common/tag/tag.component.spec.ts b/src-ui/src/app/components/common/tag/tag.component.spec.ts deleted file mode 100644 index 0b324ecf0..000000000 --- a/src-ui/src/app/components/common/tag/tag.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { TagComponent } from './tag.component' - -describe('TagComponent', () => { - let component: TagComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [TagComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(TagComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/common/toasts/toasts.component.spec.ts b/src-ui/src/app/components/common/toasts/toasts.component.spec.ts deleted file mode 100644 index 26c006345..000000000 --- a/src-ui/src/app/components/common/toasts/toasts.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { ToastsComponent } from './toasts.component' - -describe('ToastsComponent', () => { - let component: ToastsComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ToastsComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(ToastsComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/dashboard/dashboard.component.spec.ts b/src-ui/src/app/components/dashboard/dashboard.component.spec.ts deleted file mode 100644 index 623e13628..000000000 --- a/src-ui/src/app/components/dashboard/dashboard.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { DashboardComponent } from './dashboard.component' - -describe('DashboardComponent', () => { - let component: DashboardComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [DashboardComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(DashboardComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/dashboard/widgets/saved-view-widget/saved-view-widget.component.spec.ts b/src-ui/src/app/components/dashboard/widgets/saved-view-widget/saved-view-widget.component.spec.ts deleted file mode 100644 index df26f34c8..000000000 --- a/src-ui/src/app/components/dashboard/widgets/saved-view-widget/saved-view-widget.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { SavedViewWidgetComponent } from './saved-view-widget.component' - -describe('SavedViewWidgetComponent', () => { - let component: SavedViewWidgetComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [SavedViewWidgetComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(SavedViewWidgetComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.spec.ts b/src-ui/src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.spec.ts deleted file mode 100644 index ba9523dc6..000000000 --- a/src-ui/src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { StatisticsWidgetComponent } from './statistics-widget.component' - -describe('StatisticsWidgetComponent', () => { - let component: StatisticsWidgetComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [StatisticsWidgetComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(StatisticsWidgetComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.spec.ts b/src-ui/src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.spec.ts deleted file mode 100644 index 6f05feaec..000000000 --- a/src-ui/src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { UploadFileWidgetComponent } from './upload-file-widget.component' - -describe('UploadFileWidgetComponent', () => { - let component: UploadFileWidgetComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [UploadFileWidgetComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(UploadFileWidgetComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.spec.ts b/src-ui/src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.spec.ts deleted file mode 100644 index 7dee2aad1..000000000 --- a/src-ui/src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { WelcomeWidgetComponent } from './welcome-widget.component' - -describe('WelcomeWidgetComponent', () => { - let component: WelcomeWidgetComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [WelcomeWidgetComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(WelcomeWidgetComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/dashboard/widgets/widget-frame/widget-frame.component.spec.ts b/src-ui/src/app/components/dashboard/widgets/widget-frame/widget-frame.component.spec.ts deleted file mode 100644 index 750498f01..000000000 --- a/src-ui/src/app/components/dashboard/widgets/widget-frame/widget-frame.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { WidgetFrameComponent } from './widget-frame.component' - -describe('WidgetFrameComponent', () => { - let component: WidgetFrameComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [WidgetFrameComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(WidgetFrameComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/document-asn/document-asn.component.spec.ts b/src-ui/src/app/components/document-asn/document-asn.component.spec.ts deleted file mode 100644 index 92290955d..000000000 --- a/src-ui/src/app/components/document-asn/document-asn.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { DocumentAsnComponent } from './document-asn.component' - -describe('DocumentASNComponentComponent', () => { - let component: DocumentAsnComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [DocumentAsnComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(DocumentAsnComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/document-detail/document-detail.component.spec.ts b/src-ui/src/app/components/document-detail/document-detail.component.spec.ts deleted file mode 100644 index bcd7c396f..000000000 --- a/src-ui/src/app/components/document-detail/document-detail.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { DocumentDetailComponent } from './document-detail.component' - -describe('DocumentDetailComponent', () => { - let component: DocumentDetailComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [DocumentDetailComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(DocumentDetailComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/document-detail/metadata-collapse/metadata-collapse.component.spec.ts b/src-ui/src/app/components/document-detail/metadata-collapse/metadata-collapse.component.spec.ts deleted file mode 100644 index 8e133d52e..000000000 --- a/src-ui/src/app/components/document-detail/metadata-collapse/metadata-collapse.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { MetadataCollapseComponent } from './metadata-collapse.component' - -describe('MetadataCollapseComponent', () => { - let component: MetadataCollapseComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [MetadataCollapseComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(MetadataCollapseComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.spec.ts b/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.spec.ts deleted file mode 100644 index df43a8873..000000000 --- a/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { BulkEditorComponent } from './bulk-editor.component' - -describe('BulkEditorComponent', () => { - let component: BulkEditorComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [BulkEditorComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(BulkEditorComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/document-list/document-card-large/document-card-large.component.spec.ts b/src-ui/src/app/components/document-list/document-card-large/document-card-large.component.spec.ts deleted file mode 100644 index 49a2ff3ab..000000000 --- a/src-ui/src/app/components/document-list/document-card-large/document-card-large.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { DocumentCardLargeComponent } from './document-card-large.component' - -describe('DocumentCardLargeComponent', () => { - let component: DocumentCardLargeComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [DocumentCardLargeComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(DocumentCardLargeComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.spec.ts b/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.spec.ts deleted file mode 100644 index ae5a9cc5a..000000000 --- a/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { DocumentCardSmallComponent } from './document-card-small.component' - -describe('DocumentCardSmallComponent', () => { - let component: DocumentCardSmallComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [DocumentCardSmallComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(DocumentCardSmallComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/document-list/document-list.component.spec.ts b/src-ui/src/app/components/document-list/document-list.component.spec.ts deleted file mode 100644 index dec0355e5..000000000 --- a/src-ui/src/app/components/document-list/document-list.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { DocumentListComponent } from './document-list.component' - -describe('DocumentListComponent', () => { - let component: DocumentListComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [DocumentListComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(DocumentListComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.spec.ts b/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.spec.ts deleted file mode 100644 index cec3fed1a..000000000 --- a/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { FilterEditorComponent } from './filter-editor.component' - -describe('FilterEditorComponent', () => { - let component: FilterEditorComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [FilterEditorComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(FilterEditorComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.spec.ts b/src-ui/src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.spec.ts deleted file mode 100644 index 5087da37a..000000000 --- a/src-ui/src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { SaveViewConfigDialogComponent } from './save-view-config-dialog.component' - -describe('SaveViewConfigDialogComponent', () => { - let component: SaveViewConfigDialogComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [SaveViewConfigDialogComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(SaveViewConfigDialogComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/manage/correspondent-list/correspondent-edit-dialog/correspondent-edit-dialog.component.spec.ts b/src-ui/src/app/components/manage/correspondent-list/correspondent-edit-dialog/correspondent-edit-dialog.component.spec.ts deleted file mode 100644 index 1a491b113..000000000 --- a/src-ui/src/app/components/manage/correspondent-list/correspondent-edit-dialog/correspondent-edit-dialog.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { CorrespondentEditDialogComponent } from './correspondent-edit-dialog.component' - -describe('CorrespondentEditDialogComponent', () => { - let component: CorrespondentEditDialogComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [CorrespondentEditDialogComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(CorrespondentEditDialogComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/manage/correspondent-list/correspondent-list.component.spec.ts b/src-ui/src/app/components/manage/correspondent-list/correspondent-list.component.spec.ts deleted file mode 100644 index cb12f5d27..000000000 --- a/src-ui/src/app/components/manage/correspondent-list/correspondent-list.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { CorrespondentListComponent } from './correspondent-list.component' - -describe('CorrespondentListComponent', () => { - let component: CorrespondentListComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [CorrespondentListComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(CorrespondentListComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/manage/document-type-list/document-type-edit-dialog/document-type-edit-dialog.component.spec.ts b/src-ui/src/app/components/manage/document-type-list/document-type-edit-dialog/document-type-edit-dialog.component.spec.ts deleted file mode 100644 index 6aa291bd2..000000000 --- a/src-ui/src/app/components/manage/document-type-list/document-type-edit-dialog/document-type-edit-dialog.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { DocumentTypeEditDialogComponent } from './document-type-edit-dialog.component' - -describe('DocumentTypeEditDialogComponent', () => { - let component: DocumentTypeEditDialogComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [DocumentTypeEditDialogComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(DocumentTypeEditDialogComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/manage/document-type-list/document-type-list.component.spec.ts b/src-ui/src/app/components/manage/document-type-list/document-type-list.component.spec.ts deleted file mode 100644 index b78d9bf06..000000000 --- a/src-ui/src/app/components/manage/document-type-list/document-type-list.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { DocumentTypeListComponent } from './document-type-list.component' - -describe('DocumentTypeListComponent', () => { - let component: DocumentTypeListComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [DocumentTypeListComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(DocumentTypeListComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/manage/generic-list/generic-list.component.spec.ts b/src-ui/src/app/components/manage/generic-list/generic-list.component.spec.ts deleted file mode 100644 index b3700e1ea..000000000 --- a/src-ui/src/app/components/manage/generic-list/generic-list.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { GenericListComponent } from './generic-list.component' - -describe('GenericListComponent', () => { - let component: GenericListComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [GenericListComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(GenericListComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/manage/logs/logs.component.spec.ts b/src-ui/src/app/components/manage/logs/logs.component.spec.ts deleted file mode 100644 index 9a06d413c..000000000 --- a/src-ui/src/app/components/manage/logs/logs.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { LogsComponent } from './logs.component' - -describe('LogsComponent', () => { - let component: LogsComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [LogsComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(LogsComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/manage/settings/settings.component.spec.ts b/src-ui/src/app/components/manage/settings/settings.component.spec.ts deleted file mode 100644 index 0ba0ab117..000000000 --- a/src-ui/src/app/components/manage/settings/settings.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { SettingsComponent } from './settings.component' - -describe('SettingsComponent', () => { - let component: SettingsComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [SettingsComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(SettingsComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.spec.ts b/src-ui/src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.spec.ts deleted file mode 100644 index 72cec03c2..000000000 --- a/src-ui/src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { TagEditDialogComponent } from './tag-edit-dialog.component' - -describe('TagEditDialogComponent', () => { - let component: TagEditDialogComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [TagEditDialogComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(TagEditDialogComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/manage/tag-list/tag-list.component.spec.ts b/src-ui/src/app/components/manage/tag-list/tag-list.component.spec.ts deleted file mode 100644 index 75c038d08..000000000 --- a/src-ui/src/app/components/manage/tag-list/tag-list.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { TagListComponent } from './tag-list.component' - -describe('TagListComponent', () => { - let component: TagListComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [TagListComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(TagListComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/components/not-found/not-found.component.spec.ts b/src-ui/src/app/components/not-found/not-found.component.spec.ts deleted file mode 100644 index e99177b78..000000000 --- a/src-ui/src/app/components/not-found/not-found.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing' - -import { NotFoundComponent } from './not-found.component' - -describe('NotFoundComponent', () => { - let component: NotFoundComponent - let fixture: ComponentFixture - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [NotFoundComponent], - }).compileComponents() - }) - - beforeEach(() => { - fixture = TestBed.createComponent(NotFoundComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/interceptors/api-version.interceptor.spec.ts b/src-ui/src/app/interceptors/api-version.interceptor.spec.ts deleted file mode 100644 index b1a2a9e04..000000000 --- a/src-ui/src/app/interceptors/api-version.interceptor.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { TestBed } from '@angular/core/testing' - -import { ApiVersionInterceptor } from './api-version.interceptor' - -describe('ApiVersionInterceptor', () => { - beforeEach(() => - TestBed.configureTestingModule({ - providers: [ApiVersionInterceptor], - }) - ) - - it('should be created', () => { - const interceptor: ApiVersionInterceptor = TestBed.inject( - ApiVersionInterceptor - ) - expect(interceptor).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/pipes/custom-date.pipe.spec.ts b/src-ui/src/app/pipes/custom-date.pipe.spec.ts deleted file mode 100644 index 063d80da5..000000000 --- a/src-ui/src/app/pipes/custom-date.pipe.spec.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { CustomDatePipe } from './custom-date.pipe' - -describe('CustomDatePipe', () => { - it('create an instance', () => { - const pipe = new CustomDatePipe() - expect(pipe).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/pipes/safe.pipe.spec.ts b/src-ui/src/app/pipes/safe.pipe.spec.ts deleted file mode 100644 index 2fca4cee1..000000000 --- a/src-ui/src/app/pipes/safe.pipe.spec.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { SafePipe } from './safe.pipe' - -describe('SafePipe', () => { - it('create an instance', () => { - const pipe = new SafePipe() - expect(pipe).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/services/consumer-status.service.spec.ts b/src-ui/src/app/services/consumer-status.service.spec.ts deleted file mode 100644 index 03a5b003f..000000000 --- a/src-ui/src/app/services/consumer-status.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing' - -import { ConsumerStatusService } from './consumer-status.service' - -describe('ConsumerStatusService', () => { - let service: ConsumerStatusService - - beforeEach(() => { - TestBed.configureTestingModule({}) - service = TestBed.inject(ConsumerStatusService) - }) - - it('should be created', () => { - expect(service).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/services/document-list-view.service.spec.ts b/src-ui/src/app/services/document-list-view.service.spec.ts deleted file mode 100644 index bbb0ed8f2..000000000 --- a/src-ui/src/app/services/document-list-view.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing' - -import { DocumentListViewService } from './document-list-view.service' - -describe('DocumentListViewService', () => { - let service: DocumentListViewService - - beforeEach(() => { - TestBed.configureTestingModule({}) - service = TestBed.inject(DocumentListViewService) - }) - - it('should be created', () => { - expect(service).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/services/open-documents.service.spec.ts b/src-ui/src/app/services/open-documents.service.spec.ts deleted file mode 100644 index dcc18b05b..000000000 --- a/src-ui/src/app/services/open-documents.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing' - -import { OpenDocumentsService } from './open-documents.service' - -describe('OpenDocumentsService', () => { - let service: OpenDocumentsService - - beforeEach(() => { - TestBed.configureTestingModule({}) - service = TestBed.inject(OpenDocumentsService) - }) - - it('should be created', () => { - expect(service).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/services/rest/abstract-paperless-service.spec.ts b/src-ui/src/app/services/rest/abstract-paperless-service.spec.ts deleted file mode 100644 index 99207410d..000000000 --- a/src-ui/src/app/services/rest/abstract-paperless-service.spec.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { AbstractPaperlessService } from './abstract-paperless-service' - -describe('AbstractPaperlessService', () => { - it('should create an instance', () => { - expect(new AbstractPaperlessService()).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/services/rest/correspondent.service.spec.ts b/src-ui/src/app/services/rest/correspondent.service.spec.ts deleted file mode 100644 index 56ad7cc2d..000000000 --- a/src-ui/src/app/services/rest/correspondent.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing' - -import { CorrespondentService } from './correspondent.service' - -describe('CorrespondentService', () => { - let service: CorrespondentService - - beforeEach(() => { - TestBed.configureTestingModule({}) - service = TestBed.inject(CorrespondentService) - }) - - it('should be created', () => { - expect(service).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/services/rest/document-type.service.spec.ts b/src-ui/src/app/services/rest/document-type.service.spec.ts deleted file mode 100644 index 58ff37ce0..000000000 --- a/src-ui/src/app/services/rest/document-type.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing' - -import { DocumentTypeService } from './document-type.service' - -describe('DocumentTypeService', () => { - let service: DocumentTypeService - - beforeEach(() => { - TestBed.configureTestingModule({}) - service = TestBed.inject(DocumentTypeService) - }) - - it('should be created', () => { - expect(service).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/services/rest/document.service.spec.ts b/src-ui/src/app/services/rest/document.service.spec.ts deleted file mode 100644 index 933a0f92c..000000000 --- a/src-ui/src/app/services/rest/document.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing' - -import { DocumentService } from './document.service' - -describe('DocumentService', () => { - let service: DocumentService - - beforeEach(() => { - TestBed.configureTestingModule({}) - service = TestBed.inject(DocumentService) - }) - - it('should be created', () => { - expect(service).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/services/rest/log.service.spec.ts b/src-ui/src/app/services/rest/log.service.spec.ts deleted file mode 100644 index 625a8fffe..000000000 --- a/src-ui/src/app/services/rest/log.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing' - -import { LogService } from './log.service' - -describe('LogService', () => { - let service: LogService - - beforeEach(() => { - TestBed.configureTestingModule({}) - service = TestBed.inject(LogService) - }) - - it('should be created', () => { - expect(service).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/services/rest/saved-view.service.spec.ts b/src-ui/src/app/services/rest/saved-view.service.spec.ts deleted file mode 100644 index 59b979a63..000000000 --- a/src-ui/src/app/services/rest/saved-view.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing' - -import { SavedViewService } from './saved-view.service' - -describe('SavedViewService', () => { - let service: SavedViewService - - beforeEach(() => { - TestBed.configureTestingModule({}) - service = TestBed.inject(SavedViewService) - }) - - it('should be created', () => { - expect(service).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/services/rest/search.service.spec.ts b/src-ui/src/app/services/rest/search.service.spec.ts deleted file mode 100644 index 3bb880213..000000000 --- a/src-ui/src/app/services/rest/search.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing' - -import { SearchService } from './search.service' - -describe('SearchService', () => { - let service: SearchService - - beforeEach(() => { - TestBed.configureTestingModule({}) - service = TestBed.inject(SearchService) - }) - - it('should be created', () => { - expect(service).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/services/rest/tag.service.spec.ts b/src-ui/src/app/services/rest/tag.service.spec.ts deleted file mode 100644 index 279d44acb..000000000 --- a/src-ui/src/app/services/rest/tag.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing' - -import { TagService } from './tag.service' - -describe('TagService', () => { - let service: TagService - - beforeEach(() => { - TestBed.configureTestingModule({}) - service = TestBed.inject(TagService) - }) - - it('should be created', () => { - expect(service).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/services/settings.service.spec.ts b/src-ui/src/app/services/settings.service.spec.ts deleted file mode 100644 index cd22f5571..000000000 --- a/src-ui/src/app/services/settings.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing' - -import { SettingsService } from './settings.service' - -describe('SettingsService', () => { - let service: SettingsService - - beforeEach(() => { - TestBed.configureTestingModule({}) - service = TestBed.inject(SettingsService) - }) - - it('should be created', () => { - expect(service).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/services/toast.service.spec.ts b/src-ui/src/app/services/toast.service.spec.ts deleted file mode 100644 index c6c382013..000000000 --- a/src-ui/src/app/services/toast.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing' - -import { ToastService } from './toast.service' - -describe('ToastService', () => { - let service: ToastService - - beforeEach(() => { - TestBed.configureTestingModule({}) - service = TestBed.inject(ToastService) - }) - - it('should be created', () => { - expect(service).toBeTruthy() - }) -}) From afcb5fe3cfc8c6ee1a277b1a85548170ab2cc16c Mon Sep 17 00:00:00 2001 From: Frank Strieter Date: Tue, 22 Mar 2022 21:05:25 +0100 Subject: [PATCH 11/19] test: add cypress test for documents list --- src-ui/.gitignore | 1 + src-ui/cypress/integration/spec.ts | 7 - src-ui/package-lock.json | 276 +++++++++++++++++++++++++++++ src-ui/package.json | 15 +- 4 files changed, 286 insertions(+), 13 deletions(-) delete mode 100644 src-ui/cypress/integration/spec.ts diff --git a/src-ui/.gitignore b/src-ui/.gitignore index 53a8849ee..963d2f8ee 100644 --- a/src-ui/.gitignore +++ b/src-ui/.gitignore @@ -45,3 +45,4 @@ testem.log # System Files .DS_Store Thumbs.db +cypress/videos/**/* diff --git a/src-ui/cypress/integration/spec.ts b/src-ui/cypress/integration/spec.ts deleted file mode 100644 index 6b0753a8a..000000000 --- a/src-ui/cypress/integration/spec.ts +++ /dev/null @@ -1,7 +0,0 @@ -describe('My First Test', () => { - it('Visits the initial project page', () => { - cy.visit('/') - cy.contains('Welcome') - cy.contains('sandbox app is running!') - }) -}) diff --git a/src-ui/package-lock.json b/src-ui/package-lock.json index af21d32a7..647b365b9 100644 --- a/src-ui/package-lock.json +++ b/src-ui/package-lock.json @@ -14949,6 +14949,89 @@ } } }, + "@cypress/schematic": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@cypress/schematic/-/schematic-1.6.0.tgz", + "integrity": "sha512-ENHceK21AANBCthaiQ4gJGEvHsqJ9wS3b9PjnlD4MKOMzqwU/WMrJAs/Xnxa6PGh3btB2w0xNN+0beeaf0KiCA==", + "dev": true, + "requires": { + "@angular-devkit/architect": "^0.1202.10", + "@angular-devkit/core": "^12.2.10", + "@angular-devkit/schematics": "^12.2.10", + "@schematics/angular": "^12.2.10", + "jsonc-parser": "^3.0.0", + "rxjs": "~6.6.0" + }, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.1202.16", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.16.tgz", + "integrity": "sha512-VUGyAr+5RmlcPjo8mZSRJ/wkm3hCPn9PJyorAnc1IzrqD+XkgcDME86HP3YheLsOsc1Mn7j6Zh3T1rAclAWw/w==", + "dev": true, + "requires": { + "@angular-devkit/core": "12.2.16", + "rxjs": "6.6.7" + } + }, + "@angular-devkit/core": { + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.16.tgz", + "integrity": "sha512-cnVtUYSET27B5mRIBp38mpKIX0iHv/hWKiPo74WCGrNwTgwmMHngjgQ4ySn/w1W4s8LL6TDW55ZkRdwyk8TVMQ==", + "dev": true, + "requires": { + "ajv": "8.6.2", + "ajv-formats": "2.1.0", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + } + }, + "@angular-devkit/schematics": { + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.2.16.tgz", + "integrity": "sha512-ToyZBCGilSeeLmhAxmeJ0PykmbKLoME+uK78gC64xJtNu9e3oVnmog8b8g9Ay9hTwZJ96HvNa16po11Gfbbn6A==", + "dev": true, + "requires": { + "@angular-devkit/core": "12.2.16", + "ora": "5.4.1", + "rxjs": "6.6.7" + } + }, + "@schematics/angular": { + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.2.16.tgz", + "integrity": "sha512-EITPMaRE7iCosf0nyZFOpxTDAiPD3qm4QUxHKcwIaJTrzi89nBoUubw8+pFy5/Gtpadww80YD8ODV64B1bPGMA==", + "dev": true, + "requires": { + "@angular-devkit/core": "12.2.16", + "@angular-devkit/schematics": "12.2.16", + "jsonc-parser": "3.0.0" + } + }, + "ajv": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", + "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.0.tgz", + "integrity": "sha512-USH2jBb+C/hIpwD2iRjp0pe0k+MvzG0mlSn/FIdCgQhUb9ALPRjt2KIQdfZDS9r0ZIeUAg7gOu9KL0PFqGqr5Q==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + } + } + } + }, "@cypress/xvfb": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", @@ -14982,6 +15065,21 @@ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", "dev": true }, + "@hapi/hoek": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==", + "dev": true + }, + "@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -15683,6 +15781,27 @@ "jsonc-parser": "3.0.0" } }, + "@sideway/address": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", + "integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==", + "dev": true + }, + "@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true + }, "@sinonjs/commons": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", @@ -16545,6 +16664,15 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, + "axios": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", + "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "dev": true, + "requires": { + "follow-redirects": "^1.14.7" + } + }, "axobject-query": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", @@ -17384,6 +17512,105 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "concurrently": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.0.0.tgz", + "integrity": "sha512-WKM7PUsI8wyXpF80H+zjHP32fsgsHNQfPLw/e70Z5dYkV7hF+rf8q3D+ScWJIEr57CpkO3OWBko6hwhQLPR8Pw==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "date-fns": "^2.16.1", + "lodash": "^4.17.21", + "rxjs": "^6.6.3", + "spawn-command": "^0.0.2-1", + "supports-color": "^8.1.0", + "tree-kill": "^1.2.2", + "yargs": "^16.2.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, "connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", @@ -17966,6 +18193,12 @@ "whatwg-url": "^8.0.0" } }, + "date-fns": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", + "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", + "dev": true + }, "dayjs": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.0.tgz", @@ -21294,6 +21527,19 @@ } } }, + "joi": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", + "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -24293,6 +24539,12 @@ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" }, + "spawn-command": { + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", + "dev": true + }, "spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", @@ -25030,6 +25282,30 @@ "xml-name-validator": "^3.0.0" } }, + "wait-on": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz", + "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==", + "dev": true, + "requires": { + "axios": "^0.25.0", + "joi": "^17.6.0", + "lodash": "^4.17.21", + "minimist": "^1.2.5", + "rxjs": "^7.5.4" + }, + "dependencies": { + "rxjs": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", + "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + } + } + }, "walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", diff --git a/src-ui/package.json b/src-ui/package.json index ee84f427d..6683b997d 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -8,8 +8,8 @@ "test": "ng test", "lint": "ng lint", "e2e": "ng e2e", - "cypress:open": "cypress open", - "cypress:run": "cypress run" + "cy:run": "cypress run", + "e2e:ci": "concurrently \"npm run start\" \"wait-on http-get://localhost:4200 && npm run cy:run\" --kill-others --success first" }, "private": true, "dependencies": { @@ -39,17 +39,20 @@ "zone.js": "~0.11.4" }, "devDependencies": { - "@angular-builders/jest": "latest", + "@angular-builders/jest": "13.0.3", "@angular-devkit/build-angular": "~13.2.5", "@angular/cli": "~13.2.5", "@angular/compiler-cli": "~13.2.4", - "@types/jest": "latest", + "@cypress/schematic": "^1.6.0", + "@types/jest": "27.4.1", "@types/node": "^17.0.21", "codelyzer": "^6.0.2", + "concurrently": "7.0.0", "cypress": "~9.5.2", - "jest": "latest", + "jest": "27.5.1", "ts-node": "~10.7.0", "tslint": "~6.1.3", - "typescript": "~4.5.5" + "typescript": "~4.5.5", + "wait-on": "~6.0.1" } } From 62c488aff6a461981221d94d0f3a1fc6fa5c3b7d Mon Sep 17 00:00:00 2001 From: Frank Strieter Date: Tue, 22 Mar 2022 21:29:10 +0100 Subject: [PATCH 12/19] test: run tests in ci --- .github/workflows/ci.yml | 16 ++++++++++++++ .../cypress/fixtures/documents/documents.json | 1 + .../fixtures/documents/lorem-ipsum.png | Bin 0 -> 159453 bytes .../integration/documents-list.spec.ts | 20 ++++++++++++++++++ 4 files changed, 37 insertions(+) create mode 100644 src-ui/cypress/fixtures/documents/documents.json create mode 100644 src-ui/cypress/fixtures/documents/lorem-ipsum.png create mode 100644 src-ui/cypress/integration/documents-list.spec.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fb3749dc7..07ff0e062 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -164,6 +164,22 @@ jobs: cd src/ pipenv run coveralls --service=github + tests-frontend: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [16.x] + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - run: cd src-ui && npm ci + - run: cd src-ui && npm run test + - run: cd src-ui && npm run e2e:ci + # build and push image to docker hub. build-docker-image: if: github.event_name == 'push' && (startsWith(github.ref, 'refs/heads/feature-') || github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/beta' || startsWith(github.ref, 'refs/tags/ngx-') || startsWith(github.ref, 'refs/tags/beta-')) diff --git a/src-ui/cypress/fixtures/documents/documents.json b/src-ui/cypress/fixtures/documents/documents.json new file mode 100644 index 000000000..984e2f8fc --- /dev/null +++ b/src-ui/cypress/fixtures/documents/documents.json @@ -0,0 +1 @@ +{"count":1,"next":null,"previous":null,"results":[{"id":1,"correspondent":null,"document_type":null,"title":"lorem-ipsum","content":"Test document PDF \n\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla est purus, ultrices in porttitor \nin, accumsan non quam. Nam consectetur porttitor rhoncus. Curabitur eu est et leo feugiat \nauctor vel quis lorem. Ut et ligula dolor, sit amet consequat lorem. Aliquam porta eros sed \nvelit imperdiet egestas. Maecenas tempus eros ut diam ullamcorper id dictum libero \ntempor. Donec quis augue quis magna condimentum lobortis. Quisque imperdiet ipsum vel \nmagna viverra rutrum. Cras viverra molestie urna, vitae vestibulum turpis varius id. \nVestibulum mollis, arcu iaculis bibendum varius, velit sapien blandit metus, ac posuere lorem \nnulla ac dolor. Maecenas urna elit, tincidunt in dapibus nec, vehicula eu dui. Duis lacinia \nfringilla massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur \nridiculus mus. Ut consequat ultricies est, non rhoncus mauris congue porta. Vivamus viverra \nsuscipit felis eget condimentum. Cum sociis natoque penatibus et magnis dis parturient \nmontes, nascetur ridiculus mus. Integer bibendum sagittis ligula, non faucibus nulla volutpat \nvitae. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. \nIn aliquet quam et velit bibendum accumsan. Cum sociis natoque penatibus et magnis dis \nparturient montes, nascetur ridiculus mus. Vestibulum vitae ipsum nec arcu semper \nadipiscing at ac lacus. Praesent id pellentesque orci. Morbi congue viverra nisl nec rhoncus. \nInteger mattis, ipsum a tincidunt commodo, lacus arcu elementum elit, at mollis eros ante ac \nrisus. In volutpat, ante at pretium ultricies, velit magna suscipit enim, aliquet blandit massa \norci nec lorem. Nulla facilisi. Duis eu vehicula arcu. Nulla facilisi. Maecenas pellentesque \nvolutpat felis, quis tristique ligula luctus vel. Sed nec mi eros. Integer augue enim, sollicitudin \nullamcorper mattis eget, aliquam in est. Morbi sollicitudin libero nec augue dignissim ut \nconsectetur dui volutpat. Nulla facilisi. Mauris egestas vestibulum neque cursus tincidunt. \nDonec sit amet pulvinar orci. \nQuisque volutpat pharetra tincidunt. Fusce sapien arcu, molestie eget varius egestas, \nfaucibus ac urna. Sed at nisi in velit egestas aliquam ut a felis. Aenean malesuada iaculis nisl, \nut tempor lacus egestas consequat. Nam nibh lectus, gravida sed egestas ut, feugiat quis \ndolor. Donec eu leo enim, non laoreet ante. Morbi dictum tempor vulputate. Phasellus \nultricies risus vel augue sagittis euismod. Vivamus tincidunt placerat nisi in aliquam. Cras \nquis mi ac nunc pretium aliquam. Aenean elementum erat ac metus commodo rhoncus. \nAliquam nulla augue, porta non sagittis quis, accumsan vitae sem. Phasellus id lectus tortor, \neget pulvinar augue. Etiam eget velit ac purus fringilla blandit. Donec odio odio, sagittis sed \niaculis sed, consectetur eget sem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. \nMaecenas accumsan velit vel turpis rutrum in sodales diam placerat. \nQuisque luctus ullamcorper velit sit amet lobortis. Etiam ligula felis, vulputate quis rhoncus \nnec, fermentum eget odio. Vivamus vel ipsum ac augue sodales mollis euismod nec tellus. \nFusce et augue rutrum nunc semper vehicula vel semper nisl. Nam laoreet euismod quam at \nvarius. Sed aliquet auctor nibh. Curabitur malesuada fermentum lacus vel accumsan. Duis \nornare scelerisque nulla, ac pulvinar ligula tempus sit amet. In placerat nulla ac ante \nscelerisque posuere. Phasellus at ante felis. Sed hendrerit risus a metus posuere rutrum. \nPhasellus eu augue dui. Proin in vestibulum ipsum. Aenean accumsan mollis sapien, ut \neleifend sem blandit at. Vivamus luctus mi eget lorem lobortis pharetra. Phasellus at tortor \nquam, a volutpat purus. Etiam sollicitudin arcu vel elit bibendum et imperdiet risus tincidunt. \nEtiam elit velit, posuere ut pulvinar ac, condimentum eget justo. Fusce a erat velit. Vivamus \nimperdiet ultrices orci in hendrerit.","tags":[],"created":"2022-03-22T07:24:18Z","modified":"2022-03-22T07:24:23.264859Z","added":"2022-03-22T07:24:22.922631Z","archive_serial_number":null,"original_file_name":"2022-03-22 lorem-ipsum.pdf","archived_file_name":"2022-03-22 lorem-ipsum.pdf"}]} \ No newline at end of file diff --git a/src-ui/cypress/fixtures/documents/lorem-ipsum.png b/src-ui/cypress/fixtures/documents/lorem-ipsum.png new file mode 100644 index 0000000000000000000000000000000000000000..a74f2aee2088c75ce09a0032a907ddef57966a11 GIT binary patch literal 159453 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

vI+C8S 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 S`h5l-4|y4|bfuJO$o~Q&AHU83 literal 0 HcmV?d00001 diff --git a/src-ui/cypress/integration/documents-list.spec.ts b/src-ui/cypress/integration/documents-list.spec.ts new file mode 100644 index 000000000..8d8b21009 --- /dev/null +++ b/src-ui/cypress/integration/documents-list.spec.ts @@ -0,0 +1,20 @@ +describe('documents-list', () => { + beforeEach(() => { + cy.intercept('http://localhost:8000/api/documents/*', { + fixture: 'documents/documents.json', + }); + cy.intercept('http://localhost:8000/api/documents/1/thumb/', { + fixture: 'documents/lorem-ipsum.png', + }); + + cy.visit('/documents'); + }); + + it('should show a list of documents rendered as cards with thumbnails', () => { + cy.contains('One document'); + cy.contains('lorem-ipsum'); + cy.get('app-document-card-small:first-of-type img') + .invoke('attr', 'src') + .should('eq', 'http://localhost:8000/api/documents/1/thumb/'); + }); +}); From e4885badfc86b814413069614f79a4ff5fff0869 Mon Sep 17 00:00:00 2001 From: Frank Strieter Date: Wed, 23 Mar 2022 07:50:24 +0100 Subject: [PATCH 13/19] chore: update package.lock --- src-ui/package-lock.json | 8257 +++++++++++++++++++++++++++++++++++--- 1 file changed, 7682 insertions(+), 575 deletions(-) diff --git a/src-ui/package-lock.json b/src-ui/package-lock.json index 647b365b9..b033fb8ff 100644 --- a/src-ui/package-lock.json +++ b/src-ui/package-lock.json @@ -34,24 +34,21 @@ "zone.js": "~0.11.4" }, "devDependencies": { - "@angular-devkit/build-angular": "~13.3.0", - "@angular/cli": "~13.3.0", + "@angular-builders/jest": "13.0.3", + "@angular-devkit/build-angular": "~13.2.5", + "@angular/cli": "~13.2.5", "@angular/compiler-cli": "~13.2.4", - "@types/jasmine": "~4.0.0", - "@types/jasminewd2": "~2.0.10", - "@types/node": "^17.0.22", + "@cypress/schematic": "^1.6.0", + "@types/jest": "27.4.1", + "@types/node": "^17.0.21", "codelyzer": "^6.0.2", - "jasmine-core": "~4.0.1", - "jasmine-spec-reporter": "~7.0.0", - "karma": "~6.3.16", - "karma-chrome-launcher": "~3.1.1", - "karma-coverage-istanbul-reporter": "~3.0.3", - "karma-jasmine": "~4.0.1", - "karma-jasmine-html-reporter": "^1.7.0", - "protractor": "~7.0.0", + "concurrently": "7.0.0", + "cypress": "~9.5.2", + "jest": "27.5.1", "ts-node": "~10.7.0", "tslint": "~6.1.3", - "typescript": "~4.5.5" + "typescript": "~4.5.5", + "wait-on": "~6.0.1" } }, "node_modules/@ampproject/remapping": { @@ -67,6 +64,24 @@ "node": ">=6.0.0" } }, + "node_modules/@angular-builders/jest": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular-builders/jest/-/jest-13.0.3.tgz", + "integrity": "sha512-HJfN8gCfbg14U/eaE5vEvt6IrecFTUWSibHLvf2gBMzgnRQzqPKNAAoHY5kZ0DL+HwsCW/KlSp2m47ukOdVcYA==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": ">=0.1300.0 < 0.1400.0", + "@angular-devkit/core": "^13.0.0", + "jest-preset-angular": "11.1.0", + "lodash": "^4.17.15" + }, + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "jest": ">=27" + } + }, "node_modules/@angular-devkit/architect": { "version": "0.1303.0", "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1303.0.tgz", @@ -101,15 +116,15 @@ "dev": true }, "node_modules/@angular-devkit/build-angular": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-13.3.0.tgz", - "integrity": "sha512-3Ji7EeqGHj7i1Jgmeo3aIEXsnfKyFeQPpl65gcYmHwj5dP4lZzLSU4rMaWWUKksccgqCUXgPI2vKePTPazmikg==", + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-13.2.6.tgz", + "integrity": "sha512-Y2ojy6xbZ0kwScppcutLHBP8eW0qNOjburTISSBU/L5l/9FOeZ1E7yAreKuVu/qibZiLbSJfAhk+SLwhRHFSSQ==", "dev": true, "dependencies": { "@ampproject/remapping": "1.1.1", - "@angular-devkit/architect": "0.1303.0", - "@angular-devkit/build-webpack": "0.1303.0", - "@angular-devkit/core": "13.3.0", + "@angular-devkit/architect": "0.1302.6", + "@angular-devkit/build-webpack": "0.1302.6", + "@angular-devkit/core": "13.2.6", "@babel/core": "7.16.12", "@babel/generator": "7.16.8", "@babel/helper-annotate-as-pure": "7.16.7", @@ -120,7 +135,7 @@ "@babel/runtime": "7.16.7", "@babel/template": "7.16.7", "@discoveryjs/json-ext": "0.5.6", - "@ngtools/webpack": "13.3.0", + "@ngtools/webpack": "13.2.6", "ansi-colors": "4.1.1", "babel-loader": "8.2.3", "babel-plugin-istanbul": "6.1.1", @@ -165,7 +180,7 @@ "text-table": "0.2.0", "tree-kill": "1.2.2", "tslib": "2.3.1", - "webpack": "5.70.0", + "webpack": "5.67.0", "webpack-dev-middleware": "5.3.0", "webpack-dev-server": "4.7.3", "webpack-merge": "5.8.0", @@ -180,14 +195,14 @@ "esbuild": "0.14.22" }, "peerDependencies": { - "@angular/compiler-cli": "^13.0.0 || ^13.3.0-rc.0", - "@angular/localize": "^13.0.0 || ^13.3.0-rc.0", - "@angular/service-worker": "^13.0.0 || ^13.3.0-rc.0", + "@angular/compiler-cli": "^13.0.0", + "@angular/localize": "^13.0.0", + "@angular/service-worker": "^13.0.0", "karma": "^6.3.0", "ng-packagr": "^13.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=4.4.3 <4.7" + "typescript": ">=4.4.3 <4.6" }, "peerDependenciesMeta": { "@angular/localize": { @@ -210,6 +225,60 @@ } } }, + "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": { + "version": "0.1302.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1302.6.tgz", + "integrity": "sha512-NztzorUMfwJeRaT7SY00Y8WSqc2lQYuF11yNoyEm7Dae3V7VZ28rW2Z9RwibP27rYQL0RjSMaz2wKITHX2vOAw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "13.2.6", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": { + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.2.6.tgz", + "integrity": "sha512-8h2mWdBTN/dYwZuzKMg2IODlOWMdbJcpQG4XVrkk9ejCPP+3aX5Aa3glCe/voN6eBNiRfs8YDM0jxmpN2aWVtg==", + "dev": true, + "dependencies": { + "ajv": "8.9.0", + "ajv-formats": "2.1.1", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, + "node_modules/@angular-devkit/build-angular/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 + }, "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -228,13 +297,94 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1303.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1303.0.tgz", - "integrity": "sha512-a+Veg2oYn3RM2Kl148BReuONmD1kjbbYBnMUVi8nD6rvJPStFZkqN5s5ZkYybKeWnzMGaB3VasKR88z5XeH22A==", + "node_modules/@angular-devkit/build-angular/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1303.0", + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/schema-utils/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, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/webpack": { + "version": "5.67.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.67.0.tgz", + "integrity": "sha512-LjFbfMh89xBDpUMgA1W9Ur6Rn/gnr2Cq1jjHFPo4v6a79/ypznSYbAyPgGhwsxBtMIaEmDD1oJoA7BEYw/Fbrw==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.50", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1302.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1302.6.tgz", + "integrity": "sha512-TYEh2n9tPe932rEIgdiSpojOqtDppW2jzb/empVqCkLF7WUZsXKvTanttZC34L6R2VD6SAGWhb6JDg75ghUVYA==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1302.6", "rxjs": "6.6.7" }, "engines": { @@ -247,6 +397,48 @@ "webpack-dev-server": "^4.0.0" } }, + "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": { + "version": "0.1302.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1302.6.tgz", + "integrity": "sha512-NztzorUMfwJeRaT7SY00Y8WSqc2lQYuF11yNoyEm7Dae3V7VZ28rW2Z9RwibP27rYQL0RjSMaz2wKITHX2vOAw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "13.2.6", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/core": { + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.2.6.tgz", + "integrity": "sha512-8h2mWdBTN/dYwZuzKMg2IODlOWMdbJcpQG4XVrkk9ejCPP+3aX5Aa3glCe/voN6eBNiRfs8YDM0jxmpN2aWVtg==", + "dev": true, + "dependencies": { + "ajv": "8.9.0", + "ajv-formats": "2.1.1", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -311,12 +503,12 @@ "dev": true }, "node_modules/@angular-devkit/schematics": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.3.0.tgz", - "integrity": "sha512-hq7tqnB3uVT/iDgqWWZ4kvnijeAcgd4cfLzZiCPaYn1nuhZf0tWsho6exhJ/odMZHvVp7w8OibqWiUKxNY9zHA==", + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.2.6.tgz", + "integrity": "sha512-mPgSqdnZRuPSMeUA+T+mwVCrq2yhXpcYm1/Rjbhy09CyHs4wSrFv21WHCrE6shlvXpcmwr0n+I0DIeagAPmjUA==", "dev": true, "dependencies": { - "@angular-devkit/core": "13.3.0", + "@angular-devkit/core": "13.2.6", "jsonc-parser": "3.0.0", "magic-string": "0.25.7", "ora": "5.4.1", @@ -328,6 +520,33 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": { + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.2.6.tgz", + "integrity": "sha512-8h2mWdBTN/dYwZuzKMg2IODlOWMdbJcpQG4XVrkk9ejCPP+3aX5Aa3glCe/voN6eBNiRfs8YDM0jxmpN2aWVtg==", + "dev": true, + "dependencies": { + "ajv": "8.9.0", + "ajv-formats": "2.1.1", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, "node_modules/@angular-devkit/schematics/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -361,16 +580,16 @@ } }, "node_modules/@angular/cli": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.3.0.tgz", - "integrity": "sha512-2qCKP/QsyxrJnpd3g4P/iTQ4TjI04N8r+bG5YLLfudoMDsQ/Ti4ogdI7PBeG2IMbRylZW9XLjHraWG42+Y9tWw==", + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.2.6.tgz", + "integrity": "sha512-xIjEaQI5sWemXXc7GXLm4u9UL5sjtrQL/y1PJvvk/Jsa8+kIT+MutOfZfC7zcdAh9fqHd8mokH3guFV8BJdFxA==", "dev": true, "hasInstallScript": true, "dependencies": { - "@angular-devkit/architect": "0.1303.0", - "@angular-devkit/core": "13.3.0", - "@angular-devkit/schematics": "13.3.0", - "@schematics/angular": "13.3.0", + "@angular-devkit/architect": "0.1302.6", + "@angular-devkit/core": "13.2.6", + "@angular-devkit/schematics": "13.2.6", + "@schematics/angular": "13.2.6", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.1", "debug": "4.3.3", @@ -396,6 +615,66 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { + "version": "0.1302.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1302.6.tgz", + "integrity": "sha512-NztzorUMfwJeRaT7SY00Y8WSqc2lQYuF11yNoyEm7Dae3V7VZ28rW2Z9RwibP27rYQL0RjSMaz2wKITHX2vOAw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "13.2.6", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/core": { + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.2.6.tgz", + "integrity": "sha512-8h2mWdBTN/dYwZuzKMg2IODlOWMdbJcpQG4XVrkk9ejCPP+3aX5Aa3glCe/voN6eBNiRfs8YDM0jxmpN2aWVtg==", + "dev": true, + "dependencies": { + "ajv": "8.9.0", + "ajv-formats": "2.1.1", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular/cli/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular/cli/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/@angular/common": { "version": "13.2.6", "resolved": "https://registry.npmjs.org/@angular/common/-/common-13.2.6.tgz", @@ -1459,6 +1738,18 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", @@ -1510,6 +1801,18 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -1624,6 +1927,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", + "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", @@ -2350,11 +2668,19 @@ "node": ">=6.9.0" } }, + "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 + }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.1.90" } @@ -2403,6 +2729,223 @@ "node": ">=10" } }, + "node_modules/@cypress/request": { + "version": "2.88.10", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", + "integrity": "sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/request/node_modules/http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/@cypress/request/node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "node_modules/@cypress/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/@cypress/schematic": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@cypress/schematic/-/schematic-1.6.0.tgz", + "integrity": "sha512-ENHceK21AANBCthaiQ4gJGEvHsqJ9wS3b9PjnlD4MKOMzqwU/WMrJAs/Xnxa6PGh3btB2w0xNN+0beeaf0KiCA==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "^0.1202.10", + "@angular-devkit/core": "^12.2.10", + "@angular-devkit/schematics": "^12.2.10", + "@schematics/angular": "^12.2.10", + "jsonc-parser": "^3.0.0", + "rxjs": "~6.6.0" + } + }, + "node_modules/@cypress/schematic/node_modules/@angular-devkit/architect": { + "version": "0.1202.16", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.16.tgz", + "integrity": "sha512-VUGyAr+5RmlcPjo8mZSRJ/wkm3hCPn9PJyorAnc1IzrqD+XkgcDME86HP3YheLsOsc1Mn7j6Zh3T1rAclAWw/w==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "12.2.16", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.14.1 || >=14.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@cypress/schematic/node_modules/@angular-devkit/core": { + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.16.tgz", + "integrity": "sha512-cnVtUYSET27B5mRIBp38mpKIX0iHv/hWKiPo74WCGrNwTgwmMHngjgQ4ySn/w1W4s8LL6TDW55ZkRdwyk8TVMQ==", + "dev": true, + "dependencies": { + "ajv": "8.6.2", + "ajv-formats": "2.1.0", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + }, + "engines": { + "node": "^12.14.1 || >=14.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@cypress/schematic/node_modules/@angular-devkit/schematics": { + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.2.16.tgz", + "integrity": "sha512-ToyZBCGilSeeLmhAxmeJ0PykmbKLoME+uK78gC64xJtNu9e3oVnmog8b8g9Ay9hTwZJ96HvNa16po11Gfbbn6A==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "12.2.16", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.14.1 || >=14.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@cypress/schematic/node_modules/@schematics/angular": { + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.2.16.tgz", + "integrity": "sha512-EITPMaRE7iCosf0nyZFOpxTDAiPD3qm4QUxHKcwIaJTrzi89nBoUubw8+pFy5/Gtpadww80YD8ODV64B1bPGMA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "12.2.16", + "@angular-devkit/schematics": "12.2.16", + "jsonc-parser": "3.0.0" + }, + "engines": { + "node": "^12.14.1 || >=14.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@cypress/schematic/node_modules/ajv": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", + "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@cypress/schematic/node_modules/ajv-formats": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.0.tgz", + "integrity": "sha512-USH2jBb+C/hIpwD2iRjp0pe0k+MvzG0mlSn/FIdCgQhUb9ALPRjt2KIQdfZDS9r0ZIeUAg7gOu9KL0PFqGqr5Q==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@cypress/schematic/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@cypress/schematic/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/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", @@ -2418,6 +2961,21 @@ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", "dev": true }, + "node_modules/@hapi/hoek": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==", + "dev": true + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -2443,6 +3001,673 @@ "node": ">=8" } }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/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/@jest/console/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/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/@jest/core/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/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/@jest/reporters/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/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, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/reporters/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/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/@jest/transform/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/transform/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/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/@jest/types/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jridgewell/resolve-uri": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", @@ -2513,9 +3738,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.3.0.tgz", - "integrity": "sha512-QbTQWXK2WzYU+aKKVDG0ya7WYT+6rNAUXVt5ov9Nz1SGgDeozpiOx8ZqPWUvnToTY8EoodwWFGCVtkLHXUR+wA==", + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.2.6.tgz", + "integrity": "sha512-N8SvRV91+/57TcAfbghc0k0tKCukw/7KqbDaLPAQTGFekJ4xMGT3elMzOyBXTH3Hvp5HL8/hiBt2tG04qiMf+w==", "dev": true, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0", @@ -2524,7 +3749,7 @@ }, "peerDependencies": { "@angular/compiler-cli": "^13.0.0", - "typescript": ">=4.4.3 <4.7", + "typescript": ">=4.4.3 <4.6", "webpack": "^5.30.0" } }, @@ -2676,13 +3901,13 @@ "hasInstallScript": true }, "node_modules/@schematics/angular": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.0.tgz", - "integrity": "sha512-WND6DXWf0ZFefqlC2hUm1FzHDonRfGpDEPWVhVulhYkB7IUUaXuCz8K41HAScyJ3bxUngs2Lx9+4omikc05fxA==", + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.2.6.tgz", + "integrity": "sha512-8NzHMX9+FSgaB0lJYxlTJv9OcBuolwZJqo9M/yX3RPSqSHghA33jWwgVbV551hBJOpbVEePerG1DQkIC99DXKA==", "dev": true, "dependencies": { - "@angular-devkit/core": "13.3.0", - "@angular-devkit/schematics": "13.3.0", + "@angular-devkit/core": "13.2.6", + "@angular-devkit/schematics": "13.2.6", "jsonc-parser": "3.0.0" }, "engines": { @@ -2691,11 +3916,97 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.2.6.tgz", + "integrity": "sha512-8h2mWdBTN/dYwZuzKMg2IODlOWMdbJcpQG4XVrkk9ejCPP+3aX5Aa3glCe/voN6eBNiRfs8YDM0jxmpN2aWVtg==", + "dev": true, + "dependencies": { + "ajv": "8.9.0", + "ajv-formats": "2.1.1", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@schematics/angular/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@schematics/angular/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/@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==", + "dev": true + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, "node_modules/@socket.io/base64-arraybuffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 0.6.0" } @@ -2733,6 +4044,47 @@ "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", "dev": true }, + "node_modules/@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", + "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, "node_modules/@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -2756,7 +4108,9 @@ "version": "1.2.11", "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@types/connect": { "version": "3.4.35", @@ -2781,13 +4135,17 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@types/cors": { "version": "2.8.12", "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@types/eslint": { "version": "8.4.1", @@ -2838,6 +4196,15 @@ "@types/range-parser": "*" } }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/http-proxy": { "version": "1.17.8", "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", @@ -2847,19 +4214,38 @@ "@types/node": "*" } }, - "node_modules/@types/jasmine": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.0.0.tgz", - "integrity": "sha512-KvhqNz4NaONk7cfp4E9x+uXOUp7x4H2Zeyb4yXnw2vIuxD5YfSi1767x+aF7z54elhZcC0OH9/78/WL6+5jcDg==", + "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 }, - "node_modules/@types/jasminewd2": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.10.tgz", - "integrity": "sha512-J7mDz7ovjwjc+Y9rR9rY53hFWKATcIkrr9DwQWmOas4/pnIPJTXawnzjwpHm3RSxz/e3ZVUvQ7cRbd5UQLo10g==", + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, "dependencies": { - "@types/jasmine": "*" + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "27.4.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz", + "integrity": "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==", + "dev": true, + "dependencies": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" } }, "node_modules/@types/json-schema": { @@ -2886,11 +4272,19 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, + "node_modules/@types/prettier": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz", + "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==", + "dev": true + }, "node_modules/@types/q": { "version": "0.0.32", "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@types/qs": { "version": "6.9.7", @@ -2914,7 +4308,9 @@ "version": "3.0.19", "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.19.tgz", "integrity": "sha512-OFUilxQg+rWL2FMxtmIgCkUDlJB6pskkpvmew7yeXfzzsOBb5rc+y2+DjHm+r3r1ZPPcJefK3DveNSYWGiy68g==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@types/serve-index": { "version": "1.9.1", @@ -2935,6 +4331,18 @@ "@types/node": "*" } }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true + }, + "node_modules/@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "dev": true + }, "node_modules/@types/sockjs": { "version": "0.3.33", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", @@ -2944,6 +4352,12 @@ "@types/node": "*" } }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, "node_modules/@types/ws": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", @@ -2953,6 +4367,31 @@ "@types/node": "*" } }, + "node_modules/@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@types/yauzl": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", + "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -3154,6 +4593,37 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/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, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals/node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/acorn-import-assertions": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", @@ -3204,6 +4674,8 @@ "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.3.0" } @@ -3371,6 +4843,26 @@ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "dev": true }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/are-we-there-yet": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", @@ -3438,6 +4930,8 @@ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -3447,6 +4941,8 @@ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -3475,21 +4971,36 @@ "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", "dev": true }, - "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "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, - "dependencies": { - "lodash": "^4.17.14" + "engines": { + "node": ">=8" } }, + "node_modules/async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "dev": true + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -3544,6 +5055,15 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, + "node_modules/axios": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", + "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.7" + } + }, "node_modules/axobject-query": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", @@ -3553,6 +5073,107 @@ "ast-types-flow": "0.0.7" } }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dev": true, + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/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/babel-jest/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/babel-loader": { "version": "8.2.3", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", @@ -3623,6 +5244,21 @@ "node": ">=8" } }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", @@ -3671,6 +5307,45 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -3701,6 +5376,8 @@ "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": "^4.5.0 || >= 5.9" } @@ -3748,11 +5425,19 @@ "readable-stream": "^3.4.0" } }, + "node_modules/blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, "node_modules/blocking-proxy": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minimist": "^1.2.0" }, @@ -3763,6 +5448,12 @@ "node": ">=6.9.x" } }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, "node_modules/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", @@ -3851,6 +5542,12 @@ "node": ">=8" } }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, "node_modules/browserslist": { "version": "4.20.0", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.0.tgz", @@ -3878,6 +5575,8 @@ "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "https-proxy-agent": "^2.2.1" } @@ -3887,6 +5586,8 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "es6-promisify": "^5.0.0" }, @@ -3899,6 +5600,8 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ms": "^2.1.1" } @@ -3908,6 +5611,8 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "agent-base": "^4.3.0", "debug": "^3.1.0" @@ -3916,6 +5621,27 @@ "node": ">= 4.5.0" } }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -3940,6 +5666,15 @@ "ieee754": "^1.1.13" } }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -4005,6 +5740,15 @@ "node": ">= 10" } }, + "node_modules/cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -4064,12 +5808,30 @@ "node": ">=4" } }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -4114,6 +5876,12 @@ "node": ">=6.0" } }, + "node_modules/ci-info": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", + "dev": true + }, "node_modules/circular-dependency-plugin": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", @@ -4126,6 +5894,12 @@ "webpack": ">=4.0.1" } }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -4159,6 +5933,37 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cli-table3": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz", + "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "colors": "1.4.0" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", @@ -4201,6 +6006,16 @@ "node": ">=6" } }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, "node_modules/codelyzer": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.2.tgz", @@ -4281,6 +6096,12 @@ "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==", "dev": true }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -4314,6 +6135,7 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, + "optional": true, "engines": { "node": ">=0.1.90" } @@ -4336,6 +6158,15 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -4346,7 +6177,9 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/compressible": { "version": "2.0.18", @@ -4407,11 +6240,165 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "node_modules/concurrently": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.0.0.tgz", + "integrity": "sha512-WKM7PUsI8wyXpF80H+zjHP32fsgsHNQfPLw/e70Z5dYkV7hF+rf8q3D+ScWJIEr57CpkO3OWBko6hwhQLPR8Pw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "date-fns": "^2.16.1", + "lodash": "^4.17.21", + "rxjs": "^6.6.3", + "spawn-command": "^0.0.2-1", + "supports-color": "^8.1.0", + "tree-kill": "^1.2.2", + "yargs": "^16.2.0" + }, + "bin": { + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.0 || >=16.0.0" + } + }, + "node_modules/concurrently/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/concurrently/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/chalk/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/concurrently/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/concurrently/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/concurrently/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/concurrently/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/concurrently/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/concurrently/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/concurrently/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", @@ -4436,6 +6423,8 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ms": "2.0.0" } @@ -4444,7 +6433,9 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/console-control-strings": { "version": "1.1.0", @@ -4640,6 +6631,8 @@ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "object-assign": "^4", "vary": "^1" @@ -4945,12 +6938,222 @@ "node": ">=4" } }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, "node_modules/custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/cypress": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.5.2.tgz", + "integrity": "sha512-gYiQYvJozMzDOriUV1rCt6CeRM/pRK4nhwGJj3nJQyX2BoUdTCVwp30xDMKc771HiNVhBtgj5o5/iBdVDVXQUg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@cypress/request": "^2.88.10", + "@cypress/xvfb": "^1.2.4", + "@types/node": "^14.14.31", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.6.0", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^5.1.0", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.2", + "enquirer": "^2.3.6", + "eventemitter2": "^6.4.3", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.0", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.5", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.3.2", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "bin": { + "cypress": "bin/cypress" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/cypress/node_modules/@types/node": { + "version": "14.18.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", + "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", "dev": true }, + "node_modules/cypress/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cypress/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cypress/node_modules/chalk/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cypress/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cypress/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/cypress/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cypress/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cypress/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/cypress/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/cypress/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -4969,15 +7172,50 @@ "node": ">=0.10" } }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/date-fns": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", + "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", + "dev": true, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, "node_modules/date-format": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.4.tgz", "integrity": "sha512-/jyf4rhB17ge328HJuJjAcmRtCsGd+NDeAtahRBTaK6vSPR6MO5HlrAit3Nn7dVjaa6sowW0WXt8yQtLyZQFRg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=4.0" } }, + "node_modules/dayjs": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.0.tgz", + "integrity": "sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==", + "dev": true + }, "node_modules/debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", @@ -4999,10 +7237,18 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", + "dev": true + }, "node_modules/decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -5012,6 +7258,12 @@ "node": ">=0.10" } }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, "node_modules/deep-equal": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", @@ -5029,6 +7281,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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 + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", @@ -5041,6 +7308,50 @@ "node": ">= 10" } }, + "node_modules/default-gateway/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-gateway/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", @@ -5076,6 +7387,8 @@ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "globby": "^5.0.0", "is-path-cwd": "^1.0.0", @@ -5094,6 +7407,8 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "array-uniq": "^1.0.1" }, @@ -5106,6 +7421,8 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "array-union": "^1.0.1", "arrify": "^1.0.0", @@ -5123,6 +7440,8 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "glob": "^7.1.3" }, @@ -5168,6 +7487,15 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", @@ -5178,7 +7506,9 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/diff": { "version": "4.0.2", @@ -5189,6 +7519,15 @@ "node": ">=0.3.1" } }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -5231,6 +7570,8 @@ "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "custom-event": "~1.0.0", "ent": "~2.2.0", @@ -5264,6 +7605,27 @@ } ] }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/domhandler": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", @@ -5314,6 +7676,18 @@ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.76.tgz", "integrity": "sha512-3Vftv7cenJtQb+k00McEBZ2vVmZ/x+HEF7pcZONZIkOsESqAqVuACmBxMv0JhzX7u0YltU0vSqRqgBSTAhFUjA==" }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -5360,11 +7734,22 @@ "node": ">=0.10.0" } }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/engine.io": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", @@ -5386,6 +7771,8 @@ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@socket.io/base64-arraybuffer": "~1.0.2" }, @@ -5406,11 +7793,25 @@ "node": ">=10.13.0" } }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/entities": { "version": "2.2.0", @@ -5468,13 +7869,17 @@ "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/es6-promisify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "es6-promise": "^4.0.3" } @@ -5852,6 +8257,47 @@ "node": ">=0.8.0" } }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/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, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -5932,6 +8378,12 @@ "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", "dev": true }, + "node_modules/eventemitter2": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.5.tgz", + "integrity": "sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw==", + "dev": true + }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -5948,19 +8400,19 @@ } }, "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" }, "engines": { @@ -5970,6 +8422,18 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -5979,6 +8443,21 @@ "node": ">= 0.8.0" } }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, "node_modules/express": { "version": "4.17.3", "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", @@ -6081,6 +8560,26 @@ "node": ">=4" } }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -6118,6 +8617,12 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, "node_modules/fastparse": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", @@ -6145,6 +8650,24 @@ "node": ">=0.8.0" } }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -6243,7 +8766,9 @@ "version": "3.2.5", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/follow-redirects": { "version": "1.14.9", @@ -6324,6 +8849,8 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -6435,17 +8962,29 @@ } }, "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "dependencies": { + "async": "^3.2.0" + } + }, "node_modules/getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -6491,6 +9030,21 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, + "node_modules/global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -6536,6 +9090,8 @@ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=4" } @@ -6546,6 +9102,8 @@ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "deprecated": "this library is no longer supported", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -6559,6 +9117,8 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -6574,7 +9134,9 @@ "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, + "optional": true, + "peer": true }, "node_modules/has": { "version": "1.0.3", @@ -6593,6 +9155,8 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ansi-regex": "^2.0.0" }, @@ -6605,6 +9169,8 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -6715,6 +9281,18 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/html-entities": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", @@ -6818,6 +9396,8 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -6842,12 +9422,12 @@ } }, "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true, "engines": { - "node": ">=10.17.0" + "node": ">=8.12.0" } }, "node_modules/humanize-ms": { @@ -6941,7 +9521,9 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/immutable": { "version": "4.0.0", @@ -6974,6 +9556,25 @@ "node": ">=4" } }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -7164,6 +9765,18 @@ "node": ">=8" } }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, "node_modules/is-core-module": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", @@ -7222,6 +9835,15 @@ "node": ">=8" } }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -7233,6 +9855,31 @@ "node": ">=0.10.0" } }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-installed-globally/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, + "engines": { + "node": ">=8" + } + }, "node_modules/is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -7261,6 +9908,8 @@ "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -7270,6 +9919,8 @@ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "is-path-inside": "^1.0.0" }, @@ -7282,6 +9933,8 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "path-is-inside": "^1.0.1" }, @@ -7313,6 +9966,12 @@ "node": ">=0.10.0" } }, + "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 + }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -7388,6 +10047,8 @@ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 8.0.0" }, @@ -7485,83 +10146,6 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/istanbul-reports": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", @@ -7580,6 +10164,8 @@ "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "exit": "^0.1.2", "glob": "^7.0.6", @@ -7589,36 +10175,2107 @@ "jasmine": "bin/jasmine.js" } }, - "node_modules/jasmine-core": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.0.1.tgz", - "integrity": "sha512-w+JDABxQCkxbGGxg+a2hUVZyqUS2JKngvIyLGu/xiw2ZwgsoSB0iiecLQsQORSeaKQ6iGrCyWG86RfNDuoA7Lg==", - "dev": true - }, - "node_modules/jasmine-spec-reporter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-7.0.0.tgz", - "integrity": "sha512-OtC7JRasiTcjsaCBPtMO0Tl8glCejM4J4/dNuOJdA8lBjz4PmWjYQ6pzb0uzpBNAWJMDudYuj9OdXJWqM2QTJg==", - "dev": true, - "dependencies": { - "colors": "1.4.0" - } - }, "node_modules/jasmine/node_modules/jasmine-core": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/jasminewd2": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 6.9.x" } }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dev": true, + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-changed-files/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/jest-changed-files/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/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/jest-circus/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dev": true, + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/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/jest-cli/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-cli/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/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/jest-config/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/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/jest-diff/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/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/jest-each/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-jasmine2/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/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/jest-jasmine2/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dev": true, + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/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/jest-matcher-utils/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/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/jest-message-util/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-preset-angular": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-11.1.0.tgz", + "integrity": "sha512-R4ePMBiQub95ESJlN7TozIpRIyMU7buvIdjm8KXqxZK/w8MYwLOSszVStsoZycDmWq5ifZI1eRvhOCUFktFotw==", + "dev": true, + "dependencies": { + "bs-logger": "^0.2.6", + "esbuild-wasm": "0.14.2", + "jest-environment-jsdom": "^27.0.0", + "pretty-format": "^27.0.0", + "ts-jest": "^27.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "optionalDependencies": { + "esbuild": "0.14.2" + }, + "peerDependencies": { + "@angular-devkit/build-angular": ">=0.1002.4", + "@angular/compiler-cli": ">=10.0.0", + "@angular/core": ">=10.0.0", + "@angular/platform-browser-dynamic": ">=10.0.0" + } + }, + "node_modules/jest-preset-angular/node_modules/esbuild": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.2.tgz", + "integrity": "sha512-l076A6o/PIgcyM24s0dWmDI/b8RQf41uWoJu9I0M71CtW/YSw5T5NUeXxs5lo2tFQD+O4CW4nBHJXx3OY5NpXg==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "optionalDependencies": { + "esbuild-android-arm64": "0.14.2", + "esbuild-darwin-64": "0.14.2", + "esbuild-darwin-arm64": "0.14.2", + "esbuild-freebsd-64": "0.14.2", + "esbuild-freebsd-arm64": "0.14.2", + "esbuild-linux-32": "0.14.2", + "esbuild-linux-64": "0.14.2", + "esbuild-linux-arm": "0.14.2", + "esbuild-linux-arm64": "0.14.2", + "esbuild-linux-mips64le": "0.14.2", + "esbuild-linux-ppc64le": "0.14.2", + "esbuild-netbsd-64": "0.14.2", + "esbuild-openbsd-64": "0.14.2", + "esbuild-sunos-64": "0.14.2", + "esbuild-windows-32": "0.14.2", + "esbuild-windows-64": "0.14.2", + "esbuild-windows-arm64": "0.14.2" + } + }, + "node_modules/jest-preset-angular/node_modules/esbuild-android-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.2.tgz", + "integrity": "sha512-hEixaKMN3XXCkoe+0WcexO4CcBVU5DCSUT+7P8JZiWZCbAjSkc9b6Yz2X5DSfQmRCtI/cQRU6TfMYrMQ5NBfdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/jest-preset-angular/node_modules/esbuild-darwin-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.2.tgz", + "integrity": "sha512-Uq8t0cbJQkxkQdbUfOl2wZqZ/AtLZjvJulR1HHnc96UgyzG9YlCLSDMiqjM+NANEy7/zzvwKJsy3iNC9wwqLJA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/jest-preset-angular/node_modules/esbuild-darwin-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.2.tgz", + "integrity": "sha512-619MSa17sr7YCIrUj88KzQu2ESA4jKYtIYfLU/smX6qNgxQt3Y/gzM4s6sgJ4fPQzirvmXgcHv1ZNQAs/Xh48A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/jest-preset-angular/node_modules/esbuild-freebsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.2.tgz", + "integrity": "sha512-aP6FE/ZsChZpUV6F3HE3x1Pz0paoYXycJ7oLt06g0G9dhJKknPawXCqQg/WMyD+ldCEZfo7F1kavenPdIT/SGQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/jest-preset-angular/node_modules/esbuild-freebsd-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.2.tgz", + "integrity": "sha512-LSm98WTb1QIhyS83+Po0KTpZNdd2XpVpI9ua5rLWqKWbKeNRFwOsjeiuwBaRNc+O32s9oC2ZMefETxHBV6VNkQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/jest-preset-angular/node_modules/esbuild-linux-32": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.2.tgz", + "integrity": "sha512-8VxnNEyeUbiGflTKcuVc5JEPTqXfsx2O6ABwUbfS1Hp26lYPRPC7pKQK5Dxa0MBejGc50jy7YZae3EGQUQ8EkQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/jest-preset-angular/node_modules/esbuild-linux-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.2.tgz", + "integrity": "sha512-4bzMS2dNxOJoFIiHId4w+tqQzdnsch71JJV1qZnbnErSFWcR9lRgpSqWnTTFtv6XM+MvltRzSXC5wQ7AEBY6Hg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/jest-preset-angular/node_modules/esbuild-linux-arm": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.2.tgz", + "integrity": "sha512-PaylahvMHhH8YMfJPMKEqi64qA0Su+d4FNfHKvlKes/2dUe4QxgbwXT9oLVgy8iJdcFMrO7By4R8fS8S0p8aVQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/jest-preset-angular/node_modules/esbuild-linux-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.2.tgz", + "integrity": "sha512-RlIVp0RwJrdtasDF1vTFueLYZ8WuFzxoQ1OoRFZOTyJHCGCNgh7xJIC34gd7B7+RT0CzLBB4LcM5n0LS+hIoww==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/jest-preset-angular/node_modules/esbuild-linux-mips64le": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.2.tgz", + "integrity": "sha512-Fdwrq2roFnO5oetIiUQQueZ3+5soCxBSJswg3MvYaXDomj47BN6oAWMZgLrFh1oVrtWrxSDLCJBenYdbm2s+qQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/jest-preset-angular/node_modules/esbuild-linux-ppc64le": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.2.tgz", + "integrity": "sha512-vxptskw8JfCDD9QqpRO0XnsM1osuWeRjPaXX1TwdveLogYsbdFtcuiuK/4FxGiNMUr1ojtnCS2rMPbY8puc5NA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/jest-preset-angular/node_modules/esbuild-netbsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.2.tgz", + "integrity": "sha512-I8+LzYK5iSNpspS9eCV9sW67Rj8FgMHimGri4mKiGAmN0pNfx+hFX146rYtzGtewuxKtTsPywWteHx+hPRLDsw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ] + }, + "node_modules/jest-preset-angular/node_modules/esbuild-openbsd-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.2.tgz", + "integrity": "sha512-120HgMe9elidWUvM2E6mMf0csrGwx8sYDqUIJugyMy1oHm+/nT08bTAVXuwYG/rkMIqsEO9AlMxuYnwR6En/3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/jest-preset-angular/node_modules/esbuild-sunos-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.2.tgz", + "integrity": "sha512-Q3xcf9Uyfra9UuCFxoLixVvdigo0daZaKJ97TL2KNA4bxRUPK18wwGUk3AxvgDQZpRmg82w9PnkaNYo7a+24ow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ] + }, + "node_modules/jest-preset-angular/node_modules/esbuild-wasm": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.2.tgz", + "integrity": "sha512-Rs8NjWoo1UdsVjhxT2o6kLCX9Sh65pyd3/h4XeJ3jjQNM6NgL+/CSowuJgvOIjDAXMLXpc6fdGnyZQDil9IUJA==", + "dev": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-preset-angular/node_modules/esbuild-windows-32": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.2.tgz", + "integrity": "sha512-TW7O49tPsrq+N1sW8mb3m24j/iDGa4xzAZH4wHWwoIzgtZAYPKC0hpIhufRRG/LA30bdMChO9pjJZ5mtcybtBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/jest-preset-angular/node_modules/esbuild-windows-64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.2.tgz", + "integrity": "sha512-Rym6ViMNmi1E2QuQMWy0AFAfdY0wGwZD73BnzlsQBX5hZBuy/L+Speh7ucUZ16gwsrMM9v86icZUDrSN/lNBKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/jest-preset-angular/node_modules/esbuild-windows-arm64": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.2.tgz", + "integrity": "sha512-ZrLbhr0vX5Em/P1faMnHucjVVWPS+m3tktAtz93WkMZLmbRJevhiW1y4CbulBd2z0MEdXZ6emDa1zFHq5O5bSA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/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/jest-resolve/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/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/jest-runner/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/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/jest-runtime/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-runtime/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/jest-runtime/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dev": true, + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/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/jest-snapshot/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/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/jest-util/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/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/jest-validate/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/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/jest-watcher/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -7657,6 +12314,19 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/joi": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", + "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -7681,6 +12351,110 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jsdom/node_modules/tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsdom/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/jsdom/node_modules/ws": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -7768,6 +12542,8 @@ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -7783,6 +12559,8 @@ "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", @@ -7795,6 +12573,8 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -7810,6 +12590,8 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -7819,6 +12601,8 @@ "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.17.tgz", "integrity": "sha512-2TfjHwrRExC8yHoWlPBULyaLwAFmXmxQrcuFImt/JsAsSZu1uOWTZ1ZsWjqQtWpHLiatJOHL5jFjXSJIgCd01g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@colors/colors": "1.5.0", "body-parser": "^1.19.0", @@ -7852,63 +12636,6 @@ "node": ">= 10" } }, - "node_modules/karma-chrome-launcher": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", - "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", - "dev": true, - "dependencies": { - "which": "^1.2.1" - } - }, - "node_modules/karma-coverage-istanbul-reporter": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", - "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^3.0.2", - "minimatch": "^3.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/mattlewis92" - } - }, - "node_modules/karma-jasmine": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", - "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", - "dev": true, - "dependencies": { - "jasmine-core": "^3.6.0" - }, - "engines": { - "node": ">= 10" - }, - "peerDependencies": { - "karma": "*" - } - }, - "node_modules/karma-jasmine-html-reporter": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.7.0.tgz", - "integrity": "sha512-pzum1TL7j90DTE86eFt48/s12hqwQuiD+e5aXx2Dc9wDEn2LfGq6RoAxEZZjFiN0RDSCOnosEKRZWxbQ+iMpQQ==", - "dev": true, - "peerDependencies": { - "jasmine-core": ">=3.8", - "karma": ">=0.9", - "karma-jasmine": ">=1.1" - } - }, - "node_modules/karma-jasmine/node_modules/jasmine-core": { - "version": "3.99.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.99.1.tgz", - "integrity": "sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg==", - "dev": true - }, "node_modules/karma-source-map-support": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", @@ -7923,6 +12650,8 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minimist": "^1.2.5" }, @@ -7935,6 +12664,8 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -7944,6 +12675,8 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "rimraf": "^3.0.0" }, @@ -7956,6 +12689,8 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -7974,6 +12709,8 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" } @@ -7987,6 +12724,15 @@ "node": ">=0.10.0" } }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/klona": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", @@ -7996,6 +12742,15 @@ "node": ">= 8" } }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true, + "engines": { + "node": "> 0.8" + } + }, "node_modules/less": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", @@ -8099,6 +12854,28 @@ "node": ">=0.10.0" } }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/license-webpack-plugin": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", @@ -8121,6 +12898,8 @@ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "immediate": "~3.0.5" } @@ -8131,6 +12910,33 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "node_modules/listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", + "dev": true, + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, "node_modules/loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -8173,6 +12979,18 @@ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", "dev": true }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "dev": true + }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -8259,11 +13077,95 @@ "node": ">=8" } }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-update/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/log-update/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, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/log4js": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.2.tgz", "integrity": "sha512-k80cggS2sZQLBwllpT1p06GtfvzMmSdUCkW96f0Hj83rKGJDAu2vZjt9B9ag2vx8Zz1IXzxoLgqvRJCdMKybGg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "date-format": "^4.0.4", "debug": "^4.3.3", @@ -8352,6 +13254,15 @@ "node": ">= 10" } }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, "node_modules/material-colors": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", @@ -8426,6 +13337,8 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, + "optional": true, + "peer": true, "bin": { "mime": "cli.js" }, @@ -8531,9 +13444,9 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/minipass": { "version": "3.1.6", @@ -8689,6 +13602,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, "node_modules/needle": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", @@ -8878,6 +13797,12 @@ "node": ">= 8" } }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, "node_modules/node-releases": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", @@ -9118,11 +14043,19 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, + "node_modules/nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, "node_modules/oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": "*" } @@ -9132,6 +14065,8 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -9254,6 +14189,23 @@ "opencollective-postinstall": "index.js" } }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/ora": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", @@ -9356,6 +14308,12 @@ "node": ">=0.10.0" } }, + "node_modules/ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", + "dev": true + }, "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -9571,7 +14529,9 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/path-key": { "version": "3.1.1", @@ -9616,6 +14576,12 @@ } } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -9652,6 +14618,8 @@ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -9661,6 +14629,8 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "pinkie": "^2.0.0" }, @@ -9668,6 +14638,15 @@ "node": ">=0.10.0" } }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/piscina": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz", @@ -9708,6 +14687,15 @@ "node": ">= 0.12.0" } }, + "node_modules/portfinder/node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, "node_modules/portfinder/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", @@ -9718,12 +14706,12 @@ } }, "node_modules/portfinder/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "dependencies": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" @@ -10258,6 +15246,15 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", @@ -10270,6 +15267,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -10295,11 +15318,26 @@ "node": ">=10" } }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/protractor": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@types/q": "^0.0.32", "@types/selenium-webdriver": "^3.0.0", @@ -10330,6 +15368,8 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -10339,6 +15379,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -10348,6 +15390,8 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -10364,6 +15408,8 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -10375,6 +15421,8 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -10384,6 +15432,8 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -10396,6 +15446,8 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -10407,13 +15459,17 @@ "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 + "dev": true, + "optional": true, + "peer": true }, "node_modules/protractor/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -10423,6 +15479,8 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "source-map": "^0.5.6" } @@ -10432,6 +15490,8 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ansi-regex": "^2.0.0" }, @@ -10444,6 +15504,8 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.8.0" } @@ -10453,6 +15515,8 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -10467,6 +15531,8 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -10476,6 +15542,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -10491,6 +15559,8 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -10502,13 +15572,17 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/protractor/node_modules/yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -10531,6 +15605,8 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -10561,6 +15637,12 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", + "dev": true + }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -10574,6 +15656,16 @@ "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", "dev": true }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -10588,6 +15680,8 @@ "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.6.0", "teleport": ">=0.2.0" @@ -10598,6 +15692,8 @@ "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.9" } @@ -10667,6 +15763,12 @@ "node": ">= 0.8" } }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -10824,6 +15926,8 @@ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", "dev": true, + "optional": true, + "peer": true, "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -10850,11 +15954,22 @@ "node": ">= 6" } }, + "node_modules/request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", + "dev": true, + "dependencies": { + "throttleit": "^1.0.0" + } + }, "node_modules/request/node_modules/qs": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.6" } @@ -10865,6 +15980,8 @@ "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.", "dev": true, + "optional": true, + "peer": true, "bin": { "uuid": "bin/uuid" } @@ -10890,7 +16007,9 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/requires-port": { "version": "1.0.0", @@ -10915,6 +16034,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -10963,6 +16094,15 @@ "node": ">=0.10.0" } }, + "node_modules/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -11123,6 +16263,8 @@ "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "https-proxy-agent": "^2.2.1" }, @@ -11135,6 +16277,8 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "es6-promisify": "^5.0.0" }, @@ -11147,6 +16291,8 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ms": "^2.1.1" } @@ -11156,6 +16302,8 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "agent-base": "^4.3.0", "debug": "^3.1.0" @@ -11170,6 +16318,18 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/schema-utils": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", @@ -11221,6 +16381,8 @@ "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "jszip": "^3.1.3", "rimraf": "^2.5.4", @@ -11236,6 +16398,8 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "glob": "^7.1.3" }, @@ -11248,6 +16412,8 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "os-tmpdir": "~1.0.1" }, @@ -11451,6 +16617,8 @@ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -11500,6 +16668,12 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, "node_modules/slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", @@ -11512,6 +16686,53 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/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/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -11527,6 +16748,8 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", @@ -11543,13 +16766,17 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/socket.io-parser": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@types/component-emitter": "^1.2.10", "component-emitter": "~1.3.0", @@ -11684,6 +16911,12 @@ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" }, + "node_modules/spawn-command": { + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", + "dev": true + }, "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", @@ -11757,6 +16990,27 @@ "node": ">= 8" } }, + "node_modules/stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -11771,6 +17025,8 @@ "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.4.tgz", "integrity": "sha512-GI9NzeD+D88UFuIlJkKNDH/IsuR+qIN7Qh8EsmhoRZr9bQoehTraRgwtLUkZbpcAw+hLPfHOypmppz8YyGK68w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "date-format": "^4.0.4", "debug": "^4.3.3", @@ -11809,6 +17065,19 @@ } ] }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -11833,6 +17102,15 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -11842,6 +17120,18 @@ "node": ">=6" } }, + "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, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/stylus": { "version": "0.56.0", "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.56.0.tgz", @@ -11895,6 +17185,40 @@ "node": ">=4" } }, + "node_modules/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=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", @@ -11916,6 +17240,12 @@ "node": ">=0.10" } }, + "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 + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -11942,6 +17272,22 @@ "node": ">= 10" } }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/terser": { "version": "5.11.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz", @@ -12063,6 +17409,18 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "node_modules/throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "dev": true + }, + "node_modules/throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "dev": true + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -12087,6 +17445,12 @@ "node": ">=0.6.0" } }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -12128,6 +17492,18 @@ "node": ">=0.8" } }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -12137,6 +17513,59 @@ "tree-kill": "cli.js" } }, + "node_modules/ts-jest": { + "version": "27.1.3", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.3.tgz", + "integrity": "sha512-6Nlura7s6uM9BVUAoqLH7JHyMXjz8gluryjpPXxr3IxZdAXnU6FhjvVLHFtfd1vsE1p8zD1OJfskkc0jhTSnkA==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^27.0.0", + "json5": "2.x", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "20.x" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@types/jest": "^27.0.0", + "babel-jest": ">=27.0.0 <28", + "esbuild": "~0.14.0", + "jest": "^27.0.0", + "typescript": ">=3.8 <5.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@types/jest": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/ts-node": { "version": "10.7.0", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", @@ -12279,6 +17708,27 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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, + "engines": { + "node": ">=4" + } + }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -12310,6 +17760,15 @@ "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", "dev": true }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, "node_modules/typescript": { "version": "4.5.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", @@ -12337,6 +17796,8 @@ "url": "https://paypal.me/faisalman" } ], + "optional": true, + "peer": true, "engines": { "node": "*" } @@ -12417,6 +17878,15 @@ "node": ">= 0.8" } }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -12455,6 +17925,20 @@ "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==", "dev": true }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, "node_modules/validate-npm-package-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", @@ -12492,10 +17976,61 @@ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/wait-on": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz", + "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==", + "dev": true, + "dependencies": { + "axios": "^0.25.0", + "joi": "^17.6.0", + "lodash": "^4.17.21", + "minimist": "^1.2.5", + "rxjs": "^7.5.4" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, "node_modules/watchpack": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", @@ -12532,6 +18067,8 @@ "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@types/selenium-webdriver": "^3.0.0", "selenium-webdriver": "^3.0.1" @@ -12545,6 +18082,8 @@ "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "adm-zip": "^0.4.9", "chalk": "^1.1.1", @@ -12570,6 +18109,8 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -12579,6 +18120,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -12588,6 +18131,8 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -12603,13 +18148,17 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/webdriver-manager/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "glob": "^7.1.3" }, @@ -12622,6 +18171,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, + "optional": true, + "peer": true, "bin": { "semver": "bin/semver" } @@ -12631,6 +18182,8 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ansi-regex": "^2.0.0" }, @@ -12643,15 +18196,27 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.8.0" } }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, "node_modules/webpack": { "version": "5.70.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", "dev": true, + "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^0.0.51", @@ -12983,6 +18548,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -12998,13 +18564,15 @@ "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, + "peer": true }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, + "peer": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -13041,23 +18609,42 @@ "node": ">=0.8.0" } }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", "dev": true, "dependencies": { - "isexe": "^2.0.0" + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" }, - "bin": { - "which": "bin/which" + "engines": { + "node": ">=10" } }, "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/wide-align": { "version": "1.1.5", @@ -13074,6 +18661,15 @@ "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", "dev": true }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -13125,6 +18721,18 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, "node_modules/ws": { "version": "8.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", @@ -13146,11 +18754,19 @@ } } }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, "node_modules/xml2js": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -13164,10 +18780,18 @@ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=4.0" } }, + "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 + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -13215,6 +18839,16 @@ "node": ">=12" } }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", @@ -13244,6 +18878,18 @@ "sourcemap-codec": "1.4.8" } }, + "@angular-builders/jest": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@angular-builders/jest/-/jest-13.0.3.tgz", + "integrity": "sha512-HJfN8gCfbg14U/eaE5vEvt6IrecFTUWSibHLvf2gBMzgnRQzqPKNAAoHY5kZ0DL+HwsCW/KlSp2m47ukOdVcYA==", + "dev": true, + "requires": { + "@angular-devkit/architect": ">=0.1300.0 < 0.1400.0", + "@angular-devkit/core": "^13.0.0", + "jest-preset-angular": "11.1.0", + "lodash": "^4.17.15" + } + }, "@angular-devkit/architect": { "version": "0.1303.0", "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1303.0.tgz", @@ -13272,15 +18918,15 @@ } }, "@angular-devkit/build-angular": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-13.3.0.tgz", - "integrity": "sha512-3Ji7EeqGHj7i1Jgmeo3aIEXsnfKyFeQPpl65gcYmHwj5dP4lZzLSU4rMaWWUKksccgqCUXgPI2vKePTPazmikg==", + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-13.2.6.tgz", + "integrity": "sha512-Y2ojy6xbZ0kwScppcutLHBP8eW0qNOjburTISSBU/L5l/9FOeZ1E7yAreKuVu/qibZiLbSJfAhk+SLwhRHFSSQ==", "dev": true, "requires": { "@ampproject/remapping": "1.1.1", - "@angular-devkit/architect": "0.1303.0", - "@angular-devkit/build-webpack": "0.1303.0", - "@angular-devkit/core": "13.3.0", + "@angular-devkit/architect": "0.1302.6", + "@angular-devkit/build-webpack": "0.1302.6", + "@angular-devkit/core": "13.2.6", "@babel/core": "7.16.12", "@babel/generator": "7.16.8", "@babel/helper-annotate-as-pure": "7.16.7", @@ -13291,7 +18937,7 @@ "@babel/runtime": "7.16.7", "@babel/template": "7.16.7", "@discoveryjs/json-ext": "0.5.6", - "@ngtools/webpack": "13.3.0", + "@ngtools/webpack": "13.2.6", "ansi-colors": "4.1.1", "babel-loader": "8.2.3", "babel-plugin-istanbul": "6.1.1", @@ -13337,13 +18983,49 @@ "text-table": "0.2.0", "tree-kill": "1.2.2", "tslib": "2.3.1", - "webpack": "5.70.0", + "webpack": "5.67.0", "webpack-dev-middleware": "5.3.0", "webpack-dev-server": "4.7.3", "webpack-merge": "5.8.0", "webpack-subresource-integrity": "5.1.0" }, "dependencies": { + "@angular-devkit/architect": { + "version": "0.1302.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1302.6.tgz", + "integrity": "sha512-NztzorUMfwJeRaT7SY00Y8WSqc2lQYuF11yNoyEm7Dae3V7VZ28rW2Z9RwibP27rYQL0RjSMaz2wKITHX2vOAw==", + "dev": true, + "requires": { + "@angular-devkit/core": "13.2.6", + "rxjs": "6.6.7" + } + }, + "@angular-devkit/core": { + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.2.6.tgz", + "integrity": "sha512-8h2mWdBTN/dYwZuzKMg2IODlOWMdbJcpQG4XVrkk9ejCPP+3aX5Aa3glCe/voN6eBNiRfs8YDM0jxmpN2aWVtg==", + "dev": true, + "requires": { + "ajv": "8.9.0", + "ajv-formats": "2.1.1", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + } + }, + "@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, + "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 + }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -13360,19 +19042,100 @@ "dev": true } } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + } + } + }, + "webpack": { + "version": "5.67.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.67.0.tgz", + "integrity": "sha512-LjFbfMh89xBDpUMgA1W9Ur6Rn/gnr2Cq1jjHFPo4v6a79/ypznSYbAyPgGhwsxBtMIaEmDD1oJoA7BEYw/Fbrw==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.50", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + } } } }, "@angular-devkit/build-webpack": { - "version": "0.1303.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1303.0.tgz", - "integrity": "sha512-a+Veg2oYn3RM2Kl148BReuONmD1kjbbYBnMUVi8nD6rvJPStFZkqN5s5ZkYybKeWnzMGaB3VasKR88z5XeH22A==", + "version": "0.1302.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1302.6.tgz", + "integrity": "sha512-TYEh2n9tPe932rEIgdiSpojOqtDppW2jzb/empVqCkLF7WUZsXKvTanttZC34L6R2VD6SAGWhb6JDg75ghUVYA==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1303.0", + "@angular-devkit/architect": "0.1302.6", "rxjs": "6.6.7" }, "dependencies": { + "@angular-devkit/architect": { + "version": "0.1302.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1302.6.tgz", + "integrity": "sha512-NztzorUMfwJeRaT7SY00Y8WSqc2lQYuF11yNoyEm7Dae3V7VZ28rW2Z9RwibP27rYQL0RjSMaz2wKITHX2vOAw==", + "dev": true, + "requires": { + "@angular-devkit/core": "13.2.6", + "rxjs": "6.6.7" + } + }, + "@angular-devkit/core": { + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.2.6.tgz", + "integrity": "sha512-8h2mWdBTN/dYwZuzKMg2IODlOWMdbJcpQG4XVrkk9ejCPP+3aX5Aa3glCe/voN6eBNiRfs8YDM0jxmpN2aWVtg==", + "dev": true, + "requires": { + "ajv": "8.9.0", + "ajv-formats": "2.1.1", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + } + }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -13422,18 +19185,32 @@ } }, "@angular-devkit/schematics": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.3.0.tgz", - "integrity": "sha512-hq7tqnB3uVT/iDgqWWZ4kvnijeAcgd4cfLzZiCPaYn1nuhZf0tWsho6exhJ/odMZHvVp7w8OibqWiUKxNY9zHA==", + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.2.6.tgz", + "integrity": "sha512-mPgSqdnZRuPSMeUA+T+mwVCrq2yhXpcYm1/Rjbhy09CyHs4wSrFv21WHCrE6shlvXpcmwr0n+I0DIeagAPmjUA==", "dev": true, "requires": { - "@angular-devkit/core": "13.3.0", + "@angular-devkit/core": "13.2.6", "jsonc-parser": "3.0.0", "magic-string": "0.25.7", "ora": "5.4.1", "rxjs": "6.6.7" }, "dependencies": { + "@angular-devkit/core": { + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.2.6.tgz", + "integrity": "sha512-8h2mWdBTN/dYwZuzKMg2IODlOWMdbJcpQG4XVrkk9ejCPP+3aX5Aa3glCe/voN6eBNiRfs8YDM0jxmpN2aWVtg==", + "dev": true, + "requires": { + "ajv": "8.9.0", + "ajv-formats": "2.1.1", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + } + }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -13460,15 +19237,15 @@ } }, "@angular/cli": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.3.0.tgz", - "integrity": "sha512-2qCKP/QsyxrJnpd3g4P/iTQ4TjI04N8r+bG5YLLfudoMDsQ/Ti4ogdI7PBeG2IMbRylZW9XLjHraWG42+Y9tWw==", + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.2.6.tgz", + "integrity": "sha512-xIjEaQI5sWemXXc7GXLm4u9UL5sjtrQL/y1PJvvk/Jsa8+kIT+MutOfZfC7zcdAh9fqHd8mokH3guFV8BJdFxA==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1303.0", - "@angular-devkit/core": "13.3.0", - "@angular-devkit/schematics": "13.3.0", - "@schematics/angular": "13.3.0", + "@angular-devkit/architect": "0.1302.6", + "@angular-devkit/core": "13.2.6", + "@angular-devkit/schematics": "13.2.6", + "@schematics/angular": "13.2.6", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.1", "debug": "4.3.3", @@ -13484,6 +19261,47 @@ "semver": "7.3.5", "symbol-observable": "4.0.0", "uuid": "8.3.2" + }, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.1302.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1302.6.tgz", + "integrity": "sha512-NztzorUMfwJeRaT7SY00Y8WSqc2lQYuF11yNoyEm7Dae3V7VZ28rW2Z9RwibP27rYQL0RjSMaz2wKITHX2vOAw==", + "dev": true, + "requires": { + "@angular-devkit/core": "13.2.6", + "rxjs": "6.6.7" + } + }, + "@angular-devkit/core": { + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.2.6.tgz", + "integrity": "sha512-8h2mWdBTN/dYwZuzKMg2IODlOWMdbJcpQG4XVrkk9ejCPP+3aX5Aa3glCe/voN6eBNiRfs8YDM0jxmpN2aWVtg==", + "dev": true, + "requires": { + "ajv": "8.9.0", + "ajv-formats": "2.1.1", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } } }, "@angular/common": { @@ -14863,6 +20681,14 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "peer": true + }, "@cspotcode/source-map-consumer": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", @@ -15029,6 +20855,21 @@ "requires": { "ajv": "^8.0.0" } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, @@ -15644,9 +21485,9 @@ } }, "@ngtools/webpack": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.3.0.tgz", - "integrity": "sha512-QbTQWXK2WzYU+aKKVDG0ya7WYT+6rNAUXVt5ov9Nz1SGgDeozpiOx8ZqPWUvnToTY8EoodwWFGCVtkLHXUR+wA==", + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.2.6.tgz", + "integrity": "sha512-N8SvRV91+/57TcAfbghc0k0tKCukw/7KqbDaLPAQTGFekJ4xMGT3elMzOyBXTH3Hvp5HL8/hiBt2tG04qiMf+w==", "dev": true, "requires": {} }, @@ -15771,20 +21612,51 @@ "integrity": "sha512-VGbKDbk1RFIaSmdVb0cNjjWJoRWRI/Weo23AjRCC2nryO0iAS8pzsToJfPVPtVs74WHw4L1UTADNdIYRLkirZQ==" }, "@schematics/angular": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.0.tgz", - "integrity": "sha512-WND6DXWf0ZFefqlC2hUm1FzHDonRfGpDEPWVhVulhYkB7IUUaXuCz8K41HAScyJ3bxUngs2Lx9+4omikc05fxA==", + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.2.6.tgz", + "integrity": "sha512-8NzHMX9+FSgaB0lJYxlTJv9OcBuolwZJqo9M/yX3RPSqSHghA33jWwgVbV551hBJOpbVEePerG1DQkIC99DXKA==", "dev": true, "requires": { - "@angular-devkit/core": "13.3.0", - "@angular-devkit/schematics": "13.3.0", + "@angular-devkit/core": "13.2.6", + "@angular-devkit/schematics": "13.2.6", "jsonc-parser": "3.0.0" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.2.6.tgz", + "integrity": "sha512-8h2mWdBTN/dYwZuzKMg2IODlOWMdbJcpQG4XVrkk9ejCPP+3aX5Aa3glCe/voN6eBNiRfs8YDM0jxmpN2aWVtg==", + "dev": true, + "requires": { + "ajv": "8.9.0", + "ajv-formats": "2.1.1", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } } }, "@sideway/address": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", - "integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", "dev": true, "requires": { "@hapi/hoek": "^9.0.0" @@ -15820,6 +21692,14 @@ "@sinonjs/commons": "^1.7.0" } }, + "@socket.io/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", + "dev": true, + "optional": true, + "peer": true + }, "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -15910,6 +21790,14 @@ "@types/node": "*" } }, + "@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", + "dev": true, + "optional": true, + "peer": true + }, "@types/connect": { "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", @@ -15929,6 +21817,22 @@ "@types/node": "*" } }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true, + "optional": true, + "peer": true + }, + "@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true, + "optional": true, + "peer": true + }, "@types/eslint": { "version": "8.4.1", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", @@ -15996,10 +21900,10 @@ "@types/node": "*" } }, - "@types/jasmine": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.0.0.tgz", - "integrity": "sha512-KvhqNz4NaONk7cfp4E9x+uXOUp7x4H2Zeyb4yXnw2vIuxD5YfSi1767x+aF7z54elhZcC0OH9/78/WL6+5jcDg==", + "@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 }, "@types/istanbul-lib-report": { @@ -16060,6 +21964,14 @@ "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==", "dev": true }, + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true, + "optional": true, + "peer": true + }, "@types/qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", @@ -16078,6 +21990,14 @@ "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", "dev": true }, + "@types/selenium-webdriver": { + "version": "3.0.19", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.19.tgz", + "integrity": "sha512-OFUilxQg+rWL2FMxtmIgCkUDlJB6pskkpvmew7yeXfzzsOBb5rc+y2+DjHm+r3r1ZPPcJefK3DveNSYWGiy68g==", + "dev": true, + "optional": true, + "peer": true + }, "@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -16410,6 +22330,14 @@ } } }, + "adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true, + "optional": true, + "peer": true + }, "agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -16584,6 +22512,22 @@ "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", "dev": true }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true, + "optional": true, + "peer": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "optional": true, + "peer": true + }, "asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", @@ -16612,13 +22556,10 @@ "dev": true }, "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "dev": true }, "asynckit": { "version": "0.4.0", @@ -16902,6 +22843,14 @@ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "optional": true, + "peer": true + }, "batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -16945,6 +22894,17 @@ "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", "dev": true }, + "blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "minimist": "^1.2.0" + } + }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -17047,6 +23007,53 @@ "picocolors": "^1.0.0" } }, + "browserstack": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", + "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "https-proxy-agent": "^2.2.1" + }, + "dependencies": { + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "ms": "^2.1.1" + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + } + } + }, "bs-logger": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", @@ -17460,6 +23467,14 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true, + "optional": true, + "peer": true + }, "compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -17579,6 +23594,15 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -17588,6 +23612,12 @@ "has-flag": "^4.0.0" } }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -17611,6 +23641,41 @@ } } }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "optional": true, + "peer": true + } + } + }, "connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", @@ -17751,6 +23816,18 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "cosmiconfig": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", @@ -17990,6 +24067,14 @@ } } }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true, + "optional": true, + "peer": true + }, "cypress": { "version": "9.5.2", "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.5.2.tgz", @@ -18097,23 +24182,6 @@ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", "dev": true }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, "fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -18126,27 +24194,12 @@ "universalify": "^2.0.0" } }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, "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 }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -18199,6 +24252,14 @@ "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", "dev": true }, + "date-format": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.4.tgz", + "integrity": "sha512-/jyf4rhB17ge328HJuJjAcmRtCsGd+NDeAtahRBTaK6vSPR6MO5HlrAit3Nn7dVjaa6sowW0WXt8yQtLyZQFRg==", + "dev": true, + "optional": true, + "peer": true + }, "dayjs": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.0.tgz", @@ -18213,6 +24274,14 @@ "ms": "2.1.2" } }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "optional": true, + "peer": true + }, "decimal.js": { "version": "10.3.1", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", @@ -18264,6 +24333,37 @@ "dev": true, "requires": { "execa": "^5.0.0" + }, + "dependencies": { + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + } } }, "defaults": { @@ -18290,6 +24390,63 @@ "object-keys": "^1.0.12" } }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -18331,6 +24488,14 @@ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true, + "optional": true, + "peer": true + }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -18377,6 +24542,20 @@ "buffer-indexof": "^1.0.0" } }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, "dom-serializer": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", @@ -18506,6 +24685,37 @@ "once": "^1.4.0" } }, + "engine.io": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", + "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + } + }, + "engine.io-parser": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", + "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "@socket.io/base64-arraybuffer": "~1.0.2" + } + }, "enhanced-resolve": { "version": "5.9.2", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", @@ -18525,6 +24735,14 @@ "ansi-colors": "^4.1.1" } }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true, + "optional": true, + "peer": true + }, "entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", @@ -18568,6 +24786,25 @@ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true, + "optional": true, + "peer": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, "esbuild": { "version": "0.14.22", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.22.tgz", @@ -18855,19 +25092,19 @@ "dev": true }, "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" } }, @@ -18992,17 +25229,6 @@ "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } } }, "extsprintf": { @@ -19159,6 +25385,14 @@ "path-exists": "^4.0.0" } }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true, + "optional": true, + "peer": true + }, "follow-redirects": { "version": "1.14.9", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", @@ -19200,6 +25434,19 @@ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, + "fs-extra": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", + "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -19277,10 +25524,13 @@ "dev": true }, "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } }, "getos": { "version": "3.2.1", @@ -19289,14 +25539,6 @@ "dev": true, "requires": { "async": "^3.2.0" - }, - "dependencies": { - "async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", - "dev": true - } } }, "getpass": { @@ -19375,6 +25617,50 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "optional": true, + "peer": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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, + "optional": true, + "peer": true + } + } + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -19384,6 +25670,27 @@ "function-bind": "^1.1.1" } }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "optional": true, + "peer": true + } + } + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -19561,6 +25868,19 @@ "micromatch": "^4.0.2" } }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, "https-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", @@ -19572,9 +25892,9 @@ } }, "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true }, "humanize-ms": { @@ -19630,6 +25950,14 @@ "dev": true, "optional": true }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true, + "optional": true, + "peer": true + }, "immutable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", @@ -19903,6 +26231,36 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true, + "optional": true, + "peer": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, "is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", @@ -19973,6 +26331,14 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, + "isbinaryfile": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", + "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "dev": true, + "optional": true, + "peer": true + }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -20056,6 +26422,37 @@ "istanbul-lib-report": "^3.0.0" } }, + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "dependencies": { + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true, + "optional": true, + "peer": true + } + } + }, + "jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true, + "optional": true, + "peer": true + }, "jest": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", @@ -20065,98 +26462,6 @@ "@jest/core": "^27.5.1", "import-local": "^3.0.2", "jest-cli": "^27.5.1" - }, - "dependencies": { - "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, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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, - "requires": { - "color-name": "~1.1.4" - } - }, - "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 - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "dev": true, - "requires": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - } - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - } } }, "jest-changed-files": { @@ -20168,6 +26473,37 @@ "@jest/types": "^27.5.1", "execa": "^5.0.0", "throat": "^6.0.1" + }, + "dependencies": { + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + } } }, "jest-circus": { @@ -20254,6 +26590,98 @@ } } }, + "jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dev": true, + "requires": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, "jest-config": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", @@ -20332,12 +26760,6 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "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 - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -20778,7 +27200,8 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true + "dev": true, + "requires": {} }, "jest-preset-angular": { "version": "11.1.0", @@ -21183,12 +27606,41 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -21628,7 +28080,8 @@ "version": "7.5.7", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", - "dev": true + "dev": true, + "requires": {} } } }, @@ -21702,6 +28155,8 @@ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, + "optional": true, + "peer": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -21714,6 +28169,8 @@ "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", "dev": true, + "optional": true, + "peer": true, "requires": { "lie": "~3.3.0", "pako": "~1.0.2", @@ -21726,6 +28183,8 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, + "optional": true, + "peer": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -21741,6 +28200,8 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "optional": true, + "peer": true, "requires": { "safe-buffer": "~5.1.0" } @@ -21752,6 +28213,8 @@ "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.17.tgz", "integrity": "sha512-2TfjHwrRExC8yHoWlPBULyaLwAFmXmxQrcuFImt/JsAsSZu1uOWTZ1ZsWjqQtWpHLiatJOHL5jFjXSJIgCd01g==", "dev": true, + "optional": true, + "peer": true, "requires": { "@colors/colors": "1.5.0", "body-parser": "^1.19.0", @@ -21784,6 +28247,8 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "minimist": "^1.2.5" } @@ -21792,13 +28257,17 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "tmp": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "rimraf": "^3.0.0" } @@ -21808,6 +28277,8 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "optional": true, + "peer": true, "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -21822,56 +28293,12 @@ "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, - "karma-chrome-launcher": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", - "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", - "dev": true, - "requires": { - "which": "^1.2.1" - } - }, - "karma-coverage-istanbul-reporter": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", - "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^3.0.2", - "minimatch": "^3.0.4" - } - }, - "karma-jasmine": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", - "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", - "dev": true, - "requires": { - "jasmine-core": "^3.6.0" - }, - "dependencies": { - "jasmine-core": { - "version": "3.99.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.99.1.tgz", - "integrity": "sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg==", - "dev": true - } - } - }, - "karma-jasmine-html-reporter": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.7.0.tgz", - "integrity": "sha512-pzum1TL7j90DTE86eFt48/s12hqwQuiD+e5aXx2Dc9wDEn2LfGq6RoAxEZZjFiN0RDSCOnosEKRZWxbQ+iMpQQ==", - "dev": true, - "requires": {} - }, "karma-source-map-support": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", @@ -21998,6 +28425,17 @@ "webpack-sources": "^3.0.0" } }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "immediate": "~3.0.5" + } + }, "lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -22018,17 +28456,6 @@ "rxjs": "^7.5.1", "through": "^2.3.8", "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "rxjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", - "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - } } }, "loader-runner": { @@ -22197,6 +28624,21 @@ } } }, + "log4js": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.2.tgz", + "integrity": "sha512-k80cggS2sZQLBwllpT1p06GtfvzMmSdUCkW96f0Hj83rKGJDAu2vZjt9B9ag2vx8Zz1IXzxoLgqvRJCdMKybGg==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "date-format": "^4.0.4", + "debug": "^4.3.3", + "flatted": "^3.2.5", + "rfdc": "^1.3.0", + "streamroller": "^3.0.4" + } + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -22324,6 +28766,14 @@ "picomatch": "^2.2.3" } }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "optional": true, + "peer": true + }, "mime-db": { "version": "1.51.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", @@ -22392,9 +28842,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "minipass": { "version": "3.1.6", @@ -22861,6 +29311,22 @@ "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", "dev": true }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "optional": true, + "peer": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "optional": true, + "peer": true + }, "object-is": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", @@ -23199,6 +29665,14 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true, + "optional": true, + "peer": true + }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -23257,6 +29731,25 @@ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "optional": true, + "peer": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "pinkie": "^2.0.0" + } + }, "pirates": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", @@ -23295,6 +29788,15 @@ "mkdirp": "^0.5.5" }, "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, "debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", @@ -23305,12 +29807,12 @@ } }, "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "requires": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" } } } @@ -23722,6 +30224,241 @@ "sisteransi": "^1.0.5" } }, + "protractor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "optional": true, + "peer": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "optional": true, + "peer": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "optional": true, + "peer": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "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, + "optional": true, + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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, + "optional": true, + "peer": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "optional": true, + "peer": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "optional": true, + "peer": true + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "optional": true, + "peer": true + }, + "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, + "optional": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true, + "optional": true, + "peer": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -23775,6 +30512,22 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true, + "optional": true, + "peer": true + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "optional": true, + "peer": true + }, "qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", @@ -23946,6 +30699,54 @@ } } }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, + "optional": true, + "peer": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true, + "optional": true, + "peer": true + } + } + }, "request-progress": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", @@ -23966,6 +30767,14 @@ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true, + "optional": true, + "peer": true + }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -24128,6 +30937,53 @@ "neo-async": "^2.6.2" } }, + "saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "https-proxy-agent": "^2.2.1" + }, + "dependencies": { + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "ms": "^2.1.1" + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + } + } + }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -24180,6 +31036,44 @@ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", "dev": true }, + "selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "glob": "^7.1.3" + } + }, + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + } + } + }, "selfsigned": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.0.tgz", @@ -24349,6 +31243,14 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true, + "optional": true, + "peer": true + }, "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -24440,6 +31342,43 @@ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true }, + "socket.io": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", + "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.1.0", + "socket.io-adapter": "~2.3.3", + "socket.io-parser": "~4.0.4" + } + }, + "socket.io-adapter": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", + "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", + "dev": true, + "optional": true, + "peer": true + }, + "socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + } + }, "sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", @@ -24627,6 +31566,36 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, + "streamroller": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.4.tgz", + "integrity": "sha512-GI9NzeD+D88UFuIlJkKNDH/IsuR+qIN7Qh8EsmhoRZr9bQoehTraRgwtLUkZbpcAw+hLPfHOypmppz8YyGK68w==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "date-format": "^4.0.4", + "debug": "^4.3.3", + "fs-extra": "^10.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, "string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -24647,23 +31616,6 @@ "strip-ansi": "^6.0.1" } }, - "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==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "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==", - "dev": true - } - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -24684,6 +31636,12 @@ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, + "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 + }, "stylus": { "version": "0.56.0", "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.56.0.tgz", @@ -25131,6 +32089,14 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==" }, + "ua-parser-js": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", + "dev": true, + "optional": true, + "peer": true + }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -25264,6 +32230,14 @@ "extsprintf": "^1.2.0" } }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true, + "optional": true, + "peer": true + }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -25293,17 +32267,6 @@ "lodash": "^4.17.21", "minimist": "^1.2.5", "rxjs": "^7.5.4" - }, - "dependencies": { - "rxjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", - "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - } } }, "walker": { @@ -25343,6 +32306,118 @@ "defaults": "^1.0.3" } }, + "webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + } + }, + "webdriver-manager": { + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", + "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "optional": true, + "peer": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "optional": true, + "peer": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "optional": true, + "peer": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "optional": true, + "peer": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "optional": true, + "peer": true + } + } + }, "webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", @@ -25354,6 +32429,7 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", "dev": true, + "peer": true, "requires": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^0.0.51", @@ -25386,6 +32462,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "peer": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -25397,13 +32474,15 @@ "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, + "peer": true }, "schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, + "peer": true, "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -25645,6 +32724,14 @@ "webidl-conversions": "^6.1.0" } }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true, + "optional": true, + "peer": true + }, "wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", @@ -25729,6 +32816,26 @@ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "optional": true, + "peer": true + }, "xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", From a27fb173dd9740b730cb190b1d90b71a79ec00ef Mon Sep 17 00:00:00 2001 From: Frank Strieter Date: Wed, 23 Mar 2022 08:05:22 +0100 Subject: [PATCH 14/19] solve merge conflicts --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 617233ec2..1ffc7ebcb 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -31,6 +31,6 @@ NOTE: Please check only one box! - [ ] I have read & agree with the [contributing guidelines](https://github.com/paperless-ngx/paperless-ngx/blob/main/CONTRIBUTING.md). - [ ] If applicable, I have tested my code for new features & regressions on both mobile & desktop devices, using the latest version of major browsers. - [ ] If applicable, I have checked that all tests pass, see [documentation](https://paperless-ngx.readthedocs.io/en/latest/extending.html#back-end-development). -- [ ] I have run all `pre-commit` hooks, see [documentation](https://paperless-ngx.readthedocs.io/en/latest/extending.html#code-formatting-with-pre-commit-hooks). +- [ ] I have run all `pre-commit` hooks, see [documentation](https://paperless-ngx.readthedocs.io/en/latest/contributing.html#pre-commit-hooks). - [ ] I have made corresponding changes to the documentation as needed. - [ ] I have checked my modifications for any breaking changes. From ccee85a05e7aa3c4d57d4b91b856da6d282bad96 Mon Sep 17 00:00:00 2001 From: Frank Strieter Date: Wed, 23 Mar 2022 08:33:19 +0100 Subject: [PATCH 15/19] fix code style issues solve merge conflicts format code format code format code --- .github/workflows/project-actions.yml | 3 - src-ui/angular.json | 347 +++++++++--------- src-ui/jest.config.js | 10 +- src-ui/package.json | 2 +- src-ui/setup-jest.ts | 20 +- .../edit-dialog/edit-dialog.component.ts | 36 +- .../common/input/check/check.component.ts | 2 +- src-ui/test-config.helper.ts | 27 +- 8 files changed, 222 insertions(+), 225 deletions(-) diff --git a/.github/workflows/project-actions.yml b/.github/workflows/project-actions.yml index 9c1acfaa9..2cf98bf4b 100644 --- a/.github/workflows/project-actions.yml +++ b/.github/workflows/project-actions.yml @@ -8,9 +8,6 @@ on: types: - opened - reopened - branches: - - main - - dev # map fields with customized labels env: diff --git a/src-ui/angular.json b/src-ui/angular.json index 6edccee5b..16cc2070e 100644 --- a/src-ui/angular.json +++ b/src-ui/angular.json @@ -2,179 +2,176 @@ "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "newProjectRoot": "projects", - "projects": { - "paperless-ui": { - "projectType": "application", - "schematics": { - "@schematics/angular:component": { - "style": "scss" - } - }, - "root": "", - "sourceRoot": "src", - "prefix": "app", - "i18n": { - "sourceLocale": "en-US", - "locales": { - "cs-CZ": "src/locale/messages.cs_CZ.xlf", - "da-DK": "src/locale/messages.da_DK.xlf", - "de-DE": "src/locale/messages.de_DE.xlf", - "en-GB": "src/locale/messages.en_GB.xlf", - "es-ES": "src/locale/messages.es_ES.xlf", - "fr-FR": "src/locale/messages.fr_FR.xlf", - "it-IT": "src/locale/messages.it_IT.xlf", - "lb-LU": "src/locale/messages.lb_LU.xlf", - "nl-NL": "src/locale/messages.nl_NL.xlf", - "pl-PL": "src/locale/messages.pl_PL.xlf", - "pt-BR": "src/locale/messages.pt_BR.xlf", - "pt-PT": "src/locale/messages.pt_PT.xlf", - "ro-RO": "src/locale/messages.ro_RO.xlf", - "ru-RU": "src/locale/messages.ru_RU.xlf", - "sl-SI": "src/locale/messages.sl_SI.xlf", - "sr-CS": "src/locale/messages.sr_CS.xlf", - "sv-SE": "src/locale/messages.sv_SE.xlf", - "zh-CN": "src/locale/messages.zh_CN.xlf" - } - }, - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:browser", - "options": { - "outputPath": "dist/paperless-ui", - "outputHashing": "none", - "index": "src/index.html", - "main": "src/main.ts", - "polyfills": "src/polyfills.ts", - "tsConfig": "tsconfig.app.json", - "localize": true, - "assets": [ - "src/favicon.ico", - "src/apple-touch-icon.png", - "src/assets", - "src/manifest.webmanifest", - { - "glob": "pdf.worker.min.js", - "input": "node_modules/pdfjs-dist/build/", - "output": "/assets/js/" - } - ], - "styles": [ - "src/styles.scss" - ], - "scripts": [], - "allowedCommonJsDependencies": [ - "ng2-pdf-viewer" - ], - "vendorChunk": true, - "extractLicenses": false, - "buildOptimizer": false, - "sourceMap": true, - "optimization": false, - "namedChunks": true - }, - "configurations": { - "production": { - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.prod.ts" - } - ], - "outputPath": "../src/documents/static/frontend/", - "optimization": true, - "outputHashing": "none", - "sourceMap": false, - "namedChunks": false, - "extractLicenses": true, - "vendorChunk": false, - "buildOptimizer": true, - "budgets": [ - { - "type": "initial", - "maximumWarning": "2mb", - "maximumError": "5mb" - }, - { - "type": "anyComponentStyle", - "maximumWarning": "6kb", - "maximumError": "10kb" - } - ] - }, - "en-US": { - "localize": [ - "en-US" - ] - } - }, - "defaultConfiguration": "" - }, - "serve": { - "builder": "@angular-devkit/build-angular:dev-server", - "options": { - "browserTarget": "paperless-ui:build:en-US" - }, - "configurations": { - "production": { - "browserTarget": "paperless-ui:build:production" - } - } - }, - "extract-i18n": { - "builder": "@angular-devkit/build-angular:extract-i18n", - "options": { - "browserTarget": "paperless-ui:build" - } - }, - "test": { - "builder": "@angular-builders/jest:run", - "options": { - "tsConfig": "tsconfig.spec.json", - "assets": [ - "src/favicon.ico", - "src/apple-touch-icon.png", - "src/assets", - "src/manifest.webmanifest" - ], - "styles": [ - "src/styles.scss" - ], - "scripts": [] - } - }, - "e2e": { - "builder": "@cypress/schematic:cypress", - "options": { - "devServerTarget": "paperless-ui:serve", - "watch": true, - "headless": false - }, - "configurations": { - "production": { - "devServerTarget": "paperless-ui:serve:production" - } - } - }, - "cypress-run": { - "builder": "@cypress/schematic:cypress", - "options": { - "devServerTarget": "paperless-ui:serve" - }, - "configurations": { - "production": { - "devServerTarget": "paperless-ui:serve:production" - } - } - }, - "cypress-open": { - "builder": "@cypress/schematic:cypress", - "options": { - "watch": true, - "headless": false - } - } - } - } - }, - "defaultProject": "paperless-ui" + "projects": { + "paperless-ui": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "i18n": { + "sourceLocale": "en-US", + "locales": { + "cs-CZ": "src/locale/messages.cs_CZ.xlf", + "da-DK": "src/locale/messages.da_DK.xlf", + "de-DE": "src/locale/messages.de_DE.xlf", + "en-GB": "src/locale/messages.en_GB.xlf", + "es-ES": "src/locale/messages.es_ES.xlf", + "fr-FR": "src/locale/messages.fr_FR.xlf", + "it-IT": "src/locale/messages.it_IT.xlf", + "lb-LU": "src/locale/messages.lb_LU.xlf", + "nl-NL": "src/locale/messages.nl_NL.xlf", + "pl-PL": "src/locale/messages.pl_PL.xlf", + "pt-BR": "src/locale/messages.pt_BR.xlf", + "pt-PT": "src/locale/messages.pt_PT.xlf", + "ro-RO": "src/locale/messages.ro_RO.xlf", + "ru-RU": "src/locale/messages.ru_RU.xlf", + "sl-SI": "src/locale/messages.sl_SI.xlf", + "sr-CS": "src/locale/messages.sr_CS.xlf", + "sv-SE": "src/locale/messages.sv_SE.xlf", + "zh-CN": "src/locale/messages.zh_CN.xlf" + } + }, + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist/paperless-ui", + "outputHashing": "none", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.app.json", + "localize": true, + "assets": [ + "src/favicon.ico", + "src/apple-touch-icon.png", + "src/assets", + "src/manifest.webmanifest", { + "glob": "pdf.worker.min.js", + "input": "node_modules/pdfjs-dist/build/", + "output": "/assets/js/" + } + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [], + "allowedCommonJsDependencies": [ + "ng2-pdf-viewer" + ], + "vendorChunk": true, + "extractLicenses": false, + "buildOptimizer": false, + "sourceMap": true, + "optimization": false, + "namedChunks": true + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "outputPath": "../src/documents/static/frontend/", + "optimization": true, + "outputHashing": "none", + "sourceMap": false, + "namedChunks": false, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "budgets": [ + { + "type": "initial", + "maximumWarning": "2mb", + "maximumError": "5mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "6kb", + "maximumError": "10kb" + } + ] + }, + "en-US": { + "localize": ["en-US"] + } + }, + "defaultConfiguration": "" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "paperless-ui:build:en-US" + }, + "configurations": { + "production": { + "browserTarget": "paperless-ui:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "paperless-ui:build" + } + }, + "test": { + "builder": "@angular-builders/jest:run", + "options": { + "tsConfig": "tsconfig.spec.json", + "assets": [ + "src/favicon.ico", + "src/apple-touch-icon.png", + "src/assets", + "src/manifest.webmanifest" + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [] + } + }, + "e2e": { + "builder": "@cypress/schematic:cypress", + "options": { + "devServerTarget": "paperless-ui:serve", + "watch": true, + "headless": false + }, + "configurations": { + "production": { + "devServerTarget": "paperless-ui:serve:production" + } + } + }, + "cypress-run": { + "builder": "@cypress/schematic:cypress", + "options": { + "devServerTarget": "paperless-ui:serve" + }, + "configurations": { + "production": { + "devServerTarget": "paperless-ui:serve:production" + } + } + }, + "cypress-open": { + "builder": "@cypress/schematic:cypress", + "options": { + "watch": true, + "headless": false + } + } + } + } + }, + "defaultProject": "paperless-ui" } diff --git a/src-ui/jest.config.js b/src-ui/jest.config.js index 45ef68959..23de7b188 100644 --- a/src-ui/jest.config.js +++ b/src-ui/jest.config.js @@ -1,8 +1,8 @@ module.exports = { moduleNameMapper: { - "@core/(.*)": "/src/app/core/$1", + '@core/(.*)': '/src/app/core/$1', }, - preset: "jest-preset-angular", - setupFilesAfterEnv: ["/setup-jest.ts"], - testPathIgnorePatterns: ["/node_modules/", "/cypress/"], -}; + preset: 'jest-preset-angular', + setupFilesAfterEnv: ['/setup-jest.ts'], + testPathIgnorePatterns: ['/node_modules/', '/cypress/'], +} diff --git a/src-ui/package.json b/src-ui/package.json index 6683b997d..38602c730 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -9,7 +9,7 @@ "lint": "ng lint", "e2e": "ng e2e", "cy:run": "cypress run", - "e2e:ci": "concurrently \"npm run start\" \"wait-on http-get://localhost:4200 && npm run cy:run\" --kill-others --success first" + "e2e:ci": "concurrently 'npm run start' 'wait-on http-get://localhost:4200 && npm run cy:run' --kill-others --success first" }, "private": true, "dependencies": { diff --git a/src-ui/setup-jest.ts b/src-ui/setup-jest.ts index c581590b2..5ada7e7c6 100644 --- a/src-ui/setup-jest.ts +++ b/src-ui/setup-jest.ts @@ -1,30 +1,30 @@ -import 'jest-preset-angular/setup-jest'; +import 'jest-preset-angular/setup-jest' /* global mocks for jsdom */ const mock = () => { - let storage: { [key: string]: string } = {}; + let storage: { [key: string]: string } = {} return { getItem: (key: string) => (key in storage ? storage[key] : null), setItem: (key: string, value: string) => (storage[key] = value || ''), removeItem: (key: string) => delete storage[key], clear: () => (storage = {}), - }; -}; + } +} -Object.defineProperty(window, 'localStorage', { value: mock() }); -Object.defineProperty(window, 'sessionStorage', { value: mock() }); +Object.defineProperty(window, 'localStorage', { value: mock() }) +Object.defineProperty(window, 'sessionStorage', { value: mock() }) Object.defineProperty(window, 'getComputedStyle', { value: () => ['-webkit-appearance'], -}); +}) Object.defineProperty(document.body.style, 'transform', { value: () => { return { enumerable: true, configurable: true, - }; + } }, -}); +}) /* output shorter and more meaningful Zone error stack traces */ -// Error.stackTraceLimit = 2; +// Error.stackTraceLimit = 2 diff --git a/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.ts b/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.ts index 1ba9c53ec..92b16a93d 100644 --- a/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.ts +++ b/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.ts @@ -19,27 +19,27 @@ export abstract class EditDialogComponent ) {} @Input() - dialogMode: string = 'create'; + dialogMode: string = 'create' @Input() - object: T; + object: T @Output() - success = new EventEmitter(); + success = new EventEmitter() - networkActive = false; + networkActive = false - closeEnabled = false; + closeEnabled = false - error = null; + error = null - abstract getForm(): FormGroup; + abstract getForm(): FormGroup - objectForm: FormGroup = this.getForm(); + objectForm: FormGroup = this.getForm() ngOnInit(): void { if (this.object != null) { - this.objectForm.patchValue(this.object); + this.objectForm.patchValue(this.object) } // wait to enable close button so it doesnt steal focus from input since its the first clickable element in the DOM @@ -49,34 +49,34 @@ export abstract class EditDialogComponent } getCreateTitle() { - return $localize`Create new item`; + return $localize`Create new item` } getEditTitle() { - return $localize`Edit item`; + return $localize`Edit item` } getSaveErrorMessage(error: string) { - return $localize`Could not save element: ${error}`; + return $localize`Could not save element: ${error}` } getTitle() { switch (this.dialogMode) { case 'create': - return this.getCreateTitle(); + return this.getCreateTitle() case 'edit': - return this.getEditTitle(); + return this.getEditTitle() default: break } } getMatchingAlgorithms() { - return MATCHING_ALGORITHMS; + return MATCHING_ALGORITHMS } get patternRequired(): boolean { - return this.objectForm?.value.matching_algorithm !== MATCH_AUTO; + return this.objectForm?.value.matching_algorithm !== MATCH_AUTO } save() { @@ -90,7 +90,7 @@ export abstract class EditDialogComponent serverResponse = this.service.create(newObject) break case 'edit': - serverResponse = this.service.update(newObject); + serverResponse = this.service.update(newObject) default: break } @@ -108,6 +108,6 @@ export abstract class EditDialogComponent } cancel() { - this.activeModal.close(); + this.activeModal.close() } } diff --git a/src-ui/src/app/components/common/input/check/check.component.ts b/src-ui/src/app/components/common/input/check/check.component.ts index bf99b3c6a..f4a6e527e 100644 --- a/src-ui/src/app/components/common/input/check/check.component.ts +++ b/src-ui/src/app/components/common/input/check/check.component.ts @@ -17,6 +17,6 @@ import { AbstractInputComponent } from '../abstract-input' }) export class CheckComponent extends AbstractInputComponent { constructor() { - super(); + super() } } diff --git a/src-ui/test-config.helper.ts b/src-ui/test-config.helper.ts index 4bec94ea4..f38cdfb26 100644 --- a/src-ui/test-config.helper.ts +++ b/src-ui/test-config.helper.ts @@ -1,21 +1,24 @@ -import { TestBed } from '@angular/core/testing'; +import { TestBed } from '@angular/core/testing' type CompilerOptions = Partial<{ - providers: any[]; - useJit: boolean; - preserveWhitespaces: boolean; -}>; -export type ConfigureFn = (testBed: typeof TestBed) => void; + providers: any[] + useJit: boolean + preserveWhitespaces: boolean +}> +export type ConfigureFn = (testBed: typeof TestBed) => void -export const configureTests = (configure: ConfigureFn, compilerOptions: CompilerOptions = {}) => { +export const configureTests = ( + configure: ConfigureFn, + compilerOptions: CompilerOptions = {} +) => { const compilerConfig: CompilerOptions = { preserveWhitespaces: false, ...compilerOptions, - }; + } - const configuredTestBed = TestBed.configureCompiler(compilerConfig); + const configuredTestBed = TestBed.configureCompiler(compilerConfig) - configure(configuredTestBed); + configure(configuredTestBed) - return configuredTestBed.compileComponents().then(() => configuredTestBed); -}; + return configuredTestBed.compileComponents().then(() => configuredTestBed) +} From 806f1ec0a364e3372b699a6f5a2c1dbfe4e1dbf7 Mon Sep 17 00:00:00 2001 From: Kevin Kandlbinder Date: Wed, 23 Mar 2022 12:15:35 +0100 Subject: [PATCH 16/19] Add API Scanning Setup section to scanners.rst * Add instructions for Doxie Q2 to scanners.rst --- docs/scanners.rst | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/scanners.rst b/docs/scanners.rst index 11b57da94..82521488e 100644 --- a/docs/scanners.rst +++ b/docs/scanners.rst @@ -112,3 +112,23 @@ On Android, you can use these applications in combination with one of the :ref:` .. _hannahswain: https://github.com/hannahswain .. _benjaminfrank: https://github.com/benjaminfrank + +API Scanning Setup +================== + +This sections contains information on how to set up scanners to post directly to :ref:`Paperless API `. + +Doxie Q2 +-------- + +This part assumes your Doxie is connected to WiFi and you know it's IP. + +1. Open your Doxie web UI by navigating to its IP address +2. Navigate to Options -> Webhook +3. Set the *URL* to ``https://[your-paperless-ng-instance]/api/documents/post_document/`` +4. Set the *File Parameter Name* to ``document`` +5. Add the username and password to the respective fields (Consider creating a user just for your Doxie) +6. Click *Submit* at the bottom of the page + +Congrats, you can now scan directly from your Doxie to your Paperless-ng instance! + From 42a570920256465c0e25609cada072e14cdacc44 Mon Sep 17 00:00:00 2001 From: Kevin Kandlbinder Date: Wed, 23 Mar 2022 14:06:41 +0100 Subject: [PATCH 17/19] Fix typo in docs/scanners.rst Co-authored-by: Quinn Casey --- docs/scanners.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/scanners.rst b/docs/scanners.rst index 82521488e..4b6721253 100644 --- a/docs/scanners.rst +++ b/docs/scanners.rst @@ -121,7 +121,7 @@ This sections contains information on how to set up scanners to post directly to Doxie Q2 -------- -This part assumes your Doxie is connected to WiFi and you know it's IP. +This part assumes your Doxie is connected to WiFi and you know its IP. 1. Open your Doxie web UI by navigating to its IP address 2. Navigate to Options -> Webhook From c79b70fffd59ae75a08c8715e5965a13e73ded21 Mon Sep 17 00:00:00 2001 From: Kevin Kandlbinder Date: Wed, 23 Mar 2022 14:06:53 +0100 Subject: [PATCH 18/19] Fix typo in docs/scanners.rst Co-authored-by: Quinn Casey --- docs/scanners.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/scanners.rst b/docs/scanners.rst index 4b6721253..d7d203425 100644 --- a/docs/scanners.rst +++ b/docs/scanners.rst @@ -125,7 +125,7 @@ This part assumes your Doxie is connected to WiFi and you know its IP. 1. Open your Doxie web UI by navigating to its IP address 2. Navigate to Options -> Webhook -3. Set the *URL* to ``https://[your-paperless-ng-instance]/api/documents/post_document/`` +3. Set the *URL* to ``https://[your-paperless-ngx-instance]/api/documents/post_document/`` 4. Set the *File Parameter Name* to ``document`` 5. Add the username and password to the respective fields (Consider creating a user just for your Doxie) 6. Click *Submit* at the bottom of the page From feed7cd5568ee846ea89a6922cee1b48a3a2baa3 Mon Sep 17 00:00:00 2001 From: Kevin Kandlbinder Date: Wed, 23 Mar 2022 14:07:10 +0100 Subject: [PATCH 19/19] Fix typo in docs/scanners.rst Co-authored-by: Quinn Casey --- docs/scanners.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/scanners.rst b/docs/scanners.rst index d7d203425..51611c9ac 100644 --- a/docs/scanners.rst +++ b/docs/scanners.rst @@ -130,5 +130,5 @@ This part assumes your Doxie is connected to WiFi and you know its IP. 5. Add the username and password to the respective fields (Consider creating a user just for your Doxie) 6. Click *Submit* at the bottom of the page -Congrats, you can now scan directly from your Doxie to your Paperless-ng instance! +Congrats, you can now scan directly from your Doxie to your Paperless-ngx instance!