From b81139035a3e608c34b78e241163631458e7daa1 Mon Sep 17 00:00:00 2001 From: Vincenzo Pellegrini Date: Thu, 30 Mar 2023 20:05:43 +0200 Subject: [PATCH] Changed framework to NestJS, implemented authentication, authorization and validation (#6) * Updated gitignore for MacOS * Nest initial scaffolding, Vite react-ts initial scaffolding, with working auth0 authentication, token creation and axios client * Revert "Nest initial scaffolding," This reverts commit f4edcadc9554f7e178003d4c8e3753e06f22e386. * wiped ci scripts * Setup pnpm workspace * Body validation working Next step authorization * Deleted remnaince of typeorm messup * Authorization using jwt with a global guard (may need revisiting for authorization) * Revert "Authorization using jwt with a global guard" This reverts commit 093356e695523843ef579c316c35598abfb12d5e. * Auth with oauth2 official middleware * Moved auth0 constants to config * Small commit pre-merge * Revert "Revert "Authorization using jwt with a global guard"" This reverts commit 018711c2db425d06ae70fbf00de13155a8532b95. * Using app guard * Now encoding user role in request, better swagger annotations * In the process of implementing authorization IMPORTANT: changed build system, now both frontend and backend import typescript, compile it, watch it, do their own thing * Fixed preview command with updated compiled file path * First phase of authorization: simple rules next step: - casl + prisma (or other supported orms) to avoid weird logic, and to filter the resource for the rows that are accessible to the current user - oauth0 service to verify that some fields match the user's data on user creation * Added access control to all user routes * avaiabilitiesTable updated * Proper validation with Joi of all request fields & prettier reformat * Integrated previously written frontend with monorepo moved fronted to vite cause speed (and typescript transpiling) Formatting scripts * Moved to env variables with env files instead of yaml config file for the api * Ultima commit di Marco --------- Co-authored-by: Marco Pappalardo --- .github/workflows/ci.yml | 24 - .github/workflows/migrations.yml | 26 - .gitignore | 17 +- api/.dockerignore | 2 - api/.eslintrc.js | 25 + api/.gitignore | 6 + api/.prettierrc | 4 + api/COPYING | 675 - api/Dockerfile | 16 - api/README.md | 116 +- api/app.ts | 48 - api/jest.config.js | 4 - api/migrations/V1__seed.sql | 205 - .../dev/skipV1.1__seed_mocked_data.sql | 38 - api/migrations/flyway.conf | 3 - api/nest-cli.json | 6 + api/package-lock.json | 16682 --------- api/package.json | 143 +- api/src/ErrorHandler.ts | 47 - api/src/app.module.ts | 51 + api/src/applicant/applicant.controller.ts | 42 - api/src/applicant/applicant.d.ts | 19 - api/src/applicant/applicant.model.ts | 45 - api/src/applicant/applicant.repository.ts | 74 - .../authentication/authentication.module.ts | 11 + api/src/authentication/jwt-guard.guard.ts | 3 + api/src/authentication/jwt.strategy.ts | 38 + api/src/authorization/ability.decorator.ts | 11 + .../authenticated-request.types.ts | 6 + .../authorization/authorization.guard.spec.ts | 7 + api/src/authorization/authorization.guard.ts | 40 + api/src/authorization/authorization.module.ts | 7 + .../authorization/check-policies.decorator.ts | 8 + api/src/common/common.routes.config.ts | 15 - api/src/config/gCalendarPreferences.d.ts | 49 - api/src/config/gcalendarPreferences.json | 33 - .../json-schema/gcalendarPreferences.json | 77 - .../config/json-schema/messageTemplate.json | 65 - .../json-schema/notificationTemplate.json | 33 - .../config/json-schema/recruitmentConfig.json | 116 - api/src/config/messageTemplate.d.ts | 36 - api/src/config/messageTemplate.json | 233 - api/src/config/notificationTemplate.d.ts | 23 - api/src/config/notificationTemplate.json | 39 - api/src/config/recruitmentConfig.d.ts | 84 - api/src/config/recruitmentConfig.json | 47 - api/src/datatypes/application.d.ts | 31 - api/src/datatypes/authZRule.d.ts | 16 - api/src/datatypes/dataTypes.d.ts | 32 - api/src/datatypes/entities.d.ts | 91 - api/src/datatypes/enums.d.ts | 22 - .../datatypes/json-schemas/application.json | 27 - api/src/datatypes/json-schemas/authZRule.json | 35 - api/src/datatypes/json-schemas/dataTypes.json | 63 - api/src/datatypes/json-schemas/entities.json | 152 - api/src/datatypes/json-schemas/enums.json | 27 - .../json-schemas/json-schema-draft-06.json | 137 - api/src/datatypes/json-schemas/payloads.json | 650 - api/src/datatypes/json-schemas/person.json | 15 - .../json-schemas/recruitment_session.json | 13 - api/src/datatypes/json-schemas/responses.json | 178 - api/src/datatypes/person.d.ts | 18 - api/src/datatypes/recruitment_session.d.ts | 14 - api/src/dbconfig/dbconnector.ts | 12 - api/src/ioc/ioc.ts | 17 - api/src/ioc/types.ts | 7 - .../joi-validation/joi-validate.decorator.ts | 5 + .../joi-validation-pipe.pipe.spec.ts | 3 + api/src/joi-validation/joi-validation.pipe.ts | 41 + api/src/main.ts | 28 + api/src/modules/AuthZManager.ts | 208 - api/src/modules/CalendarInterface.ts | 66 - api/src/modules/Compensator.ts | 334 - api/src/modules/ConfigManager.ts | 69 - api/src/modules/DAO/DAOdefs.d.ts | 119 - api/src/modules/ExhaustiveScheduler.ts | 90 - api/src/modules/FileStorageInterface.ts | 80 - api/src/modules/GAuth/GAuth.ts | 122 - api/src/modules/GCalendar.ts | 126 - api/src/modules/GDriveStorage.ts | 145 - api/src/modules/GMailNotifier.ts | 349 - api/src/modules/GreedyScheduler.ts | 79 - api/src/modules/HKContext.ts | 57 - api/src/modules/NotificationSubsystem.ts | 338 - api/src/modules/Notifier.ts | 46 - api/src/modules/PeriodicEvent.ts | 126 - api/src/modules/SlotScheduler.ts | 535 - api/src/modules/ValidatorInterface.ts | 63 - api/src/modules/routes/applicant.ts | 19 - api/src/modules/utils.ts | 63 - api/src/person/personModelFactory.ts | 63 - api/src/timer/timer.interceptor.ts | 26 + api/src/users/create-user.dto.ts | 28 + api/src/users/update-user.dto.ts | 6 + api/src/users/user.entity.ts | 29 + api/src/users/users.controller.spec.ts | 18 + api/src/users/users.controller.ts | 148 + api/src/users/users.module.ts | 13 + api/src/users/users.service.spec.ts | 18 + api/src/users/users.service.ts | 46 + api/src/util.ts | 8 - api/test/AuthZManager.test.ts | 230 - api/test/ConfigManager.test.ts | 67 - api/test/GCalendar.test.ts | 84 - api/test/GDriveStorage.test.ts | 84 - api/test/GMailNotifier.test.ts | 256 - api/test/NotificationSubsystem.test.ts | 279 - api/test/app.e2e-spec.ts | 24 + api/test/jest-e2e.json | 9 + api/test/validationData/mailTemplates.json | 214 - .../validationData/recruitmentConfig.json | 53 - api/tsconfig.build.json | 4 + api/tsconfig.json | 40 +- api/tsoa.json | 24 - docker-compose.yml | 9 - frontend/{hkrecruitment => }/.gitignore | 0 frontend/README.md | 9 + frontend/hkrecruitment/README.md | 70 - frontend/hkrecruitment/package-lock.json | 28143 ---------------- frontend/hkrecruitment/package.json | 45 - frontend/hkrecruitment/public/manifest.json | 41 - frontend/hkrecruitment/src/App.js | 51 - frontend/hkrecruitment/src/App.test.js | 8 - .../hkrecruitment/src/AvaiabilitiesCell.js | 10 - .../hkrecruitment/src/AvaiabilitiesTable.js | 67 - frontend/hkrecruitment/src/LoginButton.js | 11 - frontend/hkrecruitment/src/MyNavbar.js | 53 - frontend/hkrecruitment/src/SignupForm.js | 183 - frontend/hkrecruitment/src/index.css | 13 - frontend/hkrecruitment/src/index.js | 29 - frontend/hkrecruitment/src/reportWebVitals.js | 13 - frontend/hkrecruitment/src/setupTests.js | 5 - .../{hkrecruitment/public => }/index.html | 79 +- frontend/package.json | 53 + .../public/android-icon-144x144.png | Bin .../public/android-icon-192x192.png | Bin .../public/android-icon-36x36.png | Bin .../public/android-icon-48x48.png | Bin .../public/android-icon-72x72.png | Bin .../public/android-icon-96x96.png | Bin .../public/apple-icon-114x114.png | Bin .../public/apple-icon-120x120.png | Bin .../public/apple-icon-144x144.png | Bin .../public/apple-icon-152x152.png | Bin .../public/apple-icon-180x180.png | Bin .../public/apple-icon-57x57.png | Bin .../public/apple-icon-60x60.png | Bin .../public/apple-icon-72x72.png | Bin .../public/apple-icon-76x76.png | Bin .../public/apple-icon-precomposed.png | Bin .../{hkrecruitment => }/public/apple-icon.png | Bin .../public/browserconfig.xml | 0 .../public/favicon-16x16.png | Bin .../public/favicon-32x32.png | Bin .../public/favicon-96x96.png | Bin .../{hkrecruitment => }/public/favicon.ico | Bin .../public/hkn_logo_blu.png | Bin .../{hkrecruitment => }/public/logo192.png | Bin .../{hkrecruitment => }/public/logo512.png | Bin frontend/public/manifest.json | 41 + .../public/ms-icon-144x144.png | Bin .../public/ms-icon-150x150.png | Bin .../public/ms-icon-310x310.png | Bin .../public/ms-icon-70x70.png | Bin .../{hkrecruitment => }/public/robots.txt | 0 frontend/{hkrecruitment => }/src/App.css | 20 +- frontend/src/App.jsx | 58 + frontend/src/AvaiabilitiesCell.jsx | 12 + frontend/src/AvaiabilitiesTable.jsx | 186 + frontend/src/LoginButton.jsx | 22 + frontend/src/MyNavbar.jsx | 47 + frontend/src/SignupForm.jsx | 252 + frontend/src/index.css | 13 + frontend/{hkrecruitment => }/src/logo.svg | 0 frontend/src/main.jsx | 21 + frontend/src/vite-env.d.ts | 1 + frontend/vite.config.ts | 7 + hkrecruitment-documentation/.gitignore | 27 - hkrecruitment-documentation/COPYING | 422 - hkrecruitment-documentation/README.md | 22 - .../appendix/GNUFreeDocumentationLicense.tex | 522 - .../chapters/objectives.tex | 10 - .../chapters/overview.tex | 8 - .../chapters/security.tex | 159 - .../chapters/specifications.tex | 10 - .../chapters/testing.tex | 7 - .../ext_sections/preliminary.tex | 13 - .../ext_sections/versions.tex | 18 - .../hkrecruitment-documentation.tex | 123 - hkrecruitment-documentation/images/DAM.png | Bin 90724 -> 0 bytes .../images/TS-JS types.jpg | Bin 62743 -> 0 bytes .../auth-sequence-client-credentials.png | Bin 25827 -> 0 bytes hkrecruitment-documentation/images/auth0.png | Bin 630931 -> 0 bytes .../images/hkn_logo.pdf | Bin 38205 -> 0 bytes package.json | 29 + pnpm-lock.yaml | 6989 ++++ pnpm-workspace.yaml | 4 + shared/package.json | 18 + shared/src/abilities.ts | 54 + shared/src/index.ts | 2 + shared/src/person.ts | 83 + shared/tsconfig.json | 23 + 202 files changed, 8828 insertions(+), 55025 deletions(-) delete mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/migrations.yml delete mode 100644 api/.dockerignore create mode 100644 api/.eslintrc.js create mode 100644 api/.gitignore create mode 100644 api/.prettierrc delete mode 100644 api/COPYING delete mode 100644 api/Dockerfile delete mode 100644 api/app.ts delete mode 100644 api/jest.config.js delete mode 100644 api/migrations/V1__seed.sql delete mode 100644 api/migrations/dev/skipV1.1__seed_mocked_data.sql delete mode 100644 api/migrations/flyway.conf create mode 100644 api/nest-cli.json delete mode 100644 api/package-lock.json delete mode 100644 api/src/ErrorHandler.ts create mode 100644 api/src/app.module.ts delete mode 100644 api/src/applicant/applicant.controller.ts delete mode 100644 api/src/applicant/applicant.d.ts delete mode 100644 api/src/applicant/applicant.model.ts delete mode 100644 api/src/applicant/applicant.repository.ts create mode 100644 api/src/authentication/authentication.module.ts create mode 100644 api/src/authentication/jwt-guard.guard.ts create mode 100644 api/src/authentication/jwt.strategy.ts create mode 100644 api/src/authorization/ability.decorator.ts create mode 100644 api/src/authorization/authenticated-request.types.ts create mode 100644 api/src/authorization/authorization.guard.spec.ts create mode 100644 api/src/authorization/authorization.guard.ts create mode 100644 api/src/authorization/authorization.module.ts create mode 100644 api/src/authorization/check-policies.decorator.ts delete mode 100644 api/src/common/common.routes.config.ts delete mode 100644 api/src/config/gCalendarPreferences.d.ts delete mode 100644 api/src/config/gcalendarPreferences.json delete mode 100644 api/src/config/json-schema/gcalendarPreferences.json delete mode 100644 api/src/config/json-schema/messageTemplate.json delete mode 100644 api/src/config/json-schema/notificationTemplate.json delete mode 100644 api/src/config/json-schema/recruitmentConfig.json delete mode 100644 api/src/config/messageTemplate.d.ts delete mode 100644 api/src/config/messageTemplate.json delete mode 100644 api/src/config/notificationTemplate.d.ts delete mode 100644 api/src/config/notificationTemplate.json delete mode 100644 api/src/config/recruitmentConfig.d.ts delete mode 100644 api/src/config/recruitmentConfig.json delete mode 100644 api/src/datatypes/application.d.ts delete mode 100644 api/src/datatypes/authZRule.d.ts delete mode 100644 api/src/datatypes/dataTypes.d.ts delete mode 100644 api/src/datatypes/entities.d.ts delete mode 100644 api/src/datatypes/enums.d.ts delete mode 100644 api/src/datatypes/json-schemas/application.json delete mode 100644 api/src/datatypes/json-schemas/authZRule.json delete mode 100644 api/src/datatypes/json-schemas/dataTypes.json delete mode 100644 api/src/datatypes/json-schemas/entities.json delete mode 100644 api/src/datatypes/json-schemas/enums.json delete mode 100644 api/src/datatypes/json-schemas/json-schema-draft-06.json delete mode 100644 api/src/datatypes/json-schemas/payloads.json delete mode 100644 api/src/datatypes/json-schemas/person.json delete mode 100644 api/src/datatypes/json-schemas/recruitment_session.json delete mode 100644 api/src/datatypes/json-schemas/responses.json delete mode 100644 api/src/datatypes/person.d.ts delete mode 100644 api/src/datatypes/recruitment_session.d.ts delete mode 100644 api/src/dbconfig/dbconnector.ts delete mode 100644 api/src/ioc/ioc.ts delete mode 100644 api/src/ioc/types.ts create mode 100644 api/src/joi-validation/joi-validate.decorator.ts create mode 100644 api/src/joi-validation/joi-validation-pipe.pipe.spec.ts create mode 100644 api/src/joi-validation/joi-validation.pipe.ts create mode 100644 api/src/main.ts delete mode 100644 api/src/modules/AuthZManager.ts delete mode 100644 api/src/modules/CalendarInterface.ts delete mode 100644 api/src/modules/Compensator.ts delete mode 100644 api/src/modules/ConfigManager.ts delete mode 100644 api/src/modules/DAO/DAOdefs.d.ts delete mode 100644 api/src/modules/ExhaustiveScheduler.ts delete mode 100644 api/src/modules/FileStorageInterface.ts delete mode 100644 api/src/modules/GAuth/GAuth.ts delete mode 100644 api/src/modules/GCalendar.ts delete mode 100644 api/src/modules/GDriveStorage.ts delete mode 100644 api/src/modules/GMailNotifier.ts delete mode 100644 api/src/modules/GreedyScheduler.ts delete mode 100644 api/src/modules/HKContext.ts delete mode 100644 api/src/modules/NotificationSubsystem.ts delete mode 100644 api/src/modules/Notifier.ts delete mode 100644 api/src/modules/PeriodicEvent.ts delete mode 100644 api/src/modules/SlotScheduler.ts delete mode 100644 api/src/modules/ValidatorInterface.ts delete mode 100644 api/src/modules/routes/applicant.ts delete mode 100644 api/src/modules/utils.ts delete mode 100644 api/src/person/personModelFactory.ts create mode 100644 api/src/timer/timer.interceptor.ts create mode 100644 api/src/users/create-user.dto.ts create mode 100644 api/src/users/update-user.dto.ts create mode 100644 api/src/users/user.entity.ts create mode 100644 api/src/users/users.controller.spec.ts create mode 100644 api/src/users/users.controller.ts create mode 100644 api/src/users/users.module.ts create mode 100644 api/src/users/users.service.spec.ts create mode 100644 api/src/users/users.service.ts delete mode 100644 api/src/util.ts delete mode 100644 api/test/AuthZManager.test.ts delete mode 100644 api/test/ConfigManager.test.ts delete mode 100644 api/test/GCalendar.test.ts delete mode 100644 api/test/GDriveStorage.test.ts delete mode 100644 api/test/GMailNotifier.test.ts delete mode 100644 api/test/NotificationSubsystem.test.ts create mode 100644 api/test/app.e2e-spec.ts create mode 100644 api/test/jest-e2e.json delete mode 100644 api/test/validationData/mailTemplates.json delete mode 100644 api/test/validationData/recruitmentConfig.json create mode 100644 api/tsconfig.build.json delete mode 100644 api/tsoa.json delete mode 100644 docker-compose.yml rename frontend/{hkrecruitment => }/.gitignore (100%) create mode 100644 frontend/README.md delete mode 100644 frontend/hkrecruitment/README.md delete mode 100644 frontend/hkrecruitment/package-lock.json delete mode 100644 frontend/hkrecruitment/package.json delete mode 100644 frontend/hkrecruitment/public/manifest.json delete mode 100644 frontend/hkrecruitment/src/App.js delete mode 100644 frontend/hkrecruitment/src/App.test.js delete mode 100644 frontend/hkrecruitment/src/AvaiabilitiesCell.js delete mode 100644 frontend/hkrecruitment/src/AvaiabilitiesTable.js delete mode 100644 frontend/hkrecruitment/src/LoginButton.js delete mode 100644 frontend/hkrecruitment/src/MyNavbar.js delete mode 100644 frontend/hkrecruitment/src/SignupForm.js delete mode 100644 frontend/hkrecruitment/src/index.css delete mode 100644 frontend/hkrecruitment/src/index.js delete mode 100644 frontend/hkrecruitment/src/reportWebVitals.js delete mode 100644 frontend/hkrecruitment/src/setupTests.js rename frontend/{hkrecruitment/public => }/index.html (54%) create mode 100644 frontend/package.json rename frontend/{hkrecruitment => }/public/android-icon-144x144.png (100%) rename frontend/{hkrecruitment => }/public/android-icon-192x192.png (100%) rename frontend/{hkrecruitment => }/public/android-icon-36x36.png (100%) rename frontend/{hkrecruitment => }/public/android-icon-48x48.png (100%) rename frontend/{hkrecruitment => }/public/android-icon-72x72.png (100%) rename frontend/{hkrecruitment => }/public/android-icon-96x96.png (100%) rename frontend/{hkrecruitment => }/public/apple-icon-114x114.png (100%) rename frontend/{hkrecruitment => }/public/apple-icon-120x120.png (100%) rename frontend/{hkrecruitment => }/public/apple-icon-144x144.png (100%) rename frontend/{hkrecruitment => }/public/apple-icon-152x152.png (100%) rename frontend/{hkrecruitment => }/public/apple-icon-180x180.png (100%) rename frontend/{hkrecruitment => }/public/apple-icon-57x57.png (100%) rename frontend/{hkrecruitment => }/public/apple-icon-60x60.png (100%) rename frontend/{hkrecruitment => }/public/apple-icon-72x72.png (100%) rename frontend/{hkrecruitment => }/public/apple-icon-76x76.png (100%) rename frontend/{hkrecruitment => }/public/apple-icon-precomposed.png (100%) rename frontend/{hkrecruitment => }/public/apple-icon.png (100%) rename frontend/{hkrecruitment => }/public/browserconfig.xml (100%) rename frontend/{hkrecruitment => }/public/favicon-16x16.png (100%) rename frontend/{hkrecruitment => }/public/favicon-32x32.png (100%) rename frontend/{hkrecruitment => }/public/favicon-96x96.png (100%) rename frontend/{hkrecruitment => }/public/favicon.ico (100%) rename frontend/{hkrecruitment => }/public/hkn_logo_blu.png (100%) rename frontend/{hkrecruitment => }/public/logo192.png (100%) rename frontend/{hkrecruitment => }/public/logo512.png (100%) create mode 100644 frontend/public/manifest.json rename frontend/{hkrecruitment => }/public/ms-icon-144x144.png (100%) rename frontend/{hkrecruitment => }/public/ms-icon-150x150.png (100%) rename frontend/{hkrecruitment => }/public/ms-icon-310x310.png (100%) rename frontend/{hkrecruitment => }/public/ms-icon-70x70.png (100%) rename frontend/{hkrecruitment => }/public/robots.txt (100%) rename frontend/{hkrecruitment => }/src/App.css (78%) create mode 100644 frontend/src/App.jsx create mode 100644 frontend/src/AvaiabilitiesCell.jsx create mode 100644 frontend/src/AvaiabilitiesTable.jsx create mode 100644 frontend/src/LoginButton.jsx create mode 100644 frontend/src/MyNavbar.jsx create mode 100644 frontend/src/SignupForm.jsx create mode 100644 frontend/src/index.css rename frontend/{hkrecruitment => }/src/logo.svg (100%) create mode 100644 frontend/src/main.jsx create mode 100644 frontend/src/vite-env.d.ts create mode 100644 frontend/vite.config.ts delete mode 100644 hkrecruitment-documentation/.gitignore delete mode 100644 hkrecruitment-documentation/COPYING delete mode 100644 hkrecruitment-documentation/README.md delete mode 100644 hkrecruitment-documentation/appendix/GNUFreeDocumentationLicense.tex delete mode 100644 hkrecruitment-documentation/chapters/objectives.tex delete mode 100644 hkrecruitment-documentation/chapters/overview.tex delete mode 100644 hkrecruitment-documentation/chapters/security.tex delete mode 100644 hkrecruitment-documentation/chapters/specifications.tex delete mode 100644 hkrecruitment-documentation/chapters/testing.tex delete mode 100644 hkrecruitment-documentation/ext_sections/preliminary.tex delete mode 100644 hkrecruitment-documentation/ext_sections/versions.tex delete mode 100644 hkrecruitment-documentation/hkrecruitment-documentation.tex delete mode 100644 hkrecruitment-documentation/images/DAM.png delete mode 100644 hkrecruitment-documentation/images/TS-JS types.jpg delete mode 100644 hkrecruitment-documentation/images/auth-sequence-client-credentials.png delete mode 100644 hkrecruitment-documentation/images/auth0.png delete mode 100644 hkrecruitment-documentation/images/hkn_logo.pdf create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml create mode 100644 shared/package.json create mode 100644 shared/src/abilities.ts create mode 100644 shared/src/index.ts create mode 100644 shared/src/person.ts create mode 100644 shared/tsconfig.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 4d817c0..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: CI -on: - push: - branches: - - master -jobs: - Build-Backend: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - with: - node-version: '16' - - run: npm install - working-directory: ./api -# - run: npm test -# working-directory: ./api - - uses: akhileshns/heroku-deploy@v3.12.12 - with: - heroku_api_key: ${{secrets.HEROKU_DEV_API_KEY}} - heroku_app_name: "hkrecruitment-dev-environment" - heroku_email: ${{secrets.HEROKU_DEV_EMAIL}} - appdir: "api" - usedocker: true diff --git a/.github/workflows/migrations.yml b/.github/workflows/migrations.yml deleted file mode 100644 index 0e37831..0000000 --- a/.github/workflows/migrations.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: DB - -on: - push: - branches: - - master -jobs: - Run-Migrations: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - java-version: 1.11 - - name: Install flyway - run: | - wget -qO- https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/8.2.2/flyway-commandline-8.2.2-linux-x64.tar.gz | tar xvz && sudo ln -s `pwd`/flyway-8.2.2/flyway /usr/local/bin - - name: run migrations - run: | - flyway -configFiles=./api/migrations/flyway.conf -locations="filesystem:./api/migrations" migrate - env: - DB_HOST: ${{ secrets.HEROKU_DB_HOST }} - DB_USER: ${{ secrets.HEROKU_DB_USER }} - DB_PASSWORD: ${{ secrets.HEROKU_DB_PASSWORD }} - DB_NAME: ${{ secrets.HEROKU_DB_NAME }} diff --git a/.gitignore b/.gitignore index 72921c2..06eb4ce 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,18 @@ node_modules/ build/ api/src/modules/GAuth/authInfo .idea/ -/api/.env -/api/dist/ +/**/.env +/api/config/*.yaml +/**/dist +/**/*.tsbuildinfo +.vscode + +/fontend_tmp +/frontend_tmp/** + +tmp-* + +**/.DS_Store + +.* +!.gitignore diff --git a/api/.dockerignore b/api/.dockerignore deleted file mode 100644 index dbd17a1..0000000 --- a/api/.dockerignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules/ -test/ diff --git a/api/.eslintrc.js b/api/.eslintrc.js new file mode 100644 index 0000000..8f5aedb --- /dev/null +++ b/api/.eslintrc.js @@ -0,0 +1,25 @@ +module.exports = { + parser: '@typescript-eslint/parser', + parserOptions: { + project: 'tsconfig.json', + tsconfigRootDir : __dirname, + sourceType: 'module', + }, + plugins: ['@typescript-eslint/eslint-plugin'], + extends: [ + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended', + ], + root: true, + env: { + node: true, + jest: true, + }, + ignorePatterns: ['.eslintrc.js'], + rules: { + '@typescript-eslint/interface-name-prefix': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-explicit-any': 'off', + }, +}; diff --git a/api/.gitignore b/api/.gitignore new file mode 100644 index 0000000..b3ab1ae --- /dev/null +++ b/api/.gitignore @@ -0,0 +1,6 @@ +.idea/ +.vscode/ +node_modules/ +build/ +tmp/ +temp/ \ No newline at end of file diff --git a/api/.prettierrc b/api/.prettierrc new file mode 100644 index 0000000..dcb7279 --- /dev/null +++ b/api/.prettierrc @@ -0,0 +1,4 @@ +{ + "singleQuote": true, + "trailingComma": "all" +} \ No newline at end of file diff --git a/api/COPYING b/api/COPYING deleted file mode 100644 index 53d1f3d..0000000 --- a/api/COPYING +++ /dev/null @@ -1,675 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. - diff --git a/api/Dockerfile b/api/Dockerfile deleted file mode 100644 index 330004a..0000000 --- a/api/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM node:16.14.2 - -WORKDIR /usr/src/app - -COPY package*.json ./ - -RUN npm install typescript --save-dev -COPY . . -RUN npm install - -RUN npm run build - - -EXPOSE 3000 - -CMD [ "npm", "start" ] diff --git a/api/README.md b/api/README.md index 6c1979f..00a13b1 100644 --- a/api/README.md +++ b/api/README.md @@ -1,79 +1,73 @@ - - -# HKRecruitment - API server -HKRecruitment is the platform used by HKN Polito to handle -the recruitment process. This software implements the server -side of the application, in form of endpoints for the RESTful APIs -described in the documentation. - -## Getting Started - -These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. - -### Prerequisites - -This project requires you to have Node JS installed and npm. - -### Installing - -To set up the project simply give this command on the project root directory: - -``` -npm install +

+ Nest Logo +

+ +[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456 +[circleci-url]: https://circleci.com/gh/nestjs/nest + +

A progressive Node.js framework for building efficient and scalable server-side applications.

+

+NPM Version +Package License +NPM Downloads +CircleCI +Coverage +Discord +Backers on Open Collective +Sponsors on Open Collective + + Support us + +

+ + +## Description + +[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository. + +## Installation + +```bash +$ npm install ``` -To actually compile the project, because it is written in TypeScript, you will need -to give this command on the project root directory: +## Running the app -``` -npm build -``` +```bash +# development +$ npm run start -Finally, to start the program, give this command on the project root directory: +# watch mode +$ npm run start:dev -``` -npm start +# production mode +$ npm run start:prod ``` -## Running the tests +## Test -To run the tests, simply run +```bash +# unit tests +$ npm run test -``` -npm test -``` - -### Break down into end to end tests +# e2e tests +$ npm run test:e2e -Explain what these tests test and why - -``` -Give an example +# test coverage +$ npm run test:cov ``` -### And coding style tests - -Explain what these tests test and why - -``` -Give an example -``` - -## Build with -* [Typescript](https://www.typescriptlang.org/) - This project is written entirely in Typescript -* [AJV](https://ajv.js.org/) - JSON schema validator used for core entities and requests/responses -* [json-schema-to-typescript](https://www.npmjs.com/package/json-schema-to-typescript) - To obtain Typescript types from json-schemas -* [googleapis](https://googleapis.github.io/) - Google RESTful APIs used to integrate the system with GSuite services - -## Versioning +## Support -We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/your/project/tags). +Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support). -## Authors +## Stay in touch -* **Riccardo Zaccone** - *Initial work* - [HKN Polito](https://hknpolito.org/) -* **Arianna Ravera** - *Initial work* - [HKN Polito](https://hknpolito.org/) +- Author - [Kamil Myśliwiec](https://kamilmysliwiec.com) +- Website - [https://nestjs.com](https://nestjs.com/) +- Twitter - [@nestframework](https://twitter.com/nestframework) ## License -HKRecruitment is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See the [COPYING](COPYING) file for details. +Nest is [MIT licensed](LICENSE). diff --git a/api/app.ts b/api/app.ts deleted file mode 100644 index dec553d..0000000 --- a/api/app.ts +++ /dev/null @@ -1,48 +0,0 @@ -import express from 'express'; -import * as swaggerUi from 'swagger-ui-express'; -import * as http from 'http'; -import cors from 'cors'; -if (process.env.NODE_ENV === 'local') { - require('dotenv').config(); -} -import {CommonRoutesConfig} from './src/common/common.routes.config'; -import {RegisterRoutes} from './build/routes'; - -import bodyParser from "body-parser"; - -import debug from 'debug'; -import {ErrorHandler} from "./src/ErrorHandler"; - - -const app: express.Application = express(); -const server: http.Server = http.createServer(app); -const port = process.env.PORT || 3000; -const routes: Array = []; -const debugLog: debug.IDebugger = debug('app'); - -app.use(express.json()); -app.use(cors()); -app.use( - bodyParser.urlencoded({ - extended: true, - }) -); -app.use(bodyParser.json()); - -RegisterRoutes(app); -app.use(ErrorHandler.handleError); - -const swaggerDocument = require('../build/swagger.json'); - -app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument)); -const runningMessage = `Server running at http://localhost:${port}`; -app.get('/health', (req: express.Request, res: express.Response) => { - res.status(200).send(runningMessage) -}); - -server.listen(port, () => { - routes.forEach((route: CommonRoutesConfig) => { - debugLog(`Routes configured for ${route.getName()}`); - }); - console.log(runningMessage); -}); diff --git a/api/jest.config.js b/api/jest.config.js deleted file mode 100644 index 91a2d2c..0000000 --- a/api/jest.config.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', -}; \ No newline at end of file diff --git a/api/migrations/V1__seed.sql b/api/migrations/V1__seed.sql deleted file mode 100644 index d177fd2..0000000 --- a/api/migrations/V1__seed.sql +++ /dev/null @@ -1,205 +0,0 @@ -BEGIN TRANSACTION; --- People tables -CREATE TABLE IF NOT EXISTS "Person" -( - "image" TEXT, - "name" TEXT NOT NULL, - "surname" TEXT NOT NULL, - "sex" TEXT NOT NULL, - "email" TEXT NOT NULL UNIQUE, - "phone_no" INTEGER NOT NULL UNIQUE, - "id" TEXT NOT NULL UNIQUE, - PRIMARY KEY ("id") -); - -CREATE TABLE IF NOT EXISTS "Applicant" -( - "id" TEXT NOT NULL UNIQUE, - "birth_date" TEXT NOT NULL, - "telegram_uid" TEXT DEFAULT NULL, - "how_know_HKN" TEXT DEFAULT NULL, - FOREIGN KEY ("id") REFERENCES "Person" ("id"), - PRIMARY KEY ("id") -); - -CREATE TABLE IF NOT EXISTS "Member" -( - "id" TEXT NOT NULL UNIQUE, - "role" TEXT NOT NULL, - "is_expert" BOOLEAN, - "is_board" BOOLEAN, - FOREIGN KEY ("id") REFERENCES "Person" ("id"), - PRIMARY KEY ("id") -); - -CREATE TABLE IF NOT EXISTS "Friends" -( - "applicant_id" TEXT NOT NULL, - "member_id" TEXT NOT NULL, - FOREIGN KEY ("applicant_id") REFERENCES "Applicant" ("id"), - FOREIGN KEY ("member_id") REFERENCES "Member" ("id"), - PRIMARY KEY ("applicant_id", "member_id") -); - --- slots -CREATE TABLE IF NOT EXISTS "Slot" -( - "id" SERIAL PRIMARY KEY , - "state" TEXT NOT NULL, - "cal_id" TEXT NOT NULL, - "start" TEXT NOT NULL, - "end" TEXT NOT NULL, - "interview_id" INTEGER DEFAULT NULL -); - -CREATE TABLE IF NOT EXISTS "Invalid_Slots" -( - "id" INTEGER NOT NULL UNIQUE, - FOREIGN KEY ("id") REFERENCES "Slot" ("id"), - PRIMARY KEY ("id") -); - -CREATE TABLE IF NOT EXISTS "TimeSlot" -( - "start" TEXT NOT NULL, - "end" TEXT NOT NULL, - PRIMARY KEY ("start", "end") -); - -CREATE TABLE IF NOT EXISTS "TimeSlot" -( - "start" TEXT NOT NULL, - "end" TEXT NOT NULL, - PRIMARY KEY ("start", "end") -); - --- recruitment -CREATE TABLE IF NOT EXISTS "Recruitment_Session" -( - "start" TEXT NOT NULL, - "end" TEXT NOT NULL, - "title" TEXT NOT NULL, - "id" INTEGER NOT NULL UNIQUE, - PRIMARY KEY ("id") -); - -CREATE TABLE IF NOT EXISTS "Recruitment_Session" -( - "start" TEXT NOT NULL, - "end" TEXT NOT NULL, - "title" TEXT NOT NULL, - "id" INTEGER NOT NULL UNIQUE, - PRIMARY KEY ("id") -); -CREATE TABLE IF NOT EXISTS "Availability" -( - "state" TEXT NOT NULL, - "assigned_at" TEXT DEFAULT NULL, - "confirmed_at" TEXT DEFAULT NULL, - "member_id" TEXT NOT NULL, - "time_slot_start" TEXT NOT NULL, - "time_slot_end" TEXT NOT NULL, - FOREIGN KEY ("member_id") REFERENCES "Member" ("id"), - FOREIGN KEY ("time_slot_end", "time_slot_start") REFERENCES "TimeSlot" ("end", "start"), - PRIMARY KEY ("member_id", "time_slot_start", "time_slot_end") -); - -CREATE TABLE IF NOT EXISTS "Notification" -( - "id" INTEGER NOT NULL UNIQUE, - "applicant_read" BOOLEAN, - "member_read" BOOLEAN, - "uri" TEXT NOT NULL, - "text" TEXT NOT NULL, - "member_id" TEXT NOT NULL, - "applicant_id" TEXT NOT NULL, - FOREIGN KEY ("applicant_id") REFERENCES "Applicant" ("id"), - FOREIGN KEY ("member_id") REFERENCES "Member" ("id"), - PRIMARY KEY ("id") -); - -CREATE TABLE IF NOT EXISTS "Slot_Member" -( - "slot_id" INTEGER NOT NULL, - "member_id" TEXT NOT NULL, - FOREIGN KEY ("slot_id") REFERENCES "Slot" ("id"), - FOREIGN KEY ("member_id") REFERENCES "Member" ("id"), - PRIMARY KEY ("slot_id", "member_id") -); - - -CREATE TABLE IF NOT EXISTS "Recruitment_Session" -( - "start" TEXT NOT NULL, - "end" TEXT NOT NULL, - "title" TEXT NOT NULL, - "id" INTEGER NOT NULL UNIQUE, - PRIMARY KEY ("id") -); -CREATE TABLE IF NOT EXISTS "Courses_Allowed" -( - "study_path" TEXT NOT NULL, - "degree_level" TEXT NOT NULL, - PRIMARY KEY ("study_path") -); -CREATE TABLE IF NOT EXISTS "Application" -( - "id" SERIAL PRIMARY KEY, - "applicant_id" TEXT NOT NULL UNIQUE, - "interview_id" INTEGER NOT NULL, - "last_modified" TEXT DEFAULT NULL, - "submission" TEXT NOT NULL, - "state" TEXT NOT NULL, - "ita_level" TEXT NOT NULL, - "notes" TEXT DEFAULT NULL, - "cv" TEXT NOT NULL, - "list_grade" INTEGER DEFAULT NULL, - "bsc_study_path" TEXT DEFAULT NULL, - "bsc_avg_grade" REAL DEFAULT NULL, - "bsc_cfu" INTEGER DEFAULT NULL, - "academic_year" INTEGER DEFAULT NULL, - "msc_study_path" TEXT DEFAULT NULL, - "msc_avg_grade" REAL DEFAULT NULL, - "msc_cfu" INTEGER DEFAULT NULL, - "phd_description" TEXT DEFAULT NULL, - "slot_id" INTEGER DEFAULT NULL, - FOREIGN KEY ("bsc_study_path") REFERENCES "Courses_Allowed" ("study_path"), - FOREIGN KEY ("slot_id") REFERENCES "Slot" ("id"), - FOREIGN KEY ("applicant_id") REFERENCES "Applicant" ("id") -); - - -CREATE TABLE IF NOT EXISTS "TimeSlot_Application" -( - "application_id" INTEGER NOT NULL, - "time_slot_start" TEXT NOT NULL, - "time_slot_end" TEXT NOT NULL, - FOREIGN KEY ("time_slot_end", "time_slot_start") REFERENCES "TimeSlot" ("end", "start"), - FOREIGN KEY ("application_id") REFERENCES "Application" ("id"), - PRIMARY KEY ("application_id", "time_slot_start", "time_slot_end") -); - -CREATE TABLE IF NOT EXISTS "Interview" -( - "id" SERIAL PRIMARY KEY, - "outcome" TEXT DEFAULT NULL, - "last_modified" INTEGER NOT NULL, - "finalized_at" TEXT DEFAULT NULL, - "assigned_area" TEXT DEFAULT NULL, - "notes" TEXT NOT NULL, - "application_id" INTEGER NOT NULL UNIQUE, - FOREIGN KEY ("application_id") REFERENCES "Application" ("id") -); - -ALTER TABLE "Application" - ADD CONSTRAINT fk_application_interview - FOREIGN KEY (interview_id) - REFERENCES "Interview" (application_id); - - -ALTER TABLE "Slot" - ADD CONSTRAINT fk_slot_interview - FOREIGN KEY (interview_id) - REFERENCES "Interview" (id); - -COMMIT; diff --git a/api/migrations/dev/skipV1.1__seed_mocked_data.sql b/api/migrations/dev/skipV1.1__seed_mocked_data.sql deleted file mode 100644 index 5ffc818..0000000 --- a/api/migrations/dev/skipV1.1__seed_mocked_data.sql +++ /dev/null @@ -1,38 +0,0 @@ -BEGIN TRANSACTION; -INSERT INTO "Person" VALUES (NULL,'Riccardo','Zaccone','m','rz@gmail.com',3334567843,'3'); -INSERT INTO "Person" VALUES ('imm.png','Arianna','Ravera','f','ar@gmail.com',3334567783,'1'); -INSERT INTO "Person" VALUES (NULL,'Mario','Rossi','m','mr@gmail.com',3334567890,'2'); -INSERT INTO "Person" VALUES ('','Sandro','Sartoni','m','ss@gmail.com',3337284429,'4'); -INSERT INTO "Person" VALUES (NULL,'Anna','Bianchi','f','ab@gmail.com',3332946429,'5'); -INSERT INTO "Member" VALUES ('3','member',1,0); -INSERT INTO "Member" VALUES ('1','member',1,0); -INSERT INTO "Member" VALUES ('4','IT head',1,0); -INSERT INTO "Interview" VALUES (1,'mentee_accepted','{"member_id":"1","time":"now", "attributes":""}',NULL,'IT','',10); -INSERT INTO "Availability" VALUES ('confirmed','2021-01-01 08:00:00','2021-01-01 09:00:00',3,'2021-01-01 10:00:00','2021-01-01 11:00:00'); -INSERT INTO "Availability" VALUES ('confirmed','2021-01-06 16:00:00','2021-01-06 17:00:00',3,'2021-01-06 14:00:00','2021-01-06 15:00:00'); -INSERT INTO "Availability" VALUES ('free',NULL,NULL,1,'2021-03-03 18:00:00','2021-03-03 19:00:00'); -INSERT INTO "Notification" VALUES (1,0,1,'','',1,2); -INSERT INTO "TimeSlot_Application" VALUES (10,'2021-01-06 14:00:00','2021-01-06 15:00:00'); -INSERT INTO "TimeSlot_Application" VALUES (11,'2021-01-01 10:00:00','2021-01-01 11:00:00'); -INSERT INTO "TimeSlot_Application" VALUES (11,'2021-01-06 16:00:00','2021-01-06 16:00:00'); -INSERT INTO "TimeSlot" VALUES ('2021-01-01 10:00:00','2021-01-01 11:00:00'); -INSERT INTO "TimeSlot" VALUES ('2021-01-06 16:00:00','2021-01-06 17:00:00'); -INSERT INTO "TimeSlot" VALUES ('2021-01-06 14:00:00','2021-01-06 15:00:00'); -INSERT INTO "TimeSlot" VALUES ('2021-01-20 14:00:00','2021-01-20 15:00:00'); -INSERT INTO "TimeSlot" VALUES ('2021-03-03 18:00:00','2021-03-03 19:00:00'); -INSERT INTO "TimeSlot" VALUES ('2021-01-20 14:00:00','2021-01-20 16:00:00'); -INSERT INTO "Friends" VALUES (2,1); -INSERT INTO "Friends" VALUES (2,4); -INSERT INTO "Slot_Member" VALUES (1,1); -INSERT INTO "Applicant" VALUES ('2','24/05/1998','mario','friends'); -INSERT INTO "Applicant" VALUES ('5','02/11/00','annab','facebook'); -INSERT INTO "Slot" VALUES (1,'free','0','2021-01-06 14:00:00','2021-01-06 15:00:00',1); -INSERT INTO "Slot" VALUES (2,'free','0','2021-01-06 14:00:00','2021-01-06 15:00:00',NULL); -INSERT INTO "Slot" VALUES (4,'free','0','2021-03-03 14:00:00','2021-03-03 15:00:00',NULL); -INSERT INTO "Slot" VALUES (5,'free','0','2021-03-03 15:00:00','2021-03-03 16:00:00',NULL); -INSERT INTO "Recruitment_Session" VALUES ('2020-01-01 10:00:00','2020-02-01 10:00:00','REC2',1); -INSERT INTO "Application" VALUES (10,2,'NULL','{"member_id":"1","time":"now", "attributes":""}','2021-01-06 14:00:00','accepted','madrelingua','prova','','',NULL,NULL,NULL,3,'eng',30.0,80,NULL,1); -INSERT INTO "Application" VALUES (11,5,1,'now','2021-02-03 15:00:00','refused_by_applicant','madrelingua',NULL,'file.pdf','file2.pdf',NULL,NULL,NULL,NULL,'computer science',NULL,NULL,'ICT',NULL); -INSERT INTO "Courses_Allowed" VALUES ('ict','MSc'); -INSERT INTO "Courses_Allowed" VALUES ('pc','BSc'); -COMMIT; diff --git a/api/migrations/flyway.conf b/api/migrations/flyway.conf deleted file mode 100644 index ee3e29f..0000000 --- a/api/migrations/flyway.conf +++ /dev/null @@ -1,3 +0,0 @@ -flyway.url=jdbc:postgresql://${DB_HOST}:5432/${DB_NAME} -flyway.user=${DB_USER} -flyway.password=${DB_PASSWORD} \ No newline at end of file diff --git a/api/nest-cli.json b/api/nest-cli.json new file mode 100644 index 0000000..8bd1b30 --- /dev/null +++ b/api/nest-cli.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://json.schemastore.org/nest-cli", + "collection": "@nestjs/schematics", + "sourceRoot": "src", + "entryFile": "api/src/main" +} diff --git a/api/package-lock.json b/api/package-lock.json deleted file mode 100644 index 65a731e..0000000 --- a/api/package-lock.json +++ /dev/null @@ -1,16682 +0,0 @@ -{ - "name": "hkrecruitment-apiserver", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "hkrecruitment-apiserver", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "@types/sequelize": "^4.28.13", - "ajv": "^8.1.0", - "ajv-formats": "^2.0.2", - "body-parser": "^1.20.0", - "cors": "^2.8.5", - "dotenv": "^16.0.0", - "express": "^4.17.1", - "fs.promises": "^0.1.2", - "googleapis": "^72.0.0", - "inversify": "^6.0.1", - "inversify-binding-decorators": "^4.0.0", - "json-schema-to-typescript": "^10.1.4", - "multer": "^1.4.4", - "pg": "^8.7.3", - "pg-hstore": "^2.3.4", - "reflect-metadata": "^0.1.13", - "sequelize": "^6.19.0", - "swagger-ui-express": "^4.4.0", - "tsc": "^1.20150623.0", - "tsoa": "^4.0.0", - "uuid": "^8.3.2" - }, - "devDependencies": { - "@types/jest": "^26.0.22", - "@types/node": "^14.18.18", - "jest": "^26.6.3", - "nodemon": "^2.0.16", - "ts-jest": "^26.5.4", - "ts-node": "^10.7.0", - "typescript": "^4.6.3" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", - "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==", - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.6", - "call-me-maybe": "^1.0.1", - "js-yaml": "^4.1.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", - "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", - "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helpers": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", - "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", - "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", - "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", - "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", - "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", - "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", - "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", - "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-simple-access": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", - "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", - "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", - "dev": true, - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", - "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", - "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", - "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", - "dev": true, - "dependencies": { - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.3", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", - "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@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", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@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", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", - "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", - "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.3", - "@babel/types": "^7.16.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", - "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.15.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "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/@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dev": true, - "dependencies": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - }, - "bin": { - "watch": "cli.js" - }, - "engines": { - "node": ">=0.1.95" - } - }, - "node_modules/@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-consumer": "0.8.0" - }, - "engines": { - "node": ">=12" - } - }, - "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", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", - "dev": true, - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", - "dev": true, - "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "optionalDependencies": { - "node-notifier": "^8.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", - "dev": true, - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true - }, - "node_modules/@tsoa/cli": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tsoa/cli/-/cli-4.0.0.tgz", - "integrity": "sha512-/eB9RnslyuVQgmK36EgLSKciMvrP9UIu+Bq7yhDmL72pzFT3hKPUSkxLidHuz5DNa85OBq4eKMfnYIt744AqnQ==", - "dependencies": { - "@tsoa/runtime": "^4.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^8.1.0", - "glob": "^7.1.6", - "handlebars": "^4.7.7", - "merge": "^2.1.0", - "minimatch": "^3.0.4", - "typescript": "^4.5.4", - "validator": "^13.6.0", - "yamljs": "^0.3.0", - "yargs": "^15.4.1" - }, - "bin": { - "tsoa": "dist/cli.js" - }, - "engines": { - "node": ">=12.0.0", - "yarn": ">=1.9.4" - } - }, - "node_modules/@tsoa/runtime": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tsoa/runtime/-/runtime-4.0.0.tgz", - "integrity": "sha512-5CB4xqNNzWgQf65fln5CQN2JU6ETiEulZcEspwXlZkmPp97zptEiTWuhLV5nkAxN/skIAn8KGyhN6usib2eQ9A==", - "dependencies": { - "promise.any": "^2.0.2", - "reflect-metadata": "^0.1.13", - "validator": "^13.6.0" - }, - "engines": { - "node": ">=12.0.0", - "yarn": ">=1.9.4" - } - }, - "node_modules/@types/babel__core": { - "version": "7.1.16", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", - "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", - "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.3", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", - "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/bluebird": { - "version": "3.5.36", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz", - "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==" - }, - "node_modules/@types/continuation-local-storage": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@types/continuation-local-storage/-/continuation-local-storage-3.2.4.tgz", - "integrity": "sha512-OT32vCVMymU1JMPKDeY0lX3cduAr0Pm/VwIbxygMeDS4lRcv57qYXn9bMwBRcRnEpXKBb/r4xYaZCARTZllP0A==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/glob/node_modules/@types/node": { - "version": "16.11.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.9.tgz", - "integrity": "sha512-MKmdASMf3LtPzwLyRrFjtFFZ48cMf8jmX5VRYrDQiJa8Ybu5VAmkqBWqKU8fdCwD8ysw4mQ9nrEHvzg6gunR7A==" - }, - "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/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "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/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": "26.0.24", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz", - "integrity": "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==", - "dev": true, - "dependencies": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" - }, - "node_modules/@types/lodash": { - "version": "4.14.177", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.177.tgz", - "integrity": "sha512-0fDwydE2clKe9MNfvXHBHF9WEahRuj+msTuQqOmAApNORFvhMYZKNGGJdCzuhheVjMps/ti0Ak/iJPACMaevvw==" - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, - "node_modules/@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "node_modules/@types/node": { - "version": "14.18.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.18.tgz", - "integrity": "sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig==" - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "node_modules/@types/prettier": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.2.tgz", - "integrity": "sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==" - }, - "node_modules/@types/sequelize": { - "version": "4.28.13", - "resolved": "https://registry.npmjs.org/@types/sequelize/-/sequelize-4.28.13.tgz", - "integrity": "sha512-ZR7k22F3xEqbGUWW7ZgysttmOUPIFyTPA2oPPjlT47h2iJtALrtNTXdEF5erW7bHCG2H+Byuy5MbpLj3znE7wQ==", - "dependencies": { - "@types/bluebird": "*", - "@types/continuation-local-storage": "*", - "@types/lodash": "*", - "@types/validator": "*" - } - }, - "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/validator": { - "version": "13.7.2", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.2.tgz", - "integrity": "sha512-KFcchQ3h0OPQgFirBRPZr5F/sVjxZsOrQHedj3zi8AH3Zv/hOLx2OLR4hxR5HcfoU+33n69ZuOfzthKVdMoTiw==" - }, - "node_modules/@types/yargs": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true - }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "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-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/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", - "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/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/append-field": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.map": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.4.tgz", - "integrity": "sha512-Qds9QnX7A0qISY7JT5WuJO0NJPE9CMlC6JzHQfhpqAAQQzufVRoeH7EzUY5GcPTx72voG8LV/5eo+b8Qi8hmhA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "engines": { - "node": ">=8" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", - "dev": true, - "dependencies": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", - "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.14.2" - } - }, - "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": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "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", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/body-parser/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/body-parser/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/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/boxen/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "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.18.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", - "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001280", - "electron-to-chromium": "^1.3.896", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "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-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/busboy": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", - "dependencies": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/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, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001282", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz", - "integrity": "sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "dependencies": { - "rsvp": "^4.8.4" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "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/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/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", - "dev": true - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-color": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.1.tgz", - "integrity": "sha512-eBbxZF6fqPUNnf7CLAFOersUnyYzv83tHFLSlts+OAHsNendaqv2tHCq+/MO+b3Y+9JeoUlIvobyxG/Z8GNeOg==", - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-iterator": "^2.0.3", - "memoizee": "^0.4.15", - "timers-ext": "^0.1.7" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "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/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/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "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==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/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 - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/cross-spawn/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/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "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/data-urls/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/data-urls/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/data-urls/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" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "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", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "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/dicer": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", - "dependencies": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true, - "engines": { - "node": ">= 10.14.2" - } - }, - "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/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dotenv": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz", - "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==", - "engines": { - "node": ">=12" - } - }, - "node_modules/dottie": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz", - "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==" - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/electron-to-chromium": { - "version": "1.3.904", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.904.tgz", - "integrity": "sha512-x5uZWXcVNYkTh4JubD7KSC1VMKz0vZwJUqVwY3ihsW0bst1BXDe494Uqbg3Y0fDGVjJqA8vEeGuvO5foyH2+qw==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", - "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", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "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/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.0.tgz", - "integrity": "sha512-URbD8tgRthKD3YcC39vbvSDrX23upXnPcnGAjQfgxXF5ID75YcENawc9ZX/9iTP9ptUyfCLIxTTuMYoRfiOVKA==", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.1", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-aggregate-error": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/es-aggregate-error/-/es-aggregate-error-1.0.8.tgz", - "integrity": "sha512-AKUb5MKLWMozPlFRHOKqWD7yta5uaEhH21qwtnf6FlKjNjTJOoqFi0/G14+FfSkIQhhu6X68Af4xgRC6y8qG4A==", - "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "function-bind": "^1.1.1", - "functions-have-names": "^1.2.3", - "get-intrinsic": "^1.1.1", - "globalthis": "^1.0.2", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" - }, - "node_modules/es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-get-iterator/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "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/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "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/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", - "dev": true - }, - "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/execa/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/express/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/express/node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", - "dependencies": { - "type": "^2.5.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", - "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "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/fast-text-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", - "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" - }, - "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/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs.promises": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/fs.promises/-/fs.promises-0.1.2.tgz", - "integrity": "sha512-LNfkXdN6EToumV455EbdJaNxqLmEFqKqNZVIEyI2whtdpIppTsne2fHWgx05s+B2Aif29Lhzdz0AaOXKLvMGsA==", - "engines": { - "node": ">=8.9" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gaxios": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", - "integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", - "dependencies": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gcp-metadata": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", - "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", - "dependencies": { - "gaxios": "^4.0.0", - "json-bigint": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-promise": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-3.4.0.tgz", - "integrity": "sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==", - "dependencies": { - "@types/glob": "*" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "glob": "*" - } - }, - "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", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/google-auth-library": { - "version": "7.10.2", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.10.2.tgz", - "integrity": "sha512-M37o9Kxa/TLvOLgF71SXvLeVEP5sbSTmKl1zlIgl72SFy5PtsU3pOdu8G8MIHHpQ3/NZabDI8rQkA9DvQVKkPA==", - "dependencies": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^4.0.0", - "gcp-metadata": "^4.2.0", - "gtoken": "^5.0.4", - "jws": "^4.0.0", - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/google-p12-pem": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.2.tgz", - "integrity": "sha512-tjf3IQIt7tWCDsa0ofDQ1qqSCNzahXDxdAGJDbruWqu3eCg5CKLYKN+hi0s6lfvzYZ1GDVr+oDF9OOWlDSdf0A==", - "dependencies": { - "node-forge": "^0.10.0" - }, - "bin": { - "gp12-pem": "build/src/bin/gp12-pem.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/googleapis": { - "version": "72.0.0", - "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-72.0.0.tgz", - "integrity": "sha512-GMHXnZy86tLdFGkHd5G1mEWFGKO2+G8VFmk2my+mRCum0e5MOPQXG+PAvDVjVwCQJEOjPpBOZae53THRXaVm9w==", - "dependencies": { - "google-auth-library": "^7.0.2", - "googleapis-common": "^5.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/googleapis-common": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-5.0.5.tgz", - "integrity": "sha512-o2dgoW4x4fLIAN+IVAOccz3mEH8Lj1LP9c9BSSvkNJEn+U7UZh0WSr4fdH08x5VH7+sstIpd1lOYFZD0g7j4pw==", - "dependencies": { - "extend": "^3.0.2", - "gaxios": "^4.0.0", - "google-auth-library": "^7.0.2", - "qs": "^6.7.0", - "url-template": "^2.0.8", - "uuid": "^8.0.0" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" - }, - "node_modules/growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true - }, - "node_modules/gtoken": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.1.tgz", - "integrity": "sha512-yqOREjzLHcbzz1UrQoxhBtpk8KjrVhuqPE7od1K2uhyxG2BHjKZetlbLw/SPZak/QqTIQW+addS+EcjqQsZbwQ==", - "dependencies": { - "gaxios": "^4.0.0", - "google-p12-pem": "^3.0.3", - "jws": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "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-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/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, - "engines": { - "node": ">=8.12.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true - }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflection": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.2.tgz", - "integrity": "sha512-cmZlljCRTBFouT8UzMzrGcVEvkv6D/wBdcdKG7J1QH5cXjtU75Dm+P27v9EKu/Y43UYyCJd1WC4zLebRrC8NBw==", - "engines": [ - "node >= 0.4.0" - ] - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/inversify": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/inversify/-/inversify-6.0.1.tgz", - "integrity": "sha512-B3ex30927698TJENHR++8FfEaJGqoWOgI6ZY5Ht/nLUsFCwHn6akbwtnUAPCgUepAnTpe2qHxhDNjoKLyz6rgQ==" - }, - "node_modules/inversify-binding-decorators": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/inversify-binding-decorators/-/inversify-binding-decorators-4.0.0.tgz", - "integrity": "sha512-r8au/oH3vS7ttHj0RivAznwElySeRohLfg8lvOSzbrX6abf/8ik8ptk49XbzdShgrnalvl7CM6MjcskfM7MMqQ==" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "optional": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "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", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "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-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "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-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "optional": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.5.tgz", - "integrity": "sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/iterate-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.2.tgz", - "integrity": "sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/iterate-value": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", - "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", - "dependencies": { - "es-get-iterator": "^1.0.2", - "iterate-iterator": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", - "dev": true, - "dependencies": { - "@jest/core": "^26.6.3", - "import-local": "^3.0.2", - "jest-cli": "^26.6.3" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-changed-files/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/jest-changed-files/node_modules/execa": { - "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.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" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/jest-changed-files/node_modules/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, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-changed-files/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", - "dev": true, - "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", - "dev": true, - "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "engines": { - "node": ">= 10.14.2" - }, - "optionalDependencies": { - "fsevents": "^2.1.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", - "dev": true, - "dependencies": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "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-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", - "dev": true, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", - "dev": true, - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - }, - "bin": { - "jest-runtime": "bin/jest-runtime.js" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", - "dev": true, - "dependencies": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest/node_modules/jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "dependencies": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "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/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/jsdom/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/jsdom/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" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-ref-parser": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", - "integrity": "sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==", - "dependencies": { - "@apidevtools/json-schema-ref-parser": "9.0.9" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/json-schema-to-typescript": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/json-schema-to-typescript/-/json-schema-to-typescript-10.1.5.tgz", - "integrity": "sha512-X8bNNksfCQo6LhEuqNxmZr4eZpPjXZajmimciuk8eWXzZlif9Brq7WuMGD/SOhBKcRKP2SGVDNZbC28WQqx9Rg==", - "dependencies": { - "@types/json-schema": "^7.0.6", - "@types/lodash": "^4.14.168", - "@types/prettier": "^2.1.5", - "cli-color": "^2.0.0", - "get-stdin": "^8.0.0", - "glob": "^7.1.6", - "glob-promise": "^3.4.0", - "is-glob": "^4.0.1", - "json-schema-ref-parser": "^9.0.6", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.20", - "minimist": "^1.2.5", - "mkdirp": "^1.0.4", - "mz": "^2.7.0", - "prettier": "^2.2.0" - }, - "bin": { - "json2ts": "dist/src/cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "dependencies": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "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/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "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/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 - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "dependencies": { - "es5-ext": "~0.10.2" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "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/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" - } - }, - "node_modules/memoizee/node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "node_modules/merge": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", - "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==" - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/moment": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", - "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", - "engines": { - "node": "*" - } - }, - "node_modules/moment-timezone": { - "version": "0.5.34", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz", - "integrity": "sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==", - "dependencies": { - "moment": ">= 2.9.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/multer": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4.tgz", - "integrity": "sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw==", - "dependencies": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/multer/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "engines": { - "node": ">= 6.0.0" - } - }, - "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-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-notifier": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", - "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", - "dev": true, - "optional": true, - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - } - }, - "node_modules/node-notifier/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-notifier/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "node_modules/nodemon": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", - "integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5", - "update-notifier": "^5.1.0" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/nodemon/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/nodemon/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/nodemon/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/nodemon/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/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/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "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/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/pg": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz", - "integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==", - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.5.0", - "pg-pool": "^3.5.1", - "pg-protocol": "^1.5.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "pg-native": ">=2.0.0" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } - } - }, - "node_modules/pg-connection-string": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", - "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" - }, - "node_modules/pg-hstore": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/pg-hstore/-/pg-hstore-2.3.4.tgz", - "integrity": "sha512-N3SGs/Rf+xA1M2/n0JBiXFDVMzdekwLZLAO0g7mpDY9ouX+fDI7jS6kTq3JujmYbtNSJ53TJ0q4G98KVZSM4EA==", - "dependencies": { - "underscore": "^1.13.1" - }, - "engines": { - "node": ">= 0.8.x" - } - }, - "node_modules/pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pg-pool": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz", - "integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==", - "peerDependencies": { - "pg": ">=8.0" - } - }, - "node_modules/pg-protocol": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz", - "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==" - }, - "node_modules/pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pgpass": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", - "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", - "dependencies": { - "split2": "^4.1.0" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "dependencies": { - "node-modules-regexp": "^1.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/prettier": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", - "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/promise.any": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/promise.any/-/promise.any-2.0.4.tgz", - "integrity": "sha512-Yyl7jstFInFv/eIjm8Sj+pyyzHKZJPMr6yOdxxls1xdVatc3kVyVOvMPmqDaKC5kzxjwuMCkn41isweIUf8DPw==", - "dependencies": { - "array.prototype.map": "^1.0.4", - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-aggregate-error": "^1.0.7", - "get-intrinsic": "^1.1.1", - "iterate-value": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "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", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/raw-body/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "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-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/readable-stream/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==" - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "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", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry-as-promised": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-5.0.0.tgz", - "integrity": "sha512-6S+5LvtTl2ggBumk04hBo/4Uf6fRJUwIgunGZ7CYEBCeufGFW1Pu6ucUf/UskHeWOIsUcLOGLFXPig5tR5V1nA==" - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true, - "engines": { - "node": "6.* || >= 7.*" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "deprecated": "some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added", - "dev": true, - "dependencies": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "bin": { - "sane": "src/cli.js" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/sane/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/sane/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "node_modules/sequelize": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.19.0.tgz", - "integrity": "sha512-B3oGIdpYBERDjRDm74h7Ky67f6ZLcmBXOA7HscYObiOSo4pD7VBc9mtm44wNV7unc0uk8I1d30nbZBTQCE377A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/sequelize" - } - ], - "dependencies": { - "@types/debug": "^4.1.7", - "@types/validator": "^13.7.1", - "debug": "^4.3.3", - "dottie": "^2.0.2", - "inflection": "^1.13.2", - "lodash": "^4.17.21", - "moment": "^2.29.1", - "moment-timezone": "^0.5.34", - "pg-connection-string": "^2.5.0", - "retry-as-promised": "^5.0.0", - "semver": "^7.3.5", - "sequelize-pool": "^7.1.0", - "toposort-class": "^1.0.1", - "uuid": "^8.3.2", - "validator": "^13.7.0", - "wkx": "^0.5.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependenciesMeta": { - "ibm_db": { - "optional": true - }, - "mariadb": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-hstore": { - "optional": true - }, - "snowflake-sdk": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "tedious": { - "optional": true - } - } - }, - "node_modules/sequelize-pool": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz", - "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/sequelize/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", - "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": "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/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/snapdragon/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, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split2": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", - "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "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/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "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", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "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-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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-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/swagger-ui-dist": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-4.11.1.tgz", - "integrity": "sha512-pf3kfSTYdF9mYFY2VnfJ51wnXlSVhEGdtymhpHzfbFw2jTbiEWgBoVz5EB9aW2EaJvUGTM1YHAXYZX7Jk4RdAQ==" - }, - "node_modules/swagger-ui-express": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.4.0.tgz", - "integrity": "sha512-1CzRkHG386VQMVZK406jcpgnW2a9A5A/NiAjKhsFTQqUBWRF+uGbXTU/mA7WSV3mTzyOQDvjBdWP/c2qd5lqKw==", - "dependencies": { - "swagger-ui-dist": ">=4.11.0" - }, - "engines": { - "node": ">= v0.10.32" - }, - "peerDependencies": { - "express": ">=4.0.0" - } - }, - "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/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/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", - "dev": true - }, - "node_modules/timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "dependencies": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "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", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/toposort-class": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", - "integrity": "sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg=" - }, - "node_modules/touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "dependencies": { - "nopt": "~1.0.10" - }, - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "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/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/ts-jest": { - "version": "26.5.6", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.6.tgz", - "integrity": "sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA==", - "dev": true, - "dependencies": { - "bs-logger": "0.x", - "buffer-from": "1.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^26.1.0", - "json5": "2.x", - "lodash": "4.x", - "make-error": "1.x", - "mkdirp": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": ">= 10" - }, - "peerDependencies": { - "jest": ">=26 <27", - "typescript": ">=3.8 <5.0" - } - }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "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", - "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "0.7.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.0", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/tsc": { - "version": "1.20150623.0", - "resolved": "https://registry.npmjs.org/tsc/-/tsc-1.20150623.0.tgz", - "integrity": "sha1-Trw8d04WkUjLx2inNCUz8ILHpuU=", - "deprecated": "you probably meant to install typescript", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - } - }, - "node_modules/tsoa": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tsoa/-/tsoa-4.0.0.tgz", - "integrity": "sha512-+uHE+a99kGfN8MfBZHUkB86p09INmeKFK0sK6rt3+hnQJC9i25nIgffJGF1cZb4bNW79UtPPdqPoWFrEiZLZ7Q==", - "dependencies": { - "@tsoa/cli": "^4.0.0", - "@tsoa/runtime": "^4.0.0" - }, - "bin": { - "tsoa": "dist/cli.js" - }, - "engines": { - "node": ">=12.0.0", - "yarn": ">=1.9.4" - } - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "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.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "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.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uglify-js": { - "version": "3.15.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.5.tgz", - "integrity": "sha512-hNM5q5GbBRB5xB+PMqVRcgYe4c8jbyZ1pzZhS6jbq54/4F2gFK869ZheiE5A8/t+W5jtTNpWef/5Q9zk639FNQ==", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "node_modules/underscore": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.3.tgz", - "integrity": "sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA==" - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, - "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/url-template": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", - "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=" - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/v8-to-istanbul": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", - "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validator": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", - "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "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/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/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "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": { - "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": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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=" - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wkx": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", - "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", - "dependencies": { - "@types/node": "*" - } - }, - "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/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "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==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "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": "7.5.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "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/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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/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/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yamljs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", - "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", - "dependencies": { - "argparse": "^1.0.7", - "glob": "^7.0.5" - }, - "bin": { - "json2yaml": "bin/json2yaml", - "yaml2json": "bin/yaml2json" - } - }, - "node_modules/yamljs/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "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==", - "dependencies": { - "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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - } - }, - "dependencies": { - "@apidevtools/json-schema-ref-parser": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", - "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==", - "requires": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.6", - "call-me-maybe": "^1.0.1", - "js-yaml": "^4.1.0" - } - }, - "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.0" - } - }, - "@babel/compat-data": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", - "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", - "dev": true - }, - "@babel/core": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", - "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helpers": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", - "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", - "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - } - }, - "@babel/helper-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", - "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", - "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", - "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", - "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", - "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-module-transforms": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", - "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-simple-access": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", - "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", - "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-simple-access": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", - "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", - "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true - }, - "@babel/helpers": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", - "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", - "dev": true, - "requires": { - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.3", - "@babel/types": "^7.16.0" - } - }, - "@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", - "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@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", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@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", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/template": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", - "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/traverse": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", - "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.3", - "@babel/types": "^7.16.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", - "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "to-fast-properties": "^2.0.0" - } - }, - "@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 - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dev": true, - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, - "@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", - "dev": true - }, - "@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", - "dev": true, - "requires": { - "@cspotcode/source-map-consumer": "0.8.0" - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" - } - }, - "@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" - } - }, - "@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "node-notifier": "^8.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" - } - }, - "@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - } - }, - "@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "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": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true - }, - "@tsoa/cli": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tsoa/cli/-/cli-4.0.0.tgz", - "integrity": "sha512-/eB9RnslyuVQgmK36EgLSKciMvrP9UIu+Bq7yhDmL72pzFT3hKPUSkxLidHuz5DNa85OBq4eKMfnYIt744AqnQ==", - "requires": { - "@tsoa/runtime": "^4.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^8.1.0", - "glob": "^7.1.6", - "handlebars": "^4.7.7", - "merge": "^2.1.0", - "minimatch": "^3.0.4", - "typescript": "^4.5.4", - "validator": "^13.6.0", - "yamljs": "^0.3.0", - "yargs": "^15.4.1" - } - }, - "@tsoa/runtime": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tsoa/runtime/-/runtime-4.0.0.tgz", - "integrity": "sha512-5CB4xqNNzWgQf65fln5CQN2JU6ETiEulZcEspwXlZkmPp97zptEiTWuhLV5nkAxN/skIAn8KGyhN6usib2eQ9A==", - "requires": { - "promise.any": "^2.0.2", - "reflect-metadata": "^0.1.13", - "validator": "^13.6.0" - } - }, - "@types/babel__core": { - "version": "7.1.16", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", - "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", - "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.3", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", - "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/bluebird": { - "version": "3.5.36", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz", - "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==" - }, - "@types/continuation-local-storage": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@types/continuation-local-storage/-/continuation-local-storage-3.2.4.tgz", - "integrity": "sha512-OT32vCVMymU1JMPKDeY0lX3cduAr0Pm/VwIbxygMeDS4lRcv57qYXn9bMwBRcRnEpXKBb/r4xYaZCARTZllP0A==", - "requires": { - "@types/node": "*" - } - }, - "@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "requires": { - "@types/ms": "*" - } - }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "16.11.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.9.tgz", - "integrity": "sha512-MKmdASMf3LtPzwLyRrFjtFFZ48cMf8jmX5VRYrDQiJa8Ybu5VAmkqBWqKU8fdCwD8ysw4mQ9nrEHvzg6gunR7A==" - } - } - }, - "@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/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "@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/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": "26.0.24", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz", - "integrity": "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==", - "dev": true, - "requires": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" - } - }, - "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" - }, - "@types/lodash": { - "version": "4.14.177", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.177.tgz", - "integrity": "sha512-0fDwydE2clKe9MNfvXHBHF9WEahRuj+msTuQqOmAApNORFvhMYZKNGGJdCzuhheVjMps/ti0Ak/iJPACMaevvw==" - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, - "@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "@types/node": { - "version": "14.18.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.18.tgz", - "integrity": "sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig==" - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "@types/prettier": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.2.tgz", - "integrity": "sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==" - }, - "@types/sequelize": { - "version": "4.28.13", - "resolved": "https://registry.npmjs.org/@types/sequelize/-/sequelize-4.28.13.tgz", - "integrity": "sha512-ZR7k22F3xEqbGUWW7ZgysttmOUPIFyTPA2oPPjlT47h2iJtALrtNTXdEF5erW7bHCG2H+Byuy5MbpLj3znE7wQ==", - "requires": { - "@types/bluebird": "*", - "@types/continuation-local-storage": "*", - "@types/lodash": "*", - "@types/validator": "*" - } - }, - "@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/validator": { - "version": "13.7.2", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.2.tgz", - "integrity": "sha512-KFcchQ3h0OPQgFirBRPZr5F/sVjxZsOrQHedj3zi8AH3Zv/hOLx2OLR4hxR5HcfoU+33n69ZuOfzthKVdMoTiw==" - }, - "@types/yargs": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", - "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 - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, - "ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", - "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.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "requires": { - "ajv": "^8.0.0" - } - }, - "ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "requires": { - "string-width": "^4.1.0" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "append-field": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "array.prototype.map": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.4.tgz", - "integrity": "sha512-Qds9QnX7A0qISY7JT5WuJO0NJPE9CMlC6JzHQfhpqAAQQzufVRoeH7EzUY5GcPTx72voG8LV/5eo+b8Qi8hmhA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - } - }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", - "dev": true, - "requires": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "dependencies": { - "istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - } - } - }, - "babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", - "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-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": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^26.6.2", - "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", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { - "ee-first": "1.1.1" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - } - } - }, - "boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "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.18.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", - "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001280", - "electron-to-chromium": "^1.3.896", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - } - }, - "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": { - "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-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==" - }, - "busboy": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", - "requires": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - } - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "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" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "caniuse-lite": { - "version": "1.0.30001282", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz", - "integrity": "sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg==", - "dev": true - }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "requires": { - "rsvp": "^4.8.4" - } - }, - "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" - } - }, - "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 - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true - }, - "cli-color": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.1.tgz", - "integrity": "sha512-eBbxZF6fqPUNnf7CLAFOersUnyYzv83tHFLSlts+OAHsNendaqv2tHCq+/MO+b3Y+9JeoUlIvobyxG/Z8GNeOg==", - "requires": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-iterator": "^2.0.3", - "memoizee": "^0.4.15", - "timers-ext": "^0.1.7" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "requires": { - "mimic-response": "^1.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 - }, - "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 - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.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==", - "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==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "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 - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true - }, - "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 - } - } - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "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" - }, - "dependencies": { - "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" - } - }, - "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 - }, - "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" - } - } - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "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": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "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==" - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "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 - }, - "dicer": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", - "requires": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - } - }, - "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": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "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 - } - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "dotenv": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz", - "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==" - }, - "dottie": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz", - "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==" - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "electron-to-chromium": { - "version": "1.3.904", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.904.tgz", - "integrity": "sha512-x5uZWXcVNYkTh4JubD7KSC1VMKz0vZwJUqVwY3ihsW0bst1BXDe494Uqbg3Y0fDGVjJqA8vEeGuvO5foyH2+qw==", - "dev": true - }, - "emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "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": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.0.tgz", - "integrity": "sha512-URbD8tgRthKD3YcC39vbvSDrX23upXnPcnGAjQfgxXF5ID75YcENawc9ZX/9iTP9ptUyfCLIxTTuMYoRfiOVKA==", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.1", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-aggregate-error": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/es-aggregate-error/-/es-aggregate-error-1.0.8.tgz", - "integrity": "sha512-AKUb5MKLWMozPlFRHOKqWD7yta5uaEhH21qwtnf6FlKjNjTJOoqFi0/G14+FfSkIQhhu6X68Af4xgRC6y8qG4A==", - "requires": { - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "function-bind": "^1.1.1", - "functions-have-names": "^1.2.3", - "get-intrinsic": "^1.1.1", - "globalthis": "^1.0.2", - "has-property-descriptors": "^1.0.0" - } - }, - "es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" - }, - "es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - } - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "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" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" - }, - "exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", - "dev": true - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "dependencies": { - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - } - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.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" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - } - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", - "requires": { - "type": "^2.5.0" - }, - "dependencies": { - "type": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", - "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "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 - }, - "fast-text-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", - "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" - }, - "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" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "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" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs.promises": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/fs.promises/-/fs.promises-0.1.2.tgz", - "integrity": "sha512-LNfkXdN6EToumV455EbdJaNxqLmEFqKqNZVIEyI2whtdpIppTsne2fHWgx05s+B2Aif29Lhzdz0AaOXKLvMGsA==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" - }, - "gaxios": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", - "integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", - "requires": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.1" - } - }, - "gcp-metadata": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", - "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", - "requires": { - "gaxios": "^4.0.0", - "json-bigint": "^1.0.0" - } - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==" - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-promise": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-3.4.0.tgz", - "integrity": "sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==", - "requires": { - "@types/glob": "*" - } - }, - "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", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "requires": { - "define-properties": "^1.1.3" - } - }, - "google-auth-library": { - "version": "7.10.2", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.10.2.tgz", - "integrity": "sha512-M37o9Kxa/TLvOLgF71SXvLeVEP5sbSTmKl1zlIgl72SFy5PtsU3pOdu8G8MIHHpQ3/NZabDI8rQkA9DvQVKkPA==", - "requires": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^4.0.0", - "gcp-metadata": "^4.2.0", - "gtoken": "^5.0.4", - "jws": "^4.0.0", - "lru-cache": "^6.0.0" - } - }, - "google-p12-pem": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.2.tgz", - "integrity": "sha512-tjf3IQIt7tWCDsa0ofDQ1qqSCNzahXDxdAGJDbruWqu3eCg5CKLYKN+hi0s6lfvzYZ1GDVr+oDF9OOWlDSdf0A==", - "requires": { - "node-forge": "^0.10.0" - } - }, - "googleapis": { - "version": "72.0.0", - "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-72.0.0.tgz", - "integrity": "sha512-GMHXnZy86tLdFGkHd5G1mEWFGKO2+G8VFmk2my+mRCum0e5MOPQXG+PAvDVjVwCQJEOjPpBOZae53THRXaVm9w==", - "requires": { - "google-auth-library": "^7.0.2", - "googleapis-common": "^5.0.2" - } - }, - "googleapis-common": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-5.0.5.tgz", - "integrity": "sha512-o2dgoW4x4fLIAN+IVAOccz3mEH8Lj1LP9c9BSSvkNJEn+U7UZh0WSr4fdH08x5VH7+sstIpd1lOYFZD0g7j4pw==", - "requires": { - "extend": "^3.0.2", - "gaxios": "^4.0.0", - "google-auth-library": "^7.0.2", - "qs": "^6.7.0", - "url-template": "^2.0.8", - "uuid": "^8.0.0" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true - }, - "gtoken": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.1.tgz", - "integrity": "sha512-yqOREjzLHcbzz1UrQoxhBtpk8KjrVhuqPE7od1K2uhyxG2BHjKZetlbLw/SPZak/QqTIQW+addS+EcjqQsZbwQ==", - "requires": { - "gaxios": "^4.0.0", - "google-p12-pem": "^3.0.3", - "jws": "^4.0.0" - } - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" - }, - "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 - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "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-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "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 - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", - "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", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflection": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.2.tgz", - "integrity": "sha512-cmZlljCRTBFouT8UzMzrGcVEvkv6D/wBdcdKG7J1QH5cXjtU75Dm+P27v9EKu/Y43UYyCJd1WC4zLebRrC8NBw==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "inversify": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/inversify/-/inversify-6.0.1.tgz", - "integrity": "sha512-B3ex30927698TJENHR++8FfEaJGqoWOgI6ZY5Ht/nLUsFCwHn6akbwtnUAPCgUepAnTpe2qHxhDNjoKLyz6rgQ==" - }, - "inversify-binding-decorators": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/inversify-binding-decorators/-/inversify-binding-decorators-4.0.0.tgz", - "integrity": "sha512-r8au/oH3vS7ttHj0RivAznwElySeRohLfg8lvOSzbrX6abf/8ik8ptk49XbzdShgrnalvl7CM6MjcskfM7MMqQ==" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "optional": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "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", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "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" - } - }, - "is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" - }, - "is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "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-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "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-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "optional": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "istanbul-reports": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.5.tgz", - "integrity": "sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "iterate-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.2.tgz", - "integrity": "sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==" - }, - "iterate-value": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", - "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", - "requires": { - "es-get-iterator": "^1.0.2", - "iterate-iterator": "^1.0.1" - } - }, - "jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "import-local": "^3.0.2", - "jest-cli": "^26.6.3" - }, - "dependencies": { - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - } - } - } - }, - "jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "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" - } - }, - "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" - } - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - } - }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - } - }, - "jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - } - }, - "jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - } - }, - "jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", - "dev": true, - "requires": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - } - }, - "jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@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, - "requires": {} - }, - "jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", - "dev": true - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - } - }, - "jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - } - }, - "jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - } - }, - "jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - } - }, - "jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "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": { - "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" - } - }, - "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 - }, - "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" - } - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "requires": { - "bignumber.js": "^9.0.0" - } - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-ref-parser": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", - "integrity": "sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==", - "requires": { - "@apidevtools/json-schema-ref-parser": "9.0.9" - } - }, - "json-schema-to-typescript": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/json-schema-to-typescript/-/json-schema-to-typescript-10.1.5.tgz", - "integrity": "sha512-X8bNNksfCQo6LhEuqNxmZr4eZpPjXZajmimciuk8eWXzZlif9Brq7WuMGD/SOhBKcRKP2SGVDNZbC28WQqx9Rg==", - "requires": { - "@types/json-schema": "^7.0.6", - "@types/lodash": "^4.14.168", - "@types/prettier": "^2.1.5", - "cli-color": "^2.0.0", - "get-stdin": "^8.0.0", - "glob": "^7.1.6", - "glob-promise": "^3.4.0", - "is-glob": "^4.0.1", - "json-schema-ref-parser": "^9.0.6", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.20", - "minimist": "^1.2.5", - "mkdirp": "^1.0.4", - "mz": "^2.7.0", - "prettier": "^2.2.0" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "requires": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "requires": { - "json-buffer": "3.0.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "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 - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "requires": { - "package-json": "^6.3.0" - } - }, - "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" - } - }, - "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 - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "requires": { - "es5-ext": "~0.10.2" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "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" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", - "requires": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" - }, - "dependencies": { - "next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - } - } - }, - "merge": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", - "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "moment": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", - "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" - }, - "moment-timezone": { - "version": "0.5.34", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz", - "integrity": "sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==", - "requires": { - "moment": ">= 2.9.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multer": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4.tgz", - "integrity": "sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw==", - "requires": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - } - } - }, - "mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "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 - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" - }, - "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-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-notifier": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", - "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", - "dev": true, - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "nodemon": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", - "integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==", - "dev": true, - "requires": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5", - "update-notifier": "^5.1.0" - }, - "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" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "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-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "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" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true - }, - "p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - } - }, - "packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "pg": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz", - "integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==", - "requires": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.5.0", - "pg-pool": "^3.5.1", - "pg-protocol": "^1.5.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - } - }, - "pg-connection-string": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", - "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" - }, - "pg-hstore": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/pg-hstore/-/pg-hstore-2.3.4.tgz", - "integrity": "sha512-N3SGs/Rf+xA1M2/n0JBiXFDVMzdekwLZLAO0g7mpDY9ouX+fDI7jS6kTq3JujmYbtNSJ53TJ0q4G98KVZSM4EA==", - "requires": { - "underscore": "^1.13.1" - } - }, - "pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==" - }, - "pg-pool": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz", - "integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==", - "requires": {} - }, - "pg-protocol": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz", - "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==" - }, - "pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "requires": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - } - }, - "pgpass": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", - "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", - "requires": { - "split2": "^4.1.0" - } - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==" - }, - "postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=" - }, - "postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==" - }, - "postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "requires": { - "xtend": "^4.0.0" - } - }, - "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 - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - }, - "prettier": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", - "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==" - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "promise.any": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/promise.any/-/promise.any-2.0.4.tgz", - "integrity": "sha512-Yyl7jstFInFv/eIjm8Sj+pyyzHKZJPMr6yOdxxls1xdVatc3kVyVOvMPmqDaKC5kzxjwuMCkn41isweIUf8DPw==", - "requires": { - "array.prototype.map": "^1.0.4", - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-aggregate-error": "^1.0.7", - "get-intrinsic": "^1.1.1", - "iterate-value": "^1.0.2" - } - }, - "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": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "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==" - }, - "pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "requires": { - "escape-goat": "^2.0.0" - } - }, - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - } - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - } - } - }, - "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-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - } - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, - "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==" - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "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", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry-as-promised": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-5.0.0.tgz", - "integrity": "sha512-6S+5LvtTl2ggBumk04hBo/4Uf6fRJUwIgunGZ7CYEBCeufGFW1Pu6ucUf/UskHeWOIsUcLOGLFXPig5tR5V1nA==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true - }, - "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==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "dev": true, - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "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" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "requires": { - "semver": "^6.3.0" - } - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "sequelize": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.19.0.tgz", - "integrity": "sha512-B3oGIdpYBERDjRDm74h7Ky67f6ZLcmBXOA7HscYObiOSo4pD7VBc9mtm44wNV7unc0uk8I1d30nbZBTQCE377A==", - "requires": { - "@types/debug": "^4.1.7", - "@types/validator": "^13.7.1", - "debug": "^4.3.3", - "dottie": "^2.0.2", - "inflection": "^1.13.2", - "lodash": "^4.17.21", - "moment": "^2.29.1", - "moment-timezone": "^0.5.34", - "pg-connection-string": "^2.5.0", - "retry-as-promised": "^5.0.0", - "semver": "^7.3.5", - "sequelize-pool": "^7.1.0", - "toposort-class": "^1.0.1", - "uuid": "^8.3.2", - "validator": "^13.7.0", - "wkx": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "sequelize-pool": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz", - "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==" - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", - "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": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "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" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "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 - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "split2": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", - "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "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 - } - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "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": { - "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.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "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-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "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-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" - } - }, - "swagger-ui-dist": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-4.11.1.tgz", - "integrity": "sha512-pf3kfSTYdF9mYFY2VnfJ51wnXlSVhEGdtymhpHzfbFw2jTbiEWgBoVz5EB9aW2EaJvUGTM1YHAXYZX7Jk4RdAQ==" - }, - "swagger-ui-express": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.4.0.tgz", - "integrity": "sha512-1CzRkHG386VQMVZK406jcpgnW2a9A5A/NiAjKhsFTQqUBWRF+uGbXTU/mA7WSV3mTzyOQDvjBdWP/c2qd5lqKw==", - "requires": { - "swagger-ui-dist": ">=4.11.0" - } - }, - "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 - }, - "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" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, - "throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", - "dev": true - }, - "timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "requires": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "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", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "toposort-class": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", - "integrity": "sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg=" - }, - "touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "requires": { - "nopt": "~1.0.10" - } - }, - "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" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "ts-jest": { - "version": "26.5.6", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.6.tgz", - "integrity": "sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA==", - "dev": true, - "requires": { - "bs-logger": "0.x", - "buffer-from": "1.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^26.1.0", - "json5": "2.x", - "lodash": "4.x", - "make-error": "1.x", - "mkdirp": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "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", - "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "0.7.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.0", - "yn": "3.1.1" - }, - "dependencies": { - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - } - } - }, - "tsc": { - "version": "1.20150623.0", - "resolved": "https://registry.npmjs.org/tsc/-/tsc-1.20150623.0.tgz", - "integrity": "sha1-Trw8d04WkUjLx2inNCUz8ILHpuU=" - }, - "tsoa": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tsoa/-/tsoa-4.0.0.tgz", - "integrity": "sha512-+uHE+a99kGfN8MfBZHUkB86p09INmeKFK0sK6rt3+hnQJC9i25nIgffJGF1cZb4bNW79UtPPdqPoWFrEiZLZ7Q==", - "requires": { - "@tsoa/cli": "^4.0.0", - "@tsoa/runtime": "^4.0.0" - } - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "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.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "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.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==" - }, - "uglify-js": { - "version": "3.15.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.5.tgz", - "integrity": "sha512-hNM5q5GbBRB5xB+PMqVRcgYe4c8jbyZ1pzZhS6jbq54/4F2gFK869ZheiE5A8/t+W5jtTNpWef/5Q9zk639FNQ==", - "optional": true - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "underscore": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.3.tgz", - "integrity": "sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA==" - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, - "requires": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "requires": { - "prepend-http": "^2.0.0" - } - }, - "url-template": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", - "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=" - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "v8-to-istanbul": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", - "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validator": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", - "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "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" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "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": { - "iconv-lite": "0.4.24" - } - }, - "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": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "requires": { - "string-width": "^4.0.0" - } - }, - "wkx": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", - "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", - "requires": { - "@types/node": "*" - } - }, - "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 - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "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==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "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": "7.5.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "dev": true, - "requires": {} - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true - }, - "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 - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yamljs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", - "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", - "requires": { - "argparse": "^1.0.7", - "glob": "^7.0.5" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - } - } - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "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==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - } - } -} diff --git a/api/package.json b/api/package.json index 59f448d..20e14e1 100644 --- a/api/package.json +++ b/api/package.json @@ -1,57 +1,88 @@ { - "name": "hkrecruitment-apiserver", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "build": "tsoa spec-and-routes && tsc", - "start-local": "NODE_ENV=local node ./dist/app.js", - "dev": "NODE_ENV=local nodemon", - "start": "NODE_ENV=production node ./dist/app.js", - "debug": "export DEBUG=* && npm run start", - "test": "jest" - }, - "nodemonConfig": { - "watch": [ - "src", - "app.ts" - ], - "ext": "ts", - "exec": "ts-node app.ts" - }, - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "@types/sequelize": "^4.28.13", - "ajv": "^8.1.0", - "ajv-formats": "^2.0.2", - "body-parser": "^1.20.0", - "cors": "^2.8.5", - "dotenv": "^16.0.0", - "express": "^4.17.1", - "fs.promises": "^0.1.2", - "googleapis": "^72.0.0", - "inversify": "^6.0.1", - "inversify-binding-decorators": "^4.0.0", - "json-schema-to-typescript": "^10.1.4", - "multer": "^1.4.4", - "pg": "^8.7.3", - "pg-hstore": "^2.3.4", - "reflect-metadata": "^0.1.13", - "sequelize": "^6.19.0", - "swagger-ui-express": "^4.4.0", - "tsc": "^1.20150623.0", - "tsoa": "^4.0.0", - "uuid": "^8.3.2" - }, - "devDependencies": { - "@types/jest": "^26.0.22", - "@types/node": "^14.18.18", - "jest": "^26.6.3", - "nodemon": "^2.0.16", - "ts-jest": "^26.5.4", - "ts-node": "^10.7.0", - "typescript": "^4.6.3" - } -} + "name": "@hkrecruitment/api", + "description": "API", + "private": true, + "scripts": { + "prebuild": "rimraf dist", + "build": "nest build", + "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", + "start": "ts-node src/index.ts", + "start:dev": "nest start --watch", + "start:debug": "nest start --debug --watch", + "start:prod": "node dist/api/src/main", + "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", + "test": "jest", + "test:watch": "jest --watch", + "test:cov": "jest --coverage", + "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", + "test:e2e": "jest --config ./test/jest-e2e.json", + "typeorm": "typeorm-ts-node-commonjs", + "clean": "rimraf dist" + }, + "dependencies": { + "@casl/ability": "^6.3.3", + "@fastify/static": "^6.6.0", + "@hkrecruitment/shared": "workspace:*", + "@nestjs/common": "^9.0.0", + "@nestjs/config": "^2.2.0", + "@nestjs/core": "^9.0.0", + "@nestjs/passport": "^9.0.0", + "@nestjs/platform-express": "^9.0.0", + "@nestjs/platform-fastify": "^9.2.1", + "@nestjs/swagger": "^6.1.3", + "@nestjs/typeorm": "^9.0.1", + "@types/js-yaml": "^4.0.5", + "@types/passport-jwt": "^3.0.7", + "joi": "^17.7.0", + "js-yaml": "^4.1.0", + "jwks-rsa": "^3.0.0", + "passport": "^0.6.0", + "passport-jwt": "^4.0.0", + "pg": "^8.4.0", + "reflect-metadata": "^0.1.13", + "rimraf": "^3.0.2", + "rxjs": "^7.2.0", + "typeorm": "0.3.11", + "webpack": "^5.75.0" + }, + "devDependencies": { + "@nestjs/cli": "^9.0.0", + "@nestjs/schematics": "^9.0.0", + "@nestjs/testing": "^9.0.0", + "@types/express": "^4.17.14", + "@types/jest": "28.1.8", + "@types/node": "^16.11.10", + "@types/supertest": "^2.0.11", + "@typescript-eslint/eslint-plugin": "^5.0.0", + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^8.0.1", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0", + "jest": "28.1.3", + "prettier": "^2.8.5", + "source-map-support": "^0.5.20", + "supertest": "^6.1.3", + "ts-jest": "28.0.8", + "ts-loader": "^9.2.3", + "ts-node": "10.7.0", + "tsconfig-paths": "4.1.0", + "typescript": "4.5.2" + }, + "jest": { + "moduleFileExtensions": [ + "js", + "json", + "ts" + ], + "rootDir": "src", + "testRegex": ".*\\.spec\\.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + }, + "collectCoverageFrom": [ + "**/*.(t|j)s" + ], + "coverageDirectory": "../coverage", + "testEnvironment": "node" + } +} \ No newline at end of file diff --git a/api/src/ErrorHandler.ts b/api/src/ErrorHandler.ts deleted file mode 100644 index 78b30c2..0000000 --- a/api/src/ErrorHandler.ts +++ /dev/null @@ -1,47 +0,0 @@ -import {Request, Response, NextFunction} from 'express'; - - -export interface ErrorType { - statusCode: number; - name: string; - message: string; - fields?: { [field: string]: { message: string } }; -} - -export class ApiError extends Error implements ErrorType { - public statusCode: number = 500; - public fields?: { [field: string]: { message: string } }; - - constructor(errorType: ErrorType) { - super(errorType.message); - this.name = errorType.name; - if (errorType.statusCode) this.statusCode = errorType.statusCode; - this.fields = errorType.fields; - } -} - -export class ErrorHandler { - public static handleError(error: ApiError, req: Request, res: Response, next: NextFunction): void { - const normalizedError: ApiError = ErrorHandler.normalizeError(error); - const {name, message, fields, statusCode} = normalizedError; - res.status(statusCode).json({name, message, fields}); - next(); - } - - private static normalizeError(error: ApiError): ApiError { - const constants = { - ValidateError: { statusCode: 400, name: 'Bad Request', message: 'validation error' }, - ValidationError: {statusCode: 400, name: 'Bad Request', message: 'validation error' }, - CastError: { statusCode: 500, name: 'Internal Server Error', message: 'database error' } - } - const normalizedError: ApiError = new ApiError(error); - Object.keys(constants).forEach(errorKey => { - if (errorKey === normalizedError.name) Object.assign(normalizedError, constants[errorKey]); - }); - Object.keys(constants).forEach(errorTypeKey => { - const errorType = constants[errorTypeKey]; - if (errorType.statusCode === normalizedError.statusCode) normalizedError.name = errorType.name; - }); - return normalizedError; - } -} diff --git a/api/src/app.module.ts b/api/src/app.module.ts new file mode 100644 index 0000000..9106b10 --- /dev/null +++ b/api/src/app.module.ts @@ -0,0 +1,51 @@ +import { Module } from '@nestjs/common'; +import { ConfigModule, ConfigService } from '@nestjs/config'; +import { TypeOrmModule, TypeOrmModuleOptions } from '@nestjs/typeorm'; +import { UsersModule } from './users/users.module'; +import { AuthenticationModule } from './authentication/authentication.module'; +import { APP_GUARD, APP_INTERCEPTOR } from '@nestjs/core'; +import { JwtGuard } from './authentication/jwt-guard.guard'; +import { AuthorizationModule } from './authorization/authorization.module'; +import { TimerInterceptor } from './timer/timer.interceptor'; +import { AuthorizationGuard } from './authorization/authorization.guard'; + +@Module({ + imports: [ + ConfigModule.forRoot({ + isGlobal: true, + }), + TypeOrmModule.forRootAsync({ + imports: [ConfigModule], + useFactory: (configService: ConfigService) => + ({ + type: configService.get('DATABASE_TYPE'), + host: configService.get('DATABASE_HOST'), + port: configService.get('DATABASE_PORT'), + username: configService.get('DATABASE_USERNAME'), + password: configService.get('DATABASE_PASSWORD'), + database: configService.get('DATABASE_NAME'), + synchronize: configService.get('DATABASE_SYNCHRONIZE'), + entities: [__dirname + '/**/*.entity{.ts,.js}'], + } as TypeOrmModuleOptions), + inject: [ConfigService], + }), + UsersModule, + AuthenticationModule, + AuthorizationModule, + ], + providers: [ + { + provide: APP_GUARD, + useClass: JwtGuard, + }, + { + provide: APP_GUARD, + useClass: AuthorizationGuard, + }, + { + provide: APP_INTERCEPTOR, + useClass: TimerInterceptor, + }, + ], +}) +export class AppModule {} diff --git a/api/src/applicant/applicant.controller.ts b/api/src/applicant/applicant.controller.ts deleted file mode 100644 index c07eaab..0000000 --- a/api/src/applicant/applicant.controller.ts +++ /dev/null @@ -1,42 +0,0 @@ -import {v4 as uuidv4} from 'uuid'; -import {Applicant} from "../datatypes/entities"; -import {Body, Controller, Get, Path, Post, Route, SuccessResponse,} from "tsoa"; -import {inject} from "inversify"; -import {ApplicantRepository} from './applicant.repository' -import {provideSingleton} from "../util"; -import {ApplicantPost} from "./applicant"; - -@Route("applicant") -@provideSingleton(ApplicantController) -export class ApplicantController { - - constructor(@inject(ApplicantRepository) private applicantRepository: ApplicantRepository) { - } - - @Get() - public async getApplicants(): Promise { - return await this.applicantRepository.getAll(); - } - - @SuccessResponse("201", "Created") - @Post() - public async createApplicant( - @Body() body: ApplicantPost - ): Promise { - console.log(body) - const applicant: Applicant = { - id: uuidv4(), - birth_date: body.birth_date, - telegram_uid: body.telegram_uid, - how_know_HKN: body.how_know_HKN, - name: body.name, - surname: body.surname, - email: body.email, - phone_no: body.phone_no, - image: body.image, - sex: body.sex, - } - await this.applicantRepository.add(applicant) - return; - } -} diff --git a/api/src/applicant/applicant.d.ts b/api/src/applicant/applicant.d.ts deleted file mode 100644 index 4cef396..0000000 --- a/api/src/applicant/applicant.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import {Applicant} from "../datatypes/entities"; -import {Gender} from "../datatypes/enums"; - -export type ApplicantPost = { - image: string; - name: string; - surname: string; - sex: Gender; - email: string; - phone_no: string; - id: string; - birth_date: string; - telegram_uid?: string; - how_know_HKN: string; -} -export interface ApplicantRepositoryInterface { - add: (applicant: Applicant) => Promise - getAll: () => Promise -} diff --git a/api/src/applicant/applicant.model.ts b/api/src/applicant/applicant.model.ts deleted file mode 100644 index d8c9317..0000000 --- a/api/src/applicant/applicant.model.ts +++ /dev/null @@ -1,45 +0,0 @@ -import {Applicant} from "../datatypes/entities"; - -const {DataTypes, Model} = require('sequelize'); - -type ApplicantModelAttributes = { - id: string, - birth_date: string, - telegram_uid?: string, - how_know_HKN: string -} - -export class ApplicantModel extends Model { - declare id: string; - declare birth_date: string; - declare telegram_uid?: string; - declare how_know_HKN: string -} - -export function applicantModelFactory(sequelize, PersonModel) { - ApplicantModel.init({ - id: { - type: DataTypes.STRING, - allowNull: false, - primaryKey: true - }, - birth_date: { - type: DataTypes.STRING - }, - telegram_uid: { - type: DataTypes.STRING - }, - how_know_HKN: { - type: DataTypes.STRING - } - }, { - sequelize, - modelName: 'Applicant', - tableName: 'Applicant', - schema: 'public', - timestamps: false - }); - ApplicantModel.hasOne(PersonModel, {foreignKey: 'id'}) - PersonModel.belongsTo(ApplicantModel, {foreignKey: 'id'}) - return ApplicantModel -} diff --git a/api/src/applicant/applicant.repository.ts b/api/src/applicant/applicant.repository.ts deleted file mode 100644 index 2947adc..0000000 --- a/api/src/applicant/applicant.repository.ts +++ /dev/null @@ -1,74 +0,0 @@ -import {Applicant} from "../datatypes/entities"; -import {ApplicantRepositoryInterface} from "./applicant"; -import {inject, injectable} from "inversify"; -import {ApplicantModel, applicantModelFactory} from "./applicant.model"; -import {personModelFactory, PersonModel} from "../person/personModelFactory"; -import {Sequelize} from "sequelize"; -import {TYPES} from "../ioc/types"; -import {provideSingleton} from "../util"; - -@provideSingleton(ApplicantRepository) -export class ApplicantRepository implements ApplicantRepositoryInterface { - private _applicantModel: { new(): ApplicantModel } - private _personModel: { new(): PersonModel } - - constructor(@inject(TYPES.Sequelize) private _sequelize: Sequelize) { - this._personModel = personModelFactory(this._sequelize) - this._applicantModel = applicantModelFactory(this._sequelize, this._personModel) - } - - public async getAll() { - // @ts-ignore - const sqlApplicants = await this._applicantModel.findAll({ - include: [{ - model: this._personModel, - required: true - }] - }).catch((err) => { - throw err - } - ); - const applicants: Applicant[] = sqlApplicants.map(applicant => { - const outApplicant: Applicant = { - id: applicant.id, - birth_date: applicant.birth_date, - telegram_uid: applicant.telegram_uid, - how_know_HKN: applicant.how_know_HKN, - name: applicant.Person.name, - surname: applicant.Person.surname, - email: applicant.Person.email, - phone_no: applicant.Person.phone_no, - image: applicant.Person.image, - sex: applicant.Person.sex, - } - return outApplicant - }) - return applicants - } - - public async add(applicant: Applicant) { - // @ts-ignore - const person = await this._personModel.create({ - id: applicant.id, - name: applicant.name, - surname: applicant.surname, - email: applicant.email, - phone_no: applicant.phone_no, - image: applicant.image, - sex: applicant.sex, - }).catch((err) => { - console.error(err) - throw err - }) - - return await person.createApplicant({ - id: applicant.id, - birth_date: applicant.birth_date, - telegram_uid: applicant.telegram_uid, - how_know_HKN: applicant.how_know_HKN - }).catch((err) => { - console.error(err) - throw err - }) - } -} diff --git a/api/src/authentication/authentication.module.ts b/api/src/authentication/authentication.module.ts new file mode 100644 index 0000000..07a0d66 --- /dev/null +++ b/api/src/authentication/authentication.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; +import { ConfigModule } from '@nestjs/config'; +import { PassportModule } from '@nestjs/passport'; +import { JwtStrategy } from './jwt.strategy'; + +@Module({ + imports: [ConfigModule, PassportModule.register({ defaultStrategy: 'jwt' })], + providers: [JwtStrategy], + exports: [PassportModule], +}) +export class AuthenticationModule {} diff --git a/api/src/authentication/jwt-guard.guard.ts b/api/src/authentication/jwt-guard.guard.ts new file mode 100644 index 0000000..d594762 --- /dev/null +++ b/api/src/authentication/jwt-guard.guard.ts @@ -0,0 +1,3 @@ +import { AuthGuard } from '@nestjs/passport'; + +export class JwtGuard extends AuthGuard('jwt') {} diff --git a/api/src/authentication/jwt.strategy.ts b/api/src/authentication/jwt.strategy.ts new file mode 100644 index 0000000..a480a0c --- /dev/null +++ b/api/src/authentication/jwt.strategy.ts @@ -0,0 +1,38 @@ +import { Injectable } from '@nestjs/common'; +import { ConfigService } from '@nestjs/config'; +import { PassportStrategy } from '@nestjs/passport'; +import { ExtractJwt, Strategy } from 'passport-jwt'; +import { passportJwtSecret } from 'jwks-rsa'; + +interface Auth0Config { + issuer_url: string; + audience: string; +} + +const authConfig = (configService: ConfigService): Auth0Config => { + const issuer_url = configService.get('AUTH0_ISSUER_URL'); + const audience = configService.get('AUTH0_AUDIENCE'); + return { issuer_url, audience }; +}; + +@Injectable() +export class JwtStrategy extends PassportStrategy(Strategy) { + constructor(private readonly configService: ConfigService) { + super({ + secretOrKeyProvider: passportJwtSecret({ + cache: true, + rateLimit: true, + jwksRequestsPerMinute: 5, + jwksUri: authConfig(configService).issuer_url + '.well-known/jwks.json', + }), + jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), + audience: authConfig(configService).audience, + issuer: authConfig(configService).issuer_url, + algorithms: ['RS256'], + }); + } + + validate(payload: unknown): unknown { + return payload; + } +} diff --git a/api/src/authorization/ability.decorator.ts b/api/src/authorization/ability.decorator.ts new file mode 100644 index 0000000..4fe94bd --- /dev/null +++ b/api/src/authorization/ability.decorator.ts @@ -0,0 +1,11 @@ +import { + createParamDecorator, + ExecutionContext, + SetMetadata, +} from '@nestjs/common'; +import { AuthenticatedRequest } from 'src/authorization/authenticated-request.types'; + +export const Ability = createParamDecorator((_, ctx: ExecutionContext) => { + const request = ctx.switchToHttp().getRequest(); + return request.ability; +}); diff --git a/api/src/authorization/authenticated-request.types.ts b/api/src/authorization/authenticated-request.types.ts new file mode 100644 index 0000000..a4566fe --- /dev/null +++ b/api/src/authorization/authenticated-request.types.ts @@ -0,0 +1,6 @@ +import { AppAbility, UserAuth } from '@hkrecruitment/shared'; + +export type AuthenticatedRequest = Request & { + user: UserAuth; + ability: AppAbility; +}; diff --git a/api/src/authorization/authorization.guard.spec.ts b/api/src/authorization/authorization.guard.spec.ts new file mode 100644 index 0000000..a6c915b --- /dev/null +++ b/api/src/authorization/authorization.guard.spec.ts @@ -0,0 +1,7 @@ +import { AuthorizationGuard } from './authorization.guard'; + +describe('AuthorizationGuard', () => { + // it('should be defined', () => { + // expect(new AuthorizationGuard()).toBeDefined(); + // }); +}); diff --git a/api/src/authorization/authorization.guard.ts b/api/src/authorization/authorization.guard.ts new file mode 100644 index 0000000..a9c4b14 --- /dev/null +++ b/api/src/authorization/authorization.guard.ts @@ -0,0 +1,40 @@ +import { abilityForUser } from '@hkrecruitment/shared'; +import { + CanActivate, + ExecutionContext, + Injectable, + Logger, +} from '@nestjs/common'; +import { Reflector } from '@nestjs/core'; +import { UsersService } from 'src/users/users.service'; +import { CHECK_POLICIES_KEY, PolicyHandler } from './check-policies.decorator'; + +@Injectable() +export class AuthorizationGuard implements CanActivate { + private readonly logger = new Logger(AuthorizationGuard.name); + + constructor( + private reflector: Reflector, + private readonly usersService: UsersService, + ) {} + + async canActivate(context: ExecutionContext): Promise { + const role = + (await this.usersService.getRoleForOauthId( + context.switchToHttp().getRequest().user.sub, + )) ?? 'none'; + context.switchToHttp().getRequest().user.role = role; + this.logger.log( + `user.sub: ${context.switchToHttp().getRequest().user.sub} -> ${role}}`, + ); + const ability = abilityForUser(context.switchToHttp().getRequest().user); + context.switchToHttp().getRequest().ability = ability; + + const handlers = + this.reflector.get( + CHECK_POLICIES_KEY, + context.getHandler(), + ) ?? []; + return handlers.every((handler) => handler(ability)); + } +} diff --git a/api/src/authorization/authorization.module.ts b/api/src/authorization/authorization.module.ts new file mode 100644 index 0000000..1a85028 --- /dev/null +++ b/api/src/authorization/authorization.module.ts @@ -0,0 +1,7 @@ +import { Module } from '@nestjs/common'; +import { UsersModule } from 'src/users/users.module'; + +@Module({ + providers: [UsersModule], +}) +export class AuthorizationModule {} diff --git a/api/src/authorization/check-policies.decorator.ts b/api/src/authorization/check-policies.decorator.ts new file mode 100644 index 0000000..10dfed9 --- /dev/null +++ b/api/src/authorization/check-policies.decorator.ts @@ -0,0 +1,8 @@ +import { AppAbility } from '@hkrecruitment/shared'; +import { SetMetadata } from '@nestjs/common'; + +export type PolicyHandler = (ability: AppAbility) => boolean; + +export const CHECK_POLICIES_KEY = 'check-policies'; +export const CheckPolicies = (...args: PolicyHandler[]) => + SetMetadata(CHECK_POLICIES_KEY, args); diff --git a/api/src/common/common.routes.config.ts b/api/src/common/common.routes.config.ts deleted file mode 100644 index 4f1dc8f..0000000 --- a/api/src/common/common.routes.config.ts +++ /dev/null @@ -1,15 +0,0 @@ -import express from 'express' -export abstract class CommonRoutesConfig { - app: express.Application; - name: string; - - protected constructor(app: express.Application, name: string) { - this.app = app; - this.name = name; - this.configureRoutes(); - } - getName() { - return this.name; - } - abstract configureRoutes(): express.Application; -} diff --git a/api/src/config/gCalendarPreferences.d.ts b/api/src/config/gCalendarPreferences.d.ts deleted file mode 100644 index 4716db0..0000000 --- a/api/src/config/gCalendarPreferences.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -/* tslint:disable */ -/** - * This file was automatically generated by json-schema-to-typescript. - * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, - * and run json-schema-to-typescript to regenerate this file. - */ - -export interface GCalendarPreferences { - gcalendarPreferences?: { - insert?: Insert; - [k: string]: unknown; - }; - [k: string]: unknown; -} -export interface Insert { - conferenceDataVersion?: number; - sendUpdates?: "all" | "externalOnly" | "none"; - guestsCanInviteOthers?: boolean; - guestCanModify?: boolean; - guestCanSeeOtherGuests?: boolean; - location?: string; - reminders?: { - useDefault: boolean; - overrides: [ - { - method: "email" | "popup"; - minutes: number; - }, - ...{ - method: "email" | "popup"; - minutes: number; - }[] - ]; - [k: string]: unknown; - }; - visibility?: "default" | "public" | "private"; - conferenceData?: { - createRequest: { - conferenceSolutionKey: { - type: string; - [k: string]: unknown; - }; - requestId?: string; - [k: string]: unknown; - }; - [k: string]: unknown; - }; - [k: string]: unknown; -} diff --git a/api/src/config/gcalendarPreferences.json b/api/src/config/gcalendarPreferences.json deleted file mode 100644 index 221d781..0000000 --- a/api/src/config/gcalendarPreferences.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "$schema": "./gcalendarPreferences.json", - "gcalendarPreferences": { - "insert": { - "conferenceDataVersion": 1, - "conferenceData": { - "createRequest": { - "conferenceSolutionKey": { - "type": "hangoutsMeet" - } - } - }, - "guestCanModify": false, - "guestCanSeeOtherGuests": true, - "guestsCanInviteOthers": true, - "sendUpdates": "all", - "reminders": { - "useDefault": false, - "overrides": [ - { - "method": "email", - "minutes": 1440 - }, - { - "method": "popup", - "minutes": 60 - } - ] - }, - "visibility": "default" - } - } -} diff --git a/api/src/config/json-schema/gcalendarPreferences.json b/api/src/config/json-schema/gcalendarPreferences.json deleted file mode 100644 index 3f3ec0d..0000000 --- a/api/src/config/json-schema/gcalendarPreferences.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "$schema":"http://json-schema.org/draft-06/schema#", - "id": "https://hknpolito.org/schemas/v1/gcalendarPreferences.json#", - "title": "gCalendarPreferences", - "type":"object", - "definitions": { - "insert":{ - "type":"object", - "properties": { - "conferenceDataVersion":{"type":"integer", "minimum": 0, "maximum": 1, "default":1}, - "sendUpdates":{"enum": ["all", "externalOnly", "none"], "default": "all"}, - "guestsCanInviteOthers":{"type":"boolean", "default":false}, - "guestCanModify":{"type":"boolean", "default":false}, - "guestCanSeeOtherGuests":{"type":"boolean", "default":true}, - "location":{"type":"string"}, - "reminders":{ - "type":"object", - "properties": { - "useDefault":{"type":"boolean", "default":false}, - "overrides":{ - "type":"array", - "items": { - "type":"object", - "properties": { - "method":{"enum": ["email", "popup"], "default":"popup"}, - "minutes":{"type":"integer", "minimum": 0, "maximum": 40320,"default": 60} - }, - "required": ["method", "minutes"], - "additionalProperties": false - }, - "minItems": 1 - } - }, - "required": ["useDefault", "overrides"], - "default": {"useDefault":false, "overrides":[{"method": "email", "minutes":1440}, {"method":"popup", "minutes": 60}]} - }, - "visibility":{"enum": ["default", "public", "private"], "default":"default"}, - "conferenceData":{ - "type":"object", - "properties": { - "createRequest":{ - "type":"object", - "properties": { - "conferenceSolutionKey":{ - "type":"object", - "properties": { - "type":{"type":"string", "default": "hangoutsMeet"} - }, - "required": ["type"] - }, - "requestId":{"type":"string"} - }, - "required": ["conferenceSolutionKey"] - } - }, - "required": ["createRequest"] - } - }, - "if": { - "properties":{ - "conferenceDataVersion":{"const": 1} - }, - "required": ["conferenceDataVersion"] - }, - "then": { - "required": ["conferenceData"]} - } - }, - "properties": { - "gcalendarPreferences":{ - "type":"object", - "properties": { - "insert":{"$ref": "#/definitions/insert"} - } - } - } -} diff --git a/api/src/config/json-schema/messageTemplate.json b/api/src/config/json-schema/messageTemplate.json deleted file mode 100644 index fc19123..0000000 --- a/api/src/config/json-schema/messageTemplate.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "$schema":"http://json-schema.org/draft-06/schema#", - "id": "https://hknpolito.org/schemas/v1/messageTemplate.json#", - "title": "messageTemplates", - "type":"object", - "definitions": { - "messageKey": { - "enum": ["name", "surname", "additionalText", "start", "end"] - }, - "vocabularyEntry": { - "type": "object", - "properties": { - "placeholder": {"type": "string"}, - "male": {"type": "string"}, - "female": {"type": "string"} - }, - "additionalProperties": false, - "required": ["placeholder", "male", "female"] - }, - "messageVocabulary": { - "type": "array", - "items": {"$ref": "#/definitions/vocabularyEntry"}, - "uniqueItems": true - }, - "message":{ - "type":"object", - "properties": { - "subject": {"type": "string"}, - "body":{"type":"string"}, - "fields": { - "type": "array", - "items": {"$ref": "#/definitions/messageKey"}, - "uniqueItems": true - }, - "vocabulary": {"$ref": "#/definitions/messageVocabulary"} - }, - "additionalProperties": false, - "required": ["subject","body", "fields", "vocabulary"] - }, - "messageTemplate": { - "type": "object", - "properties": { - "ita": {"$ref": "#/definitions/message"}, - "eng": {"$ref": "#/definitions/message"} - }, - "required": ["ita", "eng"], - "additionalProperties": false - } - }, - "properties": { - "new_application":{ "$ref": "#/definitions/messageTemplate"}, - "application_accepted":{ "$ref": "#/definitions/messageTemplate"}, - "application_revocated":{ "$ref": "#/definitions/messageTemplate"}, - "require_availability_confirmation":{ "$ref": "#/definitions/messageTemplate"}, - "slot_reserved":{ "$ref": "#/definitions/messageTemplate"}, - "interview_member_accepted":{ "$ref": "#/definitions/messageTemplate"}, - "interview_mentee_accepted":{ "$ref": "#/definitions/messageTemplate"}, - "interview_rejected":{ "$ref": "#/definitions/messageTemplate"}, - "availability_not_required":{ "$ref": "#/definitions/messageTemplate"} - }, - "additionalProperties": false, - "required": ["new_application", "application_accepted", "application_revocated", - "require_availability_confirmation", "slot_reserved", "interview_member_accepted", - "interview_mentee_accepted", "interview_rejected", "availability_not_required"] -} diff --git a/api/src/config/json-schema/notificationTemplate.json b/api/src/config/json-schema/notificationTemplate.json deleted file mode 100644 index 5f9af86..0000000 --- a/api/src/config/json-schema/notificationTemplate.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "$schema":"http://json-schema.org/draft-06/schema#", - "id": "https://hknpolito.org/schemas/v1/notificationTemplate.json#", - "title": "notificationTemplates", - "type":"object", - "definitions": { - "notificationTemplate": { - "type": "object", - "properties": { - "ita": {"type": "string"}, - "eng": {"type": "string"}, - "uri": {"type": "string", "format": "uri"} - }, - "required": ["ita", "eng", "uri"], - "additionalProperties": false - } - }, - "properties": { - "new_application":{ "$ref": "#/definitions/notificationTemplate"}, - "application_accepted":{ "$ref": "#/definitions/notificationTemplate"}, - "application_revocated":{ "$ref": "#/definitions/notificationTemplate"}, - "require_availability_confirmation":{ "$ref": "#/definitions/notificationTemplate"}, - "slot_reserved":{ "$ref": "#/definitions/notificationTemplate"}, - "interview_member_accepted":{ "$ref": "#/definitions/notificationTemplate"}, - "interview_mentee_accepted":{ "$ref": "#/definitions/notificationTemplate"}, - "interview_rejected":{ "$ref": "#/definitions/notificationTemplate"}, - "availability_not_required":{ "$ref": "#/definitions/notificationTemplate"} - }, - "additionalProperties": false, - "required": ["new_application", "application_accepted", "application_revocated", - "require_availability_confirmation", "slot_reserved", "interview_member_accepted", - "interview_mentee_accepted", "interview_rejected", "availability_not_required"] -} diff --git a/api/src/config/json-schema/recruitmentConfig.json b/api/src/config/json-schema/recruitmentConfig.json deleted file mode 100644 index 92460b8..0000000 --- a/api/src/config/json-schema/recruitmentConfig.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "$schema":"http://json-schema.org/draft-06/schema#", - "id": "https://hknpolito.org/schemas/v1/recruitmentConfig.json#", - "type":"object", - "definitions": { - "notification_method": {"enum": ["email", "push", "sms", "telegram"]}, - "availability_compensation_method":{"enum": ["manual_fallback", "trySubstitution", "searchSubstitution", "reAskTimeSlots"]}, - "availability_compensation_broadcasting":{"enum": ["allInterviewers", "allInterviewersInDay", "leastNBusy"]}, - "slot_computational_method":{"enum": ["bestFit", "firstFit"]}, - "compensation_event":{"enum": ["availability_revocation", "application_applicant_refusal", - "no_interviewer_confirmation"]}, - "notification_event":{"enum": ["new_application", "application_accepted", "application_revocated", - "require_availability_confirmation", "slot_reserved", "interview_member_accepted", "interview_mentee_accepted", - "interview_rejected", "availability_not_required", "request_availability", "reAskTimeSlot", "require_manual_slot_compensation"]}, - "recruitmentConfig":{ - "type":"object", - "properties": { - "applicant":{ - "type":"object", - "properties":{ - "timeslots_num":{"type":"integer", "minimum": 1}, - "min_timeslots_chooseAmong":{"type":"integer", "minimum": 1}, - "min_hours_before_first_timeslot":{"type":"integer", "minimum": 1}, - "can_see_interviewers":{"type":"boolean", "default":false} - }, - "required": ["timeslots_num", "min_timeslots_chooseAmong", "min_hours_before_first_timeslot"] - }, - "member":{ - "type":"object", - "properties":{ - "min_hours_before_interviewer_confirm":{"type":"integer", "minimum": 1}, - "max_slots_day":{"type":"integer", "minimum": 1}, - "max_slots_week":{"type":"integer", "minimum": 1}, - "max_consecutive_slots":{"type":"integer", "minimum": 1}, - "reminder_availability_confirmation_hours":{"type":"integer", "minimum": 1}, - "metrics_weight":{ - "type":"object", - "properties": { - "gender_inequality":{"type":"number", "minimum": 0, "maximum": 1}, - "slots_day":{"type":"number", "minimum": 0, "maximum": 1}, - "slots_week":{"type":"number", "minimum": 0, "maximum": 1} - }, - "required": ["gender_inequality", "slots_day", "slots_week"] - } - }, - "required": ["min_hours_before_interviewer_confirm", "max_slots_day", "max_slots_week", - "max_consecutive_slots", "metrics_weight", "reminder_availability_confirmation_hours"] - }, - "compensation":{ - "type":"object", - "properties": { - "availability_compensation_strategies":{ - "type":"array", - "items": { - "type":"object", - "properties": { - "strategy": {"$ref": "#/definitions/availability_compensation_method"}, - "broadcasting":{"$ref": "#/definitions/availability_compensation_broadcasting"}, - "N":{"type":"integer", "minimum": 1} - }, - "if": { - "properties":{ - "strategy":{"const": "searchSubstitution"}, - "broadcasting": {"const": "leastNBusy"} - }, - "required": ["strategy"] - }, - "then": { - "required": ["broadcasting", "N"]} - }, - "uniqueItems": true, - "minItems": 1, - "default": [ - { - "strategy": "trySubstitution" - }, - { - "strategy": "searchSubstitution", - "broadcasting": "allInterviewers" - }, - { - "strategy": "manual_fallback" - } - ] - } - }, - "required": ["availability_compensation_strategies"] - }, - "notification_strategies":{ - "type":"array", - "items": { - "type":"object", - "properties": { - "event": {"$ref": "#/definitions/notification_event"}, - "methods":{ - "type":"array", - "items": {"$ref": "#/definitions/notification_method"}, - "default": ["email", "push"] - } - }, - "required": ["event", "methods"] - }, - "uniqueItems": true, - "minItems": 1 - }, - "slot_computational_strategy":{"$ref": "#/definitions/slot_computational_method"}, - "interview_template":{"type":"string", "format": "uri"} - }, - "required": ["slot_computational_strategy", "notification_strategies", "compensation", "member", - "applicant", "interview_template"] - } - }, - "properties": { - "recruitmentConfig": {"$ref": "#/definitions/recruitmentConfig"} - } -} diff --git a/api/src/config/messageTemplate.d.ts b/api/src/config/messageTemplate.d.ts deleted file mode 100644 index 37dea44..0000000 --- a/api/src/config/messageTemplate.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -/* tslint:disable */ -/** - * This file was automatically generated by json-schema-to-typescript. - * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, - * and run json-schema-to-typescript to regenerate this file. - */ - -export type MessageKey = "name" | "surname" | "additionalText" | "start" | "end"; -export type MessageVocabulary = VocabularyEntry[]; - -export interface MessageTemplates { - new_application: MessageTemplate; - application_accepted: MessageTemplate; - application_revocated: MessageTemplate; - require_availability_confirmation: MessageTemplate; - slot_reserved: MessageTemplate; - interview_member_accepted: MessageTemplate; - interview_mentee_accepted: MessageTemplate; - interview_rejected: MessageTemplate; - availability_not_required: MessageTemplate; -} -export interface MessageTemplate { - ita: Message; - eng: Message; -} -export interface Message { - subject: string; - body: string; - fields: MessageKey[]; - vocabulary: MessageVocabulary; -} -export interface VocabularyEntry { - placeholder: string; - male: string; - female: string; -} diff --git a/api/src/config/messageTemplate.json b/api/src/config/messageTemplate.json deleted file mode 100644 index f8b73fc..0000000 --- a/api/src/config/messageTemplate.json +++ /dev/null @@ -1,233 +0,0 @@ -{ - "$schema": "./json-schema/messageTemplate.json", - "new_application": { - "ita": { - "subject": "[name surname] Candidatura accettata!", - "body": "Car name surname, la tua candidatura è stata accettata!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [ - { - "placeholder": "Car", - "female": "Cara", - "male": "Caro" - } - ] - }, - "eng": { - "subject": "[name surname] Application accepted!", - "body": "Dear name surname, your application has been accepted!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [] - } - }, - "application_accepted": { - "ita": { - "subject": "[name surname] Candidatura accettata!", - "body": "Car name surname, la tua candidatura è stata accettata!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [ - { - "placeholder": "Car", - "female": "Cara", - "male": "Caro" - } - ] - }, - "eng": { - "subject": "[name surname] Application accepted!", - "body": "Dear name surname, your application has been accepted!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [] - } - }, - "application_revocated": { - "ita": { - "subject": "[name surname] Candidatura revocata!", - "body": "Car name surname, ci dispiace sapere che hai deciso di cancellare la tua candidatura", - "fields": [ - "name", - "surname" - ], - "vocabulary": [ - { - "placeholder": "Car", - "female": "Cara", - "male": "Caro" - } - ] - }, - "eng": { - "subject": "[name surname] Application accepted!", - "body": "Dear name surname, your application has been accepted!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [] - } - }, - "require_availability_confirmation": { - "ita": { - "subject": "[name surname] Conferma la tua disponibilità!", - "body": "Gentile HKnuer name surname, conferma la tua disponibilità per start-end!", - "fields": [ - "name", - "surname", - "start", - "end" - ], - "vocabulary": [ - { - "placeholder": "Car", - "female": "Cara", - "male": "Caro" - } - ] - }, - "eng": { - "subject": "[name surname] Application accepted!", - "body": "Dear name surname, your application has been accepted!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [] - } - }, - "slot_reserved": { - "ita": { - "subject": "[name surname] Colloquio pianificato!", - "body": "Car name surname, il tuo colloquio è stato fissato per start, trovi i dettagli sulla tua pagina e sull'evento Google Calendar!", - "fields": [ - "name", - "surname", - "start" - ], - "vocabulary": [ - { - "placeholder": "Car", - "female": "Cara", - "male": "Caro" - } - ] - }, - "eng": { - "subject": "[name surname] Application accepted!", - "body": "Dear name surname, your application has been accepted!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [] - } - }, - "interview_member_accepted": { - "ita": { - "subject": "[name surname] Benvenuto in HKN!", - "body": "Car name surname, a seguito del nostro colloquio tenutosi start, abbiamo deciso che saremmo felici se tu ti unissi ad HKN!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [ - { - "placeholder": "Car", - "female": "Cara", - "male": "Caro" - } - ] - }, - "eng": { - "subject": "[name surname] Application accepted!", - "body": "Dear name surname, your application has been accepted!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [] - } - }, - "interview_mentee_accepted": { - "ita": { - "subject": "[name surname] Candidatura accettata!", - "body": "Car name surname, la tua candidatura è stata accettata!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [ - { - "placeholder": "Car", - "female": "Cara", - "male": "Caro" - } - ] - }, - "eng": { - "subject": "[name surname] Application accepted!", - "body": "Dear name surname, your application has been accepted!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [] - } - }, - "interview_rejected": { - "ita": { - "subject": "[name surname] Candidatura accettata!", - "body": "Car name surname, la tua candidatura è stata accettata!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [ - { - "placeholder": "Car", - "female": "Cara", - "male": "Caro" - } - ] - }, - "eng": { - "subject": "[name surname] Application accepted!", - "body": "Dear name surname, your application has been accepted!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [] - } - }, - "availability_not_required": { - "ita": { - "subject": "[name surname] Disponibilità non usata", - "body": "Gentile HKnuer name surname, al momento sei liber per la disponibilità start - end, perchè l'application è stata revocata.", - "fields": ["name", "surname", "start", "end"], - "vocabulary": [ - {"placeholder": "liber", - "male": "libero", - "female": "libera" - } - ] - }, - "eng": { - "subject": "[name surname] Availability not used", - "body": "Dear HKnuer name surname, your availability for start - end go free, because the availability has been revoked.", - "fields": ["name", "surname", "start", "end"], - "vocabulary": [] - } - } -} diff --git a/api/src/config/notificationTemplate.d.ts b/api/src/config/notificationTemplate.d.ts deleted file mode 100644 index 4a6d89d..0000000 --- a/api/src/config/notificationTemplate.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -/* tslint:disable */ -/** - * This file was automatically generated by json-schema-to-typescript. - * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, - * and run json-schema-to-typescript to regenerate this file. - */ - -export interface NotificationTemplates { - new_application: NotificationTemplate; - application_accepted: NotificationTemplate; - application_revocated: NotificationTemplate; - require_availability_confirmation: NotificationTemplate; - slot_reserved: NotificationTemplate; - interview_member_accepted: NotificationTemplate; - interview_mentee_accepted: NotificationTemplate; - interview_rejected: NotificationTemplate; - availability_not_required: NotificationTemplate; -} -export interface NotificationTemplate { - ita: string; - eng: string; - uri: string; -} diff --git a/api/src/config/notificationTemplate.json b/api/src/config/notificationTemplate.json deleted file mode 100644 index 1800489..0000000 --- a/api/src/config/notificationTemplate.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "$schema": "json-schema/notificationTemplate.json", - "new_application": { - "ita": "Nuova candidatura registrata", - "eng": "New application correctly submitted" - }, - "application_accepted": { - "ita": "La richiesta di candidatura è stata accettata", - "eng": "The application request has been accepted" - }, - "application_revocated": { - "ita": "La candidatura è stata cancellata", - "eng": "The application has been revocated" - }, - "require_availability_confirmation": { - "ita": "Richiesta conferma per la disponibilità", - "eng": "" - }, - "slot_reserved": { - "ita": "Il colloquio è stato fissato", - "eng": "The meeting has been planned" - }, - "interview_member_accepted": { - "ita": "La candidatura come membro di HKN è stata accettata", - "eng": "The application as HKN member has been accepted" - }, - "interview_mentee_accepted": { - "ita": "La candidatura come mentee di HKN è stata accettata", - "eng": "The application as HKN mentee has been accepted" - }, - "interview_rejected": { - "ita": "La candidatura è stata rifiutata", - "eng": "The application has been rejected" - }, - "availability_not_required": { - "ita": "La tua disponibilità non è più usata", - "eng": "Your availability is not used anymore" - } -} diff --git a/api/src/config/recruitmentConfig.d.ts b/api/src/config/recruitmentConfig.d.ts deleted file mode 100644 index 54f7c32..0000000 --- a/api/src/config/recruitmentConfig.d.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* tslint:disable */ -/** - * This file was automatically generated by json-schema-to-typescript. - * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, - * and run json-schema-to-typescript to regenerate this file. - */ - -export type AvailabilityCompensationMethod = - | "manual_fallback" - | "trySubstitution" - | "searchSubstitution" - | "reAskTimeSlots"; -export type AvailabilityCompensationBroadcasting = "allInterviewers" | "allInterviewersInDay" | "leastNBusy"; -export type NotificationEvent = - | "new_application" - | "application_accepted" - | "application_revocated" - | "require_availability_confirmation" - | "slot_reserved" - | "interview_member_accepted" - | "interview_mentee_accepted" - | "interview_rejected" - | "availability_not_required" - | "request_availability" - | "reAskTimeSlot" - | "require_manual_slot_compensation"; -export type NotificationMethod = "email" | "push" | "sms" | "telegram"; -export type SlotComputationalMethod = "bestFit" | "firstFit"; - -export interface RecruitmentConfig { - applicant: { - timeslots_num: number; - min_timeslots_chooseAmong: number; - min_hours_before_first_timeslot: number; - can_see_interviewers?: boolean; - [k: string]: unknown; - }; - member: { - min_hours_before_interviewer_confirm: number; - max_slots_day: number; - max_slots_week: number; - max_consecutive_slots: number; - reminder_availability_confirmation_hours: number; - metrics_weight: { - gender_inequality: number; - slots_day: number; - slots_week: number; - [k: string]: unknown; - }; - [k: string]: unknown; - }; - compensation: { - availability_compensation_strategies: [ - { - strategy?: AvailabilityCompensationMethod; - broadcasting?: AvailabilityCompensationBroadcasting; - N?: number; - [k: string]: unknown; - }, - ...{ - strategy?: AvailabilityCompensationMethod; - broadcasting?: AvailabilityCompensationBroadcasting; - N?: number; - [k: string]: unknown; - }[] - ]; - [k: string]: unknown; - }; - notification_strategies: [ - { - event: NotificationEvent; - methods: NotificationMethod[]; - [k: string]: unknown; - }, - ...{ - event: NotificationEvent; - methods: NotificationMethod[]; - [k: string]: unknown; - }[] - ]; - slot_computational_strategy: SlotComputationalMethod; - interview_template: string; - [k: string]: unknown; -} diff --git a/api/src/config/recruitmentConfig.json b/api/src/config/recruitmentConfig.json deleted file mode 100644 index a3871f7..0000000 --- a/api/src/config/recruitmentConfig.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "$schema": "./json-schema/recruitmentConfig.json", - "recruitmentConfig": { - "applicant": { - "timeslots_num": 3, - "min_hours_before_first_timeslot": 48, - "min_timeslots_chooseAmong": 10 - }, - "member": { - "max_consecutive_slots": 2, - "max_slots_day": 3, - "max_slots_week": 5, - "min_hours_before_interviewer_confirm": 6, - "metrics_weight": { - "gender_inequality": 0.2, - "slots_day": 0.5, - "slots_week": 0.3 - }, - "reminder_availability_confirmation_hours": 1 - }, - "compensation": { - "availability_compensation_strategies": [ - { - "strategy": "trySubstitution" - }, - { - "strategy": "searchSubstitution", - "broadcasting": "allInterviewers" - }, - { - "strategy": "manual_fallback" - } - ] - }, - "notification_strategies": [ - { - "event": "application_accepted", - "methods": [ - "email", - "push" - ] - } - ], - "slot_computational_strategy": "bestFit", - "interview_template": "http:" - } -} diff --git a/api/src/datatypes/application.d.ts b/api/src/datatypes/application.d.ts deleted file mode 100644 index da5c1c7..0000000 --- a/api/src/datatypes/application.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* tslint:disable */ -import {ApplicationState, DegreeLevel, LangLevel} from "./enums"; -import {TimeSlot} from "./dataTypes"; -import {Slot} from "./entities"; - -/** - * This file was automatically generated by json-schema-to-typescript. - * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, - * and run json-schema-to-typescript to regenerate this file. - */ - -export interface Application { - id: number; - type: DegreeLevel; - submission_date: string; - state: ApplicationState; - last_modified?: { - member_id: string; - time: string; - attributes?: string[]; - [k: string]: unknown; - }; - notes?: string; - ita_level: LangLevel; - cv?: string; - time_slots?: TimeSlot[]; - slot?: Slot; - interview_id?: number; - applicant_id: string; - [k: string]: unknown; -} diff --git a/api/src/datatypes/authZRule.d.ts b/api/src/datatypes/authZRule.d.ts deleted file mode 100644 index f293926..0000000 --- a/api/src/datatypes/authZRule.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* tslint:disable */ -/** - * This file was automatically generated by json-schema-to-typescript. - * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, - * and run json-schema-to-typescript to regenerate this file. - */ - -export interface BasicAuthZRule { - action?: string; - accept?: { - [k: string]: unknown; - }[]; - deny?: { - [k: string]: unknown; - }[]; -} diff --git a/api/src/datatypes/dataTypes.d.ts b/api/src/datatypes/dataTypes.d.ts deleted file mode 100644 index 37a236a..0000000 --- a/api/src/datatypes/dataTypes.d.ts +++ /dev/null @@ -1,32 +0,0 @@ -/* tslint:disable */ -import {AvailabilityState} from "./enums"; - -/** - * This file was automatically generated by json-schema-to-typescript. - * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, - * and run json-schema-to-typescript to regenerate this file. - */ - -export type Notification = { - [k: string]: unknown; -}; - -export interface TimeSlot { - start: string; - end: string; - [k: string]: unknown; -} -export interface Availability { - state: AvailabilityState; - assigned_at?: string; - confirmed_at?: string; - time_slot: TimeSlot; - member_id: string; - [k: string]: unknown; -} -export interface Change { - member_id: string; - time: string; - attributes?: string[]; - [k: string]: unknown; -} diff --git a/api/src/datatypes/entities.d.ts b/api/src/datatypes/entities.d.ts deleted file mode 100644 index 0c4829a..0000000 --- a/api/src/datatypes/entities.d.ts +++ /dev/null @@ -1,91 +0,0 @@ -/* tslint:disable */ -import {HKNArea, InterviewOutcome, ManRole, SlotState} from "./enums"; -import {Change, TimeSlot} from "./dataTypes"; -import {Person} from "./person"; -import {Application} from "./application"; - -/** - * This file was automatically generated by json-schema-to-typescript. - * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, - * and run json-schema-to-typescript to regenerate this file. - */ - -export type Member = Person & { - id: string; - role: ManRole; - is_expert: boolean; - is_board: boolean; - [k: string]: unknown; -}; -export type Applicant = Person & { - id: string; - birth_date: string; - telegram_uid?: string; - how_know_HKN: string; - [k: string]: unknown; -}; -export type BscApplication = Application & { - study_path: string; - academic_year: number; - cfu: number; - grades?: string; - grades_avg: number; - [k: string]: unknown; -}; -export type MscApplication = Application & { - [k: string]: unknown; -}; -export type PhdApplication = Application & { - msc_study_path: string; - phd_description: string; - [k: string]: unknown; -}; -export interface Slot { - id: number; - state: SlotState; - cal_id?: string; - time_slot: TimeSlot; - members: [ - { - id: string; - name: string; - surname: string; - sex: "male" | "female"; - image: string; - is_board: boolean; - is_expert: boolean; - [k: string]: unknown; - }, - { - id: string; - name: string; - surname: string; - sex: "male" | "female"; - image: string; - is_board: boolean; - is_expert: boolean; - [k: string]: unknown; - }, - ...{ - id: string; - name: string; - surname: string; - sex: "male" | "female"; - image: string; - is_board: boolean; - is_expert: boolean; - [k: string]: unknown; - }[] - ]; - interview_id: number; - [k: string]: unknown; -} -export interface Interview { - outcome?: InterviewOutcome; - last_modified: Change; - finalized_at?: string; - assigned_area?:HKNArea; - notes: string; - application_id: number; - [k: string]: unknown; -} diff --git a/api/src/datatypes/enums.d.ts b/api/src/datatypes/enums.d.ts deleted file mode 100644 index 0e9d88e..0000000 --- a/api/src/datatypes/enums.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* tslint:disable */ -/** - * This file was automatically generated by json-schema-to-typescript. - * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, - * and run json-schema-to-typescript to regenerate this file. - */ - -export type AvailabilityState = "subscribed" | "used" | "confirmed" | "usedAndConfirmed" | "cancelled"; -export type InterviewOutcome = "member_accepted" | "mentee_accepted" | "rejected"; -export type ApplicationState = "new" | "accepted" | "rejected" | "confirmed" | "finalized" | "refused_by_applicant"; -export type SlotState = "free" | "assigned" | "reserved" | "rejected"; -export type Gender = "male" | "female"; -export type ManRole = "admin" | "supervisor" | "clerk" | "none"; -export type LangLevel = "B2" | "C1" | "C2" | "native_speaker"; -export type HKNArea = - | "information_technology" - | "human_resources" - | "tutoring" - | "communication" - | "events" - | "corporate_training"; -export type DegreeLevel = "BSc" | "MSc" | "PhD"; diff --git a/api/src/datatypes/json-schemas/application.json b/api/src/datatypes/json-schemas/application.json deleted file mode 100644 index 2e3786b..0000000 --- a/api/src/datatypes/json-schemas/application.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "$schema":"http://json-schema.org/draft-06/schema#", - "$id": "https://hknpolito.org/schemas/v1/application.json#", - "type":"object", - "title": "application", - "properties": { - "id":{"type":"integer"}, - "type":{"$ref": "enums.json#/properties/degree_level"}, - "submission_date":{"type":"string", "format":"date-time"}, - "state": {"$ref": "enums.json#/properties/application_state"}, - "last_modified":{"$ref": "dataTypes.json#/properties/change"}, - "notes":{"type":"string", "maxLength":255}, - "ita_level": {"$ref": "enums.json#/properties/lang_level"}, - "cv":{"type":"string", "format":"uri"}, - - "time_slots":{ - "type":"array", - "items": {"$ref": "dataTypes.json#/definitions/time_slot"}, - "uniqueItems": true, - "minItems":1 - }, - "slot":{"$ref": "entities.json#/definitions/slot"}, - "interview_id":{"type":"integer", "minimum": 0}, - "applicant_id": {"type": "string"} - }, - "required":["id", "submission_date", "state", "ita_level", "type"] - } diff --git a/api/src/datatypes/json-schemas/authZRule.json b/api/src/datatypes/json-schemas/authZRule.json deleted file mode 100644 index 28c8157..0000000 --- a/api/src/datatypes/json-schemas/authZRule.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$schema":"http://json-schema.org/draft-06/schema#", - "id": "https://hknpolito.org/schemas/v1/authZRule.json#", - "type":"object", - "definitions": { - "authZRule":{ - "type":"object", - "title": "basicAuthZRule", - "properties": { - "action":{"type":"string"}, - "accept":{ - "type":"array", - "items": {"type":"object"} - }, - "deny":{ - "type":"array", - "items": {"type":"object"} - } - }, - "anyOf": [ - {"required": ["action", "accept"]}, - {"required": ["action", "deny"]} - ] - } - }, - "properties": { - "authZRules":{ - "type":"array", - "items": {"$ref": "#/definitions/authZRule"}, - "uniqueItems": true, - "minItems":1 - }, - "authZRule":{"$ref": "#/definitions/authZRule"} - } -} diff --git a/api/src/datatypes/json-schemas/dataTypes.json b/api/src/datatypes/json-schemas/dataTypes.json deleted file mode 100644 index 51cba69..0000000 --- a/api/src/datatypes/json-schemas/dataTypes.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "$schema":"http://json-schema.org/draft-06/schema#", - "$id": "https://hknpolito.org/schemas/v1/dataTypes.json#", - "type": "object", - "definitions": { - "change":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/change.json", - "properties": { - "member_id":{"type":"string"}, - "time":{"type":"string", "format":"date-time"}, - "attributes":{"type":"array", "items": {"type":"string"}} - }, - "required": ["member_id", "time"] - }, - - "time_slot":{ - "type":"object", - "properties": { - "start":{"type":"string", "format":"date-time"}, - "end":{"type":"string", "format":"date-time"} - }, - "required":["start", "end"] - }, - - "notification":{ - "type":"object", - "properties": { - "id":{"type":"integer", "minimum": 0}, - "applicant_read":{"type":"boolean", "default":false}, - "member_read":{"type":"boolean", "default":false}, - "uri":{"type":"string", "format":"uri"}, - "text":{"type":"string", "maxLength":255}, - - "member_id":{"type":"string"}, - "applicant_id":{"type":"string"} - }, - "anyOf":[ - {"required":["id", "uri", "text", "member_id", "member_read"]}, - {"required":["id", "uri", "text", "applicant_id", "applicant_read"]} - - ] - }, - - "availability":{ - "type":"object", - "properties": { - "state":{"$ref": "enums.json#/properties/availability_state"}, - "assigned_at":{"type":"string", "format":"date-time"}, - "confirmed_at":{"type":"string", "format":"date-time"}, - "time_slot":{"$ref": "#/properties/time_slot"}, - "member_id":{"type":"string"} - }, - "required": ["state", "time_slot", "member_id"] - } - }, - "properties":{ - "time_slot": {"$ref": "#/definitions/time_slot"}, - "availability": {"$ref": "#/definitions/availability"}, - "notification": {"$ref": "#/definitions/notification"}, - "change": {"$ref": "#/definitions/change"} - } -} diff --git a/api/src/datatypes/json-schemas/entities.json b/api/src/datatypes/json-schemas/entities.json deleted file mode 100644 index dcb962f..0000000 --- a/api/src/datatypes/json-schemas/entities.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "$schema":"http://json-schema.org/draft-06/schema#", - "$id": "https://hknpolito.org/schemas/v1/entities.json#", - "type": "object", - "definitions": { - "slot":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/slot.json", - "properties": { - "id": {"type": "integer"}, - "state":{"$ref": "enums.json#/properties/slot_state"}, - "cal_id": {"type": "string"}, - "time_slot": {"$ref": "dataTypes.json#/properties/time_slot"}, - "members":{ - "type":"array", - "items": { - "type":"object", - "properties": { - "id":{"type":"string"}, - "name":{"type":"string"}, - "surname":{"type":"string"}, - "sex":{"$ref": "enums.json#/properties/gender"}, - "image":{"type":"string", "format": "uri"}, - "is_expert":{"type":"boolean", "default":false}, - "is_board":{"type":"boolean", "default": false} - }, - "required": ["id", "name", "surname", "sex", "image", "is_board", "is_expert"] - }, - "minItems": 2, - "uniqueItems": true - }, - "interview_id": {"type": "integer", "minimum": 0} - }, - "required":["state", "time_slot", "members"] - }, - - "member":{ - "$schema":"http://json-schema.org/draft-06/schema#", - "type": "object", - "$id": "https://hknpolito.org/schemas/v1/member.json", - "allOf":[ - {"$ref": "person.json"}, - { - "properties": { - "id":{"type":"string"}, - "role":{"$ref": "enums.json#/properties/man_role"}, - "is_expert":{"type":"boolean", "default":false}, - "is_board":{"type":"boolean", "default": false} - }, - "required": ["id", "role", "is_expert", "is_board"] - } - ] - }, - - "applicant":{ - "type": "object", - "$id": "https://hknpolito.org/schemas/v1/applicant.json", - "allOf":[ - {"$ref": "person.json"}, - { - "properties": { - "id": {"type":"string"}, - "birth_date": {"type":"string", "format":"date-time"}, - "telegram_uid": {"type":"string"}, - "how_know_HKN": {"type":"string"} - }, - "required": ["id", "birth_date", "how_know_HKN"] - } - ] - }, - - "bsc_application":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/bsc_application.json", - "allOf":[ - {"$ref": "application.json"}, - { - "properties": { - "study_path":{"type":"string"}, - "academic_year":{"type":"integer", "minimum": 1, "maximum": 3}, - "cfu":{"type":"integer", "minimum": 48, "maximum": 180}, - "grades": {"type":"string", "format":"uri"}, - "grades_avg": {"type":"number", "minimum": 20, "maximum": 30} - }, - "required":["study_path", "academic_year", "cfu", "grades_avg"] - } - ] - }, - - "msc_application":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/msc_application.json", - "allOf":[ - {"$ref": "application.json"}, - { - "properties": { - "bsc_study_path":{"type":"string"}, - "msc_study_path":{"type":"string"}, - "academic_year":{"type":"integer", "minimum": 1, "maximum": 2}, - "cfu":{"type":"integer", "minimum": 20, "maximum": 120}, - "msc_grades": {"type":"string", "format":"uri"}, - "msc_grades_avg": {"type":"number", "minimum": 20, "maximum": 30}, - "bsc_grades_avg": {"type":"number", "minimum": 20, "maximum": 30} - - }, - "anyOf":[ - {"required":["bsc_study_path", "msc_study_path", "academic_year", "bsc_grades_avg"]}, - {"required":["msc_study_path", "academic_year", "cfu", "msc_grades_avg"]} - ] - } - ] - }, - - "phd_application":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/phd_application.json", - "allOf":[ - {"$ref": "application.json"}, - { - "properties": { - "msc_study_path":{"type":"string"}, - "phd_description": {"type":"string", "maxLength":255} - }, - "required":["msc_study_path", "phd_description"] - - } - ] - }, - "interview":{ - "type":"object", - "properties": { - "outcome":{"$ref": "enums.json#/properties/interview_outcome"}, - "last_modified":{"$ref": "dataTypes.json#/properties/change"}, - "finalized_at":{"type":"string", "format": "date-time"}, - "assigned_area":{"$ref": "enums.json#/properties/HKN_area"}, - "notes":{"type":"string", "format": "uri"}, - - "application_id":{"type":"integer", "minimum": 0} - }, - "required": ["last_modified", "notes", "application_id"] - } - }, - "properties": { - "member": {"$ref": "#/definitions/member"}, - "applicant": {"$ref": "#/definitions/applicant"}, - "bsc_application": {"$ref": "#/definitions/bsc_application"}, - "msc_application": {"$ref": "#/definitions/msc_application"}, - "phd_application": {"$ref": "#/definitions/phd_application"}, - "slot":{"$ref": "#/definitions/slot"}, - "interview":{"$ref": "#/definitions/interview"} - } -} diff --git a/api/src/datatypes/json-schemas/enums.json b/api/src/datatypes/json-schemas/enums.json deleted file mode 100644 index 4396c22..0000000 --- a/api/src/datatypes/json-schemas/enums.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "$schema":"http://json-schema.org/draft-06/schema#", - "$id": "https://hknpolito.org/schemas/v1/enums.json#", - "type": "object", - "definitions": { - "availability_state": {"enum": ["subscribed", "used", "confirmed", "usedAndConfirmed", "cancelled"]}, - "interview_outcome": {"enum": ["member_accepted", "mentee_accepted", "rejected"]}, - "application_state": {"enum": ["new", "accepted", "rejected", "confirmed", "finalized", "refused_by_applicant"]}, - "slot_state": {"enum": ["free", "assigned", "reserved", "rejected"]}, - "gender":{"enum": ["male", "female"]}, - "man_role":{"enum": ["admin", "supervisor", "clerk", "none"]}, - "lang_level":{"enum": ["B2", "C1", "C2", "native_speaker"]}, - "HKN_area":{"enum": ["information_technology", "human_resources", "tutoring", "communication", "events", "corporate_training"]}, - "degree_level":{"enum": ["BSc", "MSc", "PhD"]} - }, - "properties":{ - "availability_state": {"$ref": "#/definitions/availability_state"}, - "interview_outcome": {"$ref": "#/definitions/interview_outcome"}, - "application_state": {"$ref": "#/definitions/application_state"}, - "slot_state": {"$ref": "#/definitions/slot_state"}, - "gender":{"$ref": "#/definitions/gender"}, - "man_role": {"$ref": "#/definitions/man_role"}, - "lang_level": {"$ref": "#/definitions/lang_level"}, - "HKN_area":{"$ref": "#/definitions/HKN_area"}, - "degree_level":{"$ref": "#/definitions/degree_level"} - } -} diff --git a/api/src/datatypes/json-schemas/json-schema-draft-06.json b/api/src/datatypes/json-schemas/json-schema-draft-06.json deleted file mode 100644 index 5410064..0000000 --- a/api/src/datatypes/json-schemas/json-schema-draft-06.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-06/schema#", - "$id": "http://json-schema.org/draft-06/schema#", - "title": "Core schema meta-schema", - "definitions": { - "schemaArray": { - "type": "array", - "minItems": 1, - "items": {"$ref": "#"} - }, - "nonNegativeInteger": { - "type": "integer", - "minimum": 0 - }, - "nonNegativeIntegerDefault0": { - "allOf": [{"$ref": "#/definitions/nonNegativeInteger"}, {"default": 0}] - }, - "simpleTypes": { - "enum": ["array", "boolean", "integer", "null", "number", "object", "string"] - }, - "stringArray": { - "type": "array", - "items": {"type": "string"}, - "uniqueItems": true, - "default": [] - } - }, - "type": ["object", "boolean"], - "properties": { - "$id": { - "type": "string", - "format": "uri-reference" - }, - "$schema": { - "type": "string", - "format": "uri" - }, - "$ref": { - "type": "string", - "format": "uri-reference" - }, - "title": { - "type": "string" - }, - "description": { - "type": "string" - }, - "default": {}, - "examples": { - "type": "array", - "items": {} - }, - "multipleOf": { - "type": "number", - "exclusiveMinimum": 0 - }, - "maximum": { - "type": "number" - }, - "exclusiveMaximum": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "maxLength": {"$ref": "#/definitions/nonNegativeInteger"}, - "minLength": {"$ref": "#/definitions/nonNegativeIntegerDefault0"}, - "pattern": { - "type": "string", - "format": "regex" - }, - "additionalItems": {"$ref": "#"}, - "items": { - "anyOf": [{"$ref": "#"}, {"$ref": "#/definitions/schemaArray"}], - "default": {} - }, - "maxItems": {"$ref": "#/definitions/nonNegativeInteger"}, - "minItems": {"$ref": "#/definitions/nonNegativeIntegerDefault0"}, - "uniqueItems": { - "type": "boolean", - "default": false - }, - "contains": {"$ref": "#"}, - "maxProperties": {"$ref": "#/definitions/nonNegativeInteger"}, - "minProperties": {"$ref": "#/definitions/nonNegativeIntegerDefault0"}, - "required": {"$ref": "#/definitions/stringArray"}, - "additionalProperties": {"$ref": "#"}, - "definitions": { - "type": "object", - "additionalProperties": {"$ref": "#"}, - "default": {} - }, - "properties": { - "type": "object", - "additionalProperties": {"$ref": "#"}, - "default": {} - }, - "patternProperties": { - "type": "object", - "additionalProperties": {"$ref": "#"}, - "default": {} - }, - "dependencies": { - "type": "object", - "additionalProperties": { - "anyOf": [{"$ref": "#"}, {"$ref": "#/definitions/stringArray"}] - } - }, - "propertyNames": {"$ref": "#"}, - "const": {}, - "enum": { - "type": "array", - "minItems": 1, - "uniqueItems": true - }, - "type": { - "anyOf": [ - {"$ref": "#/definitions/simpleTypes"}, - { - "type": "array", - "items": {"$ref": "#/definitions/simpleTypes"}, - "minItems": 1, - "uniqueItems": true - } - ] - }, - "format": {"type": "string"}, - "allOf": {"$ref": "#/definitions/schemaArray"}, - "anyOf": {"$ref": "#/definitions/schemaArray"}, - "oneOf": {"$ref": "#/definitions/schemaArray"}, - "not": {"$ref": "#"} - }, - "default": {} -} diff --git a/api/src/datatypes/json-schemas/payloads.json b/api/src/datatypes/json-schemas/payloads.json deleted file mode 100644 index 49604de..0000000 --- a/api/src/datatypes/json-schemas/payloads.json +++ /dev/null @@ -1,650 +0,0 @@ -{ - "$schema":"http://json-schema.org/draft-06/schema#", - "type": "object", - "definitions": { - "v1MembersInsertRequest": { - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/MembersInsertRequest.json#", - "allOf": [ - {"$ref": "person.json"} - ] - }, - - "v1MembersPatchRequest": { - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/MembersPatchRequest.json#", - "properties": { - "image": {"type":"string", "format": "uri"}, - "email":{"type":"string", "format":"email"}, - "role":{"$ref": "enums.json#/properties/man_role"}, - "is_expert":{"type":"boolean", "default":false}, - "is_board":{"type":"boolean", "default": false} - }, - "anyOf": [ - {"required":["email"]}, - {"required":["role"]}, - {"required":["is_expert"]}, - {"required":["is_board"]}, - {"required": ["image"]} - ] - }, - - "v1MembersGetByFullNameRequest":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/MembersGetByFullNameRequest.json#", - "properties": { - "id":{"type":"string"}, - "image":{"type":"string", "format": "uri"}, - "name":{"type":"string"}, - "surname":{"type":"string"}, - "sex":{"$ref": "enums.json#/properties/gender"} - }, - "required": ["id", "image", "name", "surname", "sex"] - }, - - "v1ApplicantsInsertRequest": { - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/ApplicantsInsertRequest.json#", - "allOf":[ - {"$ref": "person.json"}, - { - "properties": { - "role":{"$ref": "enums.json#/properties/man_role"}, - "is_expert":{"type":"boolean", "default":false}, - "is_board":{"type":"boolean", "default": false} - }, - "required": ["role", "is_expert", "is_board"] - } - ], - "oneOf": [ - { - "properties":{ - "bsc_application": {"$ref": "entities.json#/properties/bsc_application"} - }, - "required": ["bsc_application"] - }, - { - "properties":{ - "msc_application": {"$ref": "entities.json#/properties/msc_application"} - }, - "required": ["msc_application"] - }, - { - "properties":{ - "phd_application": {"$ref": "entities.json#/properties/phd_application"} - }, - "required": ["phd_application"] - } - ] - }, - - "v1ApplicantsUpdateFriendListRequest": { - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/ApplicantsUpdateFriendListRequest.json#", - "properties": { - "friends":{ - "type":"array", - "items": {"type":"integer", "minimum": 0}, - "minItems": 1 - } - }, - "required": ["friends"] - }, - - "v1ApplicantsPatchRequest": { - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/ApplicantsPatchRequest.json#", - "properties": { - "image": {"type":"string", "format": "uri"}, - "email":{"type":"string", "format":"email"}, - "birth_date":{"type":"string", "format":"date-time"}, - "phone_no":{"type":"string", "pattern": "(3[0-9]{8,9})"}, - "telegram_uid":{"type":"string"} - }, - "anyOf": [ - {"required":["email"]}, - {"required":["birth_date"]}, - {"required":["phone_no"]}, - {"required":["telegram_uid"]}, - {"required": ["image"]} - ] - }, - - "v1ApplicantsCheckExistanceResponse":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/ApplicantsCheckExistanceResponse.json#", - "properties": { - "found":{"type":"boolean"} - }, - "required": ["found"] - }, - - "v1ApplicantsListFriendsResponse": { - "type": "object", - "$id": "https://hknpolito.org/schemas/v1/ApplicantsListFriendsResponse.json#", - "properties": { - "friends": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": {"type": "string"}, - "name": {"type": "string"}, - "surname": {"type": "string"} - }, - "required": ["id", "name", "surname"] - } - } - }, - "required": ["friends"] - }, - - "v1AvailabilitiesListResponse": { - "type": "object", - "$id": "https://hknpolito.org/schemas/v1/AvailabilitiesListResponse.json#", - "properties": { - "member_id": {"type": "string"}, - "start": {"type": "string", "format": "date-time"}, - "end": {"type": "string", "format": "date-time"}, - "availabilities": { - "type": "array", - "items": {"$ref": "dataTypes.json#/properties/availability"} - } - }, - "required": ["member_id", "start", "end", "availabilities"] - }, - - "v1AvailabilitiesInsertRequest": { - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/AvailabilitiesInsertRequest.json#", - "properties": { - "start":{"type":"string", "format":"date-time"}, - "end":{"type":"string", "format":"date-time"}, - "member_id":{"type":"string"} - }, - "required": ["start", "end", "member_id"] - }, - - "v1TimeSlotsGetSlotsAndAvailabilities": { - "type":"array", - "$id": "https://hknpolito.org/schemas/v1/TimeSlotsGetSlotsAndAvailabilities.json#", - "items": { - "type":"object", - "properties": { - "time_slot":{"$ref": "dataTypes.json#/properties/time_slot"}, - "slots":{ - "type":"array", - "items": {"$ref": "entities.json#/properties/slot"}, - "uniqueItems": true - }, - "availabilities":{ - "type":"array", - "items": {"$ref": "dataTypes.json#/properties/availability"}, - "uniqueItems": true - } - }, - "required": ["time_slot", "slots", "availabilities"] - } - }, - - "v1SlotsGetTimeSlotsResponse": { - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/SlotsGetTimeSlotsResponse.json#", - "properties": { - "time_slots":{ - "type":"array", - "items": {"$ref": "dataTypes.json#/properties/time_slot"}, - "uniqueItems": true - } - }, - "required": ["time_slots"] - }, - - "v1SlotsBatchModifyRequest": { - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/SlotsBatchModifyRequest.json#", - "properties": { - "time_slot":{"$ref": "dataTypes.json#/properties/time_slot"}, - "slots":{ - "type":"array", - "items": {"$ref": "entities.json#/properties/slot"}, - "minItems":1 - } - }, - "required": ["time_slot", "slots"] - }, - - "v1SlotsListEligibleResponse": { - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/SlotsListEligibleResponse.json#", - "properties": { - "chosen_ts":{ - "type":"array", - "items": { - "type":"object", - "properties": { - "time_slot":{"$ref": "dataTypes.json#/properties/time_slot"}, - "slots":{ - "type":"array", - "items": {"$ref": "entities.json#/properties/slot"}, - "minItems":1 - }, - "availabilities":{ - "type":"array", - "items": {"$ref": "dataTypes.json#/properties/availability"}, - "minItems":1 - } - }, - "required":["time_slot", "slots", "availabilities"] - }, - "minItems":1 - } - }, - "required": ["chosen_ts"] - }, - - "v1ApplicationsInsertRequest": { - "type": "object", - "$id": "https://hknpolito.org/schemas/v1/v1ApplicationsInsertRequest.json#", - "properties": { - "application": { - "oneOf": [ - {"$ref": "entities.json#/properties/bsc_application"}, - {"$ref": "entities.json#/properties/msc_application"}, - {"$ref": "entities.json#/properties/phd_application"} - ] - }, - "cv_raw": {"type": "array"}, - "grades_raw": {"type": "array"}, - "msc_grades_raw": {"type": "array"} - }, - "anyOf": [ - {"required": ["application", "cv_raw", "grades_raw"]}, - {"required": ["application", "cv_raw", "msc_grades_raw"]} - ] - }, - - "v1ApplicationsUpdateTimeSlots": { - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/ApplicationsUpdateTimeSlots.json#", - "properties": { - "time_slots":{ - "type":"array", - "items": {"$ref": "dataTypes.json#/properties/time_slot"}, - "minItems":1 - } - }, - "required": ["time_slots"] - }, - - "v1ApplicationsPatchRequest": { - "type": "object", - "$id": "https://hknpolito.org/schemas/v1/ApplicationsPatchRequest.json#", - "properties": { - "state": {"$ref": "enums.json#/properties/application_state"}, - "notes": {"type": "string"}, - "customMessage": { - "type": "object", - "properties": { - "subject": {"type": "string"}, - "body": {"type": "string"} - } - }, - "additionalText": {"type": "string"} - } - }, - - "v1ApplicationsListResponse": { - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/ApplicationsListResponse.json#", - "properties": { - "applications":{ - "type":"array", - "items": { - "type":"object", - "properties": { - "id":{"type":"integer", "minimum": 0}, - "submission_date":{"type":"string", "format":"date-time"}, - "state": {"$ref": "enums.json#/properties/application_state"}, - "applicant":{ - "type":"object", - "properties": { - "id":{"type":"string"}, - "name":{"type":"string"}, - "surname":{"type":"string"}, - "sex":{"$ref": "enums.json#/properties/gender"} - }, - "required": ["id", "name", "surname", "sex"] - }, - "slot":{"$ref": "entities.json#/definitions/slot"} - }, - "required": ["id", "submission_date", "state", "applicant"] - } - - } - }, - "required": ["applications"] - }, - - "v1ApplicantsListApplicationsResponse": { - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/ApplicantsListApplicationsResponse.json#", - "properties": { - "applications":{ - "type":"array", - "items": { - "type":"object", - "properties": { - "id":{"type":"integer", "minimum": 0}, - "submission_date":{"type":"string", "format":"date-time"}, - "state": {"$ref": "enums.json#/properties/application_state"} - }, - "required": ["id", "submission_date", "state"] - } - - } - }, - "required": ["applications"] - }, - - "v1NotificationsReadRequest":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/NotificationsReadRequest.json#", - "properties": { - "member_id":{"type":"string"}, - "applicant_id":{"type":"string"} - }, - "anyOf": [{"required": ["member_id"]}, {"required": ["applicant_id"]}] - }, - - "v1NotificationListRequest":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/NotificationListRequest.json#", - "properties": { - "read":{ - "type":"array", - "items": {"$ref": "dataTypes.json#/properties/notification"} - }, - "unread":{ - "type":"array", - "items": {"$ref": "dataTypes.json#/properties/notification"} - } - }, - "required": ["read", "unread"] - }, - - "v1StudyPathsInsertRequest":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/StudyPathsInsertRequest.json#", - "properties": { - "degree_level":{"$ref": "enums.json#/properties/degree_level"}, - "study_path": {"type":"string"} - }, - "required": ["degree_level", "study_path"] - }, - - "v1StudyPathsListResponse":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/StudyPathsListResponse.json#", - "properties": { - "BSc":{ - "type":"array", - "items": {"type":"string"} - }, - "MSc":{ - "type":"array", - "items": {"type":"string"} - }, - "PhD":{ - "type":"array", - "items": {"type":"string"} - } - }, - "required": ["BSc", "MSc", "PhD"] - }, - - "v1StatisticsDailyInterviewSums":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/StatisticsDailyInterviewSums.json#", - "properties": { - "start":{"type":"string", "format":"date-time"}, - "end":{"type":"string", "format":"date-time"}, - "stats":{ - "type":"array", - "items": { - "type":"object", - "properties": { - "day":{"type":"string", "format": "date-time"}, - "daily_stats":{ - "type":"array", - "items": { - "type":"object", - "properties": { - "member":{ - "type":"object", - "properties": { - "id":{"type":"string"}, - "name":{"type":"string"}, - "surname":{"type":"string"}, - "sex":{"$ref": "enums.json#/properties/gender"}, - "email":{"type":"string", "format":"email"}, - "role":{"$ref": "enums.json#/properties/man_role"}, - "is_expert":{"type":"boolean", "default":false}, - "is_board":{"type":"boolean", "default": false} - }, - "required": ["id", "name", "surname", "sex", "email", "role", "is_expert", "is_board"] - }, - "interviews_n":{"type":"integer", "minimum": 0} - }, - "required": ["member", "interviews_n"] - } - } - }, - "required": ["day", "daily_stat"] - } - } - }, - "required": ["start", "end", "stats"] - }, - - "v1StatisticsTsInterviewSums":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/StatisticsTsInterviewSums.json#", - "properties": { - "start":{"type":"string", "format":"date-time"}, - "end":{"type":"string", "format":"date-time"}, - "stats":{ - "type":"array", - "items": { - "type":"object", - "properties": { - "time_slot":{"type":"string"}, - "ts_stats":{ - "type":"array", - "items": { - "type":"object", - "properties": { - "member":{ - "type":"object", - "properties": { - "id":{"type":"string"}, - "name":{"type":"string"}, - "surname":{"type":"string"}, - "sex":{"$ref": "enums.json#/properties/gender"}, - "email":{"type":"string", "format":"email"}, - "role":{"$ref": "enums.json#/properties/man_role"}, - "is_expert":{"type":"boolean", "default":false}, - "is_board":{"type":"boolean", "default": false} - }, - "required": ["id", "name", "surname", "sex", "email", "role", "is_expert", "is_board"] - }, - "interviews_n":{"type":"integer", "minimum": 0} - }, - "required": ["member", "interviews_n"] - } - } - }, - "required": ["day", "daily_stat"] - } - } - }, - "required": ["start", "end", "stats"] - }, - - "v1StatisticsDailyMemberSlotDistr":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/StatisticsDailyMemberSlotDistr.json#", - "properties": { - "start":{"type":"string", "format":"date-time"}, - "end":{"type":"string", "format":"date-time"}, - "stats":{ - "type":"array", - "items": { - "type":"object", - "properties": { - "day":{"type":"string", "format": "date-time"}, - "male":{"type":"integer", "minimum": 0}, - "female":{"type":"integer", "minimum": 0} - } - } - } - }, - "required": ["start", "end", "stats"] - }, - - "v1StatisticsTsMemberSlotDistr":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/StatisticsTsMemberSlotDistr.json#", - "properties": { - "start":{"type":"string", "format":"date-time"}, - "end":{"type":"string", "format":"date-time"}, - "stats":{ - "type":"array", - "items": { - "type":"object", - "properties": { - "time_slot":{"type":"string"}, - "ts_stat":{ - "type":"object", - "properties": { - "male":{"type":"integer", "minimum": 0}, - "female":{"type":"integer", "minimum": 0} - } - } - }, - "required": ["day", "daily_stat"] - } - } - }, - "required": ["start", "end", "stats"] - }, - - "v1StatisticsApplicantGenderDistr":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/StatisticsApplicantGenderDistr.json#", - "properties": { - "start":{"type":"string", "format":"date-time"}, - "end":{"type":"string", "format":"date-time"}, - "stat":{ - "type":"object", - "properties": { - "male":{"type":"integer", "minimum": 0}, - "female":{"type":"integer", "minimum": 0} - }, - "required": ["male", "female"] - } - }, - "required": ["start", "end", "stat"] - }, - - "v1StatisticsMemberAvgResponseTime":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/StatisticsMemberAvgResponseTime.json#", - "properties": { - "start":{"type":"string", "format":"date-time"}, - "end":{"type":"string", "format":"date-time"}, - "stats": { - "type": "array", - "items": { - "type":"object", - "properties": { - "member_id": {"type": "string"}, - "response_time":{"type":"number", "minimum": 0} - }, - "required": ["response_time", "member_id"] - }, - "uniqueItems": true - } - }, - "required": ["start", "end", "stats"] - }, - - "v1StatisticsApplicationStateCount":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/StatisticsApplicationStateCount.json#", - "properties": { - "start":{"type":"string", "format":"date-time"}, - "end":{"type":"string", "format":"date-time"}, - "stat":{ - "type":"object", - "properties": { - "male":{ - "type":"object", - "properties": { - "accepted":{"type":"integer", "minimum": 0}, - "rejected":{"type":"integer", "minimum": 0}, - "refused_by_applicant":{"type":"integer", "minimum": 0} - }, - "required": ["accepted", "rejected", "refused_by_applicant"] - }, - "female":{ - "type":"object", - "properties": { - "accepted":{"type":"integer", "minimum": 0}, - "rejected":{"type":"integer", "minimum": 0}, - "refused_by_applicant":{"type":"integer", "minimum": 0} - }, - "required": ["accepted", "rejected", "refused_by_applicant"] - } - }, - "required": ["male", "female"] - } - }, - "required": ["start", "end", "stat"] - }, - - "v1StatisticsInterviewOutcomeCount":{ - "type":"object", - "$id": "https://hknpolito.org/schemas/v1/StatisticsInterviewOutcomeCount.json#", - "properties": { - "start":{"type":"string", "format":"date-time"}, - "end":{"type":"string", "format":"date-time"}, - "stat":{ - "type":"object", - "properties": { - "male":{ - "type":"object", - "properties": { - "member_accepted":{"type":"integer", "minimum": 0}, - "mentee_accepted":{"type":"integer", "minimum": 0}, - "rejected":{"type":"integer", "minimum": 0} - }, - "required": ["member_accepted", "mentee_accepted", "rejected"] - }, - "female":{ - "type":"object", - "properties": { - "member_accepted":{"type":"integer", "minimum": 0}, - "mentee_accepted":{"type":"integer", "minimum": 0}, - "rejected":{"type":"integer", "minimum": 0} - }, - "required": ["member_accepted", "mentee_accepted", "rejected"] - } - }, - "required": ["male", "female"] - } - }, - "required": ["start", "end", "stat"] - } - } -} diff --git a/api/src/datatypes/json-schemas/person.json b/api/src/datatypes/json-schemas/person.json deleted file mode 100644 index 03ddc8e..0000000 --- a/api/src/datatypes/json-schemas/person.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema":"http://json-schema.org/draft-06/schema#", - "$id": "https://hknpolito.org/schemas/v1/person.json#", - "title": "person", - "type":"object", - "properties": { - "image": {"type":"string", "format": "uri"}, - "name":{"type":"string"}, - "surname":{"type":"string"}, - "sex":{"$ref": "enums.json#/properties/gender"}, - "email":{"type":"string", "format":"email"}, - "phone_no":{"type":"string", "maxLength": 15} - }, - "required":["name", "surname", "sex", "email", "phone_no", "image"] -} diff --git a/api/src/datatypes/json-schemas/recruitment_session.json b/api/src/datatypes/json-schemas/recruitment_session.json deleted file mode 100644 index 73cb9f5..0000000 --- a/api/src/datatypes/json-schemas/recruitment_session.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$schema":"http://json-schema.org/draft-06/schema#", - "$id": "https://hknpolito.org/schemas/v1/recruitment_session.json#", - "title": "recruitment_session", - "type":"object", - "properties": { - "id":{"type":"integer", "minimum": 0}, - "title": {"type":"string"}, - "start": {"type":"string", "format": "date-time"}, - "end": {"type":"string", "format": "date-time"} - }, - "required": ["title", "start", "end"] -} diff --git a/api/src/datatypes/json-schemas/responses.json b/api/src/datatypes/json-schemas/responses.json deleted file mode 100644 index 3a221d3..0000000 --- a/api/src/datatypes/json-schemas/responses.json +++ /dev/null @@ -1,178 +0,0 @@ -{ - "$schema":"http://json-schema.org/draft-06/schema#", - "id": "https://hknpolito.org/schemas/v1/responses.json#", - "definitions": { - "base_res":{ - "type": "object", - "properties": { - "description": {"type":"string"} - }, - "required": ["description"] - }, - - "base_err":{ - "type": "object", - "properties": { - "errors": { - "type":"array", - "items": {"type":"string", "minItems":1} - } - }, - "required": ["errors"] - }, - - "success":{ - "type":"object", - "properties":{ - "200":{ - "allOf": [ - {"$ref": "#/definitions/base_res"}, - {"properties": { - "code":{"type":"integer", "const":200, "default":200}, - "content":{"type":"object"} - }, - "required": ["code", "content"] - } - ] - }, - "201":{ - "allOf": [ - {"$ref": "#/definitions/base_res"}, - {"properties": { - "code":{"type":"integer", "const":201, "default":201}, - "content":{"type":"object"} - }, - "required": ["code", "content"] - } - ] - }, - - "202": { - "allOf": [ - {"$ref": "#/definitions/base_res"}, - {"properties": { - "code":{"type":"integer", "const":202, "default":202}, - "content":{"type":"object"} - }, - "required": ["code", "content"] - } - ] - }, - - "204": { - "allOf": [ - {"$ref": "#/definitions/base_res"}, - {"properties": { - "code":{"type":"integer", "const":204, "default":204} - }, - "required": ["code"] - } - ] - } - }, - "oneOf": [ - {"required": ["200"]}, - {"required": ["201"]}, - {"required": ["202"]}, - {"required": ["204"]} - ] - }, - - "error":{ - "type":"object", - "properties": { - "400":{ - "allOf": [ - {"$ref": "#/definitions/base_err"}, - {"properties": { - "code":{"type":"integer", "const":400, "default":400} - }, - "required": ["code"] - } - ] - }, - "401":{ - "allOf": [ - {"$ref": "#/definitions/base_err"}, - {"properties": { - "code":{"type":"integer", "const":401, "default":401} - }, - "required": ["code"] - } - ] - }, - - "403":{ - "allOf": [ - {"$ref": "#/definitions/base_err"}, - {"properties": { - "code":{"type":"integer", "const":403, "default":403} - }, - "required": ["code"] - } - ] - }, - - "404":{ - "allOf": [ - {"$ref": "#/definitions/base_err"}, - {"properties": { - "code":{"type":"integer", "const":404, "default":404} - }, - "required": ["code"] - } - ] - }, - - "405":{ - "allOf": [ - {"$ref": "#/definitions/base_err"}, - {"properties": { - "code":{"type":"integer", "const":405, "default":405} - }, - "required": ["code"] - } - ] - }, - - "500":{ - "allOf": [ - {"$ref": "#/definitions/base_err"}, - {"properties": { - "code":{"type":"integer", "const":500, "default":500} - }, - "required": ["code"] - } - ] - }, - - "501":{ - "allOf": [ - {"$ref": "#/definitions/base_err"}, - {"properties": { - "code":{"type":"integer", "const":501, "default":501} - }, - "required": ["code"] - } - ] - } - }, - "oneOf": [ - {"required": ["400"]}, - {"required": ["401"]}, - {"required": ["403"]}, - {"required": ["404"]}, - {"required": ["405"]}, - {"required": ["500"]}, - {"required": ["501"]} - - ], - "additionalProperties": false - } - }, - "type":"object", - "properties": { - "success":{"$ref": "#/definitions/success"}, - "error":{"$ref": "#/definitions/error"} - } -} \ No newline at end of file diff --git a/api/src/datatypes/person.d.ts b/api/src/datatypes/person.d.ts deleted file mode 100644 index 8608e90..0000000 --- a/api/src/datatypes/person.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* tslint:disable */ -import {Gender} from "./enums"; - -/** - * This file was automatically generated by json-schema-to-typescript. - * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, - * and run json-schema-to-typescript to regenerate this file. - */ - -export interface Person { - image: string; - name: string; - surname: string; - sex: Gender; - email: string; - phone_no: string; - [k: string]: unknown; -} diff --git a/api/src/datatypes/recruitment_session.d.ts b/api/src/datatypes/recruitment_session.d.ts deleted file mode 100644 index 586fa73..0000000 --- a/api/src/datatypes/recruitment_session.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* tslint:disable */ -/** - * This file was automatically generated by json-schema-to-typescript. - * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, - * and run json-schema-to-typescript to regenerate this file. - */ - -export interface RecruitmentSession { - id?: number; - title: string; - start: string; - end: string; - [k: string]: unknown; -} diff --git a/api/src/dbconfig/dbconnector.ts b/api/src/dbconfig/dbconnector.ts deleted file mode 100644 index 875b4b0..0000000 --- a/api/src/dbconfig/dbconnector.ts +++ /dev/null @@ -1,12 +0,0 @@ -import {Sequelize} from "sequelize"; - -const url = `postgres://${process.env.DB_USER}:${process.env.DB_PASSWORD}@${process.env.DB_HOST}:${process.env.DB_PORT}/${process.env.DB_NAME}` - -export const mySequelize: Sequelize = new Sequelize(url, { - dialect: "postgres", dialectOptions: { - ssl: { - require: true, - rejectUnauthorized: false - } - } -}) diff --git a/api/src/ioc/ioc.ts b/api/src/ioc/ioc.ts deleted file mode 100644 index b666e7d..0000000 --- a/api/src/ioc/ioc.ts +++ /dev/null @@ -1,17 +0,0 @@ -import {Container, ContainerModule, decorate, injectable} from "inversify"; -import {mySequelize} from "../dbconfig/dbconnector"; -import {Sequelize} from "sequelize"; -import {TYPES} from "./types"; -import {Controller} from "tsoa"; -import {buildProviderModule} from "inversify-binding-decorators"; - -const thirdPartyDependencies = new ContainerModule((bind) => { - bind(TYPES.Sequelize).toConstantValue(mySequelize); -}); - -const iocContainer = new Container(); -decorate(injectable(), Controller); -iocContainer.load(buildProviderModule()); -iocContainer.load(thirdPartyDependencies); - -export { iocContainer }; diff --git a/api/src/ioc/types.ts b/api/src/ioc/types.ts deleted file mode 100644 index aaddfe9..0000000 --- a/api/src/ioc/types.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const TYPES = { - Sequelize: Symbol.for("Sequelize"), - ApplicantModel: Symbol.for("ApplicantModel"), - PersonModel: Symbol.for("PersonModel"), - ApplicantRepository: Symbol.for("ApplicantRepository"), - ApplicantController: Symbol.for("ApplicantController"), -}; diff --git a/api/src/joi-validation/joi-validate.decorator.ts b/api/src/joi-validation/joi-validate.decorator.ts new file mode 100644 index 0000000..8dd5e13 --- /dev/null +++ b/api/src/joi-validation/joi-validate.decorator.ts @@ -0,0 +1,5 @@ +import { UsePipes } from '@nestjs/common'; +import { JoiValidationPipe, ValidationSchema } from './joi-validation.pipe'; + +export const JoiValidate = (arg: ValidationSchema) => + UsePipes(new JoiValidationPipe(arg)); diff --git a/api/src/joi-validation/joi-validation-pipe.pipe.spec.ts b/api/src/joi-validation/joi-validation-pipe.pipe.spec.ts new file mode 100644 index 0000000..bc17b96 --- /dev/null +++ b/api/src/joi-validation/joi-validation-pipe.pipe.spec.ts @@ -0,0 +1,3 @@ +import { JoiValidationPipe } from './joi-validation.pipe'; + +describe('JoiValidationPipe', () => {}); diff --git a/api/src/joi-validation/joi-validation.pipe.ts b/api/src/joi-validation/joi-validation.pipe.ts new file mode 100644 index 0000000..a2e5a46 --- /dev/null +++ b/api/src/joi-validation/joi-validation.pipe.ts @@ -0,0 +1,41 @@ +import { + ArgumentMetadata, + BadRequestException, + Injectable, + Paramtype, + PipeTransform, +} from '@nestjs/common'; +import { ObjectSchema, Schema } from 'joi'; + +export interface ValidationSchema { + body?: ObjectSchema; + query?: ObjectSchema; + param?: Schema; +} + +@Injectable() +export class JoiValidationPipe implements PipeTransform { + constructor(private schema: ValidationSchema) {} + + transform(value: any, metadata: ArgumentMetadata) { + if (metadata.type === 'custom') { + return value; // skip validation for custom types, they are injected by guards and not user input + } + + if (Object.keys(this.schema).includes(metadata.type)) { + const { error } = this.schema[metadata.type].validate(value); + if (!!error) { + this.fail(metadata.type, error.message); + } + return value; + } + + this.fail(metadata.type, 'no schema defined'); + } + + private fail(metadataType: Paramtype, errorMessage: string) { + throw new BadRequestException( + `Validation of ${metadataType} failed: ${errorMessage}`, + ); + } +} diff --git a/api/src/main.ts b/api/src/main.ts new file mode 100644 index 0000000..23cb352 --- /dev/null +++ b/api/src/main.ts @@ -0,0 +1,28 @@ +import { NestFactory } from '@nestjs/core'; +import { AppModule } from './app.module'; +import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger'; +import { + FastifyAdapter, + NestFastifyApplication, +} from '@nestjs/platform-fastify'; + +async function bootstrap() { + const app = await NestFactory.create( + AppModule, + new FastifyAdapter(), + ); + app.enableCors(); + + const config = new DocumentBuilder() + .setTitle('HKRecruitment API') + .setDescription('The HKRecruitment API description') + .setVersion('1.0') + .addTag('users') + .addBearerAuth() + .build(); + const document = SwaggerModule.createDocument(app, config); + SwaggerModule.setup('swagger', app, document); + + await app.listen(3000); +} +bootstrap(); diff --git a/api/src/modules/AuthZManager.ts b/api/src/modules/AuthZManager.ts deleted file mode 100644 index bfeec1c..0000000 --- a/api/src/modules/AuthZManager.ts +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: AuthZManager.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 22 aprile 2021, 00:31 - */ - -import {BasicAuthZRule} from "../datatypes/authZRule"; - -type Constraint={ [p: string]: unknown}; -type Constraints = Constraint[]; - -function clone(data: T) :T { - return JSON.parse(JSON.stringify(data)); -} - -/** - * @class AuthZRule represent an authorization rule against which an request - * to an API should comply - */ -export class AuthZRule implements BasicAuthZRule { - readonly accept: Constraints; - readonly action: string; - readonly deny: Constraints; - readonly fillablePropsNum: number; - - private static readonly equals=(a,b)=>a===b; - private static readonly notEquals=(a,b)=>a!==b; - - - constructor(rule:BasicAuthZRule) { - this.accept=rule.accept || []; - this.deny=rule.deny || []; - if(this.accept.length===0 && this.deny.length===0) - throw new Error("accept[] and deny[] can't be both empty"); - this.action=rule.action || ""; - this.fillablePropsNum=this.countFillableProps(); - } - - /** - * Fills the parameters of a rule with actual values - * @param accepted_data the values for @member {Constraints} accept constraints - * @param deny_data the values for @member {Constraints} deny constraints - */ - fillRule(accepted_data : Constraints, deny_data : Constraints) : AuthZRule{ - if(this.fillablePropsNum===0) return this; - const newRuleData : BasicAuthZRule = {accept:clone(this.accept), deny:clone(this.deny)}; - const substituteNulls= function (constraint, index){ - for(const field of Object.getOwnPropertyNames(this[index])){ - if(constraint[field]===null) - constraint[field]=this[index][field]; - } - } - newRuleData.accept.forEach(substituteNulls, accepted_data); - newRuleData.deny.forEach(substituteNulls, deny_data); - const ret=new AuthZRule(newRuleData); - if(ret.fillablePropsNum!==0) throw new Error("Parameters not sufficient to fill the rule"); - return ret; - } - - /** - * Verifies that an entity comply with the rule - * @param data the entity to verify the rule against to - * - * @member accept constrains the characteristics that data has to have. A rule with - * accept = [] will rely on deny to decide if data verifies the rule. A rule with - * deny = [] will rely on accept to decide if data verifies the rule. A rule with - * both accept = [] and deny = [] is invalid. - * Constraints in accept and deny go in AND. - */ - verifyRule(data:any):boolean{ - if(this.fillablePropsNum!==0) throw new Error("Rule not filled"); - const acceptRes=this.accept.length===0 ? - true: AuthZRule.verifyConstraints(data, this.accept, AuthZRule.equals); - const denyRes=this.deny.length===0 ? - false: AuthZRule.verifyConstraints(data, this.deny, AuthZRule.notEquals); - return acceptRes && !denyRes; - } - - /** - * Verify entity data against some constraints - * @param data the data describing the entity - * @param {Constraints} c the constraints to verify - * @param cmp the comparator to use between entity data and the values for the constraints - * @private - * - * Different constraints in @param c go in OR with each other, e.g. if one matches there - * is no need to check the others - */ - private static verifyConstraints(data: any, c: Constraints, cmp: (a, b) => boolean):boolean{ - for(const constraint of c) - if(AuthZRule.verifyConstraint(data, constraint, cmp)) - return true - return false; - } - - /** - * Verify entity data against a single constraint - * @param data the data describing the entity - * @param c the constraint to verify - * @param cmp the comparator to use between entity data and the values for the constraint - * @return {boolean} true if the input data verifies the constraint, false otherwise - * @private - * - * Different attribute values for the same constraint go in AND with each other. - * If data has not an attribute whose value is specified in the constraint, the the - * constraint is not verified - */ - private static verifyConstraint(data: any, c: Constraint, cmp: (a, b) => boolean):boolean{ - for(const field of Object.getOwnPropertyNames(c)){ - if(!data.hasOwnProperty(field) || cmp(data[field],c[field])) - return false - } - return true; - } - - /** - * Counts the number of properties in all constraint that need to be filled - * before using the rule - * @return {number} the number of properties set to null - * @private - */ - private countFillableProps(): number{ - const accumNulls=(nulls, constraint:Constraint)=>{ - for(const prop of Object.getOwnPropertyNames(constraint)) - if(constraint[prop]===null) - nulls++; - return nulls - } - return this.accept.reduce(accumNulls, 0)+this.deny.reduce(accumNulls, 0); - } -} - -/** - * @class AuthZManager manages the authorization in the system relying on AuthZRule - */ -export class AuthZManager{ - private readonly _rules : Map; - - constructor(basic_rules: BasicAuthZRule[]) { - this._rules=new Map(); - basic_rules.forEach((basic_rule)=>{ - const rule=new AuthZRule(basic_rule); - this._rules.set(basic_rule.action, rule); - }) - } - - /** - * Authorize an action using the proper AuthZRule - * @param action the name corresponding to the action to be authorized - * @param entity the entity data performing the action - * @param accepted_data the values for accept constraints of the rule - * @param deny_data the values for deny constraints of the rule - * @return {boolean} true if the action is authorized, false otherwise - */ - authorize(action:string, entity:any, accepted_data: Constraints, - deny_data: Constraints):boolean{ - const rule=this.rules.get(action); - if(!rule) return false; - return rule.fillRule(accepted_data, deny_data).verifyRule(entity); - } - - /** - * Adds a rule to the system - * @param action the name corresponding to the action the rule has to be associated to - * @param rule the rule to add - * @return {boolean} true if the rule has been added (e.g. there is no other rule - * associated with @param action) - */ - addRule(action:string, rule:AuthZRule):boolean{ - return this._rules.has(action) ? false: this._rules.set(action, rule) && true; - } - - /** - * Removes a rule from the system - * @param action the name corresponding to the action the rule is associated to - * @return {boolean} true if the rule has been removed (e.g. there was a rule - * associated with @param action) - */ - removeRule(action:string):boolean{ - return !this._rules.has(action) ? false: this.rules.delete(action) && true; - } - get rules(): Map { - return this._rules; - } -} - - diff --git a/api/src/modules/CalendarInterface.ts b/api/src/modules/CalendarInterface.ts deleted file mode 100644 index ef212a0..0000000 --- a/api/src/modules/CalendarInterface.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: CalendarInterface.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 19 aprile 2021, 11:23 - */ - -import {TimeSlot} from "../datatypes/dataTypes"; - -/** - * Represents a calendar service - * @interface - */ -export interface CalendarInterface{ - /** - * Inserts an event on the calendar - * @param {TimeSlot} when indicates the temporal extremes of the event - * @param title the event's title - * @param description the event's description - * @param attendees list of email address of the attendees - * @return {Promise} the id of the created event - */ - insertEvent(when:TimeSlot, title:string, description:string, attendees: {email:string}[]):Promise; - - /** - * Retrieves an event - * @param event_id the id of the event - * @return {Promise} the data returned by the service in the response - */ - getEvent(event_id:string):Promise; - - /** - * Deletes an event - * @param event_id the id of the event - * @return {Promise} the HTTP status code of the response - */ - deleteEvent(event_id:string):Promise; - - /** - * Overwrites the list of attendees for an event - * @param event_id the id of the event - * @param attendees list of email address of the new attendees - * @return {Promise} the data returned by the service in the response - */ - changeEventAttendees(event_id:string, attendees: {email:string}[]): Promise; -} diff --git a/api/src/modules/Compensator.ts b/api/src/modules/Compensator.ts deleted file mode 100644 index 3b11886..0000000 --- a/api/src/modules/Compensator.ts +++ /dev/null @@ -1,334 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: Compensator.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 19 aprile 2021, 14:15 - */ - -import {CompensatorDAO} from "./DAO/DAOdefs"; -import {NotificationSubsystem} from "./NotificationSubsystem"; -import {Availability, TimeSlot} from "../datatypes/dataTypes"; -import {ConfigManager} from "./ConfigManager"; -import {SlotScheduler} from "./SlotScheduler"; -import {Member, Slot} from "../datatypes/entities"; -import {Application} from "../datatypes/application"; -import {AvailabilityCompensationBroadcasting, AvailabilityCompensationMethod} from "../config/recruitmentConfig"; -import {AvailabilityEvent} from "./PeriodicEvent"; -import {oneOf} from "./utils"; - -export type compensation_event= "availability_revocation" | "availability_applicant_refusal" - | "no_interviewer_confirmation" - - -export class Compensator{ - private readonly storage:CompensatorDAO; - private readonly config: ConfigManager; - private readonly scheduler: SlotScheduler; - private readonly invalidSlots: Slot[]; - - - constructor(storage: CompensatorDAO, config: ConfigManager, scheduler: SlotScheduler) { - this.storage = storage; - this.config = config; - this.scheduler = scheduler; - this.invalidSlots=[]; - } - - /** - * Executes actions to compensate an event occurred - * @param event the event occurred that needs compensation - * @param {Availability|Application} data the entity that caused the event - * @param {NotificationSubsystem} ntfS the notification subsystem instance - */ - async compensate(event: compensation_event, data: any, ntfS: NotificationSubsystem) { - switch (event) { - case "availability_revocation": - await this.availability_revocation(data as Availability, ntfS); - break; - case "no_interviewer_confirmation": - await this.no_interviewer_confirmation(data as Availability, ntfS); - break; - case "availability_applicant_refusal": - await this.availability_applicant_refusal(data as Application, ntfS); - } - } - - /** - * Handles the case when an availability in state "used" goes in state "cancelled". - * Tries to resolve the slot the availability was used for according to the - * "availability_compensation_strategy" retrieved from the configuration manager - * @param {Availability} data the availability that caused the event: it already has state "cancelled" - * @param {NotificationSubsystem} ntfS the notification subsystem instance - * @private - */ - private availability_revocation(data: Availability, ntfS: NotificationSubsystem) { - return new Promise(async (res, rej)=>{ - const strategies = await this.config.get("compensation"); - let compensated = false; - const slot=await this.storage.slots.getFromAvailability(data); - for (const compensation of strategies.availability_compensation_strategies) { - if (compensated) break; - try{ - switch (compensation.strategy){ - case "trySubstitution": - compensated=await this.trySubstitution(slot, ntfS); - break; - case "searchSubstitution": - await this.searchSubstitution(slot, data, compensation, ntfS); - compensated=true; - break; - case "reAskTimeSlots": - await this.reAskTimeSlots(slot, ntfS); - compensated=true; - } - } - catch (e){ - console.error(e); - break; - } - } - if(!compensated) //compensation.strategy === "manual_fallback" oppure nessun metodo definito - this.manual_fallback(slot, ntfS).then(()=>res()).catch((e)=>rej(e)); - }) - } - - /** - * Called when the availabilities related to a slot are freed. Stops the periodicNotification for the members - * who had an availability in state "used", and notifies all the members related to the availabilities that - * their availability is not used anymore. - * @param {Availability[]} freed the availabilities that has been freed - * @param {NotificationSubsystem} ntfS the notification subsystem instance - * @private - */ - private notifyFreedAvailabilities(freed: Availability[], ntfS: NotificationSubsystem): Promise{ - const promises:Promise[]=[]; - //Cannot use flatMap for compatibility reasons - freed.filter((a)=>a.state==="used").forEach((av)=> - promises.push(ntfS.stopPeriodicNotify(new AvailabilityEvent("require_availability_confirmation"), av))); - freed.forEach((av)=> - promises.push(ntfS.notify("availability_not_required", - {start: av.time_slot.start, end: av.time_slot.end, member_id: av.member_id}))); - return Promise.all(promises); - } - - /** - * Try to purge the slots still invalid. - * For each invalid slot, call SlotScheduler.purgeSlotAvailabilities and then notify - * the interviewers whose availabilities have been used and were not in state "confirmed" - * with a periodic notification - * @param {NotificationSubsystem} ntfS the notification subsystem instance - * @param {TimeSlot} ts the time slot in which there could be some availability that could be used - */ - async solveInvalidSlots(ntfS: NotificationSubsystem, ts: TimeSlot): Promise{ - const slotsCanBeSolved=this.invalidSlots - .filter((slot)=>slot.time_slot.start===ts.start && slot.time_slot.end===ts.end); - for(const slot of slotsCanBeSolved){ - const newAvailabilities=await this.scheduler.purgeSlotAvailabilities(slot); - if(newAvailabilities.length>0){ - this.removeInvalidSlot(slot); //slot just purged - for(const av of newAvailabilities.filter((a)=>a.state!=="confirmed")){ - const periodMinutes=(await this.config.get("member")).reminder_availability_confirmation_hours*60; - await ntfS.periodicNotify(new AvailabilityEvent("require_availability_confirmation"), av, - {start:av.time_slot.start, end: av.time_slot.end, member_id: av.member_id}, periodMinutes); - } - } - } - } - - /** - * Handles the case in which an availability in not confirmed in time. - * Puts the availability in state "cancelled" and handles the case like in the case - * of availability revocation. - * @param {Availability} data the availability that caused the event - * @param {NotificationSubsystem} ntfS the notification subsystem instance - * @private - */ - private async no_interviewer_confirmation(data: Availability, ntfS: NotificationSubsystem): Promise { - await this.storage.availabilities.update(data.time_slot.start, data.time_slot.end, data.member_id, {state: "cancelled"}); - return this.availability_revocation(data, ntfS); - } - - /** - * Handles the case when an applicant revokes his/her application. - * All the the availabilities related to the slot assigned to the application are freed, - * the interviewers involved are notified that the meeting is cancelled. - * Having freed some availabilities, tries to solve the invalid slots. - * @param {Application} data the application that caused the event - * @param {NotificationSubsystem} ntfS the notification subsystem instance - * @private - */ - private async availability_applicant_refusal(data: Application, ntfS: NotificationSubsystem) { - return new Promise((res, rej)=>{ - this.storage.applications.getSlot(data.id).then((slot)=>{ - this.removeInvalidSlot(slot); //handle the case in which the revoked application had invalid slots - this.scheduler.freeSlot(slot).then((freed)=>{ - this.notifyFreedAvailabilities(freed, ntfS) - .then(()=>{ //the availabilities freed can be used to purge other invalid slots - this.solveInvalidSlots(ntfS, slot.time_slot).then(()=>res()).catch(e=>rej(e)); - }) - .catch(e=>rej(e)); - }) - }) - }); - } - - /** - * Selects the members to whom an availability request should be sent - * @param start the start time of the time slot for which an availability is required - * @param strategy the availability compensation strategy chosen - * @private - */ - private async selectMembers(start: string, strategy: { broadcasting?: AvailabilityCompensationBroadcasting; N?: number}) { - let res: Member[]=[]; - switch (strategy.broadcasting) { - case "allInterviewers": - res=await this.storage.interviewers.list(); - break; - case "allInterviewersInDay": - res=await this.storage.interviewers.listAvailableInDay(start); - break; - case "leastNBusy": - if(!strategy.N) throw new Error("Missing paramter N in leastNBusy broadcasting method") - res=await this.storage.interviewers.leastNBusy(strategy.N); - break; - default: - throw new Error("Missing parameter broadcasting in compensation strategy"); - } - if(res.length===0) //handle the case in which "allInterviewersInDay" returns empty array - res=await this.storage.interviewers.list(); - return res.map((member)=>member.id); - } - - /** - * Handles the availability revocation by trying to use an unused availability to substitute the revoked one - * @param slot the slot that used the revoked availability - * @param {NotificationSubsystem} ntfS the notification subsystem instance - * @private - */ - private trySubstitution(slot: Slot, ntfS: NotificationSubsystem): Promise{ - return new Promise((res, rej)=>{ - this.scheduler.purgeSlotAvailabilities(slot) - .then(async (newAvailabilities)=>{ - if(newAvailabilities.length===0){ - res(false); return; - } - //sostituzione ok, adesso cambia il calendario? - this.config.get("member").then(({reminder_availability_confirmation_hours})=>{ - const periodMin=reminder_availability_confirmation_hours*60; - const promises:Promise[]=[]; - newAvailabilities.forEach((av)=> - promises.push(ntfS.periodicNotify(new AvailabilityEvent("require_availability_confirmation"), av, - {start:av.time_slot.start, end: av.time_slot.end, member_id: av.member_id}, periodMin))); - Promise.all(promises).catch(e=>rej(e)).then(()=>res(true)); - }).catch(e=>rej(e)); - }) - }); - } - - /** - * Handles the availability revocation by asking interviewers to submit an availability for the same time slot - * of the revoked availability. - * Marks the slot as rejected and notifies the proper interviewers, according the proper availability compensation strategy - * @param slot the slot that used the revoked availability - * @param {Availability} data the availability that caused the event: it already has state "cancelled" - * @param compensation the availability compensation strategy chosen - * @param {NotificationSubsystem} ntfS the notification subsystem instance - * @private - */ - private searchSubstitution(slot: Slot, data: Availability, compensation: { strategy?: AvailabilityCompensationMethod; broadcasting?: AvailabilityCompensationBroadcasting; N?: number; [p: string]: unknown }, ntfS: NotificationSubsystem): Promise { - return new Promise((res, rej)=>{ - const promises: Promise[]=[]; - promises.push(this.scheduler.rejectSlot(slot)); - this.selectMembers(slot.time_slot.start, compensation) - .then((members)=>{ - members.forEach((m_id)=> - promises.push(ntfS.notify("request_availability", - {start: data.time_slot.start, end: data.time_slot.end, member_id: m_id})) - ) - Promise.all(promises).then(()=>{ - this.addInvalidSlot(slot); - res() - }).catch(e=>rej(e)); - }).catch(()=>rej()); - }); - } - - /** - * Handles the availability revocation by asking the applicant to choose again the time slots. - * Marks the slot as rejected, frees all the related availabilities and notifies the applicant. - * @param slot the slot that used the revoked availability - * @param {NotificationSubsystem} ntfS the notification subsystem instance - * @private - */ - private reAskTimeSlots(slot: Slot, ntfS: NotificationSubsystem): Promise { - return new Promise(async (res, rej)=>{ - const promises: Promise[]=[]; - try { - await this.scheduler.rejectSlot(slot); - const availabilitiesFreed= await this.scheduler.freeSlot(slot); - promises.push(this.notifyFreedAvailabilities(availabilitiesFreed, ntfS)); - const app=await this.storage.applications.getBySlotId(slot.id); - await this.storage.applications.deleteSlot(slot.id); - promises.push(ntfS.notify("reAskTimeSlot", {application_id: app.id})); - Promise.all(promises).then(()=>res()).catch(()=>rej()); - } - catch (e){ - rej(e); - } - }) - } - - /** - * Handles the availability revocation by asking one supervisor to manually modify the slot - * @param slot the slot that used the revoked availability - * @param {NotificationSubsystem} ntfS the notification subsystem instance - * @private - */ - private manual_fallback(slot: Slot, ntfS: NotificationSubsystem): Promise { - return new Promise(async (res, rej)=>{ - try { - await this.scheduler.rejectSlot(slot); - this.storage.members.supervisors.list().then((supervisors)=>{ - const supervisor=oneOf(supervisors); - ntfS.notify("require_manual_slot_compensation", - {member_id: supervisor.id, start: slot.time_slot.start, end: slot.time_slot.end}) - .then(()=>res()).catch(e=>rej(e)); - }); - } - catch (e) { - rej(e); - } - }); - } - - private addInvalidSlot(invalidSlot: Slot){ - if(!this.invalidSlots.find((slot)=>slot.id===invalidSlot.id)) - this.invalidSlots.push(invalidSlot); - } - - private removeInvalidSlot(slot: Slot) { - const index=this.invalidSlots.findIndex((invSlot)=>invSlot.id===slot.id); - if(index>=0) - this.invalidSlots.splice(index,1); - } -} diff --git a/api/src/modules/ConfigManager.ts b/api/src/modules/ConfigManager.ts deleted file mode 100644 index 9b88352..0000000 --- a/api/src/modules/ConfigManager.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: ConfigManager.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 25 aprile 2021, 12:16 - */ - -const fs = require('fs').promises; -import {RecruitmentConfig} from "../config/recruitmentConfig"; - -type recruitmentConfigOption= keyof RecruitmentConfig; -function clone(data: T) :T { - return JSON.parse(JSON.stringify(data)); -} - -export class ConfigManager{ - private config: RecruitmentConfig; - readonly source_file:string; - private readonly schemaProperty:string; - - constructor(source: string =process.cwd()+"/src/config/recruitmentConfig.json") { - this.source_file=source; - const fileData=require(this.source_file); - this.config=fileData.recruitmentConfig; - this.schemaProperty=fileData["$schema"]; - } - - get(): Promise; - get(name: Key): Promise - get(name?: Key): Promise{ - const config=clone(this.config); - return new Promise((resolve)=>{ - name ? resolve(config[name]): resolve(config); - }); - } - - update(newConfig: RecruitmentConfig): Promise; - update - (propertyName: Key, propertyValue: Value): Promise; - update - (propertyNameOrNewConf: Key | RecruitmentConfig, propertyValue?: Value): Promise { - if (!propertyValue) //new whole recruitment config available - this.config = propertyNameOrNewConf; - else - this.config[propertyNameOrNewConf] = propertyValue; - return fs.writeFile(this.source_file, - JSON.stringify({$schema: this.schemaProperty, recruitmentConfig: {...this.config}}, null, 2)); - } -} diff --git a/api/src/modules/DAO/DAOdefs.d.ts b/api/src/modules/DAO/DAOdefs.d.ts deleted file mode 100644 index 74e2463..0000000 --- a/api/src/modules/DAO/DAOdefs.d.ts +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: DAOdefs.d.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 22 aprile 2021, 01:04 - */ - -import {Applicant, Interview, Member, Slot} from "../../datatypes/entities"; -import {Application} from "../../datatypes/application"; -import {Availability, TimeSlot} from "../../datatypes/dataTypes"; -import {SlotState} from "../../datatypes/enums"; - -export interface NotificationDAO{ - members: { - get: (id:string)=> Promise; - supervisors: { - list: ()=>Promise; - }, - clerks: { - list: ()=>Promise; - } - }, - applicants: { - get: (id:string)=> Promise; - }, - applications: { - get: (id:number, id_applicant: string)=> Promise; - getApplicant: (id:number)=> Promise; - }, - notifications: { - insert: (uri:string, text:string, member_id:string, application_id:string)=> Promise; - read: (notification_id:number, user_id:string, user_type: "applicant"|"member")=>Promise; - }, - interviews: { - get: (id:number)=> Promise; - } - [p:string]:unknown; -} -export interface SchedulerDAO{ - slots: { - patch: (id:number, params: {state?: SlotState, cal_id?: string})=>Promise; - updateMembers: (id: number, newAvl: Availability[])=>Promise; - countInDay: (member_id:string, time: string)=>Promise; //getDailySlotMemberDistribution - countInWeek: (member_id:string, time: string)=>Promise; //getDaily + aggregazione - countConsecutive: (member_id:string, {start: string, end: string})=>Promise; // - insert: (slot: Slot)=>Promise; - listMembers: (id: number)=>Promise; - batchModify: (ts: TimeSlot, new_slots: Slot[])=>Promise - }, - availabilities: { - listFromSlot: (slot_id: number)=>Promise; //da aggiungere - update: ({start:string, end:string}, member_id:string, {state:AvailabilityState})=>Promise; - listUsableInRange: ({start:string, end:string})=>Promise; - get: ({start:string, end:string}, member_id:string)=>Promise; - }, - members: { - list: ()=>Promise; - partialList: (ids: string[])=>Promise; //decidere se fslotsAndAvailabilitiesare tante get o una nuova query - get: (id:string)=>Promise; - }, - applicants: { - listFriends: (id: string)=>Promise; - get: (id:string)=>Promise; - }, - applications: { - get: (id: number)=>Promise; - listInTimeSlot: (ts: TimeSlot)=>Promise; - listFromSlotIds: (slotIds: number[])=>Promise; - }, - time_slots: { - listEligible: ({start:string, end:string}, applicant_id: string)=>Promise<{availabilities: Availability[], time_slot: TimeSlot}[]>; - } -} - -export type CompensatorDAO = { - members: { - supervisors: { - list: ()=>Promise; - } - }; - slots:{ - getFromAvailability: (availability: Availability)=>Promise; - }, - availabilities: { - update: (start:string, end:string, member_id:string, {state:AvailabilityState})=>Promise; - }, - interviewers: { - list: ()=>Promise; - listAvailableInDay: (timeInDay: string)=>Promise; - leastNBusy: (N: number)=>Promise; - }, - applications: { - deleteSlot: (slot_id: number)=>Promise; - getBySlotId: (slot_id: number)=>Promise; - getSlot: (id: number)=>Promise; - } -} - -export type DAO={} diff --git a/api/src/modules/ExhaustiveScheduler.ts b/api/src/modules/ExhaustiveScheduler.ts deleted file mode 100644 index d2db81d..0000000 --- a/api/src/modules/ExhaustiveScheduler.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: ExhaustiveScheduler.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 20 maggio 2021, 22:41 - */ - -import {AvailabilityInfo, SlotScheduler, SlotSolution} from "./SlotScheduler"; -import {ConfigManager} from "./ConfigManager"; -import {SchedulerDAO} from "./DAO/DAOdefs"; -import {CalendarInterface} from "./CalendarInterface"; -import {TimeSlot} from "../datatypes/dataTypes"; - -/** - * SlotScheduler using an exhaustive approach to calculate the best possible - * slot to assign to an application - * @pat.name Strategy {@pat.role Leaf} - * @pat.task Delegate the actual creation of a slot to subclasses implementation strategy - * @inheritDoc - */ -export class ExhaustiveScheduler extends SlotScheduler{ - - constructor(config: ConfigManager, storage: SchedulerDAO, calendar: CalendarInterface) { - super(config, "bestFit", storage, calendar); - } - - /** - * Builds the best slot possible among the valid ones that is possible to form - * starting from the availabilities for the time slot - * @protected - */ - protected async buildSlot(tsAvailabilities: { time_slot: TimeSlot; availabilities: AvailabilityInfo[] }, weights: { gender_inequality: number; slots_day: number; slots_week: number }): Promise { - const avs = tsAvailabilities.availabilities; - if(!SlotScheduler.verifyBasicSlotConstraints(avs)) //impossible to make a slot out of these availabilites - return null; - const sol = new SlotSolution(3, weights); - const bestSol = new SlotSolution(3, weights); - //slots are composed by 2 or 3 people - await this.buildSlot_r(avs, sol, bestSol, 2); - if(avs.length>=3) - await this.buildSlot_r(avs, sol, bestSol, 3); - return bestSol; - } - - /** - * Recursive algorithm for generating all the k-combinations of availabilities and - * selecting the best one. The length of input must be guaranteed to be greater than - * or equal to k. - * @param {AvailabilityInfo[]} input the complete set of availabilities for the time slot - * @param {SlotSolution} sol the current solution that is being built - * @param {SlotSolution} bestSol the best solution found so far - * @param {number} k the dimension of the solution to be generated - * @param {number} pos length of the current solution - * @param {number} start index of the next element to be picked up from input - * @private - */ - private async buildSlot_r(input: AvailabilityInfo[], sol: SlotSolution, bestSol: SlotSolution, k: number, pos: number = 0, start: number = 0) { - if (pos === k) { - const avs=sol.getAvailabilitiesInfoLoss(); - if (SlotScheduler.verifyBasicSlotConstraints(avs) && await this.verifyAvConstraintsForSlot(avs)) - bestSol.updateIfWorseThan(sol); - } - else { - for (let i = start; i < input.length; i++) { - sol.setAvailability(input[i], i); - await this.buildSlot_r(input, sol, bestSol, k, pos + 1, i + 1); - } - } - } -} diff --git a/api/src/modules/FileStorageInterface.ts b/api/src/modules/FileStorageInterface.ts deleted file mode 100644 index a53dab2..0000000 --- a/api/src/modules/FileStorageInterface.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: FileStorageInterface.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 19 aprile 2021, 10:58 - */ - -/** - * Represent a file storage service - * @interface - */ -export interface FileStorageInterface { - /** - * Creates a folder - * @param name the name to assign to the folder to be created - * @param parent_folder? the id of the parent folder - * @return {Promise} the id of the created folder - */ - createFolder(name: string, parent_folder?: string): Promise; - - /** - * Uploads a file - * @param name the name to assign to the file to be created - * @param rawData the data to upload - * @param parent_folder? the id of the parent folder - * @return {Promise} the id of the created file - */ - insertFile(name: string, rawData: Uint8Array, parent_folder?: string): Promise; - - /** - * Creates a file copying a file from the same service - * @param file_id the id of the file to be copied - * @param name the name to assign to the file to be created - * @param parent_folder? the id of the parent folder - * @return {Promise} the id of the created file - */ - copyFileFromStorage(file_id: string, name: string, parent_folder?: string): Promise; - - /** - * Deletes a file or directory - * @param item_id the id of the file to be deleted - * @return {Promise} the HTTP status code of the response - */ - deleteItem(item_id: string): Promise; - - /** - * Retrieves the id of a folder given its name - * @param name the name of the target folder - * @param parent_folder? the id of the folder to search into - * @return {Promise} the id of the folder - */ - getFolderByName(name: string, parent_folder?: string): Promise; - - /** - * Extracts the id of item (file or folder) from a string - * @param src a string containing the id of the resource - * @return {string} the id of the resource - */ - extractIdFrom(src: string): string; -} diff --git a/api/src/modules/GAuth/GAuth.ts b/api/src/modules/GAuth/GAuth.ts deleted file mode 100644 index ce2cf1d..0000000 --- a/api/src/modules/GAuth/GAuth.ts +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: GAuth.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 23 aprile 2021, 10:35 - */ - -import {OAuth2Client} from "google-auth-library"; - -const fsp = require('fs').promises; -const readline = require('readline'); -const {google} = require('googleapis'); - -// If modifying these scopes, delete token.json. -const SCOPES = [ - 'https://www.googleapis.com/auth/gmail.send', - 'https://www.googleapis.com/auth/calendar', - 'https://www.googleapis.com/auth/drive']; - -// The file token.json stores the user's access and refresh tokens, and is -// created automatically when the authorization flow completes for the first -// time. -const TOKEN_PATH = './src/modules/GAuth/authInfo/token.json'; -const CREDENTIALS_PATH = './src/modules/GAuth/authInfo/credentials.json'; - -let googleClient: OAuth2Client|null=null; - -export function getAuth(): Promise{ - return new Promise((resolve, reject)=>{ - if(googleClient==null){ - authorize().then((client:OAuth2Client)=>{ - googleClient=client; - resolve(googleClient); - }).catch((err)=>reject(err)); - } - else - resolve(googleClient); - }); -} - - -function authorize():Promise{ - //read credentials - return new Promise((resolve, reject)=>{ - fsp.readFile(CREDENTIALS_PATH) - .then(async (content: string)=>{ - const credentials=JSON.parse(content); - const {client_secret, client_id, redirect_uris} = credentials.installed; - - //get an OAuth2Client - const oAuth2Client = new google.auth.OAuth2( - client_id, client_secret, redirect_uris[0]); - // Check if we have previously stored a token. - fsp.readFile(TOKEN_PATH) - .then((token: string)=>{ - oAuth2Client.setCredentials(JSON.parse(token)); - resolve(oAuth2Client); - }) - .catch(()=>{ // error on reading the token - getNewToken(oAuth2Client) - .then((client: OAuth2Client)=>{resolve(client)}) - .catch((err)=>{reject(err)}); - }); - }) - .catch((err: any)=>{reject(err)}); //error on reading credentials - }); -} - -/** - * Get and store new token after prompting for user authorization, - * configuring the OAuth2Client received as parameter - * @param {google.auth.OAuth2} oAuth2Client The OAuth2 client to get token for. - * @return {Promise} Promise object containing the configured oAuth2Client - */ -async function getNewToken(oAuth2Client:OAuth2Client):Promise { - const authUrl = oAuth2Client.generateAuthUrl({ - access_type: 'offline', - scope: SCOPES, - }); - console.log('Authorize this app by visiting this url:', authUrl); - const rl = readline.createInterface({ - input: process.stdin, - output: process.stdout, - }); - rl.question('Enter the code from that page here: '); - const it = rl[Symbol.asyncIterator](); - const line = await it.next(); - const code=line.value; - rl.close(); - return new Promise((resolve, reject) => { - oAuth2Client.getToken(code, (err, token) => { - if (err || !token) reject('Error retrieving access token: '+err); - else { - oAuth2Client.setCredentials(token); - // Store the token to disk for later program executions - fsp.writeFile(TOKEN_PATH, JSON.stringify(token)) - .then(()=>resolve(oAuth2Client)) - .catch((err: any)=>reject(err)); - } - }); - }) -} diff --git a/api/src/modules/GCalendar.ts b/api/src/modules/GCalendar.ts deleted file mode 100644 index 8a2e4b2..0000000 --- a/api/src/modules/GCalendar.ts +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: GCalendar.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 19 aprile 2021, 11:28 - */ - -import {CalendarInterface} from "./CalendarInterface"; -import {TimeSlot} from "../datatypes/dataTypes"; -import {getAuth} from "./GAuth/GAuth" -import {calendar_v3, google} from "googleapis"; -import {OAuth2Client} from "google-auth-library" -import {GCalendarPreferences, Insert} from "../config/gCalendarPreferences"; - -/** - * @class GCalendar implements a calendar service using Google Calendar - * @inheritDoc - * @implements CalendarInterface - */ -export class GCalendar implements CalendarInterface{ - /** - * An object containing the preferences for Google Calendar retrieved from - * a configuration file - * @private - */ - private prefs : GCalendarPreferences; - - constructor(){ - const prefPath=process.cwd()+"/src/config/gcalendarPreferences.json"; - this.prefs=require(prefPath); - } - deleteEvent(event_id: string): Promise { - return new Promise((resolve, reject)=>{ - getAuth().then((auth: OAuth2Client)=>{ - const calendar= google.calendar({version: "v3", auth}); - const params={ - calendarId:"primary", - eventId:event_id - } - calendar.events.delete(params).then((res)=>resolve(res.status)).catch((err)=>reject(err)); - }) - }); - } - - getEvent(event_id: string): Promise { - return new Promise((resolve, reject) => { - getAuth().then((auth: OAuth2Client)=>{ - const calendar = google.calendar({version: 'v3', auth}); - const params={ - calendarId:"primary", - eventId:event_id - } - calendar.events.get(params).then((res)=>resolve(res.data)).catch((err)=>reject(err)); - }) - }); - } - - insertEvent(when: TimeSlot, title: string, description: string, attendees: { email: string }[]): Promise { - return new Promise((resolve, reject) => { - getAuth().then((auth: OAuth2Client)=>{ - const calendar = google.calendar({version: 'v3', auth}); - const pref :Insert = JSON.parse(JSON.stringify(this.prefs.gcalendarPreferences.insert)); - pref.conferenceData.createRequest.requestId=require("crypto").randomBytes(32).toString('hex'); - const event= { - start : { - dateTime: when.start, - timeZone: "Europe/Rome" - }, - end : { - dateTime: when.end, - timeZone: "Europe/Rome" - }, - attendees: attendees, - summary: title, - description: description, - ...pref - } - // @ts-ignore - calendar.events.insert({ - calendarId: "primary", - conferenceDataVersion: pref.conferenceDataVersion || 1, - resource: event, - sendUpdates: "none" - }).then((res)=> // @ts-ignore - resolve(res.data.id)).catch((err)=>reject(err)); - }); - }); - } - - changeEventAttendees(event_id: string, attendees: { email: string }[]): Promise { - return new Promise((resolve, reject)=>{ - getAuth().then((auth)=>{ - const calendar = google.calendar({version: 'v3', auth}); - const event={ - attendees: attendees, - } - // @ts-ignore - calendar.events.patch({ - calendarId: "primary", - eventId: event_id, - resource: event // @ts-ignore - }).then((res)=>resolve(res.data)).catch(e=>reject(e)); - }) - }); - } -} diff --git a/api/src/modules/GDriveStorage.ts b/api/src/modules/GDriveStorage.ts deleted file mode 100644 index 2934e83..0000000 --- a/api/src/modules/GDriveStorage.ts +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: GDriveStorage.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 19 aprile 2021, 11:21 - */ - -import {FileStorageInterface} from "./FileStorageInterface"; -import {getAuth} from "./GAuth/GAuth"; -import {google} from "googleapis"; -import {OAuth2Client} from "google-auth-library"; -import {Readable} from "stream"; - -/** - * @class GDriveStorage implements a storage service using Google Drive - * @inheritDoc - * @implements FileStorageInterface - */ -export class GDriveStorage implements FileStorageInterface{ - copyFileFromStorage(file_id: string, name: string, parent_folder?: string): Promise { - return new Promise((resolve, reject)=>{ - getAuth().then((auth: OAuth2Client)=>{ - const drive = google.drive({version: 'v3', auth}); - // @ts-ignore - drive.files.copy({ - fileId: file_id, - resource: { - parents: parent_folder ? [parent_folder]:undefined, - name: name - }, - supportsAllDrives: true, - fields: 'id' - }).then((file)=> // @ts-ignore - resolve(file.data.id)).catch((err)=>reject(err)); - }).catch(err=>reject(err)); - }) - } - - createFolder(name: string, parent_folder?: string): Promise { - return new Promise((resolve, reject)=>{ - getAuth().then((auth: OAuth2Client)=>{ - const fileMetadata = { - name: name, - mimeType: 'application/vnd.google-apps.folder', - parents: parent_folder ? [parent_folder]:undefined, - }; - this.getFolderByName(name, parent_folder).then((folder_id)=>{ - if(folder_id) - resolve(folder_id); - else{ - const drive = google.drive({version: 'v3', auth}); - drive.files.create({ // @ts-ignore - resource: fileMetadata, - fields: 'id' - }).then((file)=> // @ts-ignore - resolve(file.data.id)).catch((err)=>reject(err)); - } - }).catch((err)=>reject(err)); - }).catch(err=>reject(err)); - }); - } - - deleteItem(item_id: string): Promise { - return new Promise((resolve, reject)=>{ - getAuth().then((auth:OAuth2Client)=>{ - const drive = google.drive({version: 'v3', auth}); - drive.files.delete({ - fileId: item_id // @ts-ignore - }).then((res)=>resolve(res.status)).catch((err)=>reject(err)); - }).catch(err=>reject(err)); - }) - } - - insertFile(name: string, rawData: Uint8Array, parent_folder?: string): Promise { - return new Promise((resolve, reject)=>{ - getAuth().then((auth:OAuth2Client)=>{ - const drive = google.drive({version: 'v3', auth}); - const fileMetadata = { - name: name, - parents: parent_folder ? [parent_folder]:undefined, - }; - const stream = new Readable(); - stream.push(rawData); stream.push(null); - const media = { - mimeType: 'application/pdf', - body: stream - }; - drive.files.create({ // @ts-ignore - resource: fileMetadata, - media: media, - fields: 'id' - }).then((file)=> // @ts-ignore - resolve(file.data.id)).catch((err)=>reject(err)); - }).catch(err=>reject(err)); - }); - } - - getFolderByName(name: string, parent_folder?: string): Promise{ - return new Promise((resolve, reject)=>{ - getAuth().then((auth: OAuth2Client)=>{ - const drive = google.drive({version: 'v3', auth}); - const inParent= parent_folder ? ` and '${parent_folder}' in parents`:""; - drive.files.list({ - q: `mimeType ='application/vnd.google-apps.folder' and name='${name}'`+inParent, - fields: 'files(id, name)', - }).then((res)=>{ - if (res.data.files.length===1) - resolve(res.data.files.pop().id); - else if(res.data.files.length===0) - resolve(null); //directory not present - else - reject("Multiple folders with same name inside the same folder"); - }).catch((err)=>reject(err)); - }) - }); - } - /** - * Extracts the id of item (file or folder) from the sharing url - * @param src the url of the resource - * @return {string} the id of the resource - */ - extractIdFrom(src: string): string{ - return src.match(/[-\w]{25,}/)[0]; - } -} diff --git a/api/src/modules/GMailNotifier.ts b/api/src/modules/GMailNotifier.ts deleted file mode 100644 index c7abd82..0000000 --- a/api/src/modules/GMailNotifier.ts +++ /dev/null @@ -1,349 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: GMailNotifier.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 21 aprile 2021, 18:59 - */ - -import {Notifier} from "./Notifier"; -import {NotificationEvent} from "../config/recruitmentConfig"; -import {MessageKey, MessageTemplates} from "../config/messageTemplate"; -import {NotificationDAO} from "./DAO/DAOdefs"; -import {Gender} from "../datatypes/enums"; -import {NotifierData} from "./NotificationSubsystem"; -import {getAuth} from "./GAuth/GAuth"; -import {google} from "googleapis"; -import {OAuth2Client} from "google-auth-library"; -import {oneOf} from "./utils"; - -type Language = "ita" | "eng"; -type MessageFields = { [k in MessageKey]?: string }; -type EditableHeaderName = "from" | "to" | "subject" | "bcc" | "reply-to" | "cc"; -type HeaderName = EditableHeaderName | "Content-Type" | "MIME-Version" | "Content-Transfer-Encoding"; - -function toBase64(str:string): string { - return Buffer.from(str).toString("base64") - .replace(/\+/g, '-'). - replace(/\//g, '_'); -} - -export class BasicMail { - private readonly headers: [HeaderName, string][]; - private _body: string; - private static mailRegExp=/^[-a-z0-9~!$%^&*_=+}{'?]+(\.[-a-z0-9~!$%^&*_=+}{'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i - - constructor(from: string, to: string) { - this.headers = [ - ["Content-Type", "text/html; charset=\"UTF-8\""], - ["MIME-Version", "1.0"], - ["Content-Transfer-Encoding", "8bit"] - ]; - this.setHeader("from", from).setHeader("to", to); - this._body = ""; - } - - /** - * Sets an header value, according to RFC 5322 - * @param name the name of the header, must be among the ones defined by RFC 5322 (see section 3.6) - * @param value the value to set the header to - * @return {BasicMail} the same mail object, to allow method chaining - */ - setHeader(name: EditableHeaderName, value: string): BasicMail { - const newValue= BasicMail.checkHeaderValue(name, value); - const fieldIndex=this.headers.findIndex((field)=>field[0]===name); - if(fieldIndex===-1) - this.headers.push([name, newValue]); - else if(this.headers[fieldIndex][0]!==newValue) - this.headers[fieldIndex][1]=newValue; - return this; - } - - /** - * Gets the value for an header - * @param name the name of the header whose value must be returned - * @return {string} the header value if there is an header with the given name, an empty string otherwise - */ - getHeader(name: HeaderName): string { - const fieldIndex=this.headers.findIndex((field)=>field[0]===name); - return fieldIndex>=0 ? this.headers[fieldIndex][1] : ""; - } - - - get body(): string { - return this._body; - } - - /** - * Sets the content of the body - * @param body the content to set the body to - * @return {BasicMail} the same mail object, to allow method chaining - */ - setBody(body:string): BasicMail { - this._body=body; - return this; - } - - /** - * Gets the whole mail as a string, according RFC 5322, see appendix A.1 - * @return {string} the mail message as a string - */ - getAsString(): string { - const fields = this.headers.map((header)=>`${header[0]}: ${header[1]}`); - fields.push(""); - fields.push(this._body); - return fields.join("\n"); - } - - /** - * Gets the whole mail as a string, as getAsString(), but encoded in base64 - * @return {string} the mail message as a base64 string - */ - getAsB64String(): string { - const str=this.getAsString(); - return toBase64(str); - } - - /** - * Checks that the value associated with an header is valid. For now, it checks that - * email addresses are syntactically valid and that headers "to", "bcc" and "reply-to" - * receive comma-separated list of valid email addresses. - * Additionally, it encodes the subject in base64. - * @param {EditableHeaderName} name the name of the header - * @param value the value to set the header to - * @return {string} the value, properly modified if needed - * @private - */ - private static checkHeaderValue(name: EditableHeaderName, value: string){ - if(value.length===0 || value.trim().length===0) - throw new Error(`Empty value for header '${name}' not accepted`); - let newValue=value; - const csv=value.split( ","); - // noinspection FallThroughInSwitchStatementJS because it is intended - switch (name){ - case "subject": - newValue= '=?utf-8?B?'+toBase64(value)+"?="; - break; - case "from": //here we accept only one email address for "from" - const fromRegEx=/"(.*)" <(.*)>/i - if(csv.length>1) throw new Error(`Invalid field '${name}'`); - if(fromRegEx.test(csv[0])) { // @ts-ignore - csv[0]=csv[0].match(fromRegEx)[2]; - } - case "to": case "bcc": case "reply-to": //required comma separated list of emails - csv.forEach((email)=>{ - if(!this.mailRegExp.test(email)) - throw new Error(`Invalid field '${name}'`);}); - } - return newValue; - } -} - -export class MailBuilder { - readonly templates: MessageTemplates; - readonly emailAddress: string; - - constructor(templates_source: string, emailAddress: string ="recruitment-noreply@hknpolito.org") { - this.templates=require(templates_source); - this.emailAddress=emailAddress; - } - - /** - * Builds a proper mail, starting from the proper template - * @param event the NotificationEvent that triggered the notifier, used to select the correct template - * @param lang the language of the mail to be returned - * @param recipient_sex the gender of the recipient - * @param entries the value to fill the template message with - * @param to the recipient email address - * @param bcc email addresses of the users in bcc - * @param reply_to email addresses of the users in reply-to - * @return {BasicMail} a mail message ready to be sent - */ - buildMail(event: NotificationEvent, lang: Language, recipient_sex: Gender, entries: MessageFields, - to: string, bcc: Set, reply_to: Set): BasicMail { - let mailBody=this.templates[event][lang].body; - let mailSubject=this.templates[event][lang].subject; - const vocabulary = this.templates[event][lang].vocabulary; - const fields = this.templates[event][lang].fields; - - //Fill with vocabulary - vocabulary.forEach((entry)=> - mailBody=mailBody.replace(new RegExp(`\\b(${entry.placeholder})\\b`, 'g'), entry[recipient_sex])); - //Fill fields with actual values - fields.forEach((key:MessageKey)=>{ - const rgExp=new RegExp(`\\b(${key})\\b`, 'g'); - mailBody=mailBody.replace(rgExp, entries[key] || ""); - mailSubject=mailSubject.replace(rgExp, entries[key] || ""); - }); - return new BasicMail(`"RecruitmentHKN" <${this.emailAddress}>`, to) - .setHeader("subject", mailSubject) - .setHeader("bcc", Array.from(bcc).join(",")) - .setHeader("reply-to", Array.from(reply_to).join(",")) - .setBody(mailBody); - } - - /** - * Builds a custom mail message, starting from a ready-to-go message body and subject - * @param rawMsg an object containing the subject and the body of the message to be composed - * @param to the recipient email address - * @param bcc email addresses of the users in bcc - * @param reply_to email addresses of the users in reply-to - * @return {BasicMail} a mail message ready to be sent - */ - customMail(rawMsg: { subject: string, body: string }, to: string, bcc: Set, reply_to: Set): BasicMail { - return new BasicMail(`"RecruitmentHKN" <${this.emailAddress}>`, to) - .setHeader("subject", rawMsg.subject) - .setHeader("bcc", Array.from(bcc).join(",")) - .setHeader("reply-to", Array.from(reply_to).join(",")) - .setBody(rawMsg.body); - } - - /** - * Gets the names of the fields to be filled in the template message - * @param event the NotificationEvent that triggered the notifier, used to select the correct template - * @param lang the language of the message template - * @return {MessageKey[]} a list of required fields for the template message - */ - getRequiredFields(event: NotificationEvent, lang: Language): MessageKey[] { - return this.templates[event][lang].fields; - } -} - -/** - * @class GMailNotifier represents a way to notify users of the system via a - * mail message sent using GMail service - * @pat.name Strategy {@pat.role Leaf} - * @pat.task sends a message via {@link #notify()} - * @inheritDoc - * @extends Notifier - */ -export class GMailNotifier extends Notifier { - private readonly builder: MailBuilder; - - constructor(storage: NotificationDAO) { - super("email", storage); - this.builder = new MailBuilder("../config/messageTemplate.json"); - } - - notify(event: NotificationEvent, data: NotifierData): Promise { - return new Promise(async (resolve, reject)=>{ - try{ - //reply-to and bcc? - const [reply_to, bcc]= await this.ReplyToAndBcc(data); - //select the standard mail or the custom one - let mail: BasicMail = this.buildMail(event, data, bcc, reply_to); - GMailNotifier.sendMail(mail).then((status)=>resolve(status)) - .catch(e=>reject(e)); - } - catch (e) { - reject(e) - } - }); - } - - /** - * Checks that the data passed in by the NotificationSubsystem (some of them in turn obtained from outside) - * are sufficient to build the mail message from the template message - * @param event the event that triggered the notification - * @param data the data generated by the NotificationSubsystem for the notification. - * @private - * @return {MessageFields} an object containing the proper values for the MessageKeys required by the - * mail message template - */ - private checkRequiredFieldsAndData(event: NotificationEvent, data: NotifierData): MessageFields{ - const mailData= {name:data.mainRecipient.name, surname:data.mainRecipient.surname, - additionalText: data.additionalText, start:data.start, end:data.end}; - const requiredFields=this.builder.getRequiredFields(event, data.lang); - for(const field of requiredFields) { - const propDescriptor=Object.getOwnPropertyDescriptor(mailData, field); - if (!propDescriptor || !propDescriptor.value) - throw new Error(`Not enought data for event ${event}`); - } - return mailData; - } - - /** - * Select the email addresses for "reply-to" and "bcc" for the email to be generated. More specifically, - * the "reply-to" address is taken from data.secondaryRecipient if available, or is taken by one of - * the supervisors. In "bcc" go all the supervisors' email addresses. - * @param data the data generated by the NotificationSubsystem for the notification. - * @private - * @return {Promise<[string, string[]]>} a tuple containing the address for reply-to - * and the addresses for bcc, wrapped in a Promise - */ - private async ReplyToAndBcc(data: NotifierData): Promise<[string, string[]]> { - const supervisors = await this.storage.members.supervisors.list(); - const bcc = supervisors.map((member) => member.email); //supervisors always in bcc - let reply_to: string = data.secondaryRecipient ? data.secondaryRecipient.email : oneOf(supervisors).email; - //if no application, a supervisor's mail is used as clerk email (for reply-to) - return [reply_to, bcc]; - } - - /** - * Uses the GMail API to send an email message previously built - * @param mail the mail message - * @protected - * @return {Promise>} the HTTP status code returned by the API call, - * wrapped in a Promise - */ - protected static sendMail(mail:BasicMail): Promise{ - return new Promise((resolve, reject)=>{ - getAuth().then((auth: OAuth2Client)=>{ - const gmail = google.gmail({version: 'v1', auth}); - const b64mex=mail.getAsB64String(); - // @ts-ignore - gmail.users.messages.send( - {auth: auth, - userId: 'me', - resource: - {raw: b64mex} - } - ).then((res)=>resolve(res.status)).catch(e=>reject(e)); - }).catch(e=>reject(e)); - }); - } - - /** - * Uses BasicMail's methods to construct an email. - * @param event the event that triggered the notification - * @param data the data generated by the NotificationSubsystem for the notification. - * It contains the data about the notification: in particular data.mainRecipient - * is used as "to", data.secondaryRecipient (if present) is used as "cc". - * @param bcc the list of members in "bcc" header of the email - * @param reply_to the address for reply-to header of the mail - * @return {BasicMail} the constructed email - */ - buildMail(event: NotificationEvent, data: NotifierData, bcc: string[], reply_to: string): BasicMail { - let mail: BasicMail; - if(!data.customMessage){ - //then data must contain sufficient info for filling the template mail - const mailData=this.checkRequiredFieldsAndData(event, data); - mail= this.builder.buildMail(event,data.lang, data.mainRecipient.sex, {...mailData}, - data.mainRecipient.email, new Set(bcc), new Set([reply_to])); - } - else - mail= this.builder.customMail(data.customMessage, data.mainRecipient.email, - new Set(bcc), new Set([reply_to])); - if(data.secondaryRecipient) mail.setHeader("cc", data.secondaryRecipient.email) - return mail; - } -} diff --git a/api/src/modules/GreedyScheduler.ts b/api/src/modules/GreedyScheduler.ts deleted file mode 100644 index 4da7eaa..0000000 --- a/api/src/modules/GreedyScheduler.ts +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: GreedyScheduler.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 19 aprile 2021, 12:40 - */ - -import {AvailabilityInfo, AvailabilityInfoLoss, SlotScheduler, SlotSolution} from "./SlotScheduler"; -import {TimeSlot} from "../datatypes/dataTypes"; -import {ConfigManager} from "./ConfigManager"; -import {SchedulerDAO} from "./DAO/DAOdefs"; -import {CalendarInterface} from "./CalendarInterface"; - -/** - * SlotScheduler using a greedy algorithm to find the suboptimal - * slot to assign to an application - * @pat.name Strategy {@pat.role Leaf} - * @pat.task Delegate the actual creation of a slot to subclasses implementation strategy - * @inheritDoc - */ -export class GreedyScheduler extends SlotScheduler{ - - constructor(config: ConfigManager, storage: SchedulerDAO, calendar: CalendarInterface) { - super(config, "firstFit", storage, calendar); - } - - /** - * Greedy algorithm for finding a slot from a set of availabilities. The algorithm takes into account - * the number of slots per day and per week of the selected members. It doesn't take into account - * the genderDistribution for choosing an availabilities group, since it returns the first build slot, - * but anyway counts it for slot score calculation, since makeSlot can use this info to choose among - * slots in different time slots. - * @protected - */ - protected async buildSlot(tsAvailabilities: { time_slot: TimeSlot; availabilities: AvailabilityInfo[] }, weights: { gender_inequality: number; slots_day: number; slots_week: number }): Promise { - if(!SlotScheduler.verifyBasicSlotConstraints(tsAvailabilities.availabilities)) - return null; - const avScores=SlotSolution.calculateAvsLoss(tsAvailabilities.availabilities, weights) - .sort((a1, a2)=>a1.loss-a2.loss); - const [boards, experts]=GreedyScheduler.getMembersAndExperts(avScores); - //here boards.length is at least 2, experts.length is at least 1, because of verifySlotConstraints - const sol=new SlotSolution(3, weights); - sol.setAvailability(boards[0]).setAvailability(boards[1]); - if(!boards[0].info.is_expert && !boards[1].info.is_expert) - sol.setAvailability(experts[0]); - return sol; - } - - /** - * Helper function to select the availabilities related to board and expert members - * @param {AvailabilityInfoLoss[]} avLosses the availabilities with their losses - * @protected - */ - protected static getMembersAndExperts(avLosses: AvailabilityInfoLoss[]){ - const boards=avLosses.filter((av)=>av.info.is_board); - const experts=avLosses.filter((av)=>av.info.is_expert); - return [boards, experts]; - } -} diff --git a/api/src/modules/HKContext.ts b/api/src/modules/HKContext.ts deleted file mode 100644 index 7f970ea..0000000 --- a/api/src/modules/HKContext.ts +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: HKContext.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 22 aprile 2021, 00:12 - */ - -import {NotificationSubsystem} from "./NotificationSubsystem"; -import {SlotScheduler} from "./SlotScheduler"; -import {CalendarInterface} from "./CalendarInterface"; -import {Compensator} from "./Compensator"; -import {Validator} from "./ValidatorInterface"; -import {FileStorageInterface} from "./FileStorageInterface"; -import {DAO} from "./DAO/DAOdefs"; -import {AuthZManager} from "./AuthZManager"; -import {ConfigManager} from "./ConfigManager"; - -export class HKContext{ - private static _context:HKContext=new HKContext(); - readonly config : ConfigManager; - readonly db: DAO; - readonly notificator : NotificationSubsystem; - readonly scheduler : SlotScheduler; - readonly calendar : CalendarInterface; - readonly compensator : Compensator; - readonly authZ: AuthZManager; - readonly validators: Validator[]; - readonly drive: FileStorageInterface; - - constructor() { - //TODO: implement - } - - static get context(): HKContext { - return this._context; - } -} diff --git a/api/src/modules/NotificationSubsystem.ts b/api/src/modules/NotificationSubsystem.ts deleted file mode 100644 index a41ec08..0000000 --- a/api/src/modules/NotificationSubsystem.ts +++ /dev/null @@ -1,338 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: NotificationSubsystem.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 21 aprile 2021, 18:16 - */ - -import {NotificationEvent, NotificationMethod} from "../config/recruitmentConfig"; -import {Notifier} from "./Notifier"; -import {Compensator} from "./Compensator"; -import {NotificationDAO} from "./DAO/DAOdefs"; -import {ConfigManager} from "./ConfigManager"; -import {GMailNotifier} from "./GMailNotifier"; -import Timeout = NodeJS.Timeout; -import {NotificationTemplates} from "../config/notificationTemplate"; -import {Application} from "../datatypes/application"; -import {Applicant, Member} from "../datatypes/entities"; -import {LangLevel} from "../datatypes/enums"; -import {PeriodicEvent} from "./PeriodicEvent"; -import {oneOf} from "./utils"; - -type Language = "ita" | "eng"; -type user_type="applicant" | "member"; - -const callbackWrapper = async (callback: (ntfS: NotificationSubsystem)=>Promise, ntfS: NotificationSubsystem)=>{ - try{ - await callback(ntfS); - } - catch (e) { //Ok, what to do if the callback fails? Simply record it? - console.error(e); - } -} - -/** - * Describes parameters to construct a notification - */ -interface NotificationFields{ - uri:string, - member_id:string, - applicant_id:string, - text:string -} - -/** - * Describes parameters to be received by NotificationSubsystem from outside - */ -export interface NotificationData { - application_id?: number; - start?: string; - end?: string; - customMessage?: {subject:string, body:string}; - additionalText?:string; - interview_id?: number; - member_id?: string; -} - -/** - * Describes the data generated by NotificationSubsystem for Notifiers - */ -export interface NotifierData{ - mainRecipient: (Member|Applicant), - secondaryRecipient: Member | null; - lang: Language; - notification: NotificationFields; //Here so to support push notifications without much effort - start?: string; - end?: string; - customMessage?: {subject:string, body:string}; - additionalText?:string; -} - -/** - * @class NotificationSubsystem handles all the aspects related to notification inside the system, that is: - * - the creation and consumption of notifications; - * - the choice of notification_methods, so the the types of notifier, used for the each - * notification_event; - * - * More in detail, this class deals with deciding who needs to be notified, while delegates the "how" - * to the notifiers. - */ -export class NotificationSubsystem{ - private notifiers : Map; - private config: ConfigManager; - private readonly storage : NotificationDAO; - private compensator : Compensator; - private periodic_ntf : Map; - private selector: RecipientsSelector; - - - constructor(storage: NotificationDAO, compensator: Compensator, config:ConfigManager) { - this.storage = storage; - this.compensator = compensator; - this.config = config; - //here set the notifier object for each notification method - this.notifiers=new Map([["email", new GMailNotifier(this.storage)]]); - this.periodic_ntf=new Map(); - this.selector=new RecipientsSelector(this.storage); - } - - /** - * Creates a notification and uses the proper notifiers - * @param event the event that triggers the notification - * @param data the data about the event occurred - */ - notify(event:NotificationEvent, data: NotificationData) : Promise{ - return new Promise(async (resolve, reject)=>{ - try{ - const [mainRecipient, secondaryRecipient, user_type, lang]=await this.selector.getRecipients(event, data); - const n=buildNotification(event, mainRecipient, secondaryRecipient, user_type, lang); - await this.storage.notifications.insert(n.uri, n.text, n.member_id, n.applicant_id); - const notifiers: Notifier[]=await this.selectNotifiers(event); - await Promise.all(notifiers.map(async (ntf)=> - ntf.notify(event, {...data, mainRecipient, secondaryRecipient, lang, notification: n}))); - resolve(); - } - catch (e) { - reject(e); - } - }); - } - - /** - * Registers that an applicant or a member read a notification - * @param n_id the id of the notification - * @param user_id the id of the applicant or member - * @param user_type the type of user, that is "applicant" or "member" - */ - readNotification(n_id:number, user_id:string, user_type:"member"| "applicant"){ - return this.storage.notifications.read(n_id, user_id, user_type); - } - - /** - * Creates one single notification and periodically triggers the proper notifiers to notify the user - * @param event the periodic event - * @param entity the entity related to the periodic event - * @param data the data about the event occurred - * @param period the interval between two periodic notifications, in minutes - * @return {Promise} a promise representing whether the setup of a periodic notification was successful - */ - periodicNotify(event: PeriodicEvent, entity: T, data : NotificationData, period:number):Promise{ - return new Promise(async (resolve, reject)=>{ - try{ - const [mainRecipient, secondaryRecipient, user_type, lang]=await this.selector.getRecipients(event.name, data); - const n=await buildNotification(event.name, mainRecipient, secondaryRecipient, user_type, lang); - await this.storage.notifications.insert(n.uri, n.text, n.member_id, n.applicant_id); - const notifiers: Notifier[]=await this.selectNotifiers(event.name); - const periodicCallback=(ntfS: NotificationSubsystem):Promise=>{ - if(!event.stillValid(entity)) return ntfS.stopPeriodicNotify(event, entity); - return Promise.all(notifiers.map(async (ntf)=> - ntf.notify(event.name, {...data, mainRecipient, secondaryRecipient, lang, notification: n}))); - }; - periodicCallback(this).then(()=>{ //execute now and every period - this.setPeriodicNotification(event, entity, period, periodicCallback) - resolve(); - }).catch(e=>reject(e)); - } - catch (e) { - reject(e); - } - }); - } - stopPeriodicNotify(event:PeriodicEvent, entity: T): Promise{ - return new Promise((res, rej)=>{ - const id=event.getId(entity), tm=this.periodic_ntf.get(id); - if(!tm){ - rej(`Timeout object not present for id ${id}`); - return; - } - clearInterval(tm); - this.periodic_ntf.delete(id); - const c=event.needsCompensation(entity); - if(c) this.compensator.compensate(c, entity, this).then(()=>res()).catch(e=>rej(e)); - }); - } - private setPeriodicNotification(event: PeriodicEvent, entity: T, period: number, callback: (ntfS: NotificationSubsystem) => Promise){ - const id:string=event.getId(entity); - const ms=period*60*1000; //from minutes to milliseconds - const tm=setInterval(callbackWrapper, ms, callback, this); - // @ts-ignore - this.periodic_ntf.set(id, tm); - } - - /** - * Retrieves the list of notifiers to be used for the given event - * @param event the event that triggered the notification - * @private - */ - async selectNotifiers(event: NotificationEvent) :Promise{ - const notificationStrategies=await this.config.get("notification_strategies"); - const eventMethodsPair=notificationStrategies.find((item)=>item.event===event); - if(!eventMethodsPair) throw new Error(`Notification methods missing for event ${event}`); - const notifiers:Notifier[]=[]; - for(const method of eventMethodsPair.methods){ - const ntf=this.notifiers.get(method); - if (!ntf) throw new Error(`Method not available ${method}`); - notifiers.push(ntf); - } - return notifiers; - } -} - -/** - * Get the notification text from the templates - * @param event the event that triggered the notification. - * @param {Language} lang the language of the notification - */ -function getNotificationTextAndUri(event: NotificationEvent, lang: Language): [string, string] { - const templates:NotificationTemplates=require(process.cwd()+"/src/config/notificationTemplate.json"); - // @ts-ignore - return [templates[event][lang], templates[event].uri]; -} - -export function buildNotification(event: NotificationEvent, mainRecipient: Member | Applicant, secondaryRecipient: Member | null, user_type: user_type, lang: Language): NotificationFields { - const [text, uri]=getNotificationTextAndUri(event, lang); - if(user_type==="applicant") { - if (!secondaryRecipient) throw new Error("Missing member to notify for notification to applicant"); - return {text, uri, applicant_id: mainRecipient.id, member_id: secondaryRecipient.id}; - } - else - return {text, uri, applicant_id: "0", member_id: mainRecipient.id}; -} - -export class RecipientsSelector{ - private storage: NotificationDAO; - - constructor(storage: NotificationDAO) { - this.storage = storage; - } - - /** - * Gets the lists of recipients (main users to be notified) and members that will receive the - * notification "for knowledge" - * @param event the event that triggered the notification - * @param data the data about the event occurred - */ - async getRecipients(event: NotificationEvent, data: NotificationData): Promise<[(Member | Applicant), Member | null, user_type, Language]> { - const application_events: NotificationEvent[] = ["application_accepted", "application_revocated", "new_application", "slot_reserved"]; - let member:Member, applicant:Applicant, application:Application; - //require_availability_confirmation will only trigger notification to the proper member - if (event === "require_availability_confirmation" || event==="availability_not_required" - || event==="require_manual_slot_compensation" || event==="request_availability") { - member=await this.selectMember(data); - return [member, null, "member", "ita"]; - } - [applicant, application] = application_events.includes(event) ? //applicant and application from application_id or interview_id - await this.selectApplicantFromApplication(data) : await this.selectApplicantFromInterview(data); - member=await this.secondaryRecipient(event, application); - return [applicant, member, "applicant", RecipientsSelector.notificationLanguage(application.ita_level)]; - } - - /** - * When an event is about a member, the notification will be directed only to him or her - * @param data the data about the event occurred. Because the only event that requires notification - * to a member is request_availability_confirmation, data must contain the parameters of the - * availability, that is {start, end, member_id}. - */ - selectMember(data: NotificationData): Promise{ - if(!data.member_id || !data.start || !data.end) throw new Error("Missing parameters"); - return this.storage.members.get(data.member_id); - } - - /** - * When an event is about an application, the main recipient is the applicant whose application - * belongs to. - * @param data the data about the event occurred. In this case it must contain the application_id - * The notification language is chosen on the basis on the italian language level registered in - * the application. - */ - async selectApplicantFromApplication(data: NotificationData): Promise<[Applicant, Application]>{ - if (!data.application_id) throw new Error("Missing application_id"); - const mainRecipient = await this.storage.applications.getApplicant(data.application_id); - const application = await this.storage.applications.get(data.application_id, mainRecipient.id); - return [mainRecipient, application]; - } - - /** - * Similar to applicationEvent(), here the application id is retrieved from the interview - * @param data the data about the event occurred. In this case it must contain the interview_id - */ - async selectApplicantFromInterview(data: NotificationData): Promise<[Applicant, Application]>{ - if(!data.interview_id) throw new Error("Missing interview_id"); - const interview=await this.storage.interviews.get(data.interview_id) - const mainRecipient=await this.storage.applications.getApplicant(interview.application_id); - const application=await this.storage.applications.get(interview.application_id, mainRecipient.id); - return [mainRecipient, application]; - } - - /** - * Selects the staff member to notify basing on the event and the application: - * - If the event is "application_revocated", a supervisor must be notified; - * - If the application had been modified by a clerk, he or she will be notified; - * - In any other case, a clerk will be notified: - * - If the application refers to a PhD student, a clerk from the board will be chosen - * - Otherwise a clerk that is not part of the board; - * @param event the event that triggered the notification. Cannot be "require_availability_confirmation" - * @param application the application linked to the event - */ - async secondaryRecipient(event: NotificationEvent, application: Application): Promise{ - if (event === "application_revocated") //we need to contact a supervisor - return oneOf(await this.storage.members.supervisors.list()); - if (application.last_modified) //if previously modified by staff member, keep notifying him/her - return this.storage.members.get(application.last_modified.member_id); - //one of the clerks, look at the application to decide if board members or not - const clerks=await this.storage.members.clerks.list(); - const selectedClerks=clerks.filter(application.type==="PhD" ? - (clerk)=>clerk.is_board : (clerk)=>!clerk.is_board); - return oneOf(selectedClerks); - } - - /** - * Selects the language to be used for the notification, basing on the italian language level of the - * applicant. - * @param {LangLevel} level the language level of the applicant registered in the application. - * @return {Language} "ita" if the applicant is a native speaker, "eng" otherwise. - */ - static notificationLanguage(level: LangLevel): Language{ - return level==="native_speaker" ? "ita":"eng"; - } -} diff --git a/api/src/modules/Notifier.ts b/api/src/modules/Notifier.ts deleted file mode 100644 index 6a2d4d8..0000000 --- a/api/src/modules/Notifier.ts +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: Notifier.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 21 aprile 2021, 18:19 - */ - -import {NotificationEvent, NotificationMethod} from "../config/recruitmentConfig"; -import {NotificationDAO} from "./DAO/DAOdefs"; -import {NotifierData} from "./NotificationSubsystem"; - -export abstract class Notifier{ - private readonly _method_implemented : NotificationMethod; - protected readonly storage : NotificationDAO; - - protected constructor(method_implemented: NotificationMethod, storage: NotificationDAO) { - this._method_implemented = method_implemented; - this.storage = storage; - } - - get method_implemented(): NotificationMethod { - return this._method_implemented; - } - - abstract notify(event: NotificationEvent, data: NotifierData):Promise; -} diff --git a/api/src/modules/PeriodicEvent.ts b/api/src/modules/PeriodicEvent.ts deleted file mode 100644 index ac57dd9..0000000 --- a/api/src/modules/PeriodicEvent.ts +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: PeriodicEvent.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 14 maggio 2021, 11:23 - */ - -import {NotificationEvent} from "../config/recruitmentConfig"; -import {compensation_event} from "./Compensator"; -import {Availability} from "../datatypes/dataTypes"; - -/** - * @class PeriodicEvent models an event that supports periodic notification - * @template T - */ -export abstract class PeriodicEvent { - private readonly _name: NotificationEvent; - - protected constructor(event: NotificationEvent) { - this._name = event; - } - - /** - * Indicates whether the notification is supported for the event depending on entity data - * @param {T} entity the entity the event is related to - * @return {boolean} true if the event on the entity still requires notification, false otherwise - */ - stillValid(entity: T): boolean{ - return false; - } - - /** - * Indicates whether the occurrence of the event requires a compensation action - * @param entity the entity the event is related to - * @return {(compensation_event | boolean)} the compensation_event to be raised or false - */ - needsCompensation(entity: T): compensation_event | false{ - return false; - } - - /** - * Get a unique identifier for the entity - * @abstract - * @param entity the entity the event is related to - * @protected - */ - protected abstract getInstanceId(entity: T):string; - - /** - * Get a unique identifier for the pair event-entity - * @param entity the entity the event is related to - */ - getId(entity: T): string{ - return this._name.toString()+this.getInstanceId(entity).toString(); - } - - get name(): NotificationEvent { - return this._name; - } -} - -/** - * @class AvailabilityEvent deals with periodic events related to availabilities - * Main cases are: - * - the availability is revoked: from the API endpoint the function stopPeriodicNotify() is - * called and then the function compensate(); - * - the availability is not confirmed and the slot is in a time slot too near. This case must be - * handled inside the callback registered when setting the periodic notification - */ -export class AvailabilityEvent extends PeriodicEvent{ - /** - * Defines when the time slot the availability is associated to is too near - * @private - */ - private readonly min_hours_before_interviewer_confirm: number; - - constructor(event: NotificationEvent, min_hours_before_interviewer_confirm: number=0) { - if(event!=="require_availability_confirmation") - throw new Error(`Invalid event for AvailabilityEvent`); - super(event); - this.min_hours_before_interviewer_confirm = min_hours_before_interviewer_confirm; - } - - protected getInstanceId(entity: Availability): string { - return entity.time_slot.start+entity.time_slot.end+entity.member_id; - } - - needsCompensation(entity: Availability): compensation_event | false { - if(this.name==="require_availability_confirmation" && this.tooNear(entity)) - return "no_interviewer_confirmation"; - return false; - } - - stillValid(entity: Availability): boolean { - return !this.tooNear(entity); - } - - private tooNear(entity: Availability){ - const now=new Date(); - const av_start=new Date(entity.time_slot.start); - //av_start-min_hours... - const offsetMs=this.min_hours_before_interviewer_confirm*60*60*1000; - const av_offset=new Date(av_start.getTime()-offsetMs); - return now.getTime() >= av_offset.getTime(); - } -} diff --git a/api/src/modules/SlotScheduler.ts b/api/src/modules/SlotScheduler.ts deleted file mode 100644 index f07523c..0000000 --- a/api/src/modules/SlotScheduler.ts +++ /dev/null @@ -1,535 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: SlotScheduler.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 19 aprile 2021, 11:37 - */ - -import {Member, Slot} from "../datatypes/entities"; -import {Availability, TimeSlot} from "../datatypes/dataTypes"; -import {SchedulerDAO} from "./DAO/DAOdefs"; -import {ConfigManager} from "./ConfigManager"; -import {CalendarInterface} from "./CalendarInterface"; -import {Gender} from "../datatypes/enums"; -import {asyncFilter, asyncMap, copyArrayShallow, partition, sum} from "./utils"; - -export type slot_computational_method= "bestFit" | "firstFit"; - - -/** - * Models a slot solution, with the associated loss and solution length - */ -export class SlotSolution{ - private readonly avs_loss: AvailabilityInfoLoss[]; - private _loss: number; - private length: number; - private readonly weights: { gender_inequality: number; slots_day: number; slots_week: number }; - private uploadLoss: boolean; - - constructor(max_sol_length: number, weights: { gender_inequality: number; slots_day: number; slots_week: number }){ - this.avs_loss=new Array(max_sol_length); - this.weights=weights; - this._loss=NaN; - this.length=0; - this.uploadLoss=true; - } - - /** - * Calculates the loss associated with a slot, by averaging the individual availability losses - * and considering the gender distribution inside the slot - * @return {SlotSolution} the SlotSolutions instance itself, for method chaining - * @private - */ - private calculateTotLoss(){ - if(this.uploadLoss){ - const genders = this.getAvailabilitiesInfoLoss().map((av) => av.info.sex); - const [males, females] = partition(genders, (sex) => sex === "male"); - - const totLoss= this.getAvailabilitiesInfoLoss().map((av) => av.loss).reduce(sum, 0) + - Math.abs(males.length - females.length) * this.weights.gender_inequality; - this._loss=totLoss/this.length; - this.uploadLoss=false; - } - return this; - } - - /** - * Updates the current SlotSolution if the one given as parameter is better - * @param {SlotSolution} other the candidate best solution - * @return {SlotSolution} the SlotSolution instance itself, to allow method chaining - */ - updateIfWorseThan(other: SlotSolution){ - this.calculateTotLoss(); - other.calculateTotLoss(); - if(this._loss>other._loss){ - copyArrayShallow(other.avs_loss, this.avs_loss, [0, other.length]); - this.length=other.length; - this._loss=other._loss; - } - return this; - } - - get loss(): number { - return this._loss; - } - - getAvailabilitiesInfoLoss(): AvailabilityInfoLoss[]{ - return this.avs_loss.slice(0, this.length); - } - - /** - * Adds or replace an availability in the solution - * @param item the availability to add to the solution - * @param index the index of the availability - * @return {SlotSolution} the SlotSolution instance itself, to allow method chaining - */ - setAvailability(item: AvailabilityInfo, index: number = this.length){ - if(index>=this.avs_loss.length) throw new Error("Index out of range"); - if(!Number.isInteger(index)) throw new Error("Index must be integer"); - if(index>=this.length) - this.length=index+1; - this.avs_loss[index]=SlotSolution.calculateAvsLoss([item], this.weights)[0]; - this.uploadLoss=true; - return this; - } - - /** - * @return {string[]} the list of the id of all the members in the availabilities of the solution - */ - membersInvolved(): string[]{ - return this.avs_loss.slice(0, this.length).map(avs=>avs.member_id); - } - - /** - * Calculates the loss of a group of availabilities when used to compose a slot - * @param {AvailabilityInfo[]} availabilities the group of availabilities (with additional info) selected for a potential slot - * @param {{slots_day: number, slots_week: number }} weights the weights associated with the optimality parameters - * @return {AvailabilityInfoLoss[]} the same availabilities with the associated losses - * @static - */ - static calculateAvsLoss(availabilities: AvailabilityInfo[], weights: { slots_day: number; slots_week: number }): AvailabilityInfoLoss[]{ - const lossMapper=(av: AvailabilityInfo)=>{ - const {slots_day, slots_week} = av.info; - const loss=(slots_day*weights.slots_day+slots_week*weights.slots_week); - return {...av, loss:loss}; - }; - return availabilities.map(lossMapper); - } - -} - -export interface AvailabilityInfo extends Availability{ - //additional fields - info: { - is_expert: boolean, - is_board: boolean, - slots_day: number, - slots_week: number, - consecutive_slots: number, - sex: Gender - } -} - -export interface AvailabilityInfoLoss extends AvailabilityInfo{ - loss: number; -} - -/** - * Manage the assigment of a slot to an application, as well - * as taking care of the related actions, such as setting and modifying - * the calendar event. - * @pat.name Strategy {@pat.role Root} - * @pat.task Delegate the actual creation of a slot to subclasses implementation strategy - */ -export abstract class SlotScheduler{ - private readonly config: ConfigManager; - private readonly _method_implemented: slot_computational_method; - private readonly storage: SchedulerDAO; - private readonly calendar: CalendarInterface; - - - protected constructor(config: ConfigManager, method_implemented: slot_computational_method, storage: SchedulerDAO, calendar: CalendarInterface) { - this.config = config; - this._method_implemented = method_implemented; - this.storage = storage; - this.calendar = calendar; - } - - get method_implemented(): slot_computational_method { - return this._method_implemented; - } - - /** - * Composes a slot for an application, stores it into the database and adds the calendar event. - * Calls an abstract method to be implemented by SlotScheduler's subclass, that defines the strategy - * to be used to calculate the slot out of eligible availabilities. - * @param {string} applicant_id the id of the applicant - * @param {number} application_id the id of the applicant's application - * @return {Promise} the slot assigned to the application - */ - async assignSlot(applicant_id: string, application_id: number): Promise { - const weights=(await this.config.get("member")).metrics_weight; - - //need to prepare data for makeSlot - const tsAvailabilities= await this.prepareData(application_id); - const [slot, slotAvailabilities]=await this.makeSlot(tsAvailabilities, weights); - - slot.cal_id= await this.setCalendar(slot, applicant_id); - slot.id=await this.storage.slots.insert(slot); - await asyncMap(slotAvailabilities, av=>this.storage.availabilities.update(av.time_slot, - av.member_id,{state: av.state==="confirmed" ? "usedAndConfirmed": "used"})); - return slot; - } - - /** - * Adds additional information to availabilities, useful for calculating the availability loss - * @param {AvailabilityInfo[]} avs the availabilities to add the info to - * @return {Promise} the availabilities with the added information - * @private - */ - private addInfoToAvailabilities(avs: Availability[]): Promise{ - return asyncMap(avs, (av)=>{ - return new Promise(async ()=>{ - const m= await this.storage.members.get(av.member_id); - const result: AvailabilityInfo= { - ...av, - info: { - is_board: m.is_board, - is_expert: m.is_expert, - sex: m.sex, - slots_day: await this.storage.slots.countInDay(av.member_id, av.time_slot.start), - slots_week: await this.storage.slots.countInWeek(av.member_id, av.time_slot.start), - consecutive_slots: await this.storage.slots.countConsecutive(av.member_id, av.time_slot) - } - }; - return result; - }) - }); - } - - /** - * Collects all the valid availabilities associated with the time slots in the applicant's application. - * Valid availabilities are the ones that are in time_slots of the application, that are associated - * with members who are not friends of the applicant and that have state "submitted" or "confirmed". - * @param application_id the application of the applicant - * @private - */ - private async prepareData(application_id: number){ - const application = await this.storage.applications.get(application_id); - const applicantFriends=await this.storage.applicants.listFriends(application.applicant_id); - const timeSlots=application.time_slots; - if(!timeSlots) throw new Error("Logic error: an application to be assigned a slot should have time_slots") - //collect all availabilities for all time_slots chosen + filter out the ones of friends + add info - const allAvailabilities:AvailabilityInfo[][] =(await asyncMap(timeSlots, (ts)=>{ - return new Promise(async ()=>{ - const avs=(await this.storage.availabilities.listUsableInRange(ts)) - .filter((av)=>!this.verifyFriendsConstraint(applicantFriends, [av])); - const avsInfo= await this.addInfoToAvailabilities(avs); - return asyncFilter(avsInfo, (av)=> - this.verifyAvConstraintsForSlot([av])); - }) - })); - return allAvailabilities.map((vec) => ({time_slot: vec[0].time_slot, availabilities: vec})); - } - - /** - * Helper function to set the calendar event when creating a new slot - * @param slot the newly created slot - * @param applicant_id the applicant the slot is associated to - * @return {Promise} the result of calendar.insertEvent - * @private - */ - private async setCalendar(slot: Slot, applicant_id: string){ - const applicant=await this.storage.applicants.get(applicant_id); - const title=`[${applicant.name} ${applicant.surname}] Colloquio Mu Nu Chapter - IEEE HKN`; - const description=`Per i dettagli dell'application, vai sulla piattaforma di recruitment`; - const members = await this.storage.members.partialList(slot.members.map((m)=>m.id)); - return this.calendar.insertEvent(slot.time_slot, title, description, members); - } - - /** - * Builds a slot given the availabilities in a time slot. Derived classes must implement this function. - * @param {AvailabilityInfo[]} tsAvailabilities the availabilities from which to build a slot, all belonging to the same time slot - * @param {{ gender_inequality: number, slots_day: number, slots_week: number }} weights the weights associated with the optimality parameters - * @return {Promise} a solution for a slot - * @abstract - * @protected - */ - protected abstract buildSlot(tsAvailabilities: { time_slot: TimeSlot; availabilities: AvailabilityInfo[] }, weights: { gender_inequality: number; slots_day: number; slots_week: number }): Promise; - - - /** - * Basic implementation, returns the best successfully built slot among the ones returned by buildSlot, - * along with the used availabilities. Goodness of the final slot depends on buildSlot implementation - * by the derived class. Derived class may override this function. - * @param tsAvailabilities an array containing, for each eligible time_slot, that is - * chosen by the user, the availabilities that can be used - * @param {{ gender_inequality: number, slots_day: number, slots_week: number }} weights the weights associated with the optimality parameters - * @protected - */ - protected async makeSlot(tsAvailabilities: { time_slot: TimeSlot; availabilities: AvailabilityInfo[] }[], weights: { gender_inequality: number; slots_day: number; slots_week: number }): Promise<[Slot, Availability[]]> { - const maxSolLength=tsAvailabilities.map(tsa=> - tsa.availabilities.length).reduce((a,b)=>Math.max(a, b)) - let bestSol: SlotSolution = new SlotSolution(maxSolLength, weights); - let time_slot: TimeSlot= {start: "", end: ""}; //just to have an initializer - for(const ts of tsAvailabilities){ - const sol=await this.buildSlot(ts, weights); - if(sol){ - time_slot=ts.time_slot; - bestSol.updateIfWorseThan(sol); - } - } - if(!Number.isNaN(bestSol.loss)){ - const slot=await this.makeSlotObj(bestSol.membersInvolved(), time_slot); - return [slot, bestSol.getAvailabilitiesInfoLoss()] - } - throw new Error("Impossible to build a slot"); - } - - /** - * Verifies that a new set of slots is valid, that is: - * - the same availability is not used more than once in the same time slot, given as parameter; - * - no new slot uses an available non existing or not usable anymore; - * - no application that had a slot in the same time slot given ad parameter has lose the slot; - * - each new slot is associated with a set of availabilities that do not violate the constraints. - * If the new set of slots is valid, it registers them overwriting the existing ones. - * @param {TimeSlot} ts the time slot which the new group of slots belongs - * @param {Slot[]} new_slots the new group of slots - * @throws {Error} Will throw an error if the slots change is not valid for any of the previous reasons - */ - async verifySlotsChange(ts: TimeSlot, new_slots: Slot[]): Promise { - const slotMembers = await this.verifyAvailabilityUsedOnce(new_slots); - await this.verifyAvailabilitiesUsed(ts, slotMembers); - await this.verifyGlobalSlotsIntegrity(ts, new_slots); - - //list of applicants for each new slot - const applicantsIds=(await this.storage.applications.listFromSlotIds(new_slots.map((s)=>s.id))) - .map((a)=>a.applicant_id); - for(let i=0; i this.storage.slots.listMembers(slot.id))) - .reduce((flatten, thisVec) => flatten.concat(thisVec)); - const duplicatesPresent = (new Set(slotMembers.map((m) => m.id)).size !== slotMembers.length); - if (duplicatesPresent) throw new Error("The same member is involved in more than one slot at the same time"); - return slotMembers; - } - - /** - * Verifies that no new slot involves a member associated not free in the time slot of the slot. - * @param ts the time slot of the slot to be checked - * @param slotMembers the members involved in the slot be checked - * @throws {Error} if al least one slot involves a non available member - * @private - */ - private async verifyAvailabilitiesUsed(ts: TimeSlot, slotMembers: Member[]) { - const membersAvailable = (await this.storage.availabilities.listUsableInRange(ts)); - //from the members involved in new_slots, take in only the one not present in the list of available members for ts - const invalidMembers = slotMembers.filter((m) => !membersAvailable.some((av) => - av.member_id === m.id)).length; - if (invalidMembers > 0) throw new Error("At least one slot contains a non available member"); - } - - /** - * Verifies that a group of availabilities can be used to compose a valid slot - * @param {Member[]} applicantFriends the list of friends of the applicant the slot is to be composed for - * @param {AvailabilityInfo[]} candidates the list of availabilities, augmented with additional information - * @protected - */ - protected async verifySlotConstraints(applicantFriends: Member[], candidates: AvailabilityInfo[]){ - return (this.verifyFriendsConstraint(applicantFriends, candidates)) || - (SlotScheduler.verifyBasicSlotConstraints(candidates)) || - (await this.verifyAvConstraintsForSlot(candidates)); - } - - /** - * Verifies that a group of availabilities does not contain any availability associated with one - * of the applicant's friends - * @param {Member[]} applicantFriends the list of friends of the applicant the slot is to be composed for - * @param {AvailabilityInfo[]} candidates the list of availabilities, augmented with additional information - * @protected - */ - protected verifyFriendsConstraint(applicantFriends: Member[], candidates: Availability[]){ - const invalidAv=candidates.findIndex((av)=>applicantFriends.some(f=>f.id===av.member_id)); - return invalidAv===-1; - } - - /** - * Verifies that a slot contains at least two experts member and at least one board member - * @param {AvailabilityInfo[]} candidates the availabilities of the slot - * @return {boolean} true if the group of availabilities satisfy the conditions - * @protected - */ - protected static verifyBasicSlotConstraints(candidates: AvailabilityInfo[]): boolean { - const experts=candidates.map((av)=>av.info.is_expert ? 1:0).reduce(sum, 0); - const boards=candidates.map((av)=>av.info.is_board ? 1:0).reduce(sum, 0); - return experts>=2 && boards>=1; - } - - /** - * Verifies the following constraints on a group of availabilities to be used to compose a slot: - * - No member is already involved in more than a certain number of slots in the same day; - * - No member is already involved in more than a certain number of slots in the same week; - * - No member is already involved in more than a certain number of consecutive slots; - * @param {AvailabilityInfo[]} candidates the availabilities for composing the slot - * @protected - */ - protected async verifyAvConstraintsForSlot(candidates: AvailabilityInfo[]): Promise { - const {max_slots_day, max_slots_week, max_consecutive_slots} = await this.config.get("member"); - return !candidates.some((av)=>{ - const {slots_day, slots_week, consecutive_slots}=av.info; - return slots_day >= max_slots_day || slots_week >= max_slots_week || consecutive_slots >= max_consecutive_slots - }); - } - - /** - * Tries to find alternate availabilities for slot for which some availabilities have been rejected. - * Updates the list of the member in the database and updates the attendees for the calendar event. - * @param slot the slot to be purged - * @return {Promise} the list of the new availabilities used to purge the slot - */ - async purgeSlotAvailabilities(slot: Slot): Promise{ - const eligibleAvs=(await this.storage.availabilities.listUsableInRange(slot.time_slot)); - //map members into their availabilities for the time slot - let used=await asyncMap(slot.members, (m)=>this.storage.availabilities.get(slot.time_slot, m.id)); - const [valid, invalid]=partition(used, (av)=>av.state!=="cancelled"); - if(invalid.length>eligibleAvs.length) return []; //no solution - - const selected=eligibleAvs.slice(0, invalid.length); - const newAvs=[...valid, ...selected]; - await this.storage.slots.updateMembers(slot.id, newAvs); - - const slotMembers: Member[]= await asyncMap(newAvs, (av)=>this.storage.members.get(av.member_id)); - if(!slot.cal_id) throw new Error("Logic Error: an existing slot must have a cal_id"); - await this.calendar.changeEventAttendees(slot.cal_id, slotMembers); - return selected; - } - - /** - * Marks a slot as "rejected". Does not affect the related availabilities - * @param slot the slot to mark as rejected - */ - rejectSlot(slot: Slot): Promise{ - slot.state="rejected"; - return this.storage.slots.patch(slot.id, {state: "rejected"}); - } - - /** - * Changes the state of the availabilities associated to the slot so that they can be used - * for other slots - * @param {Slot} slot the slot whose availabilities need to be freed - * @return {Promise} the availabilities associated with the slot before they got modified - */ - async freeSlot(slot: Slot): Promise{ - if(!slot.cal_id) throw new Error("Logic Error: an existing slot must have a cal_id"); - const availabilities= await this.storage.availabilities.listFromSlot(slot.id); - await asyncMap(availabilities, (av)=>this.storage.availabilities.update(av.time_slot, - av.member_id,{state: av.state==="usedAndConfirmed" ? "confirmed": "subscribed"})); - await Promise.all([ //these two calls can be done in parallel - this.calendar.deleteEvent(slot.cal_id), - this.storage.slots.patch(slot.id, {cal_id: undefined})]); - return availabilities; - } - - /** - * Retrieves the list of time slots compatible with the applicant, in a time range. - * @param start the start time of the time window - * @param end the end time of the time window - * @param applicant_id the id of the applicant for whom the eligible time slots are to be returned - * @return {Promise} a list of time slots - */ - async eligibleTimeSlots(start: string, end: string, applicant_id: string): Promise{ - [start, end]=await this.correctTimeWindow(start, end); - const eligibleTs=await this.storage.time_slots.listEligible({start, end}, applicant_id); - const possibleSlots=await asyncFilter(eligibleTs, async (elem)=>{ - return new Promise(async ()=>{ - const avsInfo=await this.addInfoToAvailabilities(elem.availabilities); - return this.verifyAvConstraintsForSlot(avsInfo); - }) - }); - return possibleSlots.map((elem)=>elem.time_slot); - } - - /** - * Helper function to construct a slot object out of the memberIds and the time slot - * @param {string[]} memberIds the list of the members involved in the slot - * @param time_slot the time slot the slot is associated to - * @protected - */ - protected async makeSlotObj(memberIds: string[], time_slot: TimeSlot): Promise { - const members = (await this.storage.members.partialList(memberIds)) - .map(m=>({id: m.id, name: m.name, surname: m.surname, sex: m.sex, image: m.image, is_expert: m.is_expert, is_board: m.is_board})); - return { - id: 0, - interview_id: 0, - members: [members[0], members[1], ...members.slice(2)], - state: "assigned", - time_slot: time_slot - } - } - - /** - * Corrects the time window extremes when not compatible with the min_hours_before_first_timeslot - * configuration parameter - * @param start the start time of the time window - * @param end the end time of the time window - * @private - */ - private async correctTimeWindow(start: string, end: string) { - const nowDate= new Date(); - const startDate=new Date(start); - const endDate=new Date(end); - const min_delay_ms=(await this.config.get("applicant")).min_hours_before_first_timeslot*60*60*1000; - if(nowDate.getTime()+min_delay_ms. - */ - -/* - * File: ValidatorInterface.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 17 aprile 2021, 18:40 - */ - -import Ajv, {ErrorObject, ValidateFunction} from "ajv"; -import addFormats from "ajv-formats"; - -const schemaPath=process.cwd()+"/src/datatypes/json-schemas"; - -export interface Validator{ - validate : (entity:any) =>T; -} - - -export abstract class AjvValidator implements Validator { - protected static readonly ajv:Ajv=AjvValidator.initAjv(); - private static initAjv():Ajv{ - const ajv=new Ajv(); - addFormats(ajv); - ajv.addMetaSchema(require(schemaPath+"/json-schema-draft-06.json")) - const enums = require(schemaPath+'/enums.json'); - const Entities = require(schemaPath+'/entities.json'); - const DataTypes = require(schemaPath+'/dataTypes.json'); - const Person = require(schemaPath+'/person.json'); - const Application = require(schemaPath+'/application.json'); - const Payloads= require(schemaPath+'/payloads.json'); - - ajv.addSchema(Entities).addSchema(DataTypes).addSchema(Person).addSchema(Application) - .addSchema(enums).addSchema(Payloads); - return ajv; - } - abstract validate(entity: any): T; - throwError(errors : ErrorObject[]): never { - const errorStrings: string[] = []; - for (const error of errors){ - errorStrings.push(JSON.stringify(error)); - } - throw Error(errorStrings.join()); - } -} diff --git a/api/src/modules/routes/applicant.ts b/api/src/modules/routes/applicant.ts deleted file mode 100644 index 674e91d..0000000 --- a/api/src/modules/routes/applicant.ts +++ /dev/null @@ -1,19 +0,0 @@ -import {CommonRoutesConfig} from '../../common/common.routes.config'; -import express from 'express'; - -export class Applicant extends CommonRoutesConfig { - constructor(app: express.Application) { - super(app, 'ApplicantRoutes'); - } - - configureRoutes() { - this.app.route(`/applicant`) - .get((req: express.Request, res: express.Response) => { - res.status(200).send(`List of applicants`); - }) - .post((req: express.Request, res: express.Response) => { - res.status(200).send(`Post to applicant`); - }); - return this.app; - } -} \ No newline at end of file diff --git a/api/src/modules/utils.ts b/api/src/modules/utils.ts deleted file mode 100644 index a6ffa7f..0000000 --- a/api/src/modules/utils.ts +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: utils.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 26 maggio 2021, 11:07 - */ - -/** - * Return one random element of an array of elements - * @template T - * @param items an array of items - * @return {T} an element of the array - * @throws {Error} if the array is empty - */ -export function oneOf(items: T[]): T{ - if(items.length===0) throw new Error("Empty array"); - return items[Math.floor(Math.random() * items.length)]; -} - -export function copyArrayShallow(source: T[], dest: T[], [from, to]: [number, number]){ - if(dest.length(items: T[], predicate: (item: T)=>boolean){ - const trues: T[]=[], falsies: T[]=[]; - items.forEach((elem)=>{ - predicate(elem) ? trues.push(elem): falsies.push(elem); - }); - return [trues, falsies]; -} - -export async function asyncFilter(items: T[], predicate: (elem: T)=>Promise):Promise{ - const results = await Promise.all(items.map(predicate)); - return items.filter((_v, index) => results[index]); -} - -export async function asyncMap(items: T[], mapper: (elem:T)=>Promise):Promise{ - return Promise.all(items.map(mapper)); -} - -export const sum=(partialSum: number, addendum: number)=>{return partialSum+addendum}; diff --git a/api/src/person/personModelFactory.ts b/api/src/person/personModelFactory.ts deleted file mode 100644 index 16a1d8f..0000000 --- a/api/src/person/personModelFactory.ts +++ /dev/null @@ -1,63 +0,0 @@ -const { DataTypes, Model } = require('sequelize'); - -export type PersonModelAttributes = { - id: string, - name: string, - surname: string, - sex: string, - email: string, - phone_no: string - image: string -} - -export class PersonModel extends Model { - declare id: string; - declare name: string; - declare surname: string; - declare sex: string; - declare email: string; - declare image: string; - declare phone_no: string - -} - -export function personModelFactory(sequelize) { - PersonModel.init({ - id: { - type: DataTypes.STRING, - allowNull: false, - primaryKey: true, - }, - name: { - type: DataTypes.STRING, - allowNull: false - }, - sex: { - type: DataTypes.STRING, - allowNull: false - }, - surname: { - type: DataTypes.STRING, - allowNull: false - }, - email: { - type: DataTypes.STRING, - allowNull: false - }, - phone_no: { - type: DataTypes.STRING, - allowNull: false - }, - image: { - type: DataTypes.STRING, - allowNull: true, - }, - }, { - sequelize, - modelName: 'Person', - tableName: 'Person', - schema: 'public', - timestamps: false - }); - return PersonModel -} diff --git a/api/src/timer/timer.interceptor.ts b/api/src/timer/timer.interceptor.ts new file mode 100644 index 0000000..0b6752c --- /dev/null +++ b/api/src/timer/timer.interceptor.ts @@ -0,0 +1,26 @@ +import { + CallHandler, + ExecutionContext, + Injectable, + Logger, + NestInterceptor, +} from '@nestjs/common'; +import { catchError, Observable, tap } from 'rxjs'; + +@Injectable() +export class TimerInterceptor implements NestInterceptor { + private readonly logger = new Logger(TimerInterceptor.name); + + intercept(context: ExecutionContext, next: CallHandler): Observable { + const startTimer = Date.now(); + const logTimer = () => + this.logger.log(`Request took ${Date.now() - startTimer}ms`); + return next.handle().pipe( + tap(logTimer), + catchError((error: Error) => { + logTimer(); + throw error; + }), + ); + } +} diff --git a/api/src/users/create-user.dto.ts b/api/src/users/create-user.dto.ts new file mode 100644 index 0000000..b367db8 --- /dev/null +++ b/api/src/users/create-user.dto.ts @@ -0,0 +1,28 @@ +import { Person, Role } from '@hkrecruitment/shared'; +import { ApiProperty } from '@nestjs/swagger'; + +export class CreateUserDto implements Partial { + @ApiProperty() + oauthId: string; + + @ApiProperty() + firstName: string; + + @ApiProperty() + lastName: string; + + @ApiProperty() + sex: string; + + @ApiProperty() + email: string; + + @ApiProperty({ required: false }) + phone_no?: string; + + @ApiProperty({ required: false }) + telegramId?: string; + + @ApiProperty({ enum: Role, required: false }) + role?: Role; +} diff --git a/api/src/users/update-user.dto.ts b/api/src/users/update-user.dto.ts new file mode 100644 index 0000000..fac4f57 --- /dev/null +++ b/api/src/users/update-user.dto.ts @@ -0,0 +1,6 @@ +import { OmitType, PartialType } from '@nestjs/swagger'; +import { CreateUserDto } from './create-user.dto'; + +export class UpdateUserDto extends PartialType( + OmitType(CreateUserDto, ['oauthId'] as const), +) {} diff --git a/api/src/users/user.entity.ts b/api/src/users/user.entity.ts new file mode 100644 index 0000000..f797bca --- /dev/null +++ b/api/src/users/user.entity.ts @@ -0,0 +1,29 @@ +import { Column, Entity, PrimaryColumn } from 'typeorm'; +import { Person, Role } from '@hkrecruitment/shared'; + +@Entity() +export class User implements Person { + @PrimaryColumn() + oauthId: string; + + @Column() + firstName: string; + + @Column() + lastName: string; + + @Column() + sex: string; + + @Column() + email: string; + + @Column({ nullable: true }) + phone_no?: string; + + @Column({ nullable: true }) + telegramId?: string; + + @Column() + role: Role; +} diff --git a/api/src/users/users.controller.spec.ts b/api/src/users/users.controller.spec.ts new file mode 100644 index 0000000..3e27c39 --- /dev/null +++ b/api/src/users/users.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { UsersController } from './users.controller'; + +describe('UsersController', () => { + let controller: UsersController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [UsersController], + }).compile(); + + controller = module.get(UsersController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/api/src/users/users.controller.ts b/api/src/users/users.controller.ts new file mode 100644 index 0000000..75ad41c --- /dev/null +++ b/api/src/users/users.controller.ts @@ -0,0 +1,148 @@ +import { + Body, + Controller, + Delete, + ForbiddenException, + Get, + NotFoundException, + Param, + Patch, + Post, + Req, +} from '@nestjs/common'; +import { User } from './user.entity'; +import { UsersService } from './users.service'; +import { + Action, + AppAbility, + checkAbility, + createUserSchema, + Role, + updateUserSchema, +} from '@hkrecruitment/shared'; +import { CreateUserDto } from './create-user.dto'; +import { UpdateUserDto } from './update-user.dto'; +import { JoiValidate } from '../joi-validation/joi-validate.decorator'; +import { + ApiBadRequestResponse, + ApiBearerAuth, + ApiForbiddenResponse, + ApiNotFoundResponse, + ApiTags, + ApiUnauthorizedResponse, +} from '@nestjs/swagger'; +import { AuthenticatedRequest } from 'src/authorization/authenticated-request.types'; +import * as Joi from 'joi'; +import { CheckPolicies } from 'src/authorization/check-policies.decorator'; +import { Ability } from 'src/authorization/ability.decorator'; + +@ApiBearerAuth() +@ApiTags('users') +@Controller('users') +export class UsersController { + constructor(private readonly usersService: UsersService) {} + + @ApiUnauthorizedResponse() + @Get() + async findAll(@Ability() ability: AppAbility): Promise { + const users = await this.usersService.findAll(); + return users.filter((u) => checkAbility(ability, Action.Read, u, 'Person')); + } + + @ApiNotFoundResponse() + @ApiUnauthorizedResponse() + @Get(':oauthId') + @JoiValidate({ + param: Joi.string().required(), + }) + @CheckPolicies((ability) => ability.can(Action.Read, 'Person')) + async findByOauthId( + @Param('oauthId') oauthId: string, + @Ability() ability: AppAbility, + ): Promise { + const user = await this.usersService.findByOauthId(oauthId); + if (user === null) { + throw new NotFoundException(); + } + + if (!checkAbility(ability, Action.Read, user, 'Person')) { + throw new ForbiddenException(); + } + + return user; + } + + @ApiBadRequestResponse() + @ApiForbiddenResponse() + @Post() + @JoiValidate({ + body: createUserSchema.append({ oauthId: Joi.string().required() }), + }) + create( + @Body() user: CreateUserDto, + @Req() req: AuthenticatedRequest, + ): Promise { + const ability = req.ability; + if (!checkAbility(ability, Action.Create, user, 'Person')) { + throw new ForbiddenException(); + } + return this.usersService.create({ ...user, role: Role.None }); + } + + @ApiNotFoundResponse() + @ApiBadRequestResponse() + @ApiForbiddenResponse() + @Patch(':oauthId') + @JoiValidate({ + body: updateUserSchema, + param: Joi.string().required(), + }) + async update( + @Param('oauthId') oauthId: string, + @Body() updateUser: UpdateUserDto, + @Ability() ability: AppAbility, + ): Promise { + const user = await this.usersService.findByOauthId(oauthId); + if (user === null) { + throw new NotFoundException(); + } + + if ( + !checkAbility( + ability, + Action.Update, + { ...updateUser, oauthId }, + 'Person', + ) + ) { + throw new ForbiddenException(); + } + + return this.usersService.update({ + ...user, + ...updateUser, + }); + } + + @ApiNotFoundResponse() + @ApiForbiddenResponse() + @Delete(':oauthId') + @JoiValidate({ + param: Joi.string().required(), + }) + async delete( + @Param('oauthId') oauthId: string, + @Ability() ability: AppAbility, + ): Promise { + const user = await this.usersService.findByOauthId(oauthId); + if (user === null) { + throw new NotFoundException(); + } + + if (!checkAbility(ability, Action.Delete, user, 'Person')) { + throw new ForbiddenException(); + } + + return this.usersService.delete(user); + } +} diff --git a/api/src/users/users.module.ts b/api/src/users/users.module.ts new file mode 100644 index 0000000..82a6cdb --- /dev/null +++ b/api/src/users/users.module.ts @@ -0,0 +1,13 @@ +import { Module } from '@nestjs/common'; +import { UsersService } from './users.service'; +import { UsersController } from './users.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { User } from './user.entity'; + +@Module({ + imports: [TypeOrmModule.forFeature([User])], + providers: [UsersService], + controllers: [UsersController], + exports: [UsersService], +}) +export class UsersModule {} diff --git a/api/src/users/users.service.spec.ts b/api/src/users/users.service.spec.ts new file mode 100644 index 0000000..62815ba --- /dev/null +++ b/api/src/users/users.service.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { UsersService } from './users.service'; + +describe('UsersService', () => { + let service: UsersService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [UsersService], + }).compile(); + + service = module.get(UsersService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/api/src/users/users.service.ts b/api/src/users/users.service.ts new file mode 100644 index 0000000..e7c6e08 --- /dev/null +++ b/api/src/users/users.service.ts @@ -0,0 +1,46 @@ +import { ForbiddenException, Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { User } from './user.entity'; + +@Injectable() +export class UsersService { + constructor( + @InjectRepository(User) + private readonly userRepository: Repository, + ) {} + + async findAll(): Promise { + return this.userRepository.find(); + } + + async findByOauthId(oauthId: string): Promise { + const matches = await this.userRepository.findBy({ oauthId }); + return matches.length > 0 ? matches[0] : null; + } + + async delete(user: User): Promise { + return this.userRepository.remove(user); + } + + async create(user: User): Promise { + // add user to database if it doesn't exist + const existingUser = await this.findByOauthId(user.oauthId); + if (existingUser) { + throw new ForbiddenException('User already exists'); + } + return this.userRepository.save(user); + } + + async update(user: User): Promise { + return this.userRepository.save(user); + } + + async getRoleForOauthId(oauthId: string): Promise { + const user = await this.userRepository.findOne({ + where: { oauthId }, + select: ['role'], + }); + return user?.role; + } +} diff --git a/api/src/util.ts b/api/src/util.ts deleted file mode 100644 index 888a20f..0000000 --- a/api/src/util.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { fluentProvide } from "inversify-binding-decorators"; -import { interfaces } from "inversify"; - -export const provideSingleton = function ( - identifier: interfaces.ServiceIdentifier -) { - return fluentProvide(identifier).inSingletonScope().done(); -}; diff --git a/api/test/AuthZManager.test.ts b/api/test/AuthZManager.test.ts deleted file mode 100644 index cf0a88e..0000000 --- a/api/test/AuthZManager.test.ts +++ /dev/null @@ -1,230 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: AuthZManager.test.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 29 aprile 2021, 14:59 - */ - -import {BasicAuthZRule} from "../src/datatypes/authZRule"; -import {AuthZManager, AuthZRule} from "../src/modules/AuthZManager"; - -describe("Test AuthZRule", ()=>{ - describe("Construction", ()=>{ - const voidAcceptRule:BasicAuthZRule={ - deny: [ - {role:"none"} - ] - }; - const voidDenyRule:BasicAuthZRule={ - accept: [ - {role:"supervisor"} - ] - } - it("accept[] is defined", ()=>{ - const rule=new AuthZRule(voidAcceptRule); - expect(rule.accept).toStrictEqual([]); - expect(rule.deny[0]).toStrictEqual({role:"none"}) - }); - it("deny[] is defined", ()=>{ - const rule=new AuthZRule(voidDenyRule); - expect(rule.deny).toStrictEqual([]); - expect(rule.accept[0]).toStrictEqual({role:"supervisor"}); - }); - it("accept and deny mustn't be both empty", ()=>{ - expect(()=>new AuthZRule({})).toThrow(); - }) - }); - - describe("fillRule", ()=>{ - const paramId : BasicAuthZRule={ - accept: [ - {id: null, role:"none"}, - {role: null} - ] - }; - const paramId1 : BasicAuthZRule={ - accept: [ - {id: null, role:"none"} - ] - }; - const paramId2 : BasicAuthZRule={ - accept: [ - {id: null} - ], - deny: [ - {state: null} - ] - }; - it("Right number of nulls", ()=>{ - const rule1=new AuthZRule(paramId); - const rule2=new AuthZRule(paramId1); - const rule3=new AuthZRule(paramId2); - expect(rule1.fillablePropsNum).toBe(2); - expect(rule2.fillablePropsNum).toBe(1); - expect(rule3.fillablePropsNum).toBe(2); - }); - it("Fills part of constraint", ()=>{ - const rule=new AuthZRule(paramId1); - const acceptedParams = [{id:1}]; - const filledRule= rule.fillRule(acceptedParams, []); - expect(filledRule.accept[0]).toStrictEqual({id: acceptedParams[0].id, role: "none"}); - }); - it("Fills all constraints", ()=>{ - const rule=new AuthZRule(paramId); - const acceptedParams = [{id:1}, {role:"supervisor"}]; - const filledRule=rule.fillRule(acceptedParams, []); - expect(filledRule.accept[0]).toStrictEqual({id: acceptedParams[0].id, role: "none"}); - expect(filledRule.accept[1].role).toBe(acceptedParams[1].role); - }) - it("Fills deny and accept", ()=>{ - const rule=new AuthZRule(paramId2); - const acceptedParams = [{id:1}]; - const denyParams=[{state: "new"}]; - const filledRule=rule.fillRule(acceptedParams, denyParams); - expect(filledRule.accept[0].id).toBe(acceptedParams[0].id); - expect(filledRule.deny[0].state).toBe(denyParams[0].state); - }); - it("Input must fill all nulls", ()=>{ - const rule=new AuthZRule(paramId); - const acceptedParams = [{id:1}]; - expect(()=>rule.fillRule(acceptedParams, [])).toThrow(); - }); - }); - - describe("verifyRule", ()=>{ - it("Empty accept rule always returns true", ()=>{ - const emptyAccept= new AuthZRule({deny: [{id:1}]}); - expect(emptyAccept.verifyRule({})).toBe(true); - }); - it("single constraint goes in AND", ()=>{ - const data ={is_board:true, is_expert:false}; - const bsrule :BasicAuthZRule={accept: [{is_board:true, is_expert:true}]}; - const rule =new AuthZRule(bsrule); - expect(rule.verifyRule(data)).toBe(false); - }); - it("multiple constraints go in OR", ()=>{ - const data ={is_board:true, is_expert:false}; - const bsrule :BasicAuthZRule={accept: [{is_board:true}, {is_expert:true}]}; - const rule =new AuthZRule(bsrule); - expect(rule.verifyRule(data)).toBe(true); - }); - it("accept and deny constraints go in AND", ()=>{ - const data ={is_board:true, is_expert:false}; - const bsrule :BasicAuthZRule={accept: [{is_board:true}], deny:[{is_expert:true}]}; - const rule =new AuthZRule(bsrule); - expect(rule.verifyRule(data)).toBe(false); - }); - it("Missing property in data makes rule not verified", ()=>{ - const data ={is_expert:false}; - const data2 ={is_board:true}; - const bsrule :BasicAuthZRule={accept: [{is_board:true}], deny:[{is_expert:true}]}; - const rule =new AuthZRule(bsrule); - expect(rule.verifyRule(data)).toBe(false); - expect(rule.verifyRule(data2)).toBe(false); - }); - it("Rule not filled cannot be verified", ()=>{ - const bsrule :BasicAuthZRule={accept: [{is_board:null}], deny:[{is_expert:true}]}; - const rule =new AuthZRule(bsrule); - expect(()=>rule.verifyRule({})).toThrow(); - }) - }) -}) - -describe("Test AuthZManager", ()=>{ - const rules: BasicAuthZRule[]=[ - { - action: "italianStudentApplication", - accept: [ - {role: "clerk"}, - {role: "supervisor"}, - {role: "admin"} - ] - }, - { - action: "foreignStudentApplication", - accept: [ - { - role: "clerk", is_board: true - }, - { - role: "supervisor", is_board: true - }, - { - role: "admin" - } - ] - }, - { - action: "changeInterviewerSet", - accept: [ - {role: "supervisor"}, - {role: "admin"} - ] - }, - { - action: "changeSettings", - accept: [ - {role: "admin"} - ] - } - ]; - - describe("Construction and rule management", ()=>{ - it("Stores rules", ()=>{ - const m:AuthZManager=new AuthZManager(rules); - for(const rule of rules) - expect(m.rules.has(rule.action)).toBe(true); - }) - it("Add rule not present", ()=>{ - const m1=new AuthZManager(rules.slice(1)); - expect(m1.addRule(rules[0].action, new AuthZRule(rules[0]))).toBe(true); - expect(m1.rules.has(rules[0].action)).toBe(true); - }) - it("Does not add rule with same action", ()=>{ - const m1=new AuthZManager(rules.slice(1)); - const rule=new AuthZRule(rules[0]); - m1.addRule(rule.action, rule); - expect(m1.addRule(rule.action, rule)).toBe(false); - }) - it("Remove rule", ()=>{ - const m1=new AuthZManager(rules.slice(0,1)); - expect(m1.rules.has(rules[0].action)).toBe(true); - expect(m1.removeRule(rules[0].action)).toBe(true); - expect(m1.rules.has(rules[0].action)).toBe(false); - }) - it("Remove rule return false if no rule to remove", ()=>{ - const m1=new AuthZManager(rules.slice(0,1)); - expect(m1.removeRule("Not present")).toBe(false); - }) - }) - describe("Authorization", ()=>{ - const m:AuthZManager=new AuthZManager(rules); - it("Calls fillRule and verifyRule on the rule", ()=>{ - const spyAuthorize=jest.spyOn(m.rules.get(rules[0].action), "verifyRule") - const spyFill=jest.spyOn(m.rules.get(rules[0].action), "fillRule") - m.authorize(rules[0].action, {role:"clerk"}, [], []); - expect(spyFill).toHaveBeenCalled(); - expect(spyAuthorize).toHaveBeenCalled(); - }) - }) -}) diff --git a/api/test/ConfigManager.test.ts b/api/test/ConfigManager.test.ts deleted file mode 100644 index 306c040..0000000 --- a/api/test/ConfigManager.test.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: ConfigManager.test.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 07 maggio 2021, 22:52 - */ - -import {ConfigManager} from "../src/modules/ConfigManager"; -import {RecruitmentConfig} from "../src/config/recruitmentConfig"; -const fs = require('fs'); - - -describe("Test ConfigManager", ()=>{ - const testFilePath=process.cwd()+"/test/validationData/recruitmentConfig.json"; - const testConfig:RecruitmentConfig=require(testFilePath).recruitmentConfig; - const cm=new ConfigManager(testFilePath); - - it("Test get", ()=>{ - expect(cm.get()).resolves.toEqual(testConfig); - expect(cm.get("interview_template")).resolves.toBe(testConfig.interview_template); - }); - it("get returns a copy, not a reference", ()=>{ - return cm.get().then((config)=>{ - const changedProp=JSON.parse(JSON.stringify(config.interview_template+"_")); - config.interview_template=changedProp - return expect(cm.get("interview_template")).resolves.not.toBe(changedProp); - }); - }) - it.skip("Test update", ()=>{ - return cm.get("interview_template").then((previousValue)=>{ - const newValue=previousValue+"_"; - expect(cm.update("interview_template", newValue)).resolves.toBeDefined(); - return expect(cm.get("interview_template")).resolves.toBe(newValue); - }); - }); - it("update saves on file", ()=>{ - return cm.get("interview_template").then((previousValue)=>{ - const newValue=previousValue+"_"; - cm.update("interview_template", newValue) - .then(()=>{ - const rawData=fs.readFileSync(testFilePath); - const recrConfigRetr:RecruitmentConfig=JSON.parse(rawData).recruitmentConfig; - expect(recrConfigRetr.interview_template).toBe(newValue); - }); - }); - }); -}) diff --git a/api/test/GCalendar.test.ts b/api/test/GCalendar.test.ts deleted file mode 100644 index a14fbd0..0000000 --- a/api/test/GCalendar.test.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: GCalendar.test.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 04 maggio 2021, 12:41 - */ - -import {GCalendar} from "../src/modules/GCalendar"; -import {TimeSlot} from "../src/datatypes/dataTypes"; - -describe.skip("GCalendar Test", ()=>{ - const cal =new GCalendar(); - const randomId="jnfkjwfjkwfkwwk"; - const startDate=new Date(); - const endDate=new Date(); - const title ="Test Event (You can safely delete it)"; - const descr="Test Event description"; - const attendees=[{email:"haipubmnzrwwtpfurg@upived.online"}]; - const changedAttendees=[{email:"changed@upived.online"}]; - startDate.setSeconds(0, 0); - endDate.setHours(23, 59, 0, 0) - const ts:TimeSlot={start: startDate.toISOString(), end:endDate.toISOString()} - let eventId:string; - describe("Event creation and rejections using invalid id", ()=>{ - it("insertEvent", ()=>{ - return cal.insertEvent(ts, title, descr,attendees) - .then((id)=>{eventId=id; expect(id).toBeDefined()}); - }); - it("getEvent with random id gets rejects", ()=>{ - return expect(cal.getEvent(randomId)).rejects.toBeDefined(); - }); - it("deleteEvent with random id gets rejects", ()=>{ - return expect(cal.deleteEvent(randomId)).rejects.toBeDefined(); - }); - - describe("Event manipulation from valid id", ()=>{ - it("getEvent resolves", ()=>{ - return cal.getEvent(eventId).then((event)=>{ - expect(event.description).toEqual(descr); - expect(event.summary).toEqual(title); - expect(event.attendees[0].email).toEqual(attendees[0].email); - expect(new Date(event.start.dateTime)).toEqual(startDate); - expect(new Date(event.end.dateTime)).toEqual(endDate); - }) - }); - describe("changeAttendees", ()=>{ - it("changeAttendees changes only attendees", ()=>{ - return cal.changeEventAttendees(eventId, changedAttendees) - .then((event)=>{ - expect(event.description).toEqual(descr); - expect(event.summary).toEqual(title); - expect(event.attendees[0].email).toEqual(changedAttendees[0].email); - expect(new Date(event.start.dateTime)).toEqual(startDate); - expect(new Date(event.end.dateTime)).toEqual(endDate); }) - }); - describe("Deletion", ()=>{ - it("deleteEvent resolves", ()=>{ - return expect(cal.deleteEvent(eventId)).resolves.toBe(204); - }); - }); - }); - }); - }); -}) diff --git a/api/test/GDriveStorage.test.ts b/api/test/GDriveStorage.test.ts deleted file mode 100644 index e7ef62d..0000000 --- a/api/test/GDriveStorage.test.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: GDriveStorage.test.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 04 maggio 2021, 15:09 - */ - -import {GDriveStorage} from "../src/modules/GDriveStorage"; - -describe.skip("GDriveStorage Test", ()=>{ - const storage = new GDriveStorage(); - const folderName="Test Folder (you can safely remove)"; - let folder_id:string; - let file_id:string; - const sharedFileUrl="https://drive.google.com/file/d/1gxnPe-IztExwYhSVevHIqnoOwxU7BJlW/view?usp=sharing"; - const sharedFileId="1gxnPe-IztExwYhSVevHIqnoOwxU7BJlW"; - let copied_file_id:string; - describe("Resource creation", ()=>{ - it("createFolder", ()=>{ - return storage.createFolder(folderName) - .then((id)=>{folder_id=id; expect(id).toBeDefined()}) - }); - it("insertFile", ()=>{ - return storage.insertFile("Test File (you can safely remove)", new Uint8Array([42])) - .then((id)=>{file_id=id; expect(id).toBeDefined()}); - }); - it("copyFileFromStorage", ()=>{ - return storage.copyFileFromStorage(sharedFileId, "Test Shared File (you can safely remove)") - .then((id)=>{copied_file_id=id; expect(id).toBeDefined()}); - }) - it("getFolderByName", ()=>{ - return expect(storage.getFolderByName(folderName)).resolves.toBe(folder_id); - }); - it("fromUrlToId", ()=>{ - expect(storage.extractIdFrom(sharedFileUrl)).toBe(sharedFileId); - }) - describe("Resource creation inside folder", ()=>{ - let file_id2:string; - let folder_id2:string; - it("createFolder", ()=>{ - return storage.createFolder(folderName, folder_id) - .then((id)=>{folder_id2=id; expect(id).toBeDefined()}) - }); - it("insertFile", ()=>{ - return storage.insertFile("Test File (you can safely remove)", new Uint8Array([42]), folder_id) - .then((id)=>{file_id2=id; expect(id).toBeDefined()}); - }); - it("Multiple folders with same name inside same folder forbidden", ()=>{ - return expect(storage.createFolder(folderName)) - .rejects.toMatch('Multiple folders with same name inside the same folder'); - }) - describe("Resource deletion", ()=>{ - it("deleteFile", ()=>{ - //clean all the things done - expect(storage.deleteItem(file_id)).resolves.toBe(204); - expect(storage.deleteItem(file_id2)).resolves.toBe(204); - expect(storage.deleteItem(copied_file_id)).resolves.toBe(204); - expect(storage.deleteItem(folder_id2)).resolves.toBe(204); - return expect(storage.deleteItem(folder_id)).resolves.toBe(204); - }); - }) - }); - }); -}); diff --git a/api/test/GMailNotifier.test.ts b/api/test/GMailNotifier.test.ts deleted file mode 100644 index 17fd792..0000000 --- a/api/test/GMailNotifier.test.ts +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: GMailNotifier.test.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 01 maggio 2021, 15:38 - */ - -import {BasicMail, GMailNotifier, MailBuilder} from "../src/modules/GMailNotifier"; -import {MessageTemplates} from "../src/config/messageTemplate"; -import {Applicant, Member} from "../src/datatypes/entities"; -import {Application} from "../src/datatypes/application"; -import {NotifierData} from "../src/modules/NotificationSubsystem"; - -describe.only("Test BasicMail", ()=>{ - it("Has predefined headers after construction", ()=>{ - const m=new BasicMail("from@email.com", "to@email.com"); - expect(m.getHeader("Content-Type")).toBe("text/html; charset=\"UTF-8\""); - expect(m.getHeader("MIME-Version")).toBe("1.0"); - expect(m.getHeader("Content-Transfer-Encoding")).toBe("8bit"); - expect(m.getHeader("from")).toBe("from@email.com"); - expect(m.getHeader("to")).toBe("to@email.com"); - }); - it("Does not accept empty from or to during construction", ()=>{ - expect(()=>new BasicMail("", "to@email.com")).toThrow("Empty value for header 'from' not accepted") - expect(()=>new BasicMail("from@email.com", "")).toThrow("Empty value for header 'to' not accepted") - }); - it("setHeader adds header", ()=>{ - const m=new BasicMail("from@email.com", "to@email.com"); - m.setHeader("bcc", "bcc@mail.com"); - expect(m.getHeader("bcc")).toBe("bcc@mail.com"); - }); - it("setHeader does not duplicate same header", ()=>{ - const m=new BasicMail("from@email.com", "to@email.com"); - m.setHeader("from", "from2@mail.com"); - expect(m.getHeader("from")).toBe("from2@mail.com"); - }) - it("setHeader sets subject in base64", ()=>{ - const m=new BasicMail("from@email.com", "to@email.com"); - m.setHeader("subject", "Mail subject"); - expect(m.getHeader("subject")).toBe( "=?utf-8?B?"+"TWFpbCBzdWJqZWN0"+"?="); - }); - it("setHeader does not accept empty field", ()=>{ - const m=new BasicMail("from@email.com", "to@email.com"); - expect(()=>m.setHeader("subject", "")).toThrow("Empty value for header 'subject' not accepted"); - }); - it("setHeader validates comma separated list for bbc and reply-to", ()=>{ - const m=new BasicMail("from@email.com", "to@email.com"); - expect(()=>m.setHeader("bcc", "email@email.com email@email.com")) - .toThrow("Invalid field 'bcc'"); - expect(()=>m.setHeader("reply-to", "email@email.com email@email.com")) - .toThrow("Invalid field 'reply-to'"); - }); - it("setHeader validates email addresses", ()=>{ - expect(()=>new BasicMail("from", "to@email.com")).toThrow("Invalid field 'from'") - }) - it("getAsString correctly concatenates headers and body", ()=>{ - const m=new BasicMail("from@email.com", "to@email.com"); - m.setBody("body"); - const expected="Content-Type: text/html; charset=\"UTF-8\"\nMIME-Version: 1.0\nContent-Transfer-Encoding: 8bit\n" + - "from: from@email.com\nto: to@email.com\n\nbody"; - expect(m.getAsString()).toBe(expected); - }); - it("getAsB64String correctly converts", ()=>{ - const m=new BasicMail("from@email.com", "to@email.com"); - m.setBody("body"); - const expected='Q29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9IlVURi04IgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CmZyb206IGZyb21AZW1haWwuY29tCnRvOiB0b0BlbWFpbC5jb20KCmJvZHk='; - expect(m.getAsB64String()).toBe(expected); - }); -}); - -describe.skip("Test MailBuilder", ()=>{ - const templatesPath=process.cwd()+"/test/validationData/mailTemplates.json"; - const templates : MessageTemplates= require(templatesPath); - // @ts-ignore - templates["$schema"]=undefined; - const from=`from@email.com`; - const expFrom=`"RecruitmentHKN" <${from}>`; - const mb=new MailBuilder(templatesPath, from); - type MessageTemplatesField = keyof MessageTemplates; - - it("Has templates on construction", ()=>{ - for(const prop of Object.getOwnPropertyNames(templates) as MessageTemplatesField[]) - expect(mb.templates[prop]).toEqual(templates[prop]); - }); - describe("Mail construction", ()=>{ - const expSubIt="[Mario Rossi] Candidatura accettata!"; - const expBodyIt="Caro Mario Rossi, la tua candidatura è stata accettata!"; - const expSubItFm="[Maria Bianchi] Candidatura accettata!"; - const expBodyItFm="Cara Maria Bianchi, la tua candidatura è stata accettata!" - const expSubEng="[Mario Rossi] Application accepted!"; - const expBodyEng="Dear Mario Rossi, your application has been accepted!"; - const expTo="to@email.com"; - const bcc=new Set(["bcc@email.com", "bcc2@email.com"]); - const rplto=new Set(["reply-to@email.com", "reply-to2@email.com"]); - - - - it("BuildMail mail for italian male", ()=>{ - const m=mb.buildMail("application_accepted", "ita", "male", - {name:"Mario", surname: "Rossi"}, expTo, bcc, rplto); - const tgMail=new BasicMail(expFrom, expTo) - .setHeader("subject", expSubIt).setHeader("bcc", Array.from(bcc).join(",")) - .setHeader("reply-to", Array.from(rplto).join(",")); - tgMail.setBody(expBodyIt); - expect(m).toEqual(tgMail); - }); - it("BuildMail mail for italian female", ()=>{ - const m=mb.buildMail("application_accepted", "ita", "female", - {name:"Maria", surname: "Bianchi"}, expTo, bcc, rplto); - const tgMail=new BasicMail(expFrom, expTo) - .setHeader("subject", expSubItFm).setHeader("bcc", Array.from(bcc).join(",")) - .setHeader("reply-to", Array.from(rplto).join(",")); - tgMail.setBody(expBodyItFm); - expect(m).toEqual(tgMail); - }); - it("BuildMail english", ()=>{ - const m=mb.buildMail("application_accepted", "eng", "male", - {name:"Mario", surname: "Rossi"}, expTo, bcc, rplto); - const tgMail=new BasicMail(expFrom, expTo) - .setHeader("subject", expSubEng).setHeader("bcc", Array.from(bcc).join(",")) - .setHeader("reply-to", Array.from(rplto).join(",")); - tgMail.setBody(expBodyEng); - expect(m).toEqual(tgMail); - }) - it("customMail", ()=>{ - const m=mb.customMail({subject:expSubIt, body:expBodyIt}, - expTo, bcc, rplto); - const tgMail=new BasicMail(expFrom, expTo) - .setHeader("subject", expSubIt).setHeader("bcc", Array.from(bcc).join(",")) - .setHeader("reply-to", Array.from(rplto).join(",")); - tgMail.setBody(expBodyIt); - expect(m).toEqual(tgMail); - }); - }); - it("getRequiredFields", ()=>{ - expect(mb.getRequiredFields("require_availability_confirmation", "ita")) - .toEqual(["name", "surname", "start", "end"]); - }) -}); - -/** - * These tests are very basic - */ -describe("Test GMailNotifier", ()=>{ - const getMockedDao= ()=>{ - return { - members: { - get: jest.fn(() => { - return new Promise((res) => res({} as Member)) - }), - supervisors: { - list: jest.fn(() => { - return new Promise((res) => res([] as Member[])) - }) - } - }, - applicants: { - get: jest.fn(() => { - return new Promise((res) => res({} as Applicant)) - }), - }, - applications: { - get: jest.fn(() => { - return new Promise((res) => res({} as Application)) - }) - }, - notifications: { - insert: ()=>{return new Promise(()=>{})} //not interested here in this - } - }; - } - const mockedDao=getMockedDao(); - // @ts-ignore - const notifier=new GMailNotifier(mockedDao); - let gMailNotifierSendMail: (mail:BasicMail)=>Promise; - beforeAll(()=>{ - //to avoid to call GMail API: this assumes that GMailNotifier.sendMail works - // @ts-ignore - gMailNotifierSendMail=notifier.constructor.sendMail; - // @ts-ignore - notifier.constructor.sendMail= ()=>{ - return new Promise((resolve)=>resolve(200)); - } - }); - afterAll(()=>{ - //restore the original method - // @ts-ignore - notifier.constructor.sendMail= gMailNotifierSendMail; - }); - it("buildMail sets cc header", ()=>{ - const data:NotifierData={ // @ts-ignore - secondaryRecipient: {email: "hknMember@email.com"}, // @ts-ignore - lang: "ita", notification: {uri: "https://uri.com"}, // @ts-ignore - mainRecipient: {name: "Mario", surname:"Rossi", sex:"male", email: "mariorossi@email.com"} - } - const mail=notifier.buildMail("application_accepted", data, - [data.mainRecipient.email, data.mainRecipient.email], "bcc@email.com"); - expect(mail.getHeader("cc")).toBe(data.secondaryRecipient?.email); - - }) - it("Notify resolves", ()=>{ - // @ts-ignore - mockedDao.members.supervisors.list.mockReturnValueOnce(new Promise((res)=>res([{email: "email@email.com"}, {email: "emai@email.com"}]))); - const data:NotifierData={ // @ts-ignore - secondaryRecipient: {email: "email@email.com"}, // @ts-ignore - lang: "ita", notification: {uri: "https://uri.com"}, // @ts-ignore - mainRecipient: {name: "Mario", surname:"Rossi", sex:"male", email: "mariorossi@email.com"} - } - return notifier.notify("new_application", data) - .then(()=>{ - expect(mockedDao.members.supervisors.list.mock.calls.length).toBe(1); - }); - }); - - it("Notify with insufficient data rejects", ()=>{ - const mockedDao=getMockedDao(); - // @ts-ignore - const notifier=new GMailNotifier(mockedDao); - //missing {start, end} of the time slot of the availability that requires confirmation - const data:NotifierData={ // @ts-ignore - secondaryRecipient: {email: "email@email.com"}, // @ts-ignore - lang: "ita", notification: {uri: "https://uri.com"}, // @ts-ignore - mainRecipient: {name: "HKnuer", surname:"HKnuer", sex:"male", email: "hknuer@hkn.com"} - } - return expect(notifier.notify("require_availability_confirmation", data)) - .rejects.toThrow(`Not enought data for event require_availability_confirmation`); - }); -}) -describe("Test to real GMail API", ()=>{ - it("gmail send returns success", ()=>{ - const tg: BasicMail = new BasicMail("recruitment-noreply@hknpolito.org", "email@email.com"); - tg.setHeader("subject", "Mail di prova").setBody("Questa è una mail di prova"); - // @ts-ignore because sendMail is private - return expect(GMailNotifier.sendMail(tg)).resolves.toBe(200); - }) -}) diff --git a/api/test/NotificationSubsystem.test.ts b/api/test/NotificationSubsystem.test.ts deleted file mode 100644 index bf02252..0000000 --- a/api/test/NotificationSubsystem.test.ts +++ /dev/null @@ -1,279 +0,0 @@ -/* - * Copyright (c) 2021 Riccardo Zaccone - * - * This file is part of api. - * api is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * api is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with api. If not, see . - */ - -/* - * File: NotificationSubsystem.test.ts - * Project: api - * Authors: - * Riccardo Zaccone - * - * Created on 08 maggio 2021, 12:06 - */ - -import {buildNotification, NotificationSubsystem, RecipientsSelector} from "../src/modules/NotificationSubsystem"; -import {Application} from "../src/datatypes/application"; -import {Compensator} from "../src/modules/Compensator"; -import {ConfigManager} from "../src/modules/ConfigManager"; -import {Applicant, Interview, Member} from "../src/datatypes/entities"; -import {NotificationMethod} from "../src/config/recruitmentConfig"; - - -describe("Test RecipientsSelector", ()=>{ - let nDao:any; - let rs:RecipientsSelector; - beforeEach(()=>{ - nDao=getnDao(); - rs=new RecipientsSelector(nDao) - }); - function getnDao(){ - return { - applications: { - getApplicant: jest.fn(), - get: jest.fn() - }, - members: { - get: jest.fn(), - supervisors:{ - list: jest.fn(), - }, - clerks:{ - list: jest.fn(), - } - }, - interviews: { - get: jest.fn() - } - } - } - const nowStr=new Date().toISOString(); - const clerk: Member ={ - email: "email@email.com", - id: "1", - is_board: false, - is_expert: false, - name: "name", - phone_no: "1234", - role: "clerk", - sex: "male", - surname: "surname", - image: "" - } - const boardClerk: Member ={ - email: "email@email.com", - id: "1", - is_board: true, - is_expert: false, - name: "name", - phone_no: "1234", - role: "clerk", - sex: "male", - surname: "surname", - image: "" - } - const bscAppAccepted: Application = { - applicant_id: "1", - id: 1, ita_level: "C2", state: "accepted", submission_date: nowStr, type: "BSc", - last_modified: {attributes: [], member_id: "10", time: nowStr} - }; - const phdAppNew: Application = { - applicant_id: "1", - id: 2, ita_level: "C2", state: "new", submission_date: nowStr, type: "PhD" - }; - const interview: Interview = { - application_id: 1, last_modified: {attributes: [], member_id: "10", time: nowStr}, notes: "" - }; - const bscAppNew: Application = { - applicant_id: "1", - id: 1, ita_level: "C2", state: "new", submission_date: nowStr, type: "BSc" - }; - const applicant: Applicant ={ - birth_date: "", email: "", how_know_HKN: "", id: "1", name: "", phone_no: "", sex: "male", surname: "", - image: "" - - } - describe("selectMember", ()=>{ - it("check on parameters", ()=>{ - //member_id missing - expect(()=>rs.selectMember({start: nowStr, end:nowStr})) - .toThrow("Missing parameters"); - //end missing - expect(()=>rs.selectMember({start: nowStr, member_id: "1" })) - .toThrow("Missing parameters"); - //start missing - expect(()=>rs.selectMember({end:nowStr, member_id: "1" })) - .toThrow("Missing parameters"); - }); - it("calls NotificationDAO.members.get", ()=>{ - nDao.members.get.mockReturnValueOnce(new Promise((res)=>res(clerk))); - return rs.selectMember({start: nowStr, end: nowStr, member_id: "1" }) - .then(()=>{ - expect(nDao.members.get.mock.calls[0][0]).toBe("1"); - }) - }); - }); - describe("selectApplicantFromApplication", ()=>{ - it("check on parameters", ()=>{ - //application_id missing - return expect(()=>rs.selectApplicantFromApplication({})). - rejects.toThrow("Missing application_id"); - }); - it("calls dao.applications.get, dao.applications.getApplicant", ()=>{ - const app_id=1; - nDao.applications.getApplicant.mockReturnValueOnce(new Promise((res)=>res(applicant))); - return rs.selectApplicantFromApplication({application_id: app_id}) - .then(()=>{ - expect(nDao.applications.getApplicant.mock.calls[0][0]).toBe(app_id); - expect(nDao.applications.get.mock.calls[0][0]).toBe(app_id); - expect(nDao.applications.get.mock.calls[0][1]).toBe(clerk.id); - - }); - }); - - }); - describe("selectApplicantFromInterview", ()=>{ - it("check on parameters", ()=>{ - //interview_id missing - return expect(()=>rs.selectApplicantFromInterview({})) - .rejects.toThrow("Missing interview_id"); - }); - it("calls dao.interviews.get, dao.applications.get, dao.applications.getApplicant", ()=>{ - const int_id=2; - nDao.interviews.get.mockReturnValueOnce(new Promise((res)=>res(interview))); - nDao.applications.getApplicant.mockReturnValueOnce(new Promise((res)=>res(applicant))); - - return rs.selectApplicantFromInterview({interview_id: int_id}) - .then(()=>{ - expect(nDao.interviews.get.mock.calls[0][0]).toBe(int_id); - expect(nDao.applications.getApplicant.mock.calls[0][0]).toBe(interview.application_id); - expect(nDao.applications.get.mock.calls[0][0]).toBe(interview.application_id); - }) - }); - }); - describe("secondaryRecipient", ()=>{ - it("calls dao.member.supervisor.list if application revocated", ()=>{ - nDao.members.supervisors.list.mockReturnValueOnce(new Promise((res)=>res([clerk, clerk]))) - // @ts-ignore - return rs.secondaryRecipient("application_revocated", {}).then(()=>{ - expect(nDao.members.supervisors.list).toBeCalled(); - }) - }); - it("calls dao.members.get with member_id in app.last_modified", ()=>{ - return rs.secondaryRecipient("interview_mentee_accepted", bscAppAccepted) - .then(()=>{ - expect(nDao.members.get.mock.calls[0][0]).toBe(bscAppAccepted.last_modified?.member_id); - }) - }); - it("call to dao.member.clerks.list, bsc application", ()=>{ - nDao.members.clerks.list.mockReturnValueOnce(new Promise((res)=>res([clerk, boardClerk]))); - return rs.secondaryRecipient("new_application", bscAppNew) - .then((clerkR)=>{ - expect(nDao.members.clerks.list).toBeCalled(); - expect(clerkR).toEqual(clerk); - }) - }); - it("call to dao.member.clerks.list, phd application", ()=>{ - nDao.members.clerks.list.mockReturnValueOnce(new Promise((res)=>res([clerk, boardClerk]))); - return rs.secondaryRecipient("new_application", phdAppNew) - .then((clerk)=>{ - expect(nDao.members.clerks.list).toBeCalled(); - expect(clerk).toEqual(boardClerk); - }) - }) - }); -}) -/** - * These tests are very basic - */ -describe("Test NotificationSubsystem", ()=>{ - const nDao={ - notifications: { - insert: jest.fn((uri:string, text:string, mid:string, aid:string) => { - return new Promise((res) => res({} as Application))}) - }, - applications: { - getApplicant: jest.fn((id:number)=>{return new Promise((res)=>res({} as Applicant))}), - get: jest.fn((id:number)=>{return new Promise((res)=>res({} as Application))}) - }, - members: { - get: jest.fn((id:string)=>{return new Promise((res)=>res({} as Member))}) - } - } - const testFilePath=process.cwd()+"/test/validationData/recruitmentConfig.json"; - const cfM=new ConfigManager(testFilePath); - // @ts-ignore - const ns=new NotificationSubsystem(nDao, {} as Compensator, cfM); - - const containsStrategy= (vec: {event:string, methods: NotificationMethod[]}[], elem: {event:string, methods: NotificationMethod[]})=>{ - const index=vec.findIndex((item)=>{ - let found=true; - elem.methods.forEach((item2)=>found&&=item.methods.includes(item2)) - return item.event===elem.event && found; - }); - return index>=0; - } - describe("selectNotifiers", ()=>{ - it("Throws on missing method", ()=>{ - return cfM.get("notification_strategies") - .then((res)=>{ - expect(containsStrategy(res, {event: "application_accepted", methods: ["email", "push"]})).toBe(true); - return expect(()=>ns.selectNotifiers("application_accepted")) - .rejects.toThrow("Method not available push") - }) - }); - it("Throws on missing event", ()=>{ - return cfM.get("notification_strategies") - .then((res)=>{ - expect(containsStrategy(res, {event: "new_application", methods: ["email", "push"]})).toBe(false); - return expect(()=>ns.selectNotifiers("new_application")) - .rejects.toThrow("Notification methods missing for event new_application"); - }) - }); - it("Return correct notifiers", ()=>{ - return cfM.get("notification_strategies") - .then((res)=>{ - expect(containsStrategy(res, {event: "application_revocated", methods: ["email"]})).toBe(true); - return ns.selectNotifiers("application_revocated") - .then((notifiers)=>{ - expect(notifiers.length).toBe(1); - expect(notifiers[0].method_implemented).toBe("email"); - }) - }) - }); - }) - - describe("buildNotification", ()=>{ - // @ts-ignore only the minumum required - const applicant: Applicant ={id: "1"}; - // @ts-ignore only the minumum required - const clerk: Member ={id: "2"} - it("applicant and secondaryRecipient", ()=>{ - const n=buildNotification("application_accepted", applicant, clerk, "applicant","ita"); - expect(n.member_id).toBe(clerk.id); - expect(n.applicant_id).toBe(applicant.id); - }); - it("applicant without secondary recipient throws", ()=>{ - expect(()=>buildNotification("application_accepted", applicant, null, "applicant","ita")) - .toThrow(); - }); - it("member without secondary recipient is accepted", ()=>{ - const n=buildNotification("availability_not_required", clerk, null, "member","ita"); - expect(n.member_id).toBe(clerk.id); - expect(n.applicant_id).toBe("0"); - }); - }); -}); diff --git a/api/test/app.e2e-spec.ts b/api/test/app.e2e-spec.ts new file mode 100644 index 0000000..50cda62 --- /dev/null +++ b/api/test/app.e2e-spec.ts @@ -0,0 +1,24 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { INestApplication } from '@nestjs/common'; +import * as request from 'supertest'; +import { AppModule } from './../src/app.module'; + +describe('AppController (e2e)', () => { + let app: INestApplication; + + beforeEach(async () => { + const moduleFixture: TestingModule = await Test.createTestingModule({ + imports: [AppModule], + }).compile(); + + app = moduleFixture.createNestApplication(); + await app.init(); + }); + + it('/ (GET)', () => { + return request(app.getHttpServer()) + .get('/') + .expect(200) + .expect('Hello World!'); + }); +}); diff --git a/api/test/jest-e2e.json b/api/test/jest-e2e.json new file mode 100644 index 0000000..e9d912f --- /dev/null +++ b/api/test/jest-e2e.json @@ -0,0 +1,9 @@ +{ + "moduleFileExtensions": ["js", "json", "ts"], + "rootDir": ".", + "testEnvironment": "node", + "testRegex": ".e2e-spec.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + } +} diff --git a/api/test/validationData/mailTemplates.json b/api/test/validationData/mailTemplates.json deleted file mode 100644 index b2a0971..0000000 --- a/api/test/validationData/mailTemplates.json +++ /dev/null @@ -1,214 +0,0 @@ -{ - "$schema": "../../src/config/json-schema/messageTemplate.json", - "new_application": { - "ita": { - "subject": "[name surname] Candidatura accettata!", - "body": "Car name surname, la tua candidatura è stata accettata!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [ - { - "placeholder": "Car", - "female": "Cara", - "male": "Caro" - } - ] - }, - "eng": { - "subject": "[name surname] Application accepted!", - "body": "Dear name surname, your application has been accepted!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [] - } - }, - "application_accepted": { - "ita": { - "subject": "[name surname] Candidatura accettata!", - "body": "Car name surname, la tua candidatura è stata accettata!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [ - { - "placeholder": "Car", - "female": "Cara", - "male": "Caro" - } - ] - }, - "eng": { - "subject": "[name surname] Application accepted!", - "body": "Dear name surname, your application has been accepted!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [] - } - }, - "application_revocated": { - "ita": { - "subject": "[name surname] Candidatura revocata!", - "body": "Car name surname, ci dispiace sapere che hai deciso di cancellare la tua candidatura", - "fields": [ - "name", - "surname" - ], - "vocabulary": [ - { - "placeholder": "Car", - "female": "Cara", - "male": "Caro" - } - ] - }, - "eng": { - "subject": "[name surname] Application accepted!", - "body": "Dear name surname, your application has been accepted!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [] - } - }, - "require_availability_confirmation": { - "ita": { - "subject": "[name surname] Conferma la tua disponibilità!", - "body": "Gentile HKnuer name surname, conferma la tua disponibilità per start-end!", - "fields": [ - "name", - "surname", - "start", - "end" - ], - "vocabulary": [ - { - "placeholder": "Car", - "female": "Cara", - "male": "Caro" - } - ] - }, - "eng": { - "subject": "[name surname] Application accepted!", - "body": "Dear name surname, your application has been accepted!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [] - } - }, - "slot_reserved": { - "ita": { - "subject": "[name surname] Colloquio pianificato!", - "body": "Car name surname, il tuo colloquio è stato fissato per start, trovi i dettagli sulla tua pagina e sull'evento Google Calendar!", - "fields": [ - "name", - "surname", - "start" - ], - "vocabulary": [ - { - "placeholder": "Car", - "female": "Cara", - "male": "Caro" - } - ] - }, - "eng": { - "subject": "[name surname] Application accepted!", - "body": "Dear name surname, your application has been accepted!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [] - } - }, - "interview_member_accepted": { - "ita": { - "subject": "[name surname] Benvenuto in HKN!", - "body": "Car name surname, a seguito del nostro colloquio tenutosi start, abbiamo deciso che saremmo felici se tu ti unissi ad HKN!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [ - { - "placeholder": "Car", - "female": "Cara", - "male": "Caro" - } - ] - }, - "eng": { - "subject": "[name surname] Application accepted!", - "body": "Dear name surname, your application has been accepted!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [] - } - }, - "interview_mentee_accepted": { - "ita": { - "subject": "[name surname] Candidatura accettata!", - "body": "Car name surname, la tua candidatura è stata accettata!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [ - { - "placeholder": "Car", - "female": "Cara", - "male": "Caro" - } - ] - }, - "eng": { - "subject": "[name surname] Application accepted!", - "body": "Dear name surname, your application has been accepted!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [] - } - }, - "interview_rejected": { - "ita": { - "subject": "[name surname] Candidatura accettata!", - "body": "Car name surname, la tua candidatura è stata accettata!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [ - { - "placeholder": "Car", - "female": "Cara", - "male": "Caro" - } - ] - }, - "eng": { - "subject": "[name surname] Application accepted!", - "body": "Dear name surname, your application has been accepted!", - "fields": [ - "name", - "surname" - ], - "vocabulary": [] - } - } -} diff --git a/api/test/validationData/recruitmentConfig.json b/api/test/validationData/recruitmentConfig.json deleted file mode 100644 index dc1176a..0000000 --- a/api/test/validationData/recruitmentConfig.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "$schema": "./../src/config/json-schema/recruitmentConfig.json", - "recruitmentConfig": { - "applicant": { - "timeslots_num": 3, - "min_hours_before_first_timeslot": 48, - "min_timeslots_chooseAmong": 10 - }, - "member": { - "max_consecutive_slots": 2, - "max_slots_day": 3, - "max_slots_week": 5, - "min_hours_before_interviewer_confirm": 6, - "metrics_weight": { - "gender_inequality": 0.2, - "slots_day": 0.5, - "slots_week": 0.3 - }, - "reminder_availability_confirmation_hours": 1 - }, - "compensation": { - "availability_compensation_strategies": [ - { - "strategy": "trySubstitution" - }, - { - "strategy": "searchSubstitution", - "broadcasting": "allInterviewers" - }, - { - "strategy": "manual_fallback" - } - ] - }, - "notification_strategies": [ - { - "event": "application_accepted", - "methods": [ - "email", - "push" - ] - }, - { - "event": "application_revocated", - "methods": [ - "email" - ] - } - ], - "slot_computational_strategy": "bestFit", - "interview_template": "https://drive.google.com/file/d/0B9gZZKO4-NQ3c3RhcnRlcl9maWxlX2Rhc2hlclYw/view?usp=sharing_________" - } -} \ No newline at end of file diff --git a/api/tsconfig.build.json b/api/tsconfig.build.json new file mode 100644 index 0000000..64f86c6 --- /dev/null +++ b/api/tsconfig.build.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] +} diff --git a/api/tsconfig.json b/api/tsconfig.json index c7146d7..e1dda04 100644 --- a/api/tsconfig.json +++ b/api/tsconfig.json @@ -1,19 +1,25 @@ { - "compilerOptions": { - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "target": "es6", - "lib": ["es6"], - "types": ["reflect-metadata"], - "module": "commonjs", - "moduleResolution": "node", + "compilerOptions": { + "module": "commonjs", + "declaration": true, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": "es2017", + "sourceMap": true, "outDir": "./dist", - "inlineSourceMap": true, - "esModuleInterop": true - }, - "exclude": [ - "test", - "src/modules", - "src/config" - ] -} + "baseUrl": "./", + "incremental": true, + "skipLibCheck": true, + "strictNullChecks": false, + "noImplicitAny": false, + "strictBindCallApply": false, + "forceConsistentCasingInFileNames": false, + "noFallthroughCasesInSwitch": false, + "paths": { + "@hkrecruitment/shared": ["../shared/src"], + "@hkrecruitment/shared/*": ["../shared/src/*"] + } + } +} \ No newline at end of file diff --git a/api/tsoa.json b/api/tsoa.json deleted file mode 100644 index c253112..0000000 --- a/api/tsoa.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "entryFile": "app.ts", - "noImplicitAdditionalProperties": "throw-on-extras", - "controllerPathGlobs": [ - "src/**/*controller.ts" - ], - "spec": { - "outputDirectory": "build", - "specVersion": 3, - "spec": { - "servers": [ - { - "url": "https://hkrecruitment-dev-environment.herokuapp.com/", - "description": "Dev environment" - } - ] - } - }, - "routes": { - "middleware": "express", - "routesDir": "build", - "iocModule": "src/ioc/ioc" - } -} diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 387ee2e..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: '3' -services: - api: - build: api/ - env_file: - - api/.env - command: 'npm run start-local' - ports: - - '3000:3000' diff --git a/frontend/hkrecruitment/.gitignore b/frontend/.gitignore similarity index 100% rename from frontend/hkrecruitment/.gitignore rename to frontend/.gitignore diff --git a/frontend/README.md b/frontend/README.md new file mode 100644 index 0000000..ba5278b --- /dev/null +++ b/frontend/README.md @@ -0,0 +1,9 @@ +# Getting Started with Create React App + +This project was **NOT** bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `pnpm dev` or `pnpm --filter frontend dev` from the root of the repo diff --git a/frontend/hkrecruitment/README.md b/frontend/hkrecruitment/README.md deleted file mode 100644 index 58beeac..0000000 --- a/frontend/hkrecruitment/README.md +++ /dev/null @@ -1,70 +0,0 @@ -# Getting Started with Create React App - -This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). - -## Available Scripts - -In the project directory, you can run: - -### `npm start` - -Runs the app in the development mode.\ -Open [http://localhost:3000](http://localhost:3000) to view it in your browser. - -The page will reload when you make changes.\ -You may also see any lint errors in the console. - -### `npm test` - -Launches the test runner in the interactive watch mode.\ -See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. - -### `npm run build` - -Builds the app for production to the `build` folder.\ -It correctly bundles React in production mode and optimizes the build for the best performance. - -The build is minified and the filenames include the hashes.\ -Your app is ready to be deployed! - -See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. - -### `npm run eject` - -**Note: this is a one-way operation. Once you `eject`, you can't go back!** - -If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. - -Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own. - -You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it. - -## Learn More - -You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). - -To learn React, check out the [React documentation](https://reactjs.org/). - -### Code Splitting - -This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) - -### Analyzing the Bundle Size - -This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) - -### Making a Progressive Web App - -This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) - -### Advanced Configuration - -This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) - -### Deployment - -This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) - -### `npm run build` fails to minify - -This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) diff --git a/frontend/hkrecruitment/package-lock.json b/frontend/hkrecruitment/package-lock.json deleted file mode 100644 index 932ff86..0000000 --- a/frontend/hkrecruitment/package-lock.json +++ /dev/null @@ -1,28143 +0,0 @@ -{ - "name": "hkrecruitment", - "version": "0.1.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "hkrecruitment", - "version": "0.1.0", - "dependencies": { - "@auth0/auth0-react": "^1.9.0", - "@testing-library/jest-dom": "^5.16.2", - "@testing-library/react": "^12.1.3", - "@testing-library/user-event": "^13.5.0", - "bootstrap": "^5.1.3", - "moment": "^2.29.3", - "moment-timezone": "^0.5.34", - "react": "^17.0.2", - "react-bootstrap": "^2.2.3", - "react-dom": "^17.0.2", - "react-moment": "^1.1.2", - "react-router-dom": "^6.2.1", - "react-scripts": "5.0.0", - "web-vitals": "^2.1.4" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@auth0/auth0-react": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@auth0/auth0-react/-/auth0-react-1.9.0.tgz", - "integrity": "sha512-VkovI2i7dI1dkIJAdS51O9XMq6vlcHJn9DL+if4rSxt+sNocFd1i4q0j07a9XbafBj4/WEkSbOiX93z2ZXqdAA==", - "dependencies": { - "@auth0/auth0-spa-js": "^1.19.3" - }, - "peerDependencies": { - "react": "^16.11.0 || ^17", - "react-dom": "^16.11.0 || ^17" - } - }, - "node_modules/@auth0/auth0-spa-js": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@auth0/auth0-spa-js/-/auth0-spa-js-1.21.0.tgz", - "integrity": "sha512-a+8+onJdOIUSEEjdIzP/BGd731DZjBn2Q0tH+v7H+bN9ldeuBOifnjPbFwQAriL+94SwkaqhoFx3L6uGDk3+vg==", - "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "browser-tabs-lock": "^1.2.15", - "core-js": "^3.20.3", - "es-cookie": "^1.3.2", - "fast-text-encoding": "^1.0.3", - "promise-polyfill": "^8.2.1", - "unfetch": "^4.2.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.17.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", - "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.3", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", - "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", - "dependencies": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@babel/eslint-parser/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@babel/eslint-parser/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@babel/eslint-parser/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", - "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", - "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", - "dependencies": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", - "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "dependencies": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "dependencies": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", - "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", - "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.2.tgz", - "integrity": "sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.1", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.17.0", - "charcodes": "^0.2.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", - "dependencies": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@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==", - "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", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", - "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", - "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@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==", - "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", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@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==", - "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", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "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-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "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-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "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-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "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-destructuring": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz", - "integrity": "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==", - "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-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "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-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", - "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-flow": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "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-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "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-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "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-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", - "dependencies": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "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-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "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-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "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-react-constant-elements": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.16.7.tgz", - "integrity": "sha512-lF+cfsyTgwWkcw715J88JhMYJ5GpysYNLhLP1PkvkhTRN7B3e74R/1KsDxFxhRpSn0UUD3IWM4GvdBR2PEbbQQ==", - "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-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", - "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-react-jsx": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", - "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", - "dependencies": { - "regenerator-transform": "^0.14.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "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-runtime": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", - "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "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-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "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-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "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-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "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-typescript": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "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-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "dependencies": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@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-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", - "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", - "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz", - "integrity": "sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg==", - "dependencies": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "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==" - }, - "node_modules/@csstools/normalize.css": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", - "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" - }, - "node_modules/@csstools/postcss-color-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.0.2.tgz", - "integrity": "sha512-uayvFqfa0hITPwVduxRYNL9YBD/anTqula0tu2llalaxblEd7QPuETSN3gB5PvTYxSfd0d8kS4Fypgo5JaUJ6A==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-font-format-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.0.tgz", - "integrity": "sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@csstools/postcss-hwb-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz", - "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@csstools/postcss-ic-unit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.0.tgz", - "integrity": "sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.0.tgz", - "integrity": "sha512-WnfZlyuh/CW4oS530HBbrKq0G8BKl/bsNr5NMFoubBFzJfvFRGJhplCgIJYWUidLuL3WJ/zhMtDIyNFTqhx63Q==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-normalize-display-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.0.tgz", - "integrity": "sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@csstools/postcss-oklab-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.0.1.tgz", - "integrity": "sha512-Bnly2FWWSTZX20hDJLYHpurhp1ot+ZGvojLOsrHa9frzOVruOv4oPYMZ6wQomi9KsbZZ+Af/CuRYaGReTyGtEg==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.2.0.tgz", - "integrity": "sha512-YLpFPK5OaLIRKZhUfnrZPT9s9cmtqltIOg7W6jPcxmiDpnZ4lk+odfufZttOAgcg6IHWvNLgcITSLpJxIQB/qQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.1.0.tgz", - "integrity": "sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.12.1", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", - "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", - "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" - }, - "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", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "engines": { - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz", - "integrity": "sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==", - "dependencies": { - "ansi-html-community": "^0.0.8", - "common-path-prefix": "^3.0.0", - "core-js-pure": "^3.8.1", - "error-stack-parser": "^2.0.6", - "find-up": "^5.0.0", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">= 10.13" - }, - "peerDependencies": { - "@types/webpack": "4.x || 5.x", - "react-refresh": ">=0.10.0 <1.0.0", - "sockjs-client": "^1.4.0", - "type-fest": ">=0.17.0 <3.0.0", - "webpack": ">=4.43.0 <6.0.0", - "webpack-dev-server": "3.x || 4.x", - "webpack-hot-middleware": "2.x", - "webpack-plugin-serve": "0.x || 1.x" - }, - "peerDependenciesMeta": { - "@types/webpack": { - "optional": true - }, - "sockjs-client": { - "optional": true - }, - "type-fest": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - }, - "webpack-hot-middleware": { - "optional": true - }, - "webpack-plugin-serve": { - "optional": true - } - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.2.tgz", - "integrity": "sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@react-aria/ssr": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.1.2.tgz", - "integrity": "sha512-amXY11ImpokvkTMeKRHjsSsG7v1yzzs6yeqArCyBIk60J3Yhgxwx9Cah+Uu/804ATFwqzN22AXIo7SdtIaMP+g==", - "dependencies": { - "@babel/runtime": "^7.6.2" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1" - } - }, - "node_modules/@restart/hooks": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.6.tgz", - "integrity": "sha512-FzpEzy6QeLB3OpUrC9OQD/lWCluQmilLfRGa/DqbB6OmV05AEt/0Lgn3Jf6l27UIJMK0qFmNcps6p8DNLXa6Pw==", - "dependencies": { - "dequal": "^2.0.2" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@restart/ui": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.2.0.tgz", - "integrity": "sha512-oIh2t3tG8drZtZ9SlaV5CY6wGsUViHk8ZajjhcI+74IQHyWy+AnxDv8rJR5wVgsgcgrPBUvGNkC1AEdcGNPaLQ==", - "dependencies": { - "@babel/runtime": "^7.13.16", - "@popperjs/core": "^2.10.1", - "@react-aria/ssr": "^3.0.1", - "@restart/hooks": "^0.4.0", - "@types/warning": "^3.0.0", - "dequal": "^2.0.2", - "dom-helpers": "^5.2.0", - "uncontrollable": "^7.2.1", - "warning": "^4.0.3" - }, - "peerDependencies": { - "react": ">=16.14.0", - "react-dom": ">=16.14.0" - } - }, - "node_modules/@rollup/plugin-babel": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz", - "integrity": "sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==", - "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0" - }, - "peerDependenciesMeta": { - "@types/babel__core": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/pluginutils/node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz", - "integrity": "sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A==" - }, - "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==", - "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==", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@surma/rollup-plugin-off-main-thread": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", - "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", - "dependencies": { - "ejs": "^3.1.6", - "json5": "^2.2.0", - "magic-string": "^0.25.0", - "string.prototype.matchall": "^4.0.6" - } - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", - "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", - "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", - "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", - "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", - "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", - "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-preset": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", - "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/core": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", - "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", - "dependencies": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", - "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", - "dependencies": { - "@babel/types": "^7.12.6" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", - "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", - "dependencies": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-svgo": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", - "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", - "dependencies": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/webpack": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", - "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@testing-library/dom": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.3.tgz", - "integrity": "sha512-9LId28I+lx70wUiZjLvi1DB/WT2zGOxUh46glrSNMaWVx849kKAluezVzZrXJfTKKoQTmEOutLes/bHg4Bj3aA==", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^4.2.0", - "aria-query": "^5.0.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.4.4", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@testing-library/dom/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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/dom/node_modules/aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@testing-library/dom/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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/@testing-library/dom/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@testing-library/dom/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==" - }, - "node_modules/@testing-library/dom/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/dom/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom": { - "version": "5.16.2", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.2.tgz", - "integrity": "sha512-6ewxs1MXWwsBFZXIk4nKKskWANelkdUehchEOokHsN8X7c2eKXGw+77aRV63UU8f/DTSVUPLaGxdrj4lN7D/ug==", - "dependencies": { - "@babel/runtime": "^7.9.2", - "@types/testing-library__jest-dom": "^5.9.1", - "aria-query": "^5.0.0", - "chalk": "^3.0.0", - "css": "^3.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.5.6", - "lodash": "^4.17.15", - "redent": "^3.0.0" - }, - "engines": { - "node": ">=8", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/@testing-library/jest-dom/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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@testing-library/jest-dom/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==" - }, - "node_modules/@testing-library/jest-dom/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/react": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.3.tgz", - "integrity": "sha512-oCULRXWRrBtC9m6G/WohPo1GLcLesH7T4fuKzRAKn1CWVu9BzXtqLXDDTA6KhFNNtRwLtfSMr20HFl+Qrdrvmg==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.0.0", - "@types/react-dom": "*" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@testing-library/user-event": { - "version": "13.5.0", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", - "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - }, - "peerDependencies": { - "@testing-library/dom": ">=7.21.4" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==" - }, - "node_modules/@types/babel__core": { - "version": "7.1.18", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", - "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", - "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==", - "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==", - "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==", - "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", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/eslint": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", - "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" - }, - "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@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==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.8", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", - "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/invariant": { - "version": "2.2.35", - "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz", - "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==" - }, - "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==" - }, - "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==", - "dependencies": { - "@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==", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.0.tgz", - "integrity": "sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ==", - "dependencies": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" - }, - "node_modules/@types/node": { - "version": "17.0.19", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.19.tgz", - "integrity": "sha512-PfeQhvcMR4cPFVuYfBN4ifG7p9c+Dlh3yUZR6k+5yQK7wX3gDgVxBly4/WkBRs9x4dmcy1TVl08SY67wwtEvmA==" - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - }, - "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==" - }, - "node_modules/@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" - }, - "node_modules/@types/q": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", - "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - }, - "node_modules/@types/react": { - "version": "17.0.39", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.39.tgz", - "integrity": "sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug==", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz", - "integrity": "sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q==", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-transition-group": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", - "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" - }, - "node_modules/@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, - "node_modules/@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "dependencies": { - "@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==" - }, - "node_modules/@types/testing-library__jest-dom": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.2.tgz", - "integrity": "sha512-vehbtyHUShPxIa9SioxDwCvgxukDMH//icJG90sXQBUm5lJOHLT5kNeU9tnivhnA/TkOFMzGIXN2cTc4hY8/kg==", - "dependencies": { - "@types/jest": "*" - } - }, - "node_modules/@types/trusted-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", - "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" - }, - "node_modules/@types/warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=" - }, - "node_modules/@types/ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-ahRJZquUYCdOZf/rCsWg88S0/+cb9wazUBHv6HZEe3XdYaBe2zr/slM8J28X07Hn88Pnm4ezo7N8/ofnOgrPVQ==", - "dependencies": { - "@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==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.1.tgz", - "integrity": "sha512-M499lqa8rnNK7mUv74lSFFttuUsubIRdAbHcVaP93oFcKkEmHmLqy2n7jM9C8DVmFMYK61ExrZU6dLYhQZmUpw==", - "dependencies": { - "@typescript-eslint/scope-manager": "5.12.1", - "@typescript-eslint/type-utils": "5.12.1", - "@typescript-eslint/utils": "5.12.1", - "debug": "^4.3.2", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.2.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.12.1.tgz", - "integrity": "sha512-4bEa8WrS5DdzJq43smPH12ys4AOoCxVu2xjYGXQR4DnNyM8pqNzCr28zodf38Jc4bxWdniSEKKC1bQaccXGq5Q==", - "dependencies": { - "@typescript-eslint/utils": "5.12.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.1.tgz", - "integrity": "sha512-6LuVUbe7oSdHxUWoX/m40Ni8gsZMKCi31rlawBHt7VtW15iHzjbpj2WLiToG2758KjtCCiLRKZqfrOdl3cNKuw==", - "dependencies": { - "@typescript-eslint/scope-manager": "5.12.1", - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/typescript-estree": "5.12.1", - "debug": "^4.3.2" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz", - "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==", - "dependencies": { - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/visitor-keys": "5.12.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.1.tgz", - "integrity": "sha512-Gh8feEhsNLeCz6aYqynh61Vsdy+tiNNkQtc+bN3IvQvRqHkXGUhYkUi+ePKzP0Mb42se7FDb+y2SypTbpbR/Sg==", - "dependencies": { - "@typescript-eslint/utils": "5.12.1", - "debug": "^4.3.2", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz", - "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz", - "integrity": "sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==", - "dependencies": { - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/visitor-keys": "5.12.1", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.1.tgz", - "integrity": "sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.12.1", - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/typescript-estree": "5.12.1", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz", - "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==", - "dependencies": { - "@typescript-eslint/types": "5.12.1", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" - }, - "node_modules/abortcontroller-polyfill": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz", - "integrity": "sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q==" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "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==", - "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==", - "bin": { - "acorn": "bin/acorn" - }, - "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", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/acorn-node/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "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==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", - "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "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/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "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/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", - "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==" - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dependencies": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" - }, - "node_modules/array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" - }, - "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "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==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", - "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", - "dependencies": { - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001297", - "fraction.js": "^4.1.2", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/axe-core": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", - "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" - }, - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/babel-loader/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "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==", - "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-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "node_modules/babel-plugin-named-asset-import": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", - "peerDependencies": { - "@babel/core": "^7.1.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", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" - }, - "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==", - "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==", - "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/babel-preset-react-app": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", - "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-decorators": "^7.16.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-transform-flow-strip-types": "^7.16.0", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" - }, - "node_modules/bfj": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", - "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", - "dependencies": { - "bluebird": "^3.5.5", - "check-types": "^11.1.1", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dependencies": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "node_modules/bootstrap": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", - "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - }, - "peerDependencies": { - "@popperjs/core": "^2.10.2" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "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==" - }, - "node_modules/browser-tabs-lock": { - "version": "1.2.15", - "resolved": "https://registry.npmjs.org/browser-tabs-lock/-/browser-tabs-lock-1.2.15.tgz", - "integrity": "sha512-J8K9vdivK0Di+b8SBdE7EZxDr88TnATing7XoLw6+nFkXMQ6sVBh92K3NQvZlZU91AIkFRi0w3sztk5Z+vsswA==", - "hasInstallScript": true, - "dependencies": { - "lodash": ">=4.17.21" - } - }, - "node_modules/browserslist": { - "version": "4.19.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.3.tgz", - "integrity": "sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg==", - "dependencies": { - "caniuse-lite": "^1.0.30001312", - "electron-to-chromium": "^1.4.71", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "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==", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, - "node_modules/builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001312", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", - "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", - "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "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==", - "engines": { - "node": ">=10" - } - }, - "node_modules/charcodes": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", - "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/check-types": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", - "integrity": "sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ==" - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "engines": { - "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==" - }, - "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==" - }, - "node_modules/classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" - }, - "node_modules/clean-css": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", - "integrity": "sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/clean-css/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dependencies": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "engines": { - "node": ">= 4.0" - } - }, - "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==" - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==" - }, - "node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" - }, - "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==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" - }, - "node_modules/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", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/core-js": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz", - "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", - "dependencies": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-js-pure": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", - "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "dependencies": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, - "node_modules/css-blank-pseudo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", - "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-blank-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz", - "integrity": "sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==", - "dependencies": { - "timsort": "^0.3.0" - }, - "engines": { - "node": ">= 10" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-has-pseudo": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", - "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-has-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-loader": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.6.0.tgz", - "integrity": "sha512-FK7H2lisOixPT406s5gZM1S3l8GrfhEBT3ZiL2UX1Ng1XWs0y2GPllz/OTyvbaHe12VgQrIXIzuEGVlbUhodqg==", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.5", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", - "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", - "dependencies": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "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/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/css-minimizer-webpack-plugin/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", - "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "bin": { - "css-prefers-color-scheme": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" - }, - "node_modules/css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "dependencies": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" - }, - "node_modules/css/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssdb": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.4.0.tgz", - "integrity": "sha512-8NMWrur/ewSNrRNZndbtOTXc2Xb2b+NCTPHj8VErFYvJUlgsMAiBGaFaxG6hjy9zbCjj2ZLwSQrMM+tormO8qA==" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "5.0.17", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.17.tgz", - "integrity": "sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw==", - "dependencies": { - "cssnano-preset-default": "^5.1.12", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "5.1.12", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.12.tgz", - "integrity": "sha512-rO/JZYyjW1QNkWBxMGV28DW7d98UDLaF759frhli58QFehZ+D/LSmwQ2z/ylBAe2hUlsIWTq6NYGfQPq65EF9w==", - "dependencies": { - "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^3.0.2", - "postcss-calc": "^8.2.0", - "postcss-colormin": "^5.2.5", - "postcss-convert-values": "^5.0.4", - "postcss-discard-comments": "^5.0.3", - "postcss-discard-duplicates": "^5.0.3", - "postcss-discard-empty": "^5.0.3", - "postcss-discard-overridden": "^5.0.4", - "postcss-merge-longhand": "^5.0.6", - "postcss-merge-rules": "^5.0.6", - "postcss-minify-font-values": "^5.0.4", - "postcss-minify-gradients": "^5.0.6", - "postcss-minify-params": "^5.0.5", - "postcss-minify-selectors": "^5.1.3", - "postcss-normalize-charset": "^5.0.3", - "postcss-normalize-display-values": "^5.0.3", - "postcss-normalize-positions": "^5.0.4", - "postcss-normalize-repeat-style": "^5.0.4", - "postcss-normalize-string": "^5.0.4", - "postcss-normalize-timing-functions": "^5.0.3", - "postcss-normalize-unicode": "^5.0.4", - "postcss-normalize-url": "^5.0.5", - "postcss-normalize-whitespace": "^5.0.4", - "postcss-ordered-values": "^5.0.5", - "postcss-reduce-initial": "^5.0.3", - "postcss-reduce-transforms": "^5.0.4", - "postcss-svgo": "^5.0.4", - "postcss-unique-selectors": "^5.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.0.2.tgz", - "integrity": "sha512-KhprijuQv2sP4kT92sSQwhlK3SJTbDIsxcfIEySB0O+3m9esFOai7dP9bMx5enHAh2MwarVIcnwiWoOm01RIbQ==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "node_modules/csso/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "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==" - }, - "node_modules/csstype": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", - "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" - }, - "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==", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "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==" - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" - }, - "node_modules/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - }, - "funding": { - "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==" - }, - "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==", - "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", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "node_modules/del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/dequal": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", - "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==", - "engines": { - "node": ">=6" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, - "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "dependencies": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - }, - "bin": { - "detective": "bin/detective.js" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "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==", - "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", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" - }, - "node_modules/dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "dependencies": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dependencies": { - "buffer-indexof": "^1.0.0" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-accessibility-api": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.12.tgz", - "integrity": "sha512-gQ2mON6fLWZeM8ubjzL7RtMeHS/g8hb82j4MjHmcQECD7pevWsMlhqwp9BjIRrQvmyJMMyv/XiO1cXzeFlUw4g==" - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "engines": { - "node": ">=10" - } - }, - "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/ejs": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", - "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", - "dependencies": { - "jake": "^10.6.1" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.71", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz", - "integrity": "sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw==" - }, - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz", - "integrity": "sha512-weDYmzbBygL7HzGGS26M3hGQx68vehdEg6VUmqSOaFzXExFqlnKuSvsEJCVGQHScS8CQMbrAqftT+AzzHNt/YA==", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/error-stack-parser": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", - "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", - "dependencies": { - "stackframe": "^1.1.1" - } - }, - "node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-cookie": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/es-cookie/-/es-cookie-1.3.2.tgz", - "integrity": "sha512-UTlYYhXGLOy05P/vKVT2Ui7WtC7NiRzGtJyAKKn32g5Gvcjn7KAClLPWlipCtxIus934dFg9o9jXiBL0nP+t9Q==" - }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "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==", - "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/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "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/escodegen/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=", - "engines": { - "node": ">= 0.8.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==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz", - "integrity": "sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==", - "dependencies": { - "@eslint/eslintrc": "^1.1.0", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-react-app": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.0.tgz", - "integrity": "sha512-xyymoxtIt1EOsSaGag+/jmcywRuieQoA2JbPCjnw9HukFj9/97aGPoZVFioaotzk1K5Qt9sHO5EutZbkrAXS0g==", - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "babel-preset-react-app": "^10.0.1", - "confusing-browser-globals": "^1.0.11", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "eslint": "^8.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "dependencies": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", - "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "dependencies": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@babel/plugin-syntax-flow": "^7.14.5", - "@babel/plugin-transform-react-jsx": "^7.14.9", - "eslint": "^8.1.0" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.25.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", - "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.2", - "has": "^1.0.3", - "is-core-module": "^2.8.0", - "is-glob": "^4.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.12.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/eslint-plugin-jest": { - "version": "25.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", - "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", - "dependencies": { - "@typescript-eslint/experimental-utils": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", - "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", - "dependencies": { - "@babel/runtime": "^7.16.3", - "aria-query": "^4.2.2", - "array-includes": "^3.1.4", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.3.5", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.7", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.2.1", - "language-tags": "^1.0.5", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz", - "integrity": "sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==", - "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.0.4", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", - "object.values": "^1.1.5", - "prop-types": "^15.7.2", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz", - "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-testing-library": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.0.5.tgz", - "integrity": "sha512-0j355vJpJCE/2g+aayIgJRUB6jBVqpD5ztMLGcadR1PgrgGPnPxN1HJuOAsAAwiMo27GwRnpJB8KOQzyNuNZrw==", - "dependencies": { - "@typescript-eslint/utils": "^5.10.2" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0", - "npm": ">=6" - }, - "peerDependencies": { - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint-webpack-plugin": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz", - "integrity": "sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==", - "dependencies": { - "@types/eslint": "^7.28.2", - "jest-worker": "^27.3.1", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "schema-utils": "^3.1.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/eslint/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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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/eslint/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/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==" - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.12.1", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", - "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/eslint/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", - "dependencies": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "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/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "engines": { - "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==", - "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", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.19.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.2", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.7", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "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=" - }, - "node_modules/fast-text-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", - "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "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==", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/filelist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", - "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" - }, - "node_modules/follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz", - "integrity": "sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==", - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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/fork-ts-checker-webpack-plugin/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/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==" - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/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==", - "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/fork-ts-checker-webpack-plugin/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "engines": { - "node": ">=6" - } - }, - "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==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.3.tgz", - "integrity": "sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg==", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "engines": { - "node": ">=8.0.0" - } - }, - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" - }, - "node_modules/harmony-reflect": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", - "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } - }, - "node_modules/history": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", - "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", - "dependencies": { - "@babel/runtime": "^7.7.6" - } - }, - "node_modules/hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", - "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "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==", - "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", - "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "webpack": "^5.20.0" - } - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" - }, - "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", - "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.3.tgz", - "integrity": "sha512-1bloEwnrHMnCoO/Gcwbz7eSVvW50KPES01PecpagI+YLNLci4AcuKJrujW4Mc3sBLpFxMSlsLNHS5Nl/lvrTPA==", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "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==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/idb": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz", - "integrity": "sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==" - }, - "node_modules/identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", - "dependencies": { - "harmony-reflect": "^1.4.6" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immer": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.12.tgz", - "integrity": "sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "engines": { - "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==", - "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", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "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==", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "engines": { - "node": ">=6" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==" - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "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", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", - "dependencies": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jake/node_modules/async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" - }, - "node_modules/jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "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==", - "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-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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==", - "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==" - }, - "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==", - "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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.0.0.tgz", - "integrity": "sha512-jxoszalAb394WElmiJTFBMzie/RDCF+W7Q29n5LzOPtcoQoHWfdUtHFkbhgf5NwWe8uMOxvKb/g7ea7CshfkTw==", - "dependencies": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^27.0.0", - "jest-watcher": "^27.0.0", - "slash": "^4.0.0", - "string-length": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "jest": "^27.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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-watch-typeahead/node_modules/char-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", - "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/jest-watch-typeahead/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-watch-typeahead/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==" - }, - "node_modules/jest-watch-typeahead/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watch-typeahead/node_modules/string-length": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", - "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", - "dependencies": { - "char-regex": "^2.0.0", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "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==", - "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/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "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==" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonpointer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz", - "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", - "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", - "dependencies": { - "array-includes": "^3.1.3", - "object.assign": "^4.1.2" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "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==", - "engines": { - "node": ">=6" - } - }, - "node_modules/klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/language-subtag-registry": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", - "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==" - }, - "node_modules/language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", - "dependencies": { - "language-subtag-registry": "~0.3.2" - } - }, - "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==", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", - "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/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==" - }, - "node_modules/loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "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=" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lz-string": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", - "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "dependencies": { - "sourcemap-codec": "^1.4.4" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", - "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", - "dependencies": { - "fs-monkey": "1.0.3" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "engines": { - "node": ">=4" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz", - "integrity": "sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw==", - "dependencies": { - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "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/mini-css-extract-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "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==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/moment": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", - "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", - "engines": { - "node": "*" - } - }, - "node_modules/moment-timezone": { - "version": "0.5.34", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz", - "integrity": "sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==", - "dependencies": { - "moment": ">= 2.9.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dependencies": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, - "node_modules/nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "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=" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node_modules/node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "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==" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", - "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", - "dependencies": { - "@types/retry": "^0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/postcss": { - "version": "8.4.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", - "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", - "dependencies": { - "nanoid": "^3.2.0", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", - "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.2" - }, - "peerDependencies": { - "postcss": "^8.0.2" - } - }, - "node_modules/postcss-browser-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", - "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "browserslist": ">=4", - "postcss": ">=8" - } - }, - "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-clamp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.0.0.tgz", - "integrity": "sha512-FsMmeBZtymFN7Jtlnw9is8I4nB+qEEb/qS0ZLTIqcKiwZyHBq44Yhv29Q+VQsTGHYFqIr/s/9tqvNM7j+j1d+g==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=7.6.0" - }, - "peerDependencies": { - "postcss": "^8.4.6" - } - }, - "node_modules/postcss-color-functional-notation": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", - "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-hex-alpha": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", - "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-rebeccapurple": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", - "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/postcss-colormin": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.5.tgz", - "integrity": "sha512-+X30aDaGYq81mFqwyPpnYInsZQnNpdxMX0ajlY7AExCexEFkPVV+KrO7kXwayqEWL2xwEbNQ4nUO0ZsRWGnevg==", - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.4.tgz", - "integrity": "sha512-bugzSAyjIexdObovsPZu/sBCTHccImJxLyFgeV0MmNBm/Lw5h5XnjfML6gzEmJ3A6nyfCW7hb1JXzcsA4Zfbdw==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-custom-media": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", - "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-custom-properties": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.4.tgz", - "integrity": "sha512-i6AytuTCoDLJkWN/MtAIGriJz3j7UX6bV7Z5t+KgFz+dwZS15/mlTJY1S0kRizlk6ba0V8u8hN50Fz5Nm7tdZw==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", - "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.2" - } - }, - "node_modules/postcss-dir-pseudo-class": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", - "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-discard-comments": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.3.tgz", - "integrity": "sha512-6W5BemziRoqIdAKT+1QjM4bNcJAQ7z7zk073730NHg4cUXh3/rQHHj7pmYxUB9aGhuRhBiUf0pXvIHkRwhQP0Q==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.3.tgz", - "integrity": "sha512-vPtm1Mf+kp7iAENTG7jI1MN1lk+fBqL5y+qxyi4v3H+lzsXEdfS3dwUZD45KVhgzDEgduur8ycB4hMegyMTeRw==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.3.tgz", - "integrity": "sha512-xGJugpaXKakwKI7sSdZjUuN4V3zSzb2Y0LOlmTajFbNinEjTfVs9PFW2lmKBaC/E64WwYppfqLD03P8l9BuueA==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.4.tgz", - "integrity": "sha512-3j9QH0Qh1KkdxwiZOW82cId7zdwXVQv/gRXYDnwx5pBtR1sTkU4cXRK9lp5dSdiM0r0OICO/L8J6sV1/7m0kHg==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-double-position-gradients": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.0.tgz", - "integrity": "sha512-oz73I08yMN3oxjj0s8mED1rG+uOYoK3H8N9RjQofyg52KBRNmePJKg3fVwTpL2U5ZFbCzXoZBsUD/CvZdlqE4Q==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-env-function": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.5.tgz", - "integrity": "sha512-gPUJc71ji9XKyl0WSzAalBeEA/89kU+XpffpPxSaaaZ1c48OL36r1Ep5R6+9XAPkIiDlSvVAwP4io12q/vTcvA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-flexbugs-fixes": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", - "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", - "peerDependencies": { - "postcss": "^8.1.4" - } - }, - "node_modules/postcss-focus-visible": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", - "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-within": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", - "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-gap-properties": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", - "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-image-set-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", - "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-initial": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", - "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", - "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.3.3" - } - }, - "node_modules/postcss-lab-function": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.1.1.tgz", - "integrity": "sha512-j3Z0WQCimY2tMle++YcmygnnVbt6XdnrCV1FO2IpzaCSmtTF2oO8h4ZYUA1Q+QHYroIiaWPvNHt9uBR4riCksQ==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-load-config": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.3.tgz", - "integrity": "sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==", - "dependencies": { - "lilconfig": "^2.0.4", - "yaml": "^1.10.2" - }, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", - "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-logical": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", - "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-media-minmax": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", - "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.6.tgz", - "integrity": "sha512-rkmoPwQO6ymJSmWsX6l2hHeEBQa7C4kJb9jyi5fZB1sE8nSCv7sqchoYPixRwX/yvLoZP2y6FA5kcjiByeJqDg==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.0.3" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.6.tgz", - "integrity": "sha512-nzJWJ9yXWp8AOEpn/HFAW72WKVGD2bsLiAmgw4hDchSij27bt6TF+sIK0cJUBAYT3SGcjtGGsOR89bwkkMuMgQ==", - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.0.2", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.4.tgz", - "integrity": "sha512-RN6q3tyuEesvyCYYFCRGJ41J1XFvgV+dvYGHr0CeHv8F00yILlN8Slf4t8XW4IghlfZYCeyRrANO6HpJ948ieA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.6.tgz", - "integrity": "sha512-E/dT6oVxB9nLGUTiY/rG5dX9taugv9cbLNTFad3dKxOO+BQg25Q/xo2z2ddG+ZB1CbkZYaVwx5blY8VC7R/43A==", - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.5.tgz", - "integrity": "sha512-YBNuq3Rz5LfLFNHb9wrvm6t859b8qIqfXsWeK7wROm3jSKNpO1Y5e8cOyBv6Acji15TgSrAwb3JkVNCqNyLvBg==", - "dependencies": { - "browserslist": "^4.16.6", - "cssnano-utils": "^3.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.3.tgz", - "integrity": "sha512-9RJfTiQEKA/kZhMaEXND893nBqmYQ8qYa/G+uPdVnXF6D/FzpfI6kwBtWEcHx5FqDbA79O9n6fQJfrIj6M8jvQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", - "dependencies": { - "postcss-selector-parser": "^6.0.6" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-nesting": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.2.tgz", - "integrity": "sha512-dJGmgmsvpzKoVMtDMQQG/T6FSqs6kDtUDirIfl4KnjMCiY9/ETX8jdKyCd20swSRAbUYkaBKV20pxkzxoOXLqQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.8" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/postcss-normalize": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", - "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", - "dependencies": { - "@csstools/normalize.css": "*", - "postcss-browser-comments": "^4", - "sanitize.css": "*" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "browserslist": ">= 4", - "postcss": ">= 8" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.3.tgz", - "integrity": "sha512-iKEplDBco9EfH7sx4ut7R2r/dwTnUqyfACf62Unc9UiyFuI7uUqZZtY+u+qp7g8Qszl/U28HIfcsI3pEABWFfA==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.3.tgz", - "integrity": "sha512-FIV5FY/qs4Ja32jiDb5mVj5iWBlS3N8tFcw2yg98+8MkRgyhtnBgSC0lxU+16AMHbjX5fbSJgw5AXLMolonuRQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.4.tgz", - "integrity": "sha512-qynirjBX0Lc73ROomZE3lzzmXXTu48/QiEzKgMeqh28+MfuHLsuqC9po4kj84igZqqFGovz8F8hf44hA3dPYmQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.4.tgz", - "integrity": "sha512-Innt+wctD7YpfeDR7r5Ik6krdyppyAg2HBRpX88fo5AYzC1Ut/l3xaxACG0KsbX49cO2n5EB13clPwuYVt8cMA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.4.tgz", - "integrity": "sha512-Dfk42l0+A1CDnVpgE606ENvdmksttLynEqTQf5FL3XGQOyqxjbo25+pglCUvziicTxjtI2NLUR6KkxyUWEVubQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.3.tgz", - "integrity": "sha512-QRfjvFh11moN4PYnJ7hia4uJXeFotyK3t2jjg8lM9mswleGsNw2Lm3I5wO+l4k1FzK96EFwEVn8X8Ojrp2gP4g==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.4.tgz", - "integrity": "sha512-W79Regn+a+eXTzB+oV/8XJ33s3pDyFTND2yDuUCo0Xa3QSy1HtNIfRVPXNubHxjhlqmMFADr3FSCHT84ITW3ig==", - "dependencies": { - "browserslist": "^4.16.6", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.5.tgz", - "integrity": "sha512-Ws3tX+PcekYlXh+ycAt0wyzqGthkvVtZ9SZLutMVvHARxcpu4o7vvXcNoiNKyjKuWecnjS6HDI3fjBuDr5MQxQ==", - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.4.tgz", - "integrity": "sha512-wsnuHolYZjMwWZJoTC9jeI2AcjA67v4UuidDrPN9RnX8KIZfE+r2Nd6XZRwHVwUiHmRvKQtxiqo64K+h8/imaw==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-opacity-percentage": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", - "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==", - "funding": [ - { - "type": "kofi", - "url": "https://ko-fi.com/mrcgrtz" - }, - { - "type": "liberapay", - "url": "https://liberapay.com/mrcgrtz" - } - ], - "engines": { - "node": "^12 || ^14 || >=16" - } - }, - "node_modules/postcss-ordered-values": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.5.tgz", - "integrity": "sha512-mfY7lXpq+8bDEHfP+muqibDPhZ5eP9zgBEF9XRvoQgXcQe2Db3G1wcvjbnfjXG6wYsl+0UIjikqq4ym1V2jGMQ==", - "dependencies": { - "cssnano-utils": "^3.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-overflow-shorthand": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", - "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "peerDependencies": { - "postcss": "^8" - } - }, - "node_modules/postcss-place": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", - "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-preset-env": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.1.tgz", - "integrity": "sha512-UvBVvPJ2vb4odAtckSbryndyBz+Me1q8wawqq0qznpDXy188I+8W5Sa929sCPqw2/NSYnqpHJbo41BKso3+I9A==", - "dependencies": { - "@csstools/postcss-color-function": "^1.0.2", - "@csstools/postcss-font-format-keywords": "^1.0.0", - "@csstools/postcss-hwb-function": "^1.0.0", - "@csstools/postcss-ic-unit": "^1.0.0", - "@csstools/postcss-is-pseudo-class": "^2.0.0", - "@csstools/postcss-normalize-display-values": "^1.0.0", - "@csstools/postcss-oklab-function": "^1.0.1", - "@csstools/postcss-progressive-custom-properties": "^1.2.0", - "autoprefixer": "^10.4.2", - "browserslist": "^4.19.1", - "css-blank-pseudo": "^3.0.3", - "css-has-pseudo": "^3.0.4", - "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^6.3.1", - "postcss-attribute-case-insensitive": "^5.0.0", - "postcss-clamp": "^4.0.0", - "postcss-color-functional-notation": "^4.2.2", - "postcss-color-hex-alpha": "^8.0.3", - "postcss-color-rebeccapurple": "^7.0.2", - "postcss-custom-media": "^8.0.0", - "postcss-custom-properties": "^12.1.4", - "postcss-custom-selectors": "^6.0.0", - "postcss-dir-pseudo-class": "^6.0.4", - "postcss-double-position-gradients": "^3.1.0", - "postcss-env-function": "^4.0.5", - "postcss-focus-visible": "^6.0.4", - "postcss-focus-within": "^5.0.4", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.3", - "postcss-image-set-function": "^4.0.6", - "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.1.1", - "postcss-logical": "^5.0.4", - "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.2", - "postcss-opacity-percentage": "^1.1.2", - "postcss-overflow-shorthand": "^3.0.3", - "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.4", - "postcss-pseudo-class-any-link": "^7.1.1", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^5.0.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz", - "integrity": "sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.3.tgz", - "integrity": "sha512-c88TkSnQ/Dnwgb4OZbKPOBbCaauwEjbECP5uAuFPOzQ+XdjNjRH7SG0dteXrpp1LlIFEKK76iUGgmw2V0xeieA==", - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.4.tgz", - "integrity": "sha512-VIJB9SFSaL8B/B7AXb7KHL6/GNNbbCHslgdzS9UDfBZYIA2nx8NLY7iD/BXFSO/1sRUILzBTfHCoW5inP37C5g==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "peerDependencies": { - "postcss": "^8.0.3" - } - }, - "node_modules/postcss-selector-not": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", - "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", - "dependencies": { - "balanced-match": "^1.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.4.tgz", - "integrity": "sha512-yDKHvULbnZtIrRqhZoA+rxreWpee28JSRH/gy9727u0UCgtpv1M/9WEWY3xySlFa0zQJcqf6oCBJPR5NwkmYpg==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/postcss-svgo/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/postcss-svgo/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "node_modules/postcss-svgo/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-svgo/node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.4.tgz", - "integrity": "sha512-5ampwoSDJCxDPoANBIlMgoBcYUHnhaiuLYJR5pj1DLnYQvMRVyFuTA5C3Bvt+aHtiqWpJkD/lXT50Vo1D0ZsAQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "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", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "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==", - "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==", - "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", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/promise": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", - "dependencies": { - "asap": "~2.0.6" - } - }, - "node_modules/promise-polyfill": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.3.tgz", - "integrity": "sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg==" - }, - "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==", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types-extra": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", - "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", - "dependencies": { - "react-is": "^16.3.2", - "warning": "^4.0.0" - }, - "peerDependencies": { - "react": ">=0.14.0" - } - }, - "node_modules/prop-types-extra/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "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/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-app-polyfill": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", - "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", - "dependencies": { - "core-js": "^3.19.2", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.9", - "whatwg-fetch": "^3.6.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-bootstrap": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.2.3.tgz", - "integrity": "sha512-gXsAEBdDUHnOpJ2C+DDQ4mFt7tN6u6qWnTH3tqiE9jUvV6gGY8uHFp0iGBsM+yjrBwmR6bqCBFh8Z82aQj1LSw==", - "dependencies": { - "@babel/runtime": "^7.17.2", - "@restart/hooks": "^0.4.6", - "@restart/ui": "^1.2.0", - "@types/invariant": "^2.2.35", - "@types/prop-types": "^15.7.4", - "@types/react": ">=16.14.8", - "@types/react-transition-group": "^4.4.4", - "@types/warning": "^3.0.0", - "classnames": "^2.3.1", - "dom-helpers": "^5.2.1", - "invariant": "^2.2.4", - "prop-types": "^15.8.1", - "prop-types-extra": "^1.1.0", - "react-transition-group": "^4.4.2", - "uncontrollable": "^7.2.1", - "warning": "^4.0.3" - }, - "peerDependencies": { - "react": ">=16.14.0", - "react-dom": ">=16.14.0" - } - }, - "node_modules/react-dev-utils": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.0.tgz", - "integrity": "sha512-xBQkitdxozPxt1YZ9O1097EJiVpwHr9FoAuEVURCKV0Av8NBERovJauzP7bo1ThvuhZ4shsQ1AJiu4vQpoT1AQ==", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.10", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/react-dev-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==", - "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/react-dev-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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/react-dev-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==" - }, - "node_modules/react-dev-utils/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/react-dev-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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-error-overlay": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz", - "integrity": "sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA==" - }, - "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==" - }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "node_modules/react-moment": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/react-moment/-/react-moment-1.1.2.tgz", - "integrity": "sha512-lfb+shYXI2tXlQrNUpNr05/1D/kzFj8Isbfp89DQrpZk0fs2JIAnLHWETR0hQS9zvtzwLWlVv0wKLffbue5HoA==", - "peerDependencies": { - "moment": "^2.29.0", - "prop-types": "^15.7.0", - "react": "^16.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-refresh": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", - "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-router": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.2.1.tgz", - "integrity": "sha512-2fG0udBtxou9lXtK97eJeET2ki5//UWfQSl1rlJ7quwe6jrktK9FCCc8dQb5QY6jAv3jua8bBQRhhDOM/kVRsg==", - "dependencies": { - "history": "^5.2.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.2.1.tgz", - "integrity": "sha512-I6Zax+/TH/cZMDpj3/4Fl2eaNdcvoxxHoH1tYOREsQ22OKDYofGebrNm6CTPUcvLvZm63NL/vzCYdjf9CUhqmA==", - "dependencies": { - "history": "^5.2.0", - "react-router": "6.2.1" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/react-scripts": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.0.tgz", - "integrity": "sha512-3i0L2CyIlROz7mxETEdfif6Sfhh9Lfpzi10CtcGs1emDQStmZfWjJbAIMtRD0opVUjQuFWqHZyRZ9PPzKCFxWg==", - "dependencies": { - "@babel/core": "^7.16.0", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", - "@svgr/webpack": "^5.5.0", - "babel-jest": "^27.4.2", - "babel-loader": "^8.2.3", - "babel-plugin-named-asset-import": "^0.3.8", - "babel-preset-react-app": "^10.0.1", - "bfj": "^7.0.2", - "browserslist": "^4.18.1", - "camelcase": "^6.2.1", - "case-sensitive-paths-webpack-plugin": "^2.4.0", - "css-loader": "^6.5.1", - "css-minimizer-webpack-plugin": "^3.2.0", - "dotenv": "^10.0.0", - "dotenv-expand": "^5.1.0", - "eslint": "^8.3.0", - "eslint-config-react-app": "^7.0.0", - "eslint-webpack-plugin": "^3.1.1", - "file-loader": "^6.2.0", - "fs-extra": "^10.0.0", - "html-webpack-plugin": "^5.5.0", - "identity-obj-proxy": "^3.0.0", - "jest": "^27.4.3", - "jest-resolve": "^27.4.2", - "jest-watch-typeahead": "^1.0.0", - "mini-css-extract-plugin": "^2.4.5", - "postcss": "^8.4.4", - "postcss-flexbugs-fixes": "^5.0.2", - "postcss-loader": "^6.2.1", - "postcss-normalize": "^10.0.1", - "postcss-preset-env": "^7.0.1", - "prompts": "^2.4.2", - "react-app-polyfill": "^3.0.0", - "react-dev-utils": "^12.0.0", - "react-refresh": "^0.11.0", - "resolve": "^1.20.0", - "resolve-url-loader": "^4.0.0", - "sass-loader": "^12.3.0", - "semver": "^7.3.5", - "source-map-loader": "^3.0.0", - "style-loader": "^3.3.1", - "tailwindcss": "^3.0.2", - "terser-webpack-plugin": "^5.2.5", - "webpack": "^5.64.4", - "webpack-dev-server": "^4.6.0", - "webpack-manifest-plugin": "^4.0.2", - "workbox-webpack-plugin": "^6.4.1" - }, - "bin": { - "react-scripts": "bin/react-scripts.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - }, - "peerDependencies": { - "react": ">= 16", - "typescript": "^3.2.1 || ^4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/react-transition-group": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", - "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "dependencies": { - "minimatch": "3.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/recursive-readdir/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-parser": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", - "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", - "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" - }, - "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "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==", - "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", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", - "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^7.0.35", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=8.9" - }, - "peerDependencies": { - "rework": "1.0.1", - "rework-visit": "1.0.0" - }, - "peerDependenciesMeta": { - "rework": { - "optional": true - }, - "rework-visit": { - "optional": true - } - } - }, - "node_modules/resolve-url-loader/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" - }, - "node_modules/resolve-url-loader/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/resolve-url-loader/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==", - "engines": { - "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==", - "engines": { - "node": ">=10" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "2.67.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.67.3.tgz", - "integrity": "sha512-G/x1vUwbGtP6O5ZM8/sWr8+p7YfZhI18pPqMRtMYMWSbHjKZ/ajHGiM+GWNTlWyOR0EHIdT8LHU+Z4ciIZ1oBw==", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0" - } - }, - "node_modules/rollup-plugin-terser/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/rollup-plugin-terser/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/rollup-plugin-terser/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sanitize.css": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", - "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" - }, - "node_modules/sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", - "dependencies": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - } - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "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==", - "dependencies": { - "@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/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "node_modules/selfsigned": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.0.tgz", - "integrity": "sha512-cUdFiCbKoa1mZ6osuJs2uDHrs0k0oprsKveFiiaBKCNq3SYyb5gs2HxhQyDNLCmL51ZZThqi4YNDpCK6GOP1iQ==", - "dependencies": { - "node-forge": "^1.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "node_modules/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", - "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", - "dependencies": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated" - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, - "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==", - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/stackframe": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", - "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==" - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "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==", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", - "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", - "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-loader": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", - "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/stylehacks": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.3.tgz", - "integrity": "sha512-ENcUdpf4yO0E1rubu8rkxI+JGQk4CgjchynZ4bDBJDfqdy+uhTRSWb8/F3Jtu+Bw5MW45Po3/aQGeIyyxgQtxg==", - "dependencies": { - "browserslist": "^4.16.6", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "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==", - "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==", - "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==", - "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", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" - }, - "node_modules/svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", - "dependencies": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/svgo/node_modules/css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "node_modules/svgo/node_modules/css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "node_modules/svgo/node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "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==" - }, - "node_modules/tailwindcss": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz", - "integrity": "sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==", - "dependencies": { - "arg": "^5.0.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "color-name": "^1.1.4", - "cosmiconfig": "^7.0.1", - "detective": "^5.2.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "normalize-path": "^3.0.0", - "object-hash": "^2.2.0", - "postcss": "^8.4.6", - "postcss-js": "^4.0.0", - "postcss-load-config": "^3.1.0", - "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0", - "quick-lru": "^5.1.1", - "resolve": "^1.22.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "autoprefixer": "^10.0.2", - "postcss": "^8.0.9" - } - }, - "node_modules/tailwindcss/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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/tailwindcss/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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/tailwindcss/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/tailwindcss/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==" - }, - "node_modules/tailwindcss/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/tailwindcss/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", - "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", - "dependencies": { - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "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", - "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==", - "dependencies": { - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", - "dependencies": { - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/terser/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "node_modules/timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "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==", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/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==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tryer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", - "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" - }, - "node_modules/tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "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==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/uncontrollable": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", - "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", - "dependencies": { - "@babel/runtime": "^7.6.3", - "@types/react": ">=16.9.11", - "invariant": "^2.2.4", - "react-lifecycles-compat": "^3.0.4" - }, - "peerDependencies": { - "react": ">=15.0.0" - } - }, - "node_modules/unfetch": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", - "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==" - }, - "node_modules/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", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" - }, - "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==", - "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/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "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==", - "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==", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/web-vitals": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", - "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==" - }, - "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==", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/webpack": { - "version": "5.69.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.69.1.tgz", - "integrity": "sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A==", - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@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/webpack-dev-middleware": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", - "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.1", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "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/webpack-dev-middleware/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz", - "integrity": "sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.2.2", - "ansi-html-community": "^0.0.8", - "bonjour": "^3.5.0", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "default-gateway": "^6.0.3", - "del": "^6.0.0", - "express": "^4.17.1", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.0", - "ipaddr.js": "^2.0.1", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "portfinder": "^1.0.28", - "schema-utils": "^4.0.0", - "selfsigned": "^2.0.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "spdy": "^4.0.2", - "strip-ansi": "^7.0.0", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "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/webpack-dev-server/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-server/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/webpack-manifest-plugin": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", - "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", - "dependencies": { - "tapable": "^2.0.0", - "webpack-sources": "^2.2.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "peerDependencies": { - "webpack": "^4.44.2 || ^5.47.0" - } - }, - "node_modules/webpack-manifest-plugin/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", - "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", - "dependencies": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "engines": { - "node": ">=0.8.0" - } - }, - "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==", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" - }, - "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==" - }, - "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==", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workbox-background-sync": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.4.2.tgz", - "integrity": "sha512-P7c8uG5X2k+DMICH9xeSA9eUlCOjHHYoB42Rq+RtUpuwBxUOflAXR1zdsMWj81LopE4gjKXlTw7BFd1BDAHo7g==", - "dependencies": { - "idb": "^6.1.4", - "workbox-core": "6.4.2" - } - }, - "node_modules/workbox-broadcast-update": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.4.2.tgz", - "integrity": "sha512-qnBwQyE0+PWFFc/n4ISXINE49m44gbEreJUYt2ldGH3+CNrLmJ1egJOOyUqqu9R4Eb7QrXcmB34ClXG7S37LbA==", - "dependencies": { - "workbox-core": "6.4.2" - } - }, - "node_modules/workbox-build": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.4.2.tgz", - "integrity": "sha512-WMdYLhDIsuzViOTXDH+tJ1GijkFp5khSYolnxR/11zmfhNDtuo7jof72xPGFy+KRpsz6tug39RhivCj77qqO0w==", - "dependencies": { - "@apideck/better-ajv-errors": "^0.3.1", - "@babel/core": "^7.11.1", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.2", - "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-node-resolve": "^11.2.1", - "@rollup/plugin-replace": "^2.4.1", - "@surma/rollup-plugin-off-main-thread": "^2.2.3", - "ajv": "^8.6.0", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "lodash": "^4.17.20", - "pretty-bytes": "^5.3.0", - "rollup": "^2.43.1", - "rollup-plugin-terser": "^7.0.0", - "source-map": "^0.8.0-beta.0", - "source-map-url": "^0.4.0", - "stringify-object": "^3.3.0", - "strip-comments": "^2.0.1", - "tempy": "^0.6.0", - "upath": "^1.2.0", - "workbox-background-sync": "6.4.2", - "workbox-broadcast-update": "6.4.2", - "workbox-cacheable-response": "6.4.2", - "workbox-core": "6.4.2", - "workbox-expiration": "6.4.2", - "workbox-google-analytics": "6.4.2", - "workbox-navigation-preload": "6.4.2", - "workbox-precaching": "6.4.2", - "workbox-range-requests": "6.4.2", - "workbox-recipes": "6.4.2", - "workbox-routing": "6.4.2", - "workbox-strategies": "6.4.2", - "workbox-streams": "6.4.2", - "workbox-sw": "6.4.2", - "workbox-window": "6.4.2" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz", - "integrity": "sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==", - "dependencies": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "ajv": ">=8" - } - }, - "node_modules/workbox-build/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "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/workbox-build/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==", - "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/workbox-build/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/workbox-build/node_modules/source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "dependencies": { - "whatwg-url": "^7.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/workbox-build/node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/workbox-build/node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "node_modules/workbox-build/node_modules/whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/workbox-cacheable-response": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.4.2.tgz", - "integrity": "sha512-9FE1W/cKffk1AJzImxgEN0ceWpyz1tqNjZVtA3/LAvYL3AC5SbIkhc7ZCO82WmO9IjTfu8Vut2X/C7ViMSF7TA==", - "dependencies": { - "workbox-core": "6.4.2" - } - }, - "node_modules/workbox-core": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.4.2.tgz", - "integrity": "sha512-1U6cdEYPcajRXiboSlpJx6U7TvhIKbxRRerfepAJu2hniKwJ3DHILjpU/zx3yvzSBCWcNJDoFalf7Vgd7ey/rw==" - }, - "node_modules/workbox-expiration": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.4.2.tgz", - "integrity": "sha512-0hbpBj0tDnW+DZOUmwZqntB/8xrXOgO34i7s00Si/VlFJvvpRKg1leXdHHU8ykoSBd6+F2KDcMP3swoCi5guLw==", - "dependencies": { - "idb": "^6.1.4", - "workbox-core": "6.4.2" - } - }, - "node_modules/workbox-google-analytics": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.4.2.tgz", - "integrity": "sha512-u+gxs3jXovPb1oul4CTBOb+T9fS1oZG+ZE6AzS7l40vnyfJV79DaLBvlpEZfXGv3CjMdV1sT/ltdOrKzo7HcGw==", - "dependencies": { - "workbox-background-sync": "6.4.2", - "workbox-core": "6.4.2", - "workbox-routing": "6.4.2", - "workbox-strategies": "6.4.2" - } - }, - "node_modules/workbox-navigation-preload": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.4.2.tgz", - "integrity": "sha512-viyejlCtlKsbJCBHwhSBbWc57MwPXvUrc8P7d+87AxBGPU+JuWkT6nvBANgVgFz6FUhCvRC8aYt+B1helo166g==", - "dependencies": { - "workbox-core": "6.4.2" - } - }, - "node_modules/workbox-precaching": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.4.2.tgz", - "integrity": "sha512-CZ6uwFN/2wb4noHVlALL7UqPFbLfez/9S2GAzGAb0Sk876ul9ukRKPJJ6gtsxfE2HSTwqwuyNVa6xWyeyJ1XSA==", - "dependencies": { - "workbox-core": "6.4.2", - "workbox-routing": "6.4.2", - "workbox-strategies": "6.4.2" - } - }, - "node_modules/workbox-range-requests": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.4.2.tgz", - "integrity": "sha512-SowF3z69hr3Po/w7+xarWfzxJX/3Fo0uSG72Zg4g5FWWnHpq2zPvgbWerBZIa81zpJVUdYpMa3akJJsv+LaO1Q==", - "dependencies": { - "workbox-core": "6.4.2" - } - }, - "node_modules/workbox-recipes": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.4.2.tgz", - "integrity": "sha512-/oVxlZFpAjFVbY+3PoGEXe8qyvtmqMrTdWhbOfbwokNFtUZ/JCtanDKgwDv9x3AebqGAoJRvQNSru0F4nG+gWA==", - "dependencies": { - "workbox-cacheable-response": "6.4.2", - "workbox-core": "6.4.2", - "workbox-expiration": "6.4.2", - "workbox-precaching": "6.4.2", - "workbox-routing": "6.4.2", - "workbox-strategies": "6.4.2" - } - }, - "node_modules/workbox-routing": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.4.2.tgz", - "integrity": "sha512-0ss/n9PAcHjTy4Ad7l2puuod4WtsnRYu9BrmHcu6Dk4PgWeJo1t5VnGufPxNtcuyPGQ3OdnMdlmhMJ57sSrrSw==", - "dependencies": { - "workbox-core": "6.4.2" - } - }, - "node_modules/workbox-strategies": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.4.2.tgz", - "integrity": "sha512-YXh9E9dZGEO1EiPC3jPe2CbztO5WT8Ruj8wiYZM56XqEJp5YlGTtqRjghV+JovWOqkWdR+amJpV31KPWQUvn1Q==", - "dependencies": { - "workbox-core": "6.4.2" - } - }, - "node_modules/workbox-streams": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.4.2.tgz", - "integrity": "sha512-ROEGlZHGVEgpa5bOZefiJEVsi5PsFjJG9Xd+wnDbApsCO9xq9rYFopF+IRq9tChyYzhBnyk2hJxbQVWphz3sog==", - "dependencies": { - "workbox-core": "6.4.2", - "workbox-routing": "6.4.2" - } - }, - "node_modules/workbox-sw": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.4.2.tgz", - "integrity": "sha512-A2qdu9TLktfIM5NE/8+yYwfWu+JgDaCkbo5ikrky2c7r9v2X6DcJ+zSLphNHHLwM/0eVk5XVf1mC5HGhYpMhhg==" - }, - "node_modules/workbox-webpack-plugin": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.4.2.tgz", - "integrity": "sha512-CiEwM6kaJRkx1cP5xHksn13abTzUqMHiMMlp5Eh/v4wRcedgDTyv6Uo8+Hg9MurRbHDosO5suaPyF9uwVr4/CQ==", - "dependencies": { - "fast-json-stable-stringify": "^2.1.0", - "pretty-bytes": "^5.4.1", - "source-map-url": "^0.4.0", - "upath": "^1.2.0", - "webpack-sources": "^1.4.3", - "workbox-build": "6.4.2" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "webpack": "^4.4.0 || ^5.9.0" - } - }, - "node_modules/workbox-webpack-plugin/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/workbox-window": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.4.2.tgz", - "integrity": "sha512-KVyRKmrJg7iB+uym/B/CnEUEFG9CvnTU1Bq5xpXHbtgD9l+ShDekSl1wYpqw/O0JfeeQVOFb8CiNfvnwWwqnWQ==", - "dependencies": { - "@types/trusted-types": "^2.0.2", - "workbox-core": "6.4.2" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-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==" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "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==", - "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": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", - "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/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==" - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "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/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==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "requires": { - "@jridgewell/trace-mapping": "^0.3.0" - } - }, - "@auth0/auth0-react": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@auth0/auth0-react/-/auth0-react-1.9.0.tgz", - "integrity": "sha512-VkovI2i7dI1dkIJAdS51O9XMq6vlcHJn9DL+if4rSxt+sNocFd1i4q0j07a9XbafBj4/WEkSbOiX93z2ZXqdAA==", - "requires": { - "@auth0/auth0-spa-js": "^1.19.3" - } - }, - "@auth0/auth0-spa-js": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@auth0/auth0-spa-js/-/auth0-spa-js-1.21.0.tgz", - "integrity": "sha512-a+8+onJdOIUSEEjdIzP/BGd731DZjBn2Q0tH+v7H+bN9ldeuBOifnjPbFwQAriL+94SwkaqhoFx3L6uGDk3+vg==", - "requires": { - "abortcontroller-polyfill": "^1.7.3", - "browser-tabs-lock": "^1.2.15", - "core-js": "^3.20.3", - "es-cookie": "^1.3.2", - "fast-text-encoding": "^1.0.3", - "promise-polyfill": "^8.2.1", - "unfetch": "^4.2.0" - } - }, - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==" - }, - "@babel/core": { - "version": "7.17.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", - "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.3", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/eslint-parser": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", - "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", - "requires": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "dependencies": { - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/generator": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", - "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", - "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", - "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", - "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "requires": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" - }, - "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0" - } - }, - "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", - "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==" - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", - "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-decorators": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.2.tgz", - "integrity": "sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.1", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.17.0", - "charcodes": "^0.2.0" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", - "requires": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "requires": { - "@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==", - "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", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", - "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", - "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@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==", - "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", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "requires": { - "@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==", - "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", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz", - "integrity": "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", - "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-flow": "^7.16.7" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", - "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-constant-elements": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.16.7.tgz", - "integrity": "sha512-lF+cfsyTgwWkcw715J88JhMYJ5GpysYNLhLP1PkvkhTRN7B3e74R/1KsDxFxhRpSn0UUD3IWM4GvdBR2PEbbQQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", - "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", - "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.7" - } - }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", - "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@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-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" - } - }, - "@babel/preset-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", - "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.16.7" - } - }, - "@babel/runtime": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", - "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs3": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz", - "integrity": "sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg==", - "requires": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - }, - "@csstools/normalize.css": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", - "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" - }, - "@csstools/postcss-color-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.0.2.tgz", - "integrity": "sha512-uayvFqfa0hITPwVduxRYNL9YBD/anTqula0tu2llalaxblEd7QPuETSN3gB5PvTYxSfd0d8kS4Fypgo5JaUJ6A==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-font-format-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.0.tgz", - "integrity": "sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-hwb-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz", - "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-ic-unit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.0.tgz", - "integrity": "sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-is-pseudo-class": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.0.tgz", - "integrity": "sha512-WnfZlyuh/CW4oS530HBbrKq0G8BKl/bsNr5NMFoubBFzJfvFRGJhplCgIJYWUidLuL3WJ/zhMtDIyNFTqhx63Q==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "@csstools/postcss-normalize-display-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.0.tgz", - "integrity": "sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-oklab-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.0.1.tgz", - "integrity": "sha512-Bnly2FWWSTZX20hDJLYHpurhp1ot+ZGvojLOsrHa9frzOVruOv4oPYMZ6wQomi9KsbZZ+Af/CuRYaGReTyGtEg==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-progressive-custom-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.2.0.tgz", - "integrity": "sha512-YLpFPK5OaLIRKZhUfnrZPT9s9cmtqltIOg7W6jPcxmiDpnZ4lk+odfufZttOAgcg6IHWvNLgcITSLpJxIQB/qQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@eslint/eslintrc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.1.0.tgz", - "integrity": "sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==", - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "globals": { - "version": "13.12.1", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", - "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", - "requires": { - "type-fest": "^0.20.2" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - } - } - }, - "@humanwhocodes/config-array": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", - "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" - }, - "@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "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==", - "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==", - "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==" - } - } - }, - "@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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==" - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz", - "integrity": "sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==", - "requires": { - "ansi-html-community": "^0.0.8", - "common-path-prefix": "^3.0.0", - "core-js-pure": "^3.8.1", - "error-stack-parser": "^2.0.6", - "find-up": "^5.0.0", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - }, - "@popperjs/core": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.2.tgz", - "integrity": "sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA==" - }, - "@react-aria/ssr": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.1.2.tgz", - "integrity": "sha512-amXY11ImpokvkTMeKRHjsSsG7v1yzzs6yeqArCyBIk60J3Yhgxwx9Cah+Uu/804ATFwqzN22AXIo7SdtIaMP+g==", - "requires": { - "@babel/runtime": "^7.6.2" - } - }, - "@restart/hooks": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.6.tgz", - "integrity": "sha512-FzpEzy6QeLB3OpUrC9OQD/lWCluQmilLfRGa/DqbB6OmV05AEt/0Lgn3Jf6l27UIJMK0qFmNcps6p8DNLXa6Pw==", - "requires": { - "dequal": "^2.0.2" - } - }, - "@restart/ui": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.2.0.tgz", - "integrity": "sha512-oIh2t3tG8drZtZ9SlaV5CY6wGsUViHk8ZajjhcI+74IQHyWy+AnxDv8rJR5wVgsgcgrPBUvGNkC1AEdcGNPaLQ==", - "requires": { - "@babel/runtime": "^7.13.16", - "@popperjs/core": "^2.10.1", - "@react-aria/ssr": "^3.0.1", - "@restart/hooks": "^0.4.0", - "@types/warning": "^3.0.0", - "dequal": "^2.0.2", - "dom-helpers": "^5.2.0", - "uncontrollable": "^7.2.1", - "warning": "^4.0.3" - } - }, - "@rollup/plugin-babel": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz", - "integrity": "sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==", - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - } - }, - "@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", - "requires": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - } - }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - } - } - }, - "@rushstack/eslint-patch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz", - "integrity": "sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A==" - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "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==", - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@surma/rollup-plugin-off-main-thread": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", - "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", - "requires": { - "ejs": "^3.1.6", - "json5": "^2.2.0", - "magic-string": "^0.25.0", - "string.prototype.matchall": "^4.0.6" - } - }, - "@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==" - }, - "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==" - }, - "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", - "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==" - }, - "@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", - "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==" - }, - "@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", - "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==" - }, - "@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", - "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==" - }, - "@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", - "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==" - }, - "@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", - "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==" - }, - "@svgr/babel-preset": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", - "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", - "requires": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" - } - }, - "@svgr/core": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", - "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", - "requires": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" - } - }, - "@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", - "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", - "requires": { - "@babel/types": "^7.12.6" - } - }, - "@svgr/plugin-jsx": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", - "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", - "requires": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" - } - }, - "@svgr/plugin-svgo": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", - "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", - "requires": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" - } - }, - "@svgr/webpack": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", - "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", - "requires": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" - } - }, - "@testing-library/dom": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.3.tgz", - "integrity": "sha512-9LId28I+lx70wUiZjLvi1DB/WT2zGOxUh46glrSNMaWVx849kKAluezVzZrXJfTKKoQTmEOutLes/bHg4Bj3aA==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^4.2.0", - "aria-query": "^5.0.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.4.4", - "pretty-format": "^27.0.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==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@testing-library/jest-dom": { - "version": "5.16.2", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.2.tgz", - "integrity": "sha512-6ewxs1MXWwsBFZXIk4nKKskWANelkdUehchEOokHsN8X7c2eKXGw+77aRV63UU8f/DTSVUPLaGxdrj4lN7D/ug==", - "requires": { - "@babel/runtime": "^7.9.2", - "@types/testing-library__jest-dom": "^5.9.1", - "aria-query": "^5.0.0", - "chalk": "^3.0.0", - "css": "^3.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.5.6", - "lodash": "^4.17.15", - "redent": "^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==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@testing-library/react": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.3.tgz", - "integrity": "sha512-oCULRXWRrBtC9m6G/WohPo1GLcLesH7T4fuKzRAKn1CWVu9BzXtqLXDDTA6KhFNNtRwLtfSMr20HFl+Qrdrvmg==", - "requires": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.0.0", - "@types/react-dom": "*" - } - }, - "@testing-library/user-event": { - "version": "13.5.0", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", - "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", - "requires": { - "@babel/runtime": "^7.12.5" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - }, - "@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" - }, - "@types/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==" - }, - "@types/babel__core": { - "version": "7.1.18", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", - "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", - "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==", - "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==", - "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==", - "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", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "requires": { - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "requires": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "@types/eslint": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", - "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" - }, - "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@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==", - "requires": { - "@types/node": "*" - } - }, - "@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" - }, - "@types/http-proxy": { - "version": "1.17.8", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", - "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", - "requires": { - "@types/node": "*" - } - }, - "@types/invariant": { - "version": "2.2.35", - "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz", - "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==" - }, - "@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==" - }, - "@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==", - "requires": { - "@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==", - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.0.tgz", - "integrity": "sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ==", - "requires": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" - }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" - }, - "@types/node": { - "version": "17.0.19", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.19.tgz", - "integrity": "sha512-PfeQhvcMR4cPFVuYfBN4ifG7p9c+Dlh3yUZR6k+5yQK7wX3gDgVxBly4/WkBRs9x4dmcy1TVl08SY67wwtEvmA==" - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - }, - "@types/prettier": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz", - "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==" - }, - "@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" - }, - "@types/q": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", - "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - }, - "@types/react": { - "version": "17.0.39", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.39.tgz", - "integrity": "sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug==", - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "@types/react-dom": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz", - "integrity": "sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q==", - "requires": { - "@types/react": "*" - } - }, - "@types/react-transition-group": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", - "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", - "requires": { - "@types/react": "*" - } - }, - "@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "requires": { - "@types/node": "*" - } - }, - "@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" - }, - "@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, - "@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "requires": { - "@types/express": "*" - } - }, - "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "requires": { - "@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==" - }, - "@types/testing-library__jest-dom": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.2.tgz", - "integrity": "sha512-vehbtyHUShPxIa9SioxDwCvgxukDMH//icJG90sXQBUm5lJOHLT5kNeU9tnivhnA/TkOFMzGIXN2cTc4hY8/kg==", - "requires": { - "@types/jest": "*" - } - }, - "@types/trusted-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", - "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" - }, - "@types/warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=" - }, - "@types/ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-ahRJZquUYCdOZf/rCsWg88S0/+cb9wazUBHv6HZEe3XdYaBe2zr/slM8J28X07Hn88Pnm4ezo7N8/ofnOgrPVQ==", - "requires": { - "@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==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.12.1.tgz", - "integrity": "sha512-M499lqa8rnNK7mUv74lSFFttuUsubIRdAbHcVaP93oFcKkEmHmLqy2n7jM9C8DVmFMYK61ExrZU6dLYhQZmUpw==", - "requires": { - "@typescript-eslint/scope-manager": "5.12.1", - "@typescript-eslint/type-utils": "5.12.1", - "@typescript-eslint/utils": "5.12.1", - "debug": "^4.3.2", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.2.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.12.1.tgz", - "integrity": "sha512-4bEa8WrS5DdzJq43smPH12ys4AOoCxVu2xjYGXQR4DnNyM8pqNzCr28zodf38Jc4bxWdniSEKKC1bQaccXGq5Q==", - "requires": { - "@typescript-eslint/utils": "5.12.1" - } - }, - "@typescript-eslint/parser": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.12.1.tgz", - "integrity": "sha512-6LuVUbe7oSdHxUWoX/m40Ni8gsZMKCi31rlawBHt7VtW15iHzjbpj2WLiToG2758KjtCCiLRKZqfrOdl3cNKuw==", - "requires": { - "@typescript-eslint/scope-manager": "5.12.1", - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/typescript-estree": "5.12.1", - "debug": "^4.3.2" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.12.1.tgz", - "integrity": "sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==", - "requires": { - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/visitor-keys": "5.12.1" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.12.1.tgz", - "integrity": "sha512-Gh8feEhsNLeCz6aYqynh61Vsdy+tiNNkQtc+bN3IvQvRqHkXGUhYkUi+ePKzP0Mb42se7FDb+y2SypTbpbR/Sg==", - "requires": { - "@typescript-eslint/utils": "5.12.1", - "debug": "^4.3.2", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.12.1.tgz", - "integrity": "sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==" - }, - "@typescript-eslint/typescript-estree": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.12.1.tgz", - "integrity": "sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==", - "requires": { - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/visitor-keys": "5.12.1", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.12.1.tgz", - "integrity": "sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ==", - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.12.1", - "@typescript-eslint/types": "5.12.1", - "@typescript-eslint/typescript-estree": "5.12.1", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "dependencies": { - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.12.1.tgz", - "integrity": "sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==", - "requires": { - "@typescript-eslint/types": "5.12.1", - "eslint-visitor-keys": "^3.0.0" - } - }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" - }, - "abortcontroller-polyfill": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz", - "integrity": "sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q==" - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" - }, - "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==", - "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==" - } - } - }, - "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "requires": {} - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "requires": {} - }, - "acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "requires": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - } - } - }, - "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==" - }, - "address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", - "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==" - }, - "adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "requires": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - } - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "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" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "requires": { - "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - } - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "requires": {} - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==" - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", - "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - } - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" - }, - "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - }, - "array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - } - }, - "array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - } - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "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==" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "autoprefixer": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", - "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", - "requires": { - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001297", - "fraction.js": "^4.1.2", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "axe-core": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", - "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==" - }, - "axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" - }, - "babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "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==", - "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-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "requires": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - } - }, - "babel-plugin-named-asset-import": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", - "requires": {} - }, - "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", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - } - }, - "babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" - }, - "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==", - "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==", - "requires": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "babel-preset-react-app": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", - "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", - "requires": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-decorators": "^7.16.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-transform-flow-strip-types": "^7.16.0", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" - }, - "bfj": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", - "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", - "requires": { - "bluebird": "^3.5.5", - "check-types": "^11.1.1", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "bootstrap": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", - "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", - "requires": {} - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "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==" - }, - "browser-tabs-lock": { - "version": "1.2.15", - "resolved": "https://registry.npmjs.org/browser-tabs-lock/-/browser-tabs-lock-1.2.15.tgz", - "integrity": "sha512-J8K9vdivK0Di+b8SBdE7EZxDr88TnATing7XoLw6+nFkXMQ6sVBh92K3NQvZlZU91AIkFRi0w3sztk5Z+vsswA==", - "requires": { - "lodash": ">=4.17.21" - } - }, - "browserslist": { - "version": "4.19.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.3.tgz", - "integrity": "sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg==", - "requires": { - "caniuse-lite": "^1.0.30001312", - "electron-to-chromium": "^1.4.71", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, - "builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==" - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" - }, - "camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001312", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", - "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==" - }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", - "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "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==" - }, - "charcodes": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", - "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==" - }, - "check-types": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", - "integrity": "sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ==" - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" - }, - "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==" - }, - "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==" - }, - "classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" - }, - "clean-css": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", - "integrity": "sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==", - "requires": { - "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==" - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - } - }, - "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==" - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==" - }, - "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" - }, - "common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" - }, - "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==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" - }, - "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", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - }, - "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==" - } - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "core-js": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz", - "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==" - }, - "core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", - "requires": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } - } - }, - "core-js-pure": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", - "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==" - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" - }, - "css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "requires": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^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==" - } - } - }, - "css-blank-pseudo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", - "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "css-declaration-sorter": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz", - "integrity": "sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==", - "requires": { - "timsort": "^0.3.0" - } - }, - "css-has-pseudo": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", - "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "css-loader": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.6.0.tgz", - "integrity": "sha512-FK7H2lisOixPT406s5gZM1S3l8GrfhEBT3ZiL2UX1Ng1XWs0y2GPllz/OTyvbaHe12VgQrIXIzuEGVlbUhodqg==", - "requires": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.5", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" - } - }, - "css-minimizer-webpack-plugin": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", - "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", - "requires": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "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-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "css-prefers-color-scheme": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", - "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "requires": {} - }, - "css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" - }, - "css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" - }, - "cssdb": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.4.0.tgz", - "integrity": "sha512-8NMWrur/ewSNrRNZndbtOTXc2Xb2b+NCTPHj8VErFYvJUlgsMAiBGaFaxG6hjy9zbCjj2ZLwSQrMM+tormO8qA==" - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "cssnano": { - "version": "5.0.17", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.17.tgz", - "integrity": "sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw==", - "requires": { - "cssnano-preset-default": "^5.1.12", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - } - }, - "cssnano-preset-default": { - "version": "5.1.12", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.12.tgz", - "integrity": "sha512-rO/JZYyjW1QNkWBxMGV28DW7d98UDLaF759frhli58QFehZ+D/LSmwQ2z/ylBAe2hUlsIWTq6NYGfQPq65EF9w==", - "requires": { - "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^3.0.2", - "postcss-calc": "^8.2.0", - "postcss-colormin": "^5.2.5", - "postcss-convert-values": "^5.0.4", - "postcss-discard-comments": "^5.0.3", - "postcss-discard-duplicates": "^5.0.3", - "postcss-discard-empty": "^5.0.3", - "postcss-discard-overridden": "^5.0.4", - "postcss-merge-longhand": "^5.0.6", - "postcss-merge-rules": "^5.0.6", - "postcss-minify-font-values": "^5.0.4", - "postcss-minify-gradients": "^5.0.6", - "postcss-minify-params": "^5.0.5", - "postcss-minify-selectors": "^5.1.3", - "postcss-normalize-charset": "^5.0.3", - "postcss-normalize-display-values": "^5.0.3", - "postcss-normalize-positions": "^5.0.4", - "postcss-normalize-repeat-style": "^5.0.4", - "postcss-normalize-string": "^5.0.4", - "postcss-normalize-timing-functions": "^5.0.3", - "postcss-normalize-unicode": "^5.0.4", - "postcss-normalize-url": "^5.0.5", - "postcss-normalize-whitespace": "^5.0.4", - "postcss-ordered-values": "^5.0.5", - "postcss-reduce-initial": "^5.0.3", - "postcss-reduce-transforms": "^5.0.4", - "postcss-svgo": "^5.0.4", - "postcss-unique-selectors": "^5.0.4" - } - }, - "cssnano-utils": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.0.2.tgz", - "integrity": "sha512-KhprijuQv2sP4kT92sSQwhlK3SJTbDIsxcfIEySB0O+3m9esFOai7dP9bMx5enHAh2MwarVIcnwiWoOm01RIbQ==", - "requires": {} - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "requires": { - "css-tree": "^1.1.2" - }, - "dependencies": { - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "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==" - } - } - }, - "csstype": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", - "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" - }, - "damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "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==" - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "requires": { - "execa": "^5.0.0" - } - }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "dequal": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", - "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "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==" - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "requires": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - } - }, - "didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "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==" - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "requires": { - "path-type": "^4.0.0" - } - }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" - }, - "dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-accessibility-api": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.12.tgz", - "integrity": "sha512-gQ2mON6fLWZeM8ubjzL7RtMeHS/g8hb82j4MjHmcQECD7pevWsMlhqwp9BjIRrQvmyJMMyv/XiO1cXzeFlUw4g==" - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "requires": { - "utila": "~0.4" - } - }, - "dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "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==" - } - } - }, - "domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" - }, - "dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "ejs": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", - "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", - "requires": { - "jake": "^10.6.1" - } - }, - "electron-to-chromium": { - "version": "1.4.71", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz", - "integrity": "sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw==" - }, - "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "enhanced-resolve": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz", - "integrity": "sha512-weDYmzbBygL7HzGGS26M3hGQx68vehdEg6VUmqSOaFzXExFqlnKuSvsEJCVGQHScS8CQMbrAqftT+AzzHNt/YA==", - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "error-stack-parser": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", - "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", - "requires": { - "stackframe": "^1.1.1" - } - }, - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-cookie": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/es-cookie/-/es-cookie-1.3.2.tgz", - "integrity": "sha512-UTlYYhXGLOy05P/vKVT2Ui7WtC7NiRzGtJyAKKn32g5Gvcjn7KAClLPWlipCtxIus934dFg9o9jXiBL0nP+t9Q==" - }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "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==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "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" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, - "eslint": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz", - "integrity": "sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==", - "requires": { - "@eslint/eslintrc": "^1.1.0", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^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==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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==", - "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==" - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - }, - "globals": { - "version": "13.12.1", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", - "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "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==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - } - } - }, - "eslint-config-react-app": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.0.tgz", - "integrity": "sha512-xyymoxtIt1EOsSaGag+/jmcywRuieQoA2JbPCjnw9HukFj9/97aGPoZVFioaotzk1K5Qt9sHO5EutZbkrAXS0g==", - "requires": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "babel-preset-react-app": "^10.0.1", - "confusing-browser-globals": "^1.0.11", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1" - } - }, - "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "requires": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", - "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, - "eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "requires": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" - } - }, - "eslint-plugin-import": { - "version": "2.25.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.2", - "has": "^1.0.3", - "is-core-module": "^2.8.0", - "is-glob": "^4.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.12.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "^2.0.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "eslint-plugin-jest": { - "version": "25.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", - "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", - "requires": { - "@typescript-eslint/experimental-utils": "^5.0.0" - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", - "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", - "requires": { - "@babel/runtime": "^7.16.3", - "aria-query": "^4.2.2", - "array-includes": "^3.1.4", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.3.5", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.7", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.2.1", - "language-tags": "^1.0.5", - "minimatch": "^3.0.4" - } - }, - "eslint-plugin-react": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz", - "integrity": "sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==", - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.0.4", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", - "object.values": "^1.1.5", - "prop-types": "^15.7.2", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "eslint-plugin-react-hooks": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz", - "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==", - "requires": {} - }, - "eslint-plugin-testing-library": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.0.5.tgz", - "integrity": "sha512-0j355vJpJCE/2g+aayIgJRUB6jBVqpD5ztMLGcadR1PgrgGPnPxN1HJuOAsAAwiMo27GwRnpJB8KOQzyNuNZrw==", - "requires": { - "@typescript-eslint/utils": "^5.10.2" - } - }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" - }, - "eslint-webpack-plugin": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz", - "integrity": "sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==", - "requires": { - "@types/eslint": "^7.28.2", - "jest-worker": "^27.3.1", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "schema-utils": "^3.1.1" - } - }, - "espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", - "requires": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.3.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "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" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" - }, - "expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "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", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.19.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.2", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.7", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "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==" - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fast-text-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", - "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "requires": { - "reusify": "^1.0.4" - } - }, - "faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "requires": { - "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==", - "requires": { - "bser": "2.1.1" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - } - }, - "filelist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", - "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", - "requires": { - "minimatch": "^3.0.4" - } - }, - "filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" - }, - "follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" - }, - "fork-ts-checker-webpack-plugin": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz", - "integrity": "sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.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==", - "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==", - "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==", - "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==" - }, - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "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==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.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==" - }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } - }, - "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==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" - } - } - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fraction.js": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.3.tgz", - "integrity": "sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" - }, - "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==" - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "requires": { - "is-glob": "^4.0.3" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" - }, - "gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "requires": { - "duplexer": "^0.1.2" - } - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" - }, - "harmony-reflect": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", - "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, - "history": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", - "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", - "requires": { - "@babel/runtime": "^7.7.6" - } - }, - "hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", - "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==" - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "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==", - "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", - "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==" - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "requires": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - } - }, - "html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", - "requires": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - } - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "http-parser-js": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", - "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==" - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "http-proxy-middleware": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.3.tgz", - "integrity": "sha512-1bloEwnrHMnCoO/Gcwbz7eSVvW50KPES01PecpagI+YLNLci4AcuKJrujW4Mc3sBLpFxMSlsLNHS5Nl/lvrTPA==", - "requires": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "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==" - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "requires": {} - }, - "idb": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz", - "integrity": "sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==" - }, - "identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", - "requires": { - "harmony-reflect": "^1.4.6" - } - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - }, - "immer": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.12.tgz", - "integrity": "sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==" - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - } - } - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "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", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" - }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "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==" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" - }, - "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==" - }, - "is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" - }, - "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==" - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" - }, - "is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" - }, - "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" - }, - "istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.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==" - }, - "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==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "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==", - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", - "requires": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" - } - } - }, - "jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "requires": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - } - }, - "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==", - "requires": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - } - }, - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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==", - "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==", - "requires": {} - }, - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-watch-typeahead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.0.0.tgz", - "integrity": "sha512-jxoszalAb394WElmiJTFBMzie/RDCF+W7Q29n5LzOPtcoQoHWfdUtHFkbhgf5NwWe8uMOxvKb/g7ea7CshfkTw==", - "requires": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^27.0.0", - "jest-watcher": "^27.0.0", - "slash": "^4.0.0", - "string-length": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", - "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==" - }, - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" - }, - "string-length": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", - "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", - "requires": { - "char-regex": "^2.0.0", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.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==" - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "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" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "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==" - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jsonpointer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz", - "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==" - }, - "jsx-ast-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", - "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", - "requires": { - "array-includes": "^3.1.3", - "object.assign": "^4.1.2" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==" - }, - "language-subtag-registry": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", - "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==" - }, - "language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", - "requires": { - "language-subtag-registry": "~0.3.2" - } - }, - "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==" - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lilconfig": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", - "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==" - }, - "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==" - }, - "loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==" - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "requires": { - "tslib": "^2.0.3" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "lz-string": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", - "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=" - }, - "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "requires": { - "sourcemap-codec": "^1.4.4" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "requires": { - "tmpl": "1.0.5" - } - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "memfs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", - "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", - "requires": { - "fs-monkey": "1.0.3" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" - }, - "mini-css-extract-plugin": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz", - "integrity": "sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw==", - "requires": { - "schema-utils": "^4.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "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-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "moment": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", - "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" - }, - "moment-timezone": { - "version": "0.5.34", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz", - "integrity": "sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==", - "requires": { - "moment": ">= 2.9.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, - "nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, - "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "requires": { - "boolbase": "^1.0.0" - } - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==" - }, - "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", - "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", - "requires": { - "@types/retry": "^0.12.0", - "retry": "^0.13.1" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - } - } - }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "postcss": { - "version": "8.4.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", - "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", - "requires": { - "nanoid": "^3.2.0", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-attribute-case-insensitive": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", - "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", - "requires": { - "postcss-selector-parser": "^6.0.2" - } - }, - "postcss-browser-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", - "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", - "requires": {} - }, - "postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "requires": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-clamp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.0.0.tgz", - "integrity": "sha512-FsMmeBZtymFN7Jtlnw9is8I4nB+qEEb/qS0ZLTIqcKiwZyHBq44Yhv29Q+VQsTGHYFqIr/s/9tqvNM7j+j1d+g==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-color-functional-notation": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", - "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-color-hex-alpha": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", - "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-color-rebeccapurple": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", - "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-colormin": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.5.tgz", - "integrity": "sha512-+X30aDaGYq81mFqwyPpnYInsZQnNpdxMX0ajlY7AExCexEFkPVV+KrO7kXwayqEWL2xwEbNQ4nUO0ZsRWGnevg==", - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-convert-values": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.4.tgz", - "integrity": "sha512-bugzSAyjIexdObovsPZu/sBCTHccImJxLyFgeV0MmNBm/Lw5h5XnjfML6gzEmJ3A6nyfCW7hb1JXzcsA4Zfbdw==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-custom-media": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", - "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", - "requires": {} - }, - "postcss-custom-properties": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.4.tgz", - "integrity": "sha512-i6AytuTCoDLJkWN/MtAIGriJz3j7UX6bV7Z5t+KgFz+dwZS15/mlTJY1S0kRizlk6ba0V8u8hN50Fz5Nm7tdZw==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-custom-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", - "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-dir-pseudo-class": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", - "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "postcss-discard-comments": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.3.tgz", - "integrity": "sha512-6W5BemziRoqIdAKT+1QjM4bNcJAQ7z7zk073730NHg4cUXh3/rQHHj7pmYxUB9aGhuRhBiUf0pXvIHkRwhQP0Q==", - "requires": {} - }, - "postcss-discard-duplicates": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.3.tgz", - "integrity": "sha512-vPtm1Mf+kp7iAENTG7jI1MN1lk+fBqL5y+qxyi4v3H+lzsXEdfS3dwUZD45KVhgzDEgduur8ycB4hMegyMTeRw==", - "requires": {} - }, - "postcss-discard-empty": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.3.tgz", - "integrity": "sha512-xGJugpaXKakwKI7sSdZjUuN4V3zSzb2Y0LOlmTajFbNinEjTfVs9PFW2lmKBaC/E64WwYppfqLD03P8l9BuueA==", - "requires": {} - }, - "postcss-discard-overridden": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.4.tgz", - "integrity": "sha512-3j9QH0Qh1KkdxwiZOW82cId7zdwXVQv/gRXYDnwx5pBtR1sTkU4cXRK9lp5dSdiM0r0OICO/L8J6sV1/7m0kHg==", - "requires": {} - }, - "postcss-double-position-gradients": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.0.tgz", - "integrity": "sha512-oz73I08yMN3oxjj0s8mED1rG+uOYoK3H8N9RjQofyg52KBRNmePJKg3fVwTpL2U5ZFbCzXoZBsUD/CvZdlqE4Q==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-env-function": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.5.tgz", - "integrity": "sha512-gPUJc71ji9XKyl0WSzAalBeEA/89kU+XpffpPxSaaaZ1c48OL36r1Ep5R6+9XAPkIiDlSvVAwP4io12q/vTcvA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-flexbugs-fixes": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", - "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", - "requires": {} - }, - "postcss-focus-visible": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", - "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "postcss-focus-within": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", - "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "requires": {} - }, - "postcss-gap-properties": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", - "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", - "requires": {} - }, - "postcss-image-set-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", - "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-initial": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", - "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "requires": {} - }, - "postcss-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", - "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", - "requires": { - "camelcase-css": "^2.0.1" - } - }, - "postcss-lab-function": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.1.1.tgz", - "integrity": "sha512-j3Z0WQCimY2tMle++YcmygnnVbt6XdnrCV1FO2IpzaCSmtTF2oO8h4ZYUA1Q+QHYroIiaWPvNHt9uBR4riCksQ==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-load-config": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.3.tgz", - "integrity": "sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==", - "requires": { - "lilconfig": "^2.0.4", - "yaml": "^1.10.2" - } - }, - "postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", - "requires": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" - } - }, - "postcss-logical": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", - "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "requires": {} - }, - "postcss-media-minmax": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", - "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "requires": {} - }, - "postcss-merge-longhand": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.6.tgz", - "integrity": "sha512-rkmoPwQO6ymJSmWsX6l2hHeEBQa7C4kJb9jyi5fZB1sE8nSCv7sqchoYPixRwX/yvLoZP2y6FA5kcjiByeJqDg==", - "requires": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.0.3" - } - }, - "postcss-merge-rules": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.6.tgz", - "integrity": "sha512-nzJWJ9yXWp8AOEpn/HFAW72WKVGD2bsLiAmgw4hDchSij27bt6TF+sIK0cJUBAYT3SGcjtGGsOR89bwkkMuMgQ==", - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.0.2", - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-minify-font-values": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.4.tgz", - "integrity": "sha512-RN6q3tyuEesvyCYYFCRGJ41J1XFvgV+dvYGHr0CeHv8F00yILlN8Slf4t8XW4IghlfZYCeyRrANO6HpJ948ieA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-gradients": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.6.tgz", - "integrity": "sha512-E/dT6oVxB9nLGUTiY/rG5dX9taugv9cbLNTFad3dKxOO+BQg25Q/xo2z2ddG+ZB1CbkZYaVwx5blY8VC7R/43A==", - "requires": { - "colord": "^2.9.1", - "cssnano-utils": "^3.0.2", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-params": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.5.tgz", - "integrity": "sha512-YBNuq3Rz5LfLFNHb9wrvm6t859b8qIqfXsWeK7wROm3jSKNpO1Y5e8cOyBv6Acji15TgSrAwb3JkVNCqNyLvBg==", - "requires": { - "browserslist": "^4.16.6", - "cssnano-utils": "^3.0.2", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-selectors": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.3.tgz", - "integrity": "sha512-9RJfTiQEKA/kZhMaEXND893nBqmYQ8qYa/G+uPdVnXF6D/FzpfI6kwBtWEcHx5FqDbA79O9n6fQJfrIj6M8jvQ==", - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "requires": {} - }, - "postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "requires": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "requires": { - "icss-utils": "^5.0.0" - } - }, - "postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", - "requires": { - "postcss-selector-parser": "^6.0.6" - } - }, - "postcss-nesting": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.2.tgz", - "integrity": "sha512-dJGmgmsvpzKoVMtDMQQG/T6FSqs6kDtUDirIfl4KnjMCiY9/ETX8jdKyCd20swSRAbUYkaBKV20pxkzxoOXLqQ==", - "requires": { - "postcss-selector-parser": "^6.0.8" - } - }, - "postcss-normalize": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", - "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", - "requires": { - "@csstools/normalize.css": "*", - "postcss-browser-comments": "^4", - "sanitize.css": "*" - } - }, - "postcss-normalize-charset": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.3.tgz", - "integrity": "sha512-iKEplDBco9EfH7sx4ut7R2r/dwTnUqyfACf62Unc9UiyFuI7uUqZZtY+u+qp7g8Qszl/U28HIfcsI3pEABWFfA==", - "requires": {} - }, - "postcss-normalize-display-values": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.3.tgz", - "integrity": "sha512-FIV5FY/qs4Ja32jiDb5mVj5iWBlS3N8tFcw2yg98+8MkRgyhtnBgSC0lxU+16AMHbjX5fbSJgw5AXLMolonuRQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-positions": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.4.tgz", - "integrity": "sha512-qynirjBX0Lc73ROomZE3lzzmXXTu48/QiEzKgMeqh28+MfuHLsuqC9po4kj84igZqqFGovz8F8hf44hA3dPYmQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-repeat-style": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.4.tgz", - "integrity": "sha512-Innt+wctD7YpfeDR7r5Ik6krdyppyAg2HBRpX88fo5AYzC1Ut/l3xaxACG0KsbX49cO2n5EB13clPwuYVt8cMA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-string": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.4.tgz", - "integrity": "sha512-Dfk42l0+A1CDnVpgE606ENvdmksttLynEqTQf5FL3XGQOyqxjbo25+pglCUvziicTxjtI2NLUR6KkxyUWEVubQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-timing-functions": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.3.tgz", - "integrity": "sha512-QRfjvFh11moN4PYnJ7hia4uJXeFotyK3t2jjg8lM9mswleGsNw2Lm3I5wO+l4k1FzK96EFwEVn8X8Ojrp2gP4g==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-unicode": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.4.tgz", - "integrity": "sha512-W79Regn+a+eXTzB+oV/8XJ33s3pDyFTND2yDuUCo0Xa3QSy1HtNIfRVPXNubHxjhlqmMFADr3FSCHT84ITW3ig==", - "requires": { - "browserslist": "^4.16.6", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-url": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.5.tgz", - "integrity": "sha512-Ws3tX+PcekYlXh+ycAt0wyzqGthkvVtZ9SZLutMVvHARxcpu4o7vvXcNoiNKyjKuWecnjS6HDI3fjBuDr5MQxQ==", - "requires": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-whitespace": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.4.tgz", - "integrity": "sha512-wsnuHolYZjMwWZJoTC9jeI2AcjA67v4UuidDrPN9RnX8KIZfE+r2Nd6XZRwHVwUiHmRvKQtxiqo64K+h8/imaw==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-opacity-percentage": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", - "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==" - }, - "postcss-ordered-values": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.5.tgz", - "integrity": "sha512-mfY7lXpq+8bDEHfP+muqibDPhZ5eP9zgBEF9XRvoQgXcQe2Db3G1wcvjbnfjXG6wYsl+0UIjikqq4ym1V2jGMQ==", - "requires": { - "cssnano-utils": "^3.0.2", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-overflow-shorthand": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", - "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", - "requires": {} - }, - "postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "requires": {} - }, - "postcss-place": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", - "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-preset-env": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.1.tgz", - "integrity": "sha512-UvBVvPJ2vb4odAtckSbryndyBz+Me1q8wawqq0qznpDXy188I+8W5Sa929sCPqw2/NSYnqpHJbo41BKso3+I9A==", - "requires": { - "@csstools/postcss-color-function": "^1.0.2", - "@csstools/postcss-font-format-keywords": "^1.0.0", - "@csstools/postcss-hwb-function": "^1.0.0", - "@csstools/postcss-ic-unit": "^1.0.0", - "@csstools/postcss-is-pseudo-class": "^2.0.0", - "@csstools/postcss-normalize-display-values": "^1.0.0", - "@csstools/postcss-oklab-function": "^1.0.1", - "@csstools/postcss-progressive-custom-properties": "^1.2.0", - "autoprefixer": "^10.4.2", - "browserslist": "^4.19.1", - "css-blank-pseudo": "^3.0.3", - "css-has-pseudo": "^3.0.4", - "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^6.3.1", - "postcss-attribute-case-insensitive": "^5.0.0", - "postcss-clamp": "^4.0.0", - "postcss-color-functional-notation": "^4.2.2", - "postcss-color-hex-alpha": "^8.0.3", - "postcss-color-rebeccapurple": "^7.0.2", - "postcss-custom-media": "^8.0.0", - "postcss-custom-properties": "^12.1.4", - "postcss-custom-selectors": "^6.0.0", - "postcss-dir-pseudo-class": "^6.0.4", - "postcss-double-position-gradients": "^3.1.0", - "postcss-env-function": "^4.0.5", - "postcss-focus-visible": "^6.0.4", - "postcss-focus-within": "^5.0.4", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.3", - "postcss-image-set-function": "^4.0.6", - "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.1.1", - "postcss-logical": "^5.0.4", - "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.2", - "postcss-opacity-percentage": "^1.1.2", - "postcss-overflow-shorthand": "^3.0.3", - "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.4", - "postcss-pseudo-class-any-link": "^7.1.1", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^5.0.0" - } - }, - "postcss-pseudo-class-any-link": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz", - "integrity": "sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "postcss-reduce-initial": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.3.tgz", - "integrity": "sha512-c88TkSnQ/Dnwgb4OZbKPOBbCaauwEjbECP5uAuFPOzQ+XdjNjRH7SG0dteXrpp1LlIFEKK76iUGgmw2V0xeieA==", - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.4.tgz", - "integrity": "sha512-VIJB9SFSaL8B/B7AXb7KHL6/GNNbbCHslgdzS9UDfBZYIA2nx8NLY7iD/BXFSO/1sRUILzBTfHCoW5inP37C5g==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "requires": {} - }, - "postcss-selector-not": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", - "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.4.tgz", - "integrity": "sha512-yDKHvULbnZtIrRqhZoA+rxreWpee28JSRH/gy9727u0UCgtpv1M/9WEWY3xySlFa0zQJcqf6oCBJPR5NwkmYpg==", - "requires": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" - }, - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "requires": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - } - } - } - }, - "postcss-unique-selectors": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.4.tgz", - "integrity": "sha512-5ampwoSDJCxDPoANBIlMgoBcYUHnhaiuLYJR5pj1DLnYQvMRVyFuTA5C3Bvt+aHtiqWpJkD/lXT50Vo1D0ZsAQ==", - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" - }, - "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==" - }, - "pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "requires": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "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==", - "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==" - } - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "promise": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", - "requires": { - "asap": "~2.0.6" - } - }, - "promise-polyfill": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.3.tgz", - "integrity": "sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg==" - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - } - } - }, - "prop-types-extra": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", - "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", - "requires": { - "react-is": "^16.3.2", - "warning": "^4.0.0" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - } - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "dependencies": { - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - } - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" - }, - "qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", - "requires": { - "bytes": "3.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "react-app-polyfill": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", - "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", - "requires": { - "core-js": "^3.19.2", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.9", - "whatwg-fetch": "^3.6.2" - } - }, - "react-bootstrap": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.2.3.tgz", - "integrity": "sha512-gXsAEBdDUHnOpJ2C+DDQ4mFt7tN6u6qWnTH3tqiE9jUvV6gGY8uHFp0iGBsM+yjrBwmR6bqCBFh8Z82aQj1LSw==", - "requires": { - "@babel/runtime": "^7.17.2", - "@restart/hooks": "^0.4.6", - "@restart/ui": "^1.2.0", - "@types/invariant": "^2.2.35", - "@types/prop-types": "^15.7.4", - "@types/react": ">=16.14.8", - "@types/react-transition-group": "^4.4.4", - "@types/warning": "^3.0.0", - "classnames": "^2.3.1", - "dom-helpers": "^5.2.1", - "invariant": "^2.2.4", - "prop-types": "^15.8.1", - "prop-types-extra": "^1.1.0", - "react-transition-group": "^4.4.2", - "uncontrollable": "^7.2.1", - "warning": "^4.0.3" - } - }, - "react-dev-utils": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.0.tgz", - "integrity": "sha512-xBQkitdxozPxt1YZ9O1097EJiVpwHr9FoAuEVURCKV0Av8NBERovJauzP7bo1ThvuhZ4shsQ1AJiu4vQpoT1AQ==", - "requires": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.10", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.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==", - "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==", - "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==", - "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==" - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==" - }, - "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==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - } - }, - "react-error-overlay": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz", - "integrity": "sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA==" - }, - "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==" - }, - "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "react-moment": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/react-moment/-/react-moment-1.1.2.tgz", - "integrity": "sha512-lfb+shYXI2tXlQrNUpNr05/1D/kzFj8Isbfp89DQrpZk0fs2JIAnLHWETR0hQS9zvtzwLWlVv0wKLffbue5HoA==", - "requires": {} - }, - "react-refresh": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", - "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==" - }, - "react-router": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.2.1.tgz", - "integrity": "sha512-2fG0udBtxou9lXtK97eJeET2ki5//UWfQSl1rlJ7quwe6jrktK9FCCc8dQb5QY6jAv3jua8bBQRhhDOM/kVRsg==", - "requires": { - "history": "^5.2.0" - } - }, - "react-router-dom": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.2.1.tgz", - "integrity": "sha512-I6Zax+/TH/cZMDpj3/4Fl2eaNdcvoxxHoH1tYOREsQ22OKDYofGebrNm6CTPUcvLvZm63NL/vzCYdjf9CUhqmA==", - "requires": { - "history": "^5.2.0", - "react-router": "6.2.1" - } - }, - "react-scripts": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.0.tgz", - "integrity": "sha512-3i0L2CyIlROz7mxETEdfif6Sfhh9Lfpzi10CtcGs1emDQStmZfWjJbAIMtRD0opVUjQuFWqHZyRZ9PPzKCFxWg==", - "requires": { - "@babel/core": "^7.16.0", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", - "@svgr/webpack": "^5.5.0", - "babel-jest": "^27.4.2", - "babel-loader": "^8.2.3", - "babel-plugin-named-asset-import": "^0.3.8", - "babel-preset-react-app": "^10.0.1", - "bfj": "^7.0.2", - "browserslist": "^4.18.1", - "camelcase": "^6.2.1", - "case-sensitive-paths-webpack-plugin": "^2.4.0", - "css-loader": "^6.5.1", - "css-minimizer-webpack-plugin": "^3.2.0", - "dotenv": "^10.0.0", - "dotenv-expand": "^5.1.0", - "eslint": "^8.3.0", - "eslint-config-react-app": "^7.0.0", - "eslint-webpack-plugin": "^3.1.1", - "file-loader": "^6.2.0", - "fs-extra": "^10.0.0", - "fsevents": "^2.3.2", - "html-webpack-plugin": "^5.5.0", - "identity-obj-proxy": "^3.0.0", - "jest": "^27.4.3", - "jest-resolve": "^27.4.2", - "jest-watch-typeahead": "^1.0.0", - "mini-css-extract-plugin": "^2.4.5", - "postcss": "^8.4.4", - "postcss-flexbugs-fixes": "^5.0.2", - "postcss-loader": "^6.2.1", - "postcss-normalize": "^10.0.1", - "postcss-preset-env": "^7.0.1", - "prompts": "^2.4.2", - "react-app-polyfill": "^3.0.0", - "react-dev-utils": "^12.0.0", - "react-refresh": "^0.11.0", - "resolve": "^1.20.0", - "resolve-url-loader": "^4.0.0", - "sass-loader": "^12.3.0", - "semver": "^7.3.5", - "source-map-loader": "^3.0.0", - "style-loader": "^3.3.1", - "tailwindcss": "^3.0.2", - "terser-webpack-plugin": "^5.2.5", - "webpack": "^5.64.4", - "webpack-dev-server": "^4.6.0", - "webpack-manifest-plugin": "^4.0.2", - "workbox-webpack-plugin": "^6.4.1" - } - }, - "react-transition-group": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", - "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "requires": { - "minimatch": "3.0.4" - }, - "dependencies": { - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-parser": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", - "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" - }, - "regexp.prototype.flags": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", - "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" - }, - "regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" - }, - "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" - }, - "renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "requires": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "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==", - "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", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - }, - "resolve-url-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", - "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", - "requires": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^7.0.35", - "source-map": "0.6.1" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" - }, - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "rollup": { - "version": "2.67.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.67.3.tgz", - "integrity": "sha512-G/x1vUwbGtP6O5ZM8/sWr8+p7YfZhI18pPqMRtMYMWSbHjKZ/ajHGiM+GWNTlWyOR0EHIdT8LHU+Z4ciIZ1oBw==", - "requires": { - "fsevents": "~2.3.2" - } - }, - "rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "requires": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.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==" - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "requires": { - "randombytes": "^2.1.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==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sanitize.css": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", - "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" - }, - "sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", - "requires": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "requires": { - "xmlchars": "^2.2.0" - } - }, - "scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "selfsigned": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.0.tgz", - "integrity": "sha512-cUdFiCbKoa1mZ6osuJs2uDHrs0k0oprsKveFiiaBKCNq3SYyb5gs2HxhQyDNLCmL51ZZThqi4YNDpCK6GOP1iQ==", - "requires": { - "node-forge": "^1.2.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - } - } - }, - "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" - }, - "source-map-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", - "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", - "requires": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" - } - }, - "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "requires": { - "buffer-from": "^1.0.0", - "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==" - } - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, - "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==", - "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==" - } - } - }, - "stackframe": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", - "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==" - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "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==", - "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==" - } - } - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", - "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" - }, - "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" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - } - } - }, - "string.prototype.matchall": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", - "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", - "side-channel": "^1.0.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "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==" - }, - "strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==" - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "requires": { - "min-indent": "^1.0.0" - } - }, - "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==" - }, - "style-loader": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", - "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", - "requires": {} - }, - "stylehacks": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.3.tgz", - "integrity": "sha512-ENcUdpf4yO0E1rubu8rkxI+JGQk4CgjchynZ4bDBJDfqdy+uhTRSWb8/F3Jtu+Bw5MW45Po3/aQGeIyyxgQtxg==", - "requires": { - "browserslist": "^4.16.6", - "postcss-selector-parser": "^6.0.4" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "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==", - "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==" - }, - "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==", - "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", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "dependencies": { - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - }, - "dependencies": { - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - } - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "requires": { - "boolbase": "~1.0.0" - } - } - } - }, - "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==" - }, - "tailwindcss": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz", - "integrity": "sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==", - "requires": { - "arg": "^5.0.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "color-name": "^1.1.4", - "cosmiconfig": "^7.0.1", - "detective": "^5.2.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "normalize-path": "^3.0.0", - "object-hash": "^2.2.0", - "postcss": "^8.4.6", - "postcss-js": "^4.0.0", - "postcss-load-config": "^3.1.0", - "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0", - "quick-lru": "^5.1.1", - "resolve": "^1.22.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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" - }, - "temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==" - }, - "tempy": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", - "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", - "requires": { - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "dependencies": { - "type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==" - } - } - }, - "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==", - "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", - "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==", - "requires": { - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - }, - "terser-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", - "requires": { - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "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==", - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "dependencies": { - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - } - } - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "requires": { - "punycode": "^2.1.1" - } - }, - "tryer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", - "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" - }, - "tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - } - } - }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "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==" - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "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==", - "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==", - "peer": true - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "uncontrollable": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", - "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", - "requires": { - "@babel/runtime": "^7.6.3", - "@types/react": ">=16.9.11", - "invariant": "^2.2.4", - "react-lifecycles-compat": "^3.0.4" - } - }, - "unfetch": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", - "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==" - }, - "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", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" - }, - "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==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "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==", - "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==", - "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==", - "requires": { - "makeerror": "1.0.12" - } - }, - "warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "web-vitals": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", - "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==" - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" - }, - "webpack": { - "version": "5.69.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.69.1.tgz", - "integrity": "sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A==", - "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@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" - }, - "dependencies": { - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - } - } - }, - "webpack-dev-middleware": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", - "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", - "requires": { - "colorette": "^2.0.10", - "memfs": "^3.4.1", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "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-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } - } - }, - "webpack-dev-server": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz", - "integrity": "sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==", - "requires": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.2.2", - "ansi-html-community": "^0.0.8", - "bonjour": "^3.5.0", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "default-gateway": "^6.0.3", - "del": "^6.0.0", - "express": "^4.17.1", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.0", - "ipaddr.js": "^2.0.1", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "portfinder": "^1.0.28", - "schema-utils": "^4.0.0", - "selfsigned": "^2.0.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "spdy": "^4.0.2", - "strip-ansi": "^7.0.0", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "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-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "requires": {} - } - } - }, - "webpack-manifest-plugin": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", - "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", - "requires": { - "tapable": "^2.0.0", - "webpack-sources": "^2.2.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==" - }, - "webpack-sources": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", - "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", - "requires": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - } - } - } - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" - }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" - }, - "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==", - "requires": { - "iconv-lite": "0.4.24" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" - }, - "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==" - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "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==" - }, - "workbox-background-sync": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.4.2.tgz", - "integrity": "sha512-P7c8uG5X2k+DMICH9xeSA9eUlCOjHHYoB42Rq+RtUpuwBxUOflAXR1zdsMWj81LopE4gjKXlTw7BFd1BDAHo7g==", - "requires": { - "idb": "^6.1.4", - "workbox-core": "6.4.2" - } - }, - "workbox-broadcast-update": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.4.2.tgz", - "integrity": "sha512-qnBwQyE0+PWFFc/n4ISXINE49m44gbEreJUYt2ldGH3+CNrLmJ1egJOOyUqqu9R4Eb7QrXcmB34ClXG7S37LbA==", - "requires": { - "workbox-core": "6.4.2" - } - }, - "workbox-build": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.4.2.tgz", - "integrity": "sha512-WMdYLhDIsuzViOTXDH+tJ1GijkFp5khSYolnxR/11zmfhNDtuo7jof72xPGFy+KRpsz6tug39RhivCj77qqO0w==", - "requires": { - "@apideck/better-ajv-errors": "^0.3.1", - "@babel/core": "^7.11.1", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.2", - "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-node-resolve": "^11.2.1", - "@rollup/plugin-replace": "^2.4.1", - "@surma/rollup-plugin-off-main-thread": "^2.2.3", - "ajv": "^8.6.0", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "lodash": "^4.17.20", - "pretty-bytes": "^5.3.0", - "rollup": "^2.43.1", - "rollup-plugin-terser": "^7.0.0", - "source-map": "^0.8.0-beta.0", - "source-map-url": "^0.4.0", - "stringify-object": "^3.3.0", - "strip-comments": "^2.0.1", - "tempy": "^0.6.0", - "upath": "^1.2.0", - "workbox-background-sync": "6.4.2", - "workbox-broadcast-update": "6.4.2", - "workbox-cacheable-response": "6.4.2", - "workbox-core": "6.4.2", - "workbox-expiration": "6.4.2", - "workbox-google-analytics": "6.4.2", - "workbox-navigation-preload": "6.4.2", - "workbox-precaching": "6.4.2", - "workbox-range-requests": "6.4.2", - "workbox-recipes": "6.4.2", - "workbox-routing": "6.4.2", - "workbox-strategies": "6.4.2", - "workbox-streams": "6.4.2", - "workbox-sw": "6.4.2", - "workbox-window": "6.4.2" - }, - "dependencies": { - "@apideck/better-ajv-errors": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz", - "integrity": "sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==", - "requires": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - } - }, - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "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==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "requires": { - "whatwg-url": "^7.0.0" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "requires": { - "punycode": "^2.1.0" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, - "workbox-cacheable-response": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.4.2.tgz", - "integrity": "sha512-9FE1W/cKffk1AJzImxgEN0ceWpyz1tqNjZVtA3/LAvYL3AC5SbIkhc7ZCO82WmO9IjTfu8Vut2X/C7ViMSF7TA==", - "requires": { - "workbox-core": "6.4.2" - } - }, - "workbox-core": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.4.2.tgz", - "integrity": "sha512-1U6cdEYPcajRXiboSlpJx6U7TvhIKbxRRerfepAJu2hniKwJ3DHILjpU/zx3yvzSBCWcNJDoFalf7Vgd7ey/rw==" - }, - "workbox-expiration": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.4.2.tgz", - "integrity": "sha512-0hbpBj0tDnW+DZOUmwZqntB/8xrXOgO34i7s00Si/VlFJvvpRKg1leXdHHU8ykoSBd6+F2KDcMP3swoCi5guLw==", - "requires": { - "idb": "^6.1.4", - "workbox-core": "6.4.2" - } - }, - "workbox-google-analytics": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.4.2.tgz", - "integrity": "sha512-u+gxs3jXovPb1oul4CTBOb+T9fS1oZG+ZE6AzS7l40vnyfJV79DaLBvlpEZfXGv3CjMdV1sT/ltdOrKzo7HcGw==", - "requires": { - "workbox-background-sync": "6.4.2", - "workbox-core": "6.4.2", - "workbox-routing": "6.4.2", - "workbox-strategies": "6.4.2" - } - }, - "workbox-navigation-preload": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.4.2.tgz", - "integrity": "sha512-viyejlCtlKsbJCBHwhSBbWc57MwPXvUrc8P7d+87AxBGPU+JuWkT6nvBANgVgFz6FUhCvRC8aYt+B1helo166g==", - "requires": { - "workbox-core": "6.4.2" - } - }, - "workbox-precaching": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.4.2.tgz", - "integrity": "sha512-CZ6uwFN/2wb4noHVlALL7UqPFbLfez/9S2GAzGAb0Sk876ul9ukRKPJJ6gtsxfE2HSTwqwuyNVa6xWyeyJ1XSA==", - "requires": { - "workbox-core": "6.4.2", - "workbox-routing": "6.4.2", - "workbox-strategies": "6.4.2" - } - }, - "workbox-range-requests": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.4.2.tgz", - "integrity": "sha512-SowF3z69hr3Po/w7+xarWfzxJX/3Fo0uSG72Zg4g5FWWnHpq2zPvgbWerBZIa81zpJVUdYpMa3akJJsv+LaO1Q==", - "requires": { - "workbox-core": "6.4.2" - } - }, - "workbox-recipes": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.4.2.tgz", - "integrity": "sha512-/oVxlZFpAjFVbY+3PoGEXe8qyvtmqMrTdWhbOfbwokNFtUZ/JCtanDKgwDv9x3AebqGAoJRvQNSru0F4nG+gWA==", - "requires": { - "workbox-cacheable-response": "6.4.2", - "workbox-core": "6.4.2", - "workbox-expiration": "6.4.2", - "workbox-precaching": "6.4.2", - "workbox-routing": "6.4.2", - "workbox-strategies": "6.4.2" - } - }, - "workbox-routing": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.4.2.tgz", - "integrity": "sha512-0ss/n9PAcHjTy4Ad7l2puuod4WtsnRYu9BrmHcu6Dk4PgWeJo1t5VnGufPxNtcuyPGQ3OdnMdlmhMJ57sSrrSw==", - "requires": { - "workbox-core": "6.4.2" - } - }, - "workbox-strategies": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.4.2.tgz", - "integrity": "sha512-YXh9E9dZGEO1EiPC3jPe2CbztO5WT8Ruj8wiYZM56XqEJp5YlGTtqRjghV+JovWOqkWdR+amJpV31KPWQUvn1Q==", - "requires": { - "workbox-core": "6.4.2" - } - }, - "workbox-streams": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.4.2.tgz", - "integrity": "sha512-ROEGlZHGVEgpa5bOZefiJEVsi5PsFjJG9Xd+wnDbApsCO9xq9rYFopF+IRq9tChyYzhBnyk2hJxbQVWphz3sog==", - "requires": { - "workbox-core": "6.4.2", - "workbox-routing": "6.4.2" - } - }, - "workbox-sw": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.4.2.tgz", - "integrity": "sha512-A2qdu9TLktfIM5NE/8+yYwfWu+JgDaCkbo5ikrky2c7r9v2X6DcJ+zSLphNHHLwM/0eVk5XVf1mC5HGhYpMhhg==" - }, - "workbox-webpack-plugin": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.4.2.tgz", - "integrity": "sha512-CiEwM6kaJRkx1cP5xHksn13abTzUqMHiMMlp5Eh/v4wRcedgDTyv6Uo8+Hg9MurRbHDosO5suaPyF9uwVr4/CQ==", - "requires": { - "fast-json-stable-stringify": "^2.1.0", - "pretty-bytes": "^5.4.1", - "source-map-url": "^0.4.0", - "upath": "^1.2.0", - "webpack-sources": "^1.4.3", - "workbox-build": "6.4.2" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - } - } - }, - "workbox-window": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.4.2.tgz", - "integrity": "sha512-KVyRKmrJg7iB+uym/B/CnEUEFG9CvnTU1Bq5xpXHbtgD9l+ShDekSl1wYpqw/O0JfeeQVOFb8CiNfvnwWwqnWQ==", - "requires": { - "@types/trusted-types": "^2.0.2", - "workbox-core": "6.4.2" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.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==", - "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==", - "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==" - } - } - }, - "wrappy": { - "version": "1.0.2", - "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==", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", - "requires": {} - }, - "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==" - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "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==" - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" - } - } -} diff --git a/frontend/hkrecruitment/package.json b/frontend/hkrecruitment/package.json deleted file mode 100644 index e6e617c..0000000 --- a/frontend/hkrecruitment/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "hkrecruitment", - "version": "0.1.0", - "private": true, - "dependencies": { - "@auth0/auth0-react": "^1.9.0", - "@testing-library/jest-dom": "^5.16.2", - "@testing-library/react": "^12.1.3", - "@testing-library/user-event": "^13.5.0", - "bootstrap": "^5.1.3", - "moment": "^2.29.3", - "moment-timezone": "^0.5.34", - "react": "^17.0.2", - "react-bootstrap": "^2.2.3", - "react-dom": "^17.0.2", - "react-moment": "^1.1.2", - "react-router-dom": "^6.2.1", - "react-scripts": "5.0.0", - "web-vitals": "^2.1.4" - }, - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test", - "eject": "react-scripts eject" - }, - "eslintConfig": { - "extends": [ - "react-app", - "react-app/jest" - ] - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - } -} diff --git a/frontend/hkrecruitment/public/manifest.json b/frontend/hkrecruitment/public/manifest.json deleted file mode 100644 index 013d4a6..0000000 --- a/frontend/hkrecruitment/public/manifest.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "App", - "icons": [ - { - "src": "\/android-icon-36x36.png", - "sizes": "36x36", - "type": "image\/png", - "density": "0.75" - }, - { - "src": "\/android-icon-48x48.png", - "sizes": "48x48", - "type": "image\/png", - "density": "1.0" - }, - { - "src": "\/android-icon-72x72.png", - "sizes": "72x72", - "type": "image\/png", - "density": "1.5" - }, - { - "src": "\/android-icon-96x96.png", - "sizes": "96x96", - "type": "image\/png", - "density": "2.0" - }, - { - "src": "\/android-icon-144x144.png", - "sizes": "144x144", - "type": "image\/png", - "density": "3.0" - }, - { - "src": "\/android-icon-192x192.png", - "sizes": "192x192", - "type": "image\/png", - "density": "4.0" - } - ] -} \ No newline at end of file diff --git a/frontend/hkrecruitment/src/App.js b/frontend/hkrecruitment/src/App.js deleted file mode 100644 index f1ac965..0000000 --- a/frontend/hkrecruitment/src/App.js +++ /dev/null @@ -1,51 +0,0 @@ -import logo from './logo.svg'; -import './App.css'; -import 'bootstrap/dist/css/bootstrap.min.css'; -import React, { useState, useEffect } from 'react'; -import MyNavbar from './MyNavbar.js'; -import SignupForm from './SignupForm.js' -import { Route } from 'react-router-dom'; -import { Navigate } from 'react-router-dom'; -import { Routes } from 'react-router-dom'; -import { useAuth0 } from "@auth0/auth0-react"; -import AvaiabilitiesTable from './AvaiabilitiesTable'; - - - - - - -function App() { - const { - isLoading, - isAuthenticated, - error, - user, - loginWithRedirect, - logout, - } = useAuth0(); - - - - - - - - - - return - }/> - }/> - -} -export default App; - -function AfterLogin(props){ - return
- - {props.isAuthenticated && !props.user.email.endsWith("@hknpolito.org") && } - {props.isAuthenticated && props.user.email.endsWith("@hknpolito.org") && } - - -
-} \ No newline at end of file diff --git a/frontend/hkrecruitment/src/App.test.js b/frontend/hkrecruitment/src/App.test.js deleted file mode 100644 index 1f03afe..0000000 --- a/frontend/hkrecruitment/src/App.test.js +++ /dev/null @@ -1,8 +0,0 @@ -import { render, screen } from '@testing-library/react'; -import App from './App'; - -test('renders learn react link', () => { - render(); - const linkElement = screen.getByText(/learn react/i); - expect(linkElement).toBeInTheDocument(); -}); diff --git a/frontend/hkrecruitment/src/AvaiabilitiesCell.js b/frontend/hkrecruitment/src/AvaiabilitiesCell.js deleted file mode 100644 index ece2383..0000000 --- a/frontend/hkrecruitment/src/AvaiabilitiesCell.js +++ /dev/null @@ -1,10 +0,0 @@ -import React, { useState, useEffect } from 'react'; - - -function AvaiabilitiesCell (props) { - - const [className, setClassName]=useState(""); - - return
setClassName("active")}>{props.name}
-} -export default AvaiabilitiesCell; \ No newline at end of file diff --git a/frontend/hkrecruitment/src/AvaiabilitiesTable.js b/frontend/hkrecruitment/src/AvaiabilitiesTable.js deleted file mode 100644 index 4ee23bc..0000000 --- a/frontend/hkrecruitment/src/AvaiabilitiesTable.js +++ /dev/null @@ -1,67 +0,0 @@ -import Table from 'react-bootstrap/Table' -import Container from 'react-bootstrap/Container'; -import Row from 'react-bootstrap/Row'; -import Col from 'react-bootstrap/Col'; -import AvaiabilitiesCell from './AvaiabilitiesCell'; -import moment from 'moment'; - - -function AvaiabilitiesTable(props) { - let start= "08.00"; - let duration= 45; -let end="20.00"; - - -let fill = [["persona1, persona2,...", "persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,..."], -["persona1, persona2,...", "persona1, persona2,...", "persona1, persona2,...", "persona1, persona2,...", "persona1, persona2,...", "persona1, persona2,..."], -["persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,..."], -["persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,..."], -["persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,..."], -["persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,..."], -["persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,..."], -["persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,..."], -["persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,..."], -["persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,..."], -["persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,..."], -["persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,..."], -["persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,..."], -["persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,..."], -["persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,..."], -["persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,...","persona1, persona2,..."] -]; - -for(let row of fill){ -row.unshift(moment(start).format('hh:mm')); -} - - - - return - - - - - - - - - - - - - - - - - {fill.map((names,index)=>{names.map((name,index)=>)})} - - - -
HoursMondayTuesdayWednesdayThursdayFridaySaturday
- - -
-
-} - -export default AvaiabilitiesTable; \ No newline at end of file diff --git a/frontend/hkrecruitment/src/LoginButton.js b/frontend/hkrecruitment/src/LoginButton.js deleted file mode 100644 index a04d11c..0000000 --- a/frontend/hkrecruitment/src/LoginButton.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from "react"; -import { useAuth0 } from "@auth0/auth0-react"; -import Button from 'react-bootstrap/Button'; - -const LoginButton = () => { - const {isAuthenticated, loginWithRedirect, logout } = useAuth0(); - - return -}; - -export default LoginButton; \ No newline at end of file diff --git a/frontend/hkrecruitment/src/MyNavbar.js b/frontend/hkrecruitment/src/MyNavbar.js deleted file mode 100644 index db43bc4..0000000 --- a/frontend/hkrecruitment/src/MyNavbar.js +++ /dev/null @@ -1,53 +0,0 @@ -import React from 'react'; -import Navbar from 'react-bootstrap/Navbar'; -import Container from 'react-bootstrap/Container' -import Row from 'react-bootstrap/Row' -import LoginButton from './LoginButton'; - -import Col from 'react-bootstrap/Col' -import { useAuth0 } from "@auth0/auth0-react"; - - - -function MyNavbar(props) { - const { - isLoading, - isAuthenticated, - error, - user, - loginWithRedirect, - logout, - } = useAuth0(); - - - - - - return - - - - - {' '} - HKRecruitment - - -

{ isAuthenticated? "Hello " + user.name.split(" ")[0]+"!" : "Login" }

- - -
-
- -
- - -} - -export default MyNavbar; - \ No newline at end of file diff --git a/frontend/hkrecruitment/src/SignupForm.js b/frontend/hkrecruitment/src/SignupForm.js deleted file mode 100644 index 94fadcf..0000000 --- a/frontend/hkrecruitment/src/SignupForm.js +++ /dev/null @@ -1,183 +0,0 @@ -import React, { useState, useEffect } from 'react'; -import Button from 'react-bootstrap/Button'; -import Form from 'react-bootstrap/Form'; -import Container from 'react-bootstrap/Container'; -import Row from 'react-bootstrap/Row'; -import Col from 'react-bootstrap/Col'; -import Alert from 'react-bootstrap/Alert'; - -function SignupForm(props) { - const [level, setLevel]=useState(""); - const [validated, setValidated] = useState(false); - const [previous, setPrevious]=useState(""); - const [average, setAverage]=useState(""); - const [cfu, setCfu]=useState(0); - const [course, setCourse]=useState(""); - const [year, setYear]=useState(0); - const [phd, setPhd]=useState(""); - const [isLoading, setLoading] = useState(false); - - - - const handleSubmit = (event) => { - const form = event.currentTarget; - if (form.checkValidity() === false) { - event.preventDefault(); - event.stopPropagation(); - } - switch(level){ - case "LT": - if(year > 1 && cfu>60 && cfu<180 && average>=26){ - - setValidated(true); - setLoading(true); - } - break; - case "LM": - if(cfu<20 && average>=26){ - - setValidated(true); - setLoading(true); - } - else if(cfu>=20 && average>=27){ - setValidated(true); - setLoading(true); - } - break; - case "PhD": - setValidated(true); - setLoading(true); - break; - default: - setValidated(false); - - } - } - return
-

Insert your data to submit an application

- - - setLevel(event.target.value)} > - Il mio attuale livello di studi - - - - - - - - - - - - - setCfu(event.target.value)}> - CFU obtained - - - - setCourse(event.target.value)}> - Il mio attuale corso di studi - - - - - - - - - setPrevious(event.target.value)} > - Il mio corso di studi triennale - - - - - - - - - setPhd(event.target.value)} > - Brief Description of your PhD work - - - - - - - - - - setPrevious(event.target.value)} > - Il mio corso di studi magistrale - - - - - - - - - setCfu(event.target.value)}> - CFU obtained - - - - setYear(event.target.value)} > - Year - - - - - {level=="LT" ? : ""} - - - - - - setAverage(event.target.value)}> - Average {(cfu<20)? "bachelor": ""} grade - - - Insert average grade (min 25, for 30L insert 30) - - - - - - - CV - {return;}} - /> - - Upload a cv to continue - - - - Lista Voti - {return;}} - /> - - Upload your actual grade list to continue - - - - - - - -
- -} -export default SignupForm; \ No newline at end of file diff --git a/frontend/hkrecruitment/src/index.css b/frontend/hkrecruitment/src/index.css deleted file mode 100644 index ec2585e..0000000 --- a/frontend/hkrecruitment/src/index.css +++ /dev/null @@ -1,13 +0,0 @@ -body { - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', - 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', - sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -code { - font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', - monospace; -} diff --git a/frontend/hkrecruitment/src/index.js b/frontend/hkrecruitment/src/index.js deleted file mode 100644 index 0841e65..0000000 --- a/frontend/hkrecruitment/src/index.js +++ /dev/null @@ -1,29 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import './index.css'; -import App from './App'; -import { BrowserRouter } from "react-router-dom"; -import reportWebVitals from './reportWebVitals'; -import { Auth0Provider } from "@auth0/auth0-react"; - - - -ReactDOM.render( - - - - - - - , - document.getElementById('root') -); - -// If you want to start measuring performance in your app, pass a function -// to log results (for example: reportWebVitals(console.log)) -// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals -reportWebVitals(); diff --git a/frontend/hkrecruitment/src/reportWebVitals.js b/frontend/hkrecruitment/src/reportWebVitals.js deleted file mode 100644 index 5253d3a..0000000 --- a/frontend/hkrecruitment/src/reportWebVitals.js +++ /dev/null @@ -1,13 +0,0 @@ -const reportWebVitals = onPerfEntry => { - if (onPerfEntry && onPerfEntry instanceof Function) { - import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { - getCLS(onPerfEntry); - getFID(onPerfEntry); - getFCP(onPerfEntry); - getLCP(onPerfEntry); - getTTFB(onPerfEntry); - }); - } -}; - -export default reportWebVitals; diff --git a/frontend/hkrecruitment/src/setupTests.js b/frontend/hkrecruitment/src/setupTests.js deleted file mode 100644 index 8f2609b..0000000 --- a/frontend/hkrecruitment/src/setupTests.js +++ /dev/null @@ -1,5 +0,0 @@ -// jest-dom adds custom jest matchers for asserting on DOM nodes. -// allows you to do things like: -// expect(element).toHaveTextContent(/react/i) -// learn more: https://github.com/testing-library/jest-dom -import '@testing-library/jest-dom'; diff --git a/frontend/hkrecruitment/public/index.html b/frontend/index.html similarity index 54% rename from frontend/hkrecruitment/public/index.html rename to frontend/index.html index dc9817a..191149a 100644 --- a/frontend/hkrecruitment/public/index.html +++ b/frontend/index.html @@ -2,34 +2,56 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - + - diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..4c13847 --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,53 @@ +{ + "name": "@hkrecruitment/frontend", + "version": "0.1.0", + "private": true, + "type": "module", + "dependencies": { + "@auth0/auth0-react": "^1.12.0", + "@hkrecruitment/shared": "workspace:*", + "@popperjs/core": "^2.11.6", + "bootstrap": "^5.2.3", + "moment": "^2.29.3", + "moment-timezone": "^0.5.34", + "prop-types": "^15.7.0", + "react": "^18.2.0", + "react-bootstrap": "^2.2.3", + "react-dom": "^18.2.0", + "react-moment": "^1.1.3", + "react-router-dom": "^6.9.0", + "web-vitals": "^2.1.4" + }, + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview --port 5173", + "clean": "rimraf dist", + "format": "prettier --write src" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "devDependencies": { + "@vitejs/plugin-react": "^3.1.0", + "typescript": "^4.6.4", + "vite": "^4.2.1", + "vite-plugin-html": "^3.2.0", + "prettier": "^2.8.5" + } +} diff --git a/frontend/hkrecruitment/public/android-icon-144x144.png b/frontend/public/android-icon-144x144.png similarity index 100% rename from frontend/hkrecruitment/public/android-icon-144x144.png rename to frontend/public/android-icon-144x144.png diff --git a/frontend/hkrecruitment/public/android-icon-192x192.png b/frontend/public/android-icon-192x192.png similarity index 100% rename from frontend/hkrecruitment/public/android-icon-192x192.png rename to frontend/public/android-icon-192x192.png diff --git a/frontend/hkrecruitment/public/android-icon-36x36.png b/frontend/public/android-icon-36x36.png similarity index 100% rename from frontend/hkrecruitment/public/android-icon-36x36.png rename to frontend/public/android-icon-36x36.png diff --git a/frontend/hkrecruitment/public/android-icon-48x48.png b/frontend/public/android-icon-48x48.png similarity index 100% rename from frontend/hkrecruitment/public/android-icon-48x48.png rename to frontend/public/android-icon-48x48.png diff --git a/frontend/hkrecruitment/public/android-icon-72x72.png b/frontend/public/android-icon-72x72.png similarity index 100% rename from frontend/hkrecruitment/public/android-icon-72x72.png rename to frontend/public/android-icon-72x72.png diff --git a/frontend/hkrecruitment/public/android-icon-96x96.png b/frontend/public/android-icon-96x96.png similarity index 100% rename from frontend/hkrecruitment/public/android-icon-96x96.png rename to frontend/public/android-icon-96x96.png diff --git a/frontend/hkrecruitment/public/apple-icon-114x114.png b/frontend/public/apple-icon-114x114.png similarity index 100% rename from frontend/hkrecruitment/public/apple-icon-114x114.png rename to frontend/public/apple-icon-114x114.png diff --git a/frontend/hkrecruitment/public/apple-icon-120x120.png b/frontend/public/apple-icon-120x120.png similarity index 100% rename from frontend/hkrecruitment/public/apple-icon-120x120.png rename to frontend/public/apple-icon-120x120.png diff --git a/frontend/hkrecruitment/public/apple-icon-144x144.png b/frontend/public/apple-icon-144x144.png similarity index 100% rename from frontend/hkrecruitment/public/apple-icon-144x144.png rename to frontend/public/apple-icon-144x144.png diff --git a/frontend/hkrecruitment/public/apple-icon-152x152.png b/frontend/public/apple-icon-152x152.png similarity index 100% rename from frontend/hkrecruitment/public/apple-icon-152x152.png rename to frontend/public/apple-icon-152x152.png diff --git a/frontend/hkrecruitment/public/apple-icon-180x180.png b/frontend/public/apple-icon-180x180.png similarity index 100% rename from frontend/hkrecruitment/public/apple-icon-180x180.png rename to frontend/public/apple-icon-180x180.png diff --git a/frontend/hkrecruitment/public/apple-icon-57x57.png b/frontend/public/apple-icon-57x57.png similarity index 100% rename from frontend/hkrecruitment/public/apple-icon-57x57.png rename to frontend/public/apple-icon-57x57.png diff --git a/frontend/hkrecruitment/public/apple-icon-60x60.png b/frontend/public/apple-icon-60x60.png similarity index 100% rename from frontend/hkrecruitment/public/apple-icon-60x60.png rename to frontend/public/apple-icon-60x60.png diff --git a/frontend/hkrecruitment/public/apple-icon-72x72.png b/frontend/public/apple-icon-72x72.png similarity index 100% rename from frontend/hkrecruitment/public/apple-icon-72x72.png rename to frontend/public/apple-icon-72x72.png diff --git a/frontend/hkrecruitment/public/apple-icon-76x76.png b/frontend/public/apple-icon-76x76.png similarity index 100% rename from frontend/hkrecruitment/public/apple-icon-76x76.png rename to frontend/public/apple-icon-76x76.png diff --git a/frontend/hkrecruitment/public/apple-icon-precomposed.png b/frontend/public/apple-icon-precomposed.png similarity index 100% rename from frontend/hkrecruitment/public/apple-icon-precomposed.png rename to frontend/public/apple-icon-precomposed.png diff --git a/frontend/hkrecruitment/public/apple-icon.png b/frontend/public/apple-icon.png similarity index 100% rename from frontend/hkrecruitment/public/apple-icon.png rename to frontend/public/apple-icon.png diff --git a/frontend/hkrecruitment/public/browserconfig.xml b/frontend/public/browserconfig.xml similarity index 100% rename from frontend/hkrecruitment/public/browserconfig.xml rename to frontend/public/browserconfig.xml diff --git a/frontend/hkrecruitment/public/favicon-16x16.png b/frontend/public/favicon-16x16.png similarity index 100% rename from frontend/hkrecruitment/public/favicon-16x16.png rename to frontend/public/favicon-16x16.png diff --git a/frontend/hkrecruitment/public/favicon-32x32.png b/frontend/public/favicon-32x32.png similarity index 100% rename from frontend/hkrecruitment/public/favicon-32x32.png rename to frontend/public/favicon-32x32.png diff --git a/frontend/hkrecruitment/public/favicon-96x96.png b/frontend/public/favicon-96x96.png similarity index 100% rename from frontend/hkrecruitment/public/favicon-96x96.png rename to frontend/public/favicon-96x96.png diff --git a/frontend/hkrecruitment/public/favicon.ico b/frontend/public/favicon.ico similarity index 100% rename from frontend/hkrecruitment/public/favicon.ico rename to frontend/public/favicon.ico diff --git a/frontend/hkrecruitment/public/hkn_logo_blu.png b/frontend/public/hkn_logo_blu.png similarity index 100% rename from frontend/hkrecruitment/public/hkn_logo_blu.png rename to frontend/public/hkn_logo_blu.png diff --git a/frontend/hkrecruitment/public/logo192.png b/frontend/public/logo192.png similarity index 100% rename from frontend/hkrecruitment/public/logo192.png rename to frontend/public/logo192.png diff --git a/frontend/hkrecruitment/public/logo512.png b/frontend/public/logo512.png similarity index 100% rename from frontend/hkrecruitment/public/logo512.png rename to frontend/public/logo512.png diff --git a/frontend/public/manifest.json b/frontend/public/manifest.json new file mode 100644 index 0000000..3b557aa --- /dev/null +++ b/frontend/public/manifest.json @@ -0,0 +1,41 @@ +{ + "name": "App", + "icons": [ + { + "src": "/android-icon-36x36.png", + "sizes": "36x36", + "type": "image/png", + "density": "0.75" + }, + { + "src": "/android-icon-48x48.png", + "sizes": "48x48", + "type": "image/png", + "density": "1.0" + }, + { + "src": "/android-icon-72x72.png", + "sizes": "72x72", + "type": "image/png", + "density": "1.5" + }, + { + "src": "/android-icon-96x96.png", + "sizes": "96x96", + "type": "image/png", + "density": "2.0" + }, + { + "src": "/android-icon-144x144.png", + "sizes": "144x144", + "type": "image/png", + "density": "3.0" + }, + { + "src": "/android-icon-192x192.png", + "sizes": "192x192", + "type": "image/png", + "density": "4.0" + } + ] +} diff --git a/frontend/hkrecruitment/public/ms-icon-144x144.png b/frontend/public/ms-icon-144x144.png similarity index 100% rename from frontend/hkrecruitment/public/ms-icon-144x144.png rename to frontend/public/ms-icon-144x144.png diff --git a/frontend/hkrecruitment/public/ms-icon-150x150.png b/frontend/public/ms-icon-150x150.png similarity index 100% rename from frontend/hkrecruitment/public/ms-icon-150x150.png rename to frontend/public/ms-icon-150x150.png diff --git a/frontend/hkrecruitment/public/ms-icon-310x310.png b/frontend/public/ms-icon-310x310.png similarity index 100% rename from frontend/hkrecruitment/public/ms-icon-310x310.png rename to frontend/public/ms-icon-310x310.png diff --git a/frontend/hkrecruitment/public/ms-icon-70x70.png b/frontend/public/ms-icon-70x70.png similarity index 100% rename from frontend/hkrecruitment/public/ms-icon-70x70.png rename to frontend/public/ms-icon-70x70.png diff --git a/frontend/hkrecruitment/public/robots.txt b/frontend/public/robots.txt similarity index 100% rename from frontend/hkrecruitment/public/robots.txt rename to frontend/public/robots.txt diff --git a/frontend/hkrecruitment/src/App.css b/frontend/src/App.css similarity index 78% rename from frontend/hkrecruitment/src/App.css rename to frontend/src/App.css index 0cc5f3d..cee9b92 100644 --- a/frontend/hkrecruitment/src/App.css +++ b/frontend/src/App.css @@ -28,30 +28,30 @@ color: #61dafb; } -.black{ +.black { color: white; background-color: #282c34; background: #282c34; } -.pink{ +.pink { color: black; background-color: pink; background: pink; } -.submitButton{ - background-color: #00629B !important; - background: #00629B !important; +.submitButton { + background-color: #00629b !important; + background: #00629b !important; } -.myNavbar{ - background-color: #F9F9F9; +.myNavbar { + background-color: #f9f9f9; } .table { - --bs-table-bg: rgba(55,81,113,0.8) !important; + --bs-table-bg: rgba(55, 81, 113, 0.8) !important; --bs-table-accent-bg: transparent; --bs-table-striped-color: white !important; - --bs-table-striped-bg: rgba(55,81,113,0.8) !important; + --bs-table-striped-bg: rgba(55, 81, 113, 0.8) !important; --bs-table-active-color: white !important; --bs-table-active-bg: rgba(0, 0, 0, 0.1); --bs-table-hover-color: white !important; @@ -65,7 +65,7 @@ .table > thead { vertical-align: bottom; - background-color: rgba(55,81,113,1); + background-color: rgba(55, 81, 113, 1); } @keyframes App-logo-spin { diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx new file mode 100644 index 0000000..c02f654 --- /dev/null +++ b/frontend/src/App.jsx @@ -0,0 +1,58 @@ +import "./App.css"; +import "bootstrap/dist/css/bootstrap.min.css"; +import React, { useEffect } from "react"; +import MyNavbar from "./MyNavbar"; +import SignupForm from "./SignupForm"; +import { Route } from "react-router-dom"; +import { Navigate } from "react-router-dom"; +import { Routes } from "react-router-dom"; +import { useAuth0 } from "@auth0/auth0-react"; +import AvaiabilitiesTable from "./AvaiabilitiesTable"; + +function App() { + const { + isLoading, + isAuthenticated, + error, + user, + loginWithRedirect, + logout, + getAccessTokenSilently, + } = useAuth0(); + + useEffect(() => { + if (isAuthenticated) { + getAccessTokenSilently({ + audience: import.meta.env.VITE_AUTH0_AUDIENCE, + grant_type: "client_credentials", + }).then((token) => { + console.log(`Token: ${token}`); + }); + } + }, [isAuthenticated]); + + return ( + + } + /> + } /> + + ); +} +export default App; + +function AfterLogin(props) { + return ( +
+ {" "} + + {props.isAuthenticated && + !props.user.email.endsWith("@hknpolito.org") && } + {props.isAuthenticated && props.user.email.endsWith("@hknpolito.org") && ( + + )} +
+ ); +} diff --git a/frontend/src/AvaiabilitiesCell.jsx b/frontend/src/AvaiabilitiesCell.jsx new file mode 100644 index 0000000..1d46dca --- /dev/null +++ b/frontend/src/AvaiabilitiesCell.jsx @@ -0,0 +1,12 @@ +import React, { useState, useEffect } from "react"; + +function AvaiabilitiesCell(props) { + const [className, setClassName] = useState(""); + + return ( +
setClassName("active")}> + {props.name} +
+ ); +} +export default AvaiabilitiesCell; diff --git a/frontend/src/AvaiabilitiesTable.jsx b/frontend/src/AvaiabilitiesTable.jsx new file mode 100644 index 0000000..319f60e --- /dev/null +++ b/frontend/src/AvaiabilitiesTable.jsx @@ -0,0 +1,186 @@ +import Table from "react-bootstrap/Table"; +import Container from "react-bootstrap/Container"; +import Row from "react-bootstrap/Row"; +import Col from "react-bootstrap/Col"; +import AvaiabilitiesCell from "./AvaiabilitiesCell"; +import moment from "moment"; + +import { createUserSchema } from "@hkrecruitment/shared"; + +function AvaiabilitiesTable(props) { + let start = "2014-09-08T08:02:17"; + let duration = 45; + let end = "20.00"; + + let fill = [ + [ + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + ], + [ + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + ], + [ + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + ], + [ + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + ], + [ + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + ], + [ + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + ], + [ + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + ], + [ + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + ], + [ + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + ], + [ + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + ], + [ + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + ], + [ + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + ], + [ + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + ], + [ + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + ], + [ + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + ], + [ + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + "persona1, persona2,...", + ], + ]; + + for (let row of fill) { + row.unshift(moment(start).format("hh:mm")); + } + + return ( + + + + + + + + + + + + + + + + + + {fill.map((names, index) => ( + + {names.map((name, index) => ( + + ))} + + ))} + +
HoursMondayTuesdayWednesdayThursdayFridaySaturday
+ +
+ + +
+
+ ); +} + +export default AvaiabilitiesTable; diff --git a/frontend/src/LoginButton.jsx b/frontend/src/LoginButton.jsx new file mode 100644 index 0000000..be1df82 --- /dev/null +++ b/frontend/src/LoginButton.jsx @@ -0,0 +1,22 @@ +import React from "react"; +import { useAuth0 } from "@auth0/auth0-react"; +import Button from "react-bootstrap/Button"; + +const LoginButton = () => { + const { isAuthenticated, loginWithRedirect, logout } = useAuth0(); + + return ( + + ); +}; + +export default LoginButton; diff --git a/frontend/src/MyNavbar.jsx b/frontend/src/MyNavbar.jsx new file mode 100644 index 0000000..44bc283 --- /dev/null +++ b/frontend/src/MyNavbar.jsx @@ -0,0 +1,47 @@ +import React, { ReactPropTypes } from "react"; +import Navbar from "react-bootstrap/Navbar"; +import Container from "react-bootstrap/Container"; +import Row from "react-bootstrap/Row"; +import LoginButton from "./LoginButton"; + +import Col from "react-bootstrap/Col"; +import { useAuth0 } from "@auth0/auth0-react"; + +const MyNavbar = (props) => { + const { isLoading, isAuthenticated, error, user, loginWithRedirect, logout } = + useAuth0(); + + return ( + + + + + + {" "} + HKRecruitment + + + + {" "} +

+ {isAuthenticated + ? "Hello " + user.name.split(" ")[0] + "!" + : "Login"} +

+ + + + +
+
+
+ ); +}; + +export default MyNavbar; diff --git a/frontend/src/SignupForm.jsx b/frontend/src/SignupForm.jsx new file mode 100644 index 0000000..2437299 --- /dev/null +++ b/frontend/src/SignupForm.jsx @@ -0,0 +1,252 @@ +import React, { useState, useEffect } from "react"; +import Button from "react-bootstrap/Button"; +import Form from "react-bootstrap/Form"; +import Container from "react-bootstrap/Container"; +import Row from "react-bootstrap/Row"; +import Col from "react-bootstrap/Col"; +import Alert from "react-bootstrap/Alert"; + +function SignupForm(props) { + const [level, setLevel] = useState(""); + const [validated, setValidated] = useState(false); + const [previous, setPrevious] = useState(""); + const [average, setAverage] = useState(""); + const [cfu, setCfu] = useState(0); + const [course, setCourse] = useState(""); + const [year, setYear] = useState(0); + const [phd, setPhd] = useState(""); + const [isLoading, setLoading] = useState(false); + + const handleSubmit = (event) => { + const form = event.currentTarget; + if (form.checkValidity() === false) { + event.preventDefault(); + event.stopPropagation(); + } + switch (level) { + case "LT": + if (year > 1 && cfu > 60 && cfu < 180 && average >= 26) { + setValidated(true); + setLoading(true); + } + break; + case "LM": + if (cfu < 20 && average >= 26) { + setValidated(true); + setLoading(true); + } else if (cfu >= 20 && average >= 27) { + setValidated(true); + setLoading(true); + } + break; + case "PhD": + setValidated(true); + setLoading(true); + break; + default: + setValidated(false); + } + }; + return ( +
+

Insert your data to submit an application

+ + + setLevel(event.target.value)} + > + Il mio attuale livello di studi + + + + + + + + + + setCfu(event.target.value)} + > + CFU obtained + + + + setCourse(event.target.value)} + > + Il mio attuale corso di studi + + + + + + + + + setPrevious(event.target.value)} + > + Il mio corso di studi triennale + + + + + + + + + setPhd(event.target.value)} + > + Brief Description of your PhD work + + + + + setPrevious(event.target.value)} + > + Il mio corso di studi magistrale + + + + + + + + + setCfu(event.target.value)} + > + CFU obtained + + + + setYear(event.target.value)} + > + Year + + + + + {level == "LT" ? : ""} + + + + setAverage(event.target.value)} + > + Average {cfu < 20 ? "bachelor" : ""} grade + + + Insert average grade (min 25, for 30L insert 30) + + + + + + + CV + { + return; + }} + /> + + Upload a cv to continue + + + + Lista Voti + { + return; + }} + /> + + Upload your actual grade list to continue + + + + + + +
+ ); +} +export default SignupForm; diff --git a/frontend/src/index.css b/frontend/src/index.css new file mode 100644 index 0000000..4a1df4d --- /dev/null +++ b/frontend/src/index.css @@ -0,0 +1,13 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", + "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", + monospace; +} diff --git a/frontend/hkrecruitment/src/logo.svg b/frontend/src/logo.svg similarity index 100% rename from frontend/hkrecruitment/src/logo.svg rename to frontend/src/logo.svg diff --git a/frontend/src/main.jsx b/frontend/src/main.jsx new file mode 100644 index 0000000..3a52bed --- /dev/null +++ b/frontend/src/main.jsx @@ -0,0 +1,21 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import "./index.css"; +import App from "./App"; +import { BrowserRouter } from "react-router-dom"; +import { Auth0Provider } from "@auth0/auth0-react"; + +ReactDOM.createRoot(document.getElementById("root")).render( + + + + + + + +); diff --git a/frontend/src/vite-env.d.ts b/frontend/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/frontend/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts new file mode 100644 index 0000000..9cc50ea --- /dev/null +++ b/frontend/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}); diff --git a/hkrecruitment-documentation/.gitignore b/hkrecruitment-documentation/.gitignore deleted file mode 100644 index e7374ce..0000000 --- a/hkrecruitment-documentation/.gitignore +++ /dev/null @@ -1,27 +0,0 @@ -./*.toc -./*.aux -./*.log -./*.out -./*.gz -./*.pdf - -./appendix/*.toc -./appendix/*.aux -./appendix/*.log -./appendix/*.out -./appendix/*.gz -./appendix/*.pdf - -./chapters/*.toc -./chapters/*.aux -./chapters/*.log -./chapters/*.out -./chapters/*.gz -./chapters/*.pdf - -./ext_sections/*.toc -./ext_sections/*.aux -./ext_sections/*.log -./ext_sections/*.out -./ext_sections/*.gz -./ext_sections/*.pdf diff --git a/hkrecruitment-documentation/COPYING b/hkrecruitment-documentation/COPYING deleted file mode 100644 index 8602804..0000000 --- a/hkrecruitment-documentation/COPYING +++ /dev/null @@ -1,422 +0,0 @@ - - GNU Free Documentation License - Version 1.3, 3 November 2008 - - - Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -0. PREAMBLE - -The purpose of this License is to make a manual, textbook, or other -functional and useful document "free" in the sense of freedom: to -assure everyone the effective freedom to copy and redistribute it, -with or without modifying it, either commercially or noncommercially. -Secondarily, this License preserves for the author and publisher a way -to get credit for their work, while not being considered responsible -for modifications made by others. - -This License is a kind of "copyleft", which means that derivative -works of the document must themselves be free in the same sense. It -complements the GNU General Public License, which is a copyleft -license designed for free software. - -We have designed this License in order to use it for manuals for free -software, because free software needs free documentation: a free -program should come with manuals providing the same freedoms that the -software does. But this License is not limited to software manuals; -it can be used for any textual work, regardless of subject matter or -whether it is published as a printed book. We recommend this License -principally for works whose purpose is instruction or reference. - - -1. APPLICABILITY AND DEFINITIONS - -This License applies to any manual or other work, in any medium, that -contains a notice placed by the copyright holder saying it can be -distributed under the terms of this License. Such a notice grants a -world-wide, royalty-free license, unlimited in duration, to use that -work under the conditions stated herein. The "Document", below, -refers to any such manual or work. Any member of the public is a -licensee, and is addressed as "you". You accept the license if you -copy, modify or distribute the work in a way requiring permission -under copyright law. - -A "Modified Version" of the Document means any work containing the -Document or a portion of it, either copied verbatim, or with -modifications and/or translated into another language. - -A "Secondary Section" is a named appendix or a front-matter section of -the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document's overall -subject (or to related matters) and contains nothing that could fall -directly within that overall subject. (Thus, if the Document is in -part a textbook of mathematics, a Secondary Section may not explain -any mathematics.) The relationship could be a matter of historical -connection with the subject or with related matters, or of legal, -commercial, philosophical, ethical or political position regarding -them. - -The "Invariant Sections" are certain Secondary Sections whose titles -are designated, as being those of Invariant Sections, in the notice -that says that the Document is released under this License. If a -section does not fit the above definition of Secondary then it is not -allowed to be designated as Invariant. The Document may contain zero -Invariant Sections. If the Document does not identify any Invariant -Sections then there are none. - -The "Cover Texts" are certain short passages of text that are listed, -as Front-Cover Texts or Back-Cover Texts, in the notice that says that -the Document is released under this License. A Front-Cover Text may -be at most 5 words, and a Back-Cover Text may be at most 25 words. - -A "Transparent" copy of the Document means a machine-readable copy, -represented in a format whose specification is available to the -general public, that is suitable for revising the document -straightforwardly with generic text editors or (for images composed of -pixels) generic paint programs or (for drawings) some widely available -drawing editor, and that is suitable for input to text formatters or -for automatic translation to a variety of formats suitable for input -to text formatters. A copy made in an otherwise Transparent file -format whose markup, or absence of markup, has been arranged to thwart -or discourage subsequent modification by readers is not Transparent. -An image format is not Transparent if used for any substantial amount -of text. A copy that is not "Transparent" is called "Opaque". - -Examples of suitable formats for Transparent copies include plain -ASCII without markup, Texinfo input format, LaTeX input format, SGML -or XML using a publicly available DTD, and standard-conforming simple -HTML, PostScript or PDF designed for human modification. Examples of -transparent image formats include PNG, XCF and JPG. Opaque formats -include proprietary formats that can be read and edited only by -proprietary word processors, SGML or XML for which the DTD and/or -processing tools are not generally available, and the -machine-generated HTML, PostScript or PDF produced by some word -processors for output purposes only. - -The "Title Page" means, for a printed book, the title page itself, -plus such following pages as are needed to hold, legibly, the material -this License requires to appear in the title page. For works in -formats which do not have any title page as such, "Title Page" means -the text near the most prominent appearance of the work's title, -preceding the beginning of the body of the text. - -The "publisher" means any person or entity that distributes copies of -the Document to the public. - -A section "Entitled XYZ" means a named subunit of the Document whose -title either is precisely XYZ or contains XYZ in parentheses following -text that translates XYZ in another language. (Here XYZ stands for a -specific section name mentioned below, such as "Acknowledgements", -"Dedications", "Endorsements", or "History".) To "Preserve the Title" -of such a section when you modify the Document means that it remains a -section "Entitled XYZ" according to this definition. - -The Document may include Warranty Disclaimers next to the notice which -states that this License applies to the Document. These Warranty -Disclaimers are considered to be included by reference in this -License, but only as regards disclaiming warranties: any other -implication that these Warranty Disclaimers may have is void and has -no effect on the meaning of this License. - -2. VERBATIM COPYING - -You may copy and distribute the Document in any medium, either -commercially or noncommercially, provided that this License, the -copyright notices, and the license notice saying this License applies -to the Document are reproduced in all copies, and that you add no -other conditions whatsoever to those of this License. You may not use -technical measures to obstruct or control the reading or further -copying of the copies you make or distribute. However, you may accept -compensation in exchange for copies. If you distribute a large enough -number of copies you must also follow the conditions in section 3. - -You may also lend copies, under the same conditions stated above, and -you may publicly display copies. - - -3. COPYING IN QUANTITY - -If you publish printed copies (or copies in media that commonly have -printed covers) of the Document, numbering more than 100, and the -Document's license notice requires Cover Texts, you must enclose the -copies in covers that carry, clearly and legibly, all these Cover -Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on -the back cover. Both covers must also clearly and legibly identify -you as the publisher of these copies. The front cover must present -the full title with all words of the title equally prominent and -visible. You may add other material on the covers in addition. -Copying with changes limited to the covers, as long as they preserve -the title of the Document and satisfy these conditions, can be treated -as verbatim copying in other respects. - -If the required texts for either cover are too voluminous to fit -legibly, you should put the first ones listed (as many as fit -reasonably) on the actual cover, and continue the rest onto adjacent -pages. - -If you publish or distribute Opaque copies of the Document numbering -more than 100, you must either include a machine-readable Transparent -copy along with each Opaque copy, or state in or with each Opaque copy -a computer-network location from which the general network-using -public has access to download using public-standard network protocols -a complete Transparent copy of the Document, free of added material. -If you use the latter option, you must take reasonably prudent steps, -when you begin distribution of Opaque copies in quantity, to ensure -that this Transparent copy will remain thus accessible at the stated -location until at least one year after the last time you distribute an -Opaque copy (directly or through your agents or retailers) of that -edition to the public. - -It is requested, but not required, that you contact the authors of the -Document well before redistributing any large number of copies, to -give them a chance to provide you with an updated version of the -Document. - - -4. MODIFICATIONS - -You may copy and distribute a Modified Version of the Document under -the conditions of sections 2 and 3 above, provided that you release -the Modified Version under precisely this License, with the Modified -Version filling the role of the Document, thus licensing distribution -and modification of the Modified Version to whoever possesses a copy -of it. In addition, you must do these things in the Modified Version: - -A. Use in the Title Page (and on the covers, if any) a title distinct - from that of the Document, and from those of previous versions - (which should, if there were any, be listed in the History section - of the Document). You may use the same title as a previous version - if the original publisher of that version gives permission. -B. List on the Title Page, as authors, one or more persons or entities - responsible for authorship of the modifications in the Modified - Version, together with at least five of the principal authors of the - Document (all of its principal authors, if it has fewer than five), - unless they release you from this requirement. -C. State on the Title page the name of the publisher of the - Modified Version, as the publisher. -D. Preserve all the copyright notices of the Document. -E. Add an appropriate copyright notice for your modifications - adjacent to the other copyright notices. -F. Include, immediately after the copyright notices, a license notice - giving the public permission to use the Modified Version under the - terms of this License, in the form shown in the Addendum below. -G. Preserve in that license notice the full lists of Invariant Sections - and required Cover Texts given in the Document's license notice. -H. Include an unaltered copy of this License. -I. Preserve the section Entitled "History", Preserve its Title, and add - to it an item stating at least the title, year, new authors, and - publisher of the Modified Version as given on the Title Page. If - there is no section Entitled "History" in the Document, create one - stating the title, year, authors, and publisher of the Document as - given on its Title Page, then add an item describing the Modified - Version as stated in the previous sentence. -J. Preserve the network location, if any, given in the Document for - public access to a Transparent copy of the Document, and likewise - the network locations given in the Document for previous versions - it was based on. These may be placed in the "History" section. - You may omit a network location for a work that was published at - least four years before the Document itself, or if the original - publisher of the version it refers to gives permission. -K. For any section Entitled "Acknowledgements" or "Dedications", - Preserve the Title of the section, and preserve in the section all - the substance and tone of each of the contributor acknowledgements - and/or dedications given therein. -L. Preserve all the Invariant Sections of the Document, - unaltered in their text and in their titles. Section numbers - or the equivalent are not considered part of the section titles. -M. Delete any section Entitled "Endorsements". Such a section - may not be included in the Modified Version. -N. Do not retitle any existing section to be Entitled "Endorsements" - or to conflict in title with any Invariant Section. -O. Preserve any Warranty Disclaimers. - -If the Modified Version includes new front-matter sections or -appendices that qualify as Secondary Sections and contain no material -copied from the Document, you may at your option designate some or all -of these sections as invariant. To do this, add their titles to the -list of Invariant Sections in the Modified Version's license notice. -These titles must be distinct from any other section titles. - -You may add a section Entitled "Endorsements", provided it contains -nothing but endorsements of your Modified Version by various -parties--for example, statements of peer review or that the text has -been approved by an organization as the authoritative definition of a -standard. - -You may add a passage of up to five words as a Front-Cover Text, and a -passage of up to 25 words as a Back-Cover Text, to the end of the list -of Cover Texts in the Modified Version. Only one passage of -Front-Cover Text and one of Back-Cover Text may be added by (or -through arrangements made by) any one entity. If the Document already -includes a cover text for the same cover, previously added by you or -by arrangement made by the same entity you are acting on behalf of, -you may not add another; but you may replace the old one, on explicit -permission from the previous publisher that added the old one. - -The author(s) and publisher(s) of the Document do not by this License -give permission to use their names for publicity for or to assert or -imply endorsement of any Modified Version. - - -5. COMBINING DOCUMENTS - -You may combine the Document with other documents released under this -License, under the terms defined in section 4 above for modified -versions, provided that you include in the combination all of the -Invariant Sections of all of the original documents, unmodified, and -list them all as Invariant Sections of your combined work in its -license notice, and that you preserve all their Warranty Disclaimers. - -The combined work need only contain one copy of this License, and -multiple identical Invariant Sections may be replaced with a single -copy. If there are multiple Invariant Sections with the same name but -different contents, make the title of each such section unique by -adding at the end of it, in parentheses, the name of the original -author or publisher of that section if known, or else a unique number. -Make the same adjustment to the section titles in the list of -Invariant Sections in the license notice of the combined work. - -In the combination, you must combine any sections Entitled "History" -in the various original documents, forming one section Entitled -"History"; likewise combine any sections Entitled "Acknowledgements", -and any sections Entitled "Dedications". You must delete all sections -Entitled "Endorsements". - - -6. COLLECTIONS OF DOCUMENTS - -You may make a collection consisting of the Document and other -documents released under this License, and replace the individual -copies of this License in the various documents with a single copy -that is included in the collection, provided that you follow the rules -of this License for verbatim copying of each of the documents in all -other respects. - -You may extract a single document from such a collection, and -distribute it individually under this License, provided you insert a -copy of this License into the extracted document, and follow this -License in all other respects regarding verbatim copying of that -document. - - -7. AGGREGATION WITH INDEPENDENT WORKS - -A compilation of the Document or its derivatives with other separate -and independent documents or works, in or on a volume of a storage or -distribution medium, is called an "aggregate" if the copyright -resulting from the compilation is not used to limit the legal rights -of the compilation's users beyond what the individual works permit. -When the Document is included in an aggregate, this License does not -apply to the other works in the aggregate which are not themselves -derivative works of the Document. - -If the Cover Text requirement of section 3 is applicable to these -copies of the Document, then if the Document is less than one half of -the entire aggregate, the Document's Cover Texts may be placed on -covers that bracket the Document within the aggregate, or the -electronic equivalent of covers if the Document is in electronic form. -Otherwise they must appear on printed covers that bracket the whole -aggregate. - - -8. TRANSLATION - -Translation is considered a kind of modification, so you may -distribute translations of the Document under the terms of section 4. -Replacing Invariant Sections with translations requires special -permission from their copyright holders, but you may include -translations of some or all Invariant Sections in addition to the -original versions of these Invariant Sections. You may include a -translation of this License, and all the license notices in the -Document, and any Warranty Disclaimers, provided that you also include -the original English version of this License and the original versions -of those notices and disclaimers. In case of a disagreement between -the translation and the original version of this License or a notice -or disclaimer, the original version will prevail. - -If a section in the Document is Entitled "Acknowledgements", -"Dedications", or "History", the requirement (section 4) to Preserve -its Title (section 1) will typically require changing the actual -title. - - -9. TERMINATION - -You may not copy, modify, sublicense, or distribute the Document -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense, or distribute it is void, and -will automatically terminate your rights under this License. - -However, if you cease all violation of this License, then your license -from a particular copyright holder is reinstated (a) provisionally, -unless and until the copyright holder explicitly and finally -terminates your license, and (b) permanently, if the copyright holder -fails to notify you of the violation by some reasonable means prior to -60 days after the cessation. - -Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - -Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, receipt of a copy of some or all of the same material does -not give you any rights to use it. - - -10. FUTURE REVISIONS OF THIS LICENSE - -The Free Software Foundation may publish new, revised versions of the -GNU Free Documentation License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in -detail to address new problems or concerns. See -https://www.gnu.org/licenses/. - -Each version of the License is given a distinguishing version number. -If the Document specifies that a particular numbered version of this -License "or any later version" applies to it, you have the option of -following the terms and conditions either of that specified version or -of any later version that has been published (not as a draft) by the -Free Software Foundation. If the Document does not specify a version -number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. If the Document -specifies that a proxy can decide which future versions of this -License can be used, that proxy's public statement of acceptance of a -version permanently authorizes you to choose that version for the -Document. - -11. RELICENSING - -"Massive Multiauthor Collaboration Site" (or "MMC Site") means any -World Wide Web server that publishes copyrightable works and also -provides prominent facilities for anybody to edit those works. A -public wiki that anybody can edit is an example of such a server. A -"Massive Multiauthor Collaboration" (or "MMC") contained in the site -means any set of copyrightable works thus published on the MMC site. - -"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 -license published by Creative Commons Corporation, a not-for-profit -corporation with a principal place of business in San Francisco, -California, as well as future copyleft versions of that license -published by that same organization. - -"Incorporate" means to publish or republish a Document, in whole or in -part, as part of another Document. - -An MMC is "eligible for relicensing" if it is licensed under this -License, and if all works that were first published under this License -somewhere other than this MMC, and subsequently incorporated in whole or -in part into the MMC, (1) had no cover texts or invariant sections, and -(2) were thus incorporated prior to November 1, 2008. - -The operator of an MMC Site may republish an MMC contained in the site -under CC-BY-SA on the same site at any time before August 1, 2009, -provided the MMC is eligible for relicensing. - diff --git a/hkrecruitment-documentation/README.md b/hkrecruitment-documentation/README.md deleted file mode 100644 index f2f6f9f..0000000 --- a/hkrecruitment-documentation/README.md +++ /dev/null @@ -1,22 +0,0 @@ - - -# HKrecruitment - documentation -HKrecruitment is the platform used by HKN Polito to handle -the recruitment process. This branch contains the whole documentation written in LateX -for the React application and the API server. - -## Authors - -* **Riccardo Zaccone** - *API server* - [HKN Polito](https://hknpolito.org/) -* **Arianna Ravera** - *API server* - [HKN Polito](https://hknpolito.org/) -* **Marco Pappalardo** - *React application* - [HKN Polito](https://hknpolito.org/) - - -## License -Copyright (c) 2021 HKN Polito. - -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.3 -or any later version published by the Free Software Foundation; -with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. -See the COPYING file for details. diff --git a/hkrecruitment-documentation/appendix/GNUFreeDocumentationLicense.tex b/hkrecruitment-documentation/appendix/GNUFreeDocumentationLicense.tex deleted file mode 100644 index bd8675d..0000000 --- a/hkrecruitment-documentation/appendix/GNUFreeDocumentationLicense.tex +++ /dev/null @@ -1,522 +0,0 @@ -%\pagenumbering{arabic} - -\hfuzz = .6pt % avoid black boxes - -\chapter{\rlap{GNU Free Documentation License}} -\phantomsection % so hyperref creates bookmarks -\addcontentsline{toc}{chapter}{GNU Free Documentation License} -\label{appendix:GNU} - -\begin{center} - - Version 1.3, 3 November 2008 - - - Copyright \copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. - - \bigskip - - \texttt{} - - \bigskip - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. -\end{center} - - -\begin{center} - {\bf\large Preamble} -\end{center} - -The purpose of this License is to make a manual, textbook, or other -functional and useful document ``free'' in the sense of freedom: to -assure everyone the effective freedom to copy and redistribute it, -with or without modifying it, either commercially or noncommercially. -Secondarily, this License preserves for the author and publisher a way -to get credit for their work, while not being considered responsible -for modifications made by others. - -This License is a kind of ``copyleft'', which means that derivative -works of the document must themselves be free in the same sense. It -complements the GNU General Public License, which is a copyleft -license designed for free software. - -We have designed this License in order to use it for manuals for free -software, because free software needs free documentation: a free -program should come with manuals providing the same freedoms that the -software does. But this License is not limited to software manuals; -it can be used for any textual work, regardless of subject matter or -whether it is published as a printed book. We recommend this License -principally for works whose purpose is instruction or reference. - - -\begin{center} - {\Large\bf 1. APPLICABILITY AND DEFINITIONS\par} - \phantomsection - \addcontentsline{toc}{section}{1. APPLICABILITY AND DEFINITIONS} -\end{center} - -This License applies to any manual or other work, in any medium, that -contains a notice placed by the copyright holder saying it can be -distributed under the terms of this License. Such a notice grants a -world-wide, royalty-free license, unlimited in duration, to use that -work under the conditions stated herein. The ``\textbf{Document}'', below, -refers to any such manual or work. Any member of the public is a -licensee, and is addressed as ``\textbf{you}''. You accept the license if you -copy, modify or distribute the work in a way requiring permission -under copyright law. - -A ``\textbf{Modified Version}'' of the Document means any work containing the -Document or a portion of it, either copied verbatim, or with -modifications and/or translated into another language. - -A ``\textbf{Secondary Section}'' is a named appendix or a front-matter section of -the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document's overall subject -(or to related matters) and contains nothing that could fall directly -within that overall subject. (Thus, if the Document is in part a -textbook of mathematics, a Secondary Section may not explain any -mathematics.) The relationship could be a matter of historical -connection with the subject or with related matters, or of legal, -commercial, philosophical, ethical or political position regarding -them. - -The ``\textbf{Invariant Sections}'' are certain Secondary Sections whose titles -are designated, as being those of Invariant Sections, in the notice -that says that the Document is released under this License. If a -section does not fit the above definition of Secondary then it is not -allowed to be designated as Invariant. The Document may contain zero -Invariant Sections. If the Document does not identify any Invariant -Sections then there are none. - -The ``\textbf{Cover Texts}'' are certain short passages of text that are listed, -as Front-Cover Texts or Back-Cover Texts, in the notice that says that -the Document is released under this License. A Front-Cover Text may -be at most 5 words, and a Back-Cover Text may be at most 25 words. - -A ``\textbf{Transparent}'' copy of the Document means a machine-readable copy, -represented in a format whose specification is available to the -general public, that is suitable for revising the document -straightforwardly with generic text editors or (for images composed of -pixels) generic paint programs or (for drawings) some widely available -drawing editor, and that is suitable for input to text formatters or -for automatic translation to a variety of formats suitable for input -to text formatters. A copy made in an otherwise Transparent file -format whose markup, or absence of markup, has been arranged to thwart -or discourage subsequent modification by readers is not Transparent. -An image format is not Transparent if used for any substantial amount -of text. A copy that is not ``Transparent'' is called ``\textbf{Opaque}''. - -Examples of suitable formats for Transparent copies include plain -ASCII without markup, Texinfo input format, LaTeX input format, SGML -or XML using a publicly available DTD, and standard-conforming simple -HTML, PostScript or PDF designed for human modification. Examples of -transparent image formats include PNG, XCF and JPG. Opaque formats -include proprietary formats that can be read and edited only by -proprietary word processors, SGML or XML for which the DTD and/or -processing tools are not generally available, and the -machine-generated HTML, PostScript or PDF produced by some word -processors for output purposes only. - -The ``\textbf{Title Page}'' means, for a printed book, the title page itself, -plus such following pages as are needed to hold, legibly, the material -this License requires to appear in the title page. For works in -formats which do not have any title page as such, ``Title Page'' means -the text near the most prominent appearance of the work's title, -preceding the beginning of the body of the text. - -The ``\textbf{publisher}'' means any person or entity that distributes -copies of the Document to the public. - -A section ``\textbf{Entitled XYZ}'' means a named subunit of the Document whose -title either is precisely XYZ or contains XYZ in parentheses following -text that translates XYZ in another language. (Here XYZ stands for a -specific section name mentioned below, such as ``\textbf{Acknowledgements}'', -``\textbf{Dedications}'', ``\textbf{Endorsements}'', or ``\textbf{History}''.) -To ``\textbf{Preserve the Title}'' -of such a section when you modify the Document means that it remains a -section ``Entitled XYZ'' according to this definition. - -The Document may include Warranty Disclaimers next to the notice which -states that this License applies to the Document. These Warranty -Disclaimers are considered to be included by reference in this -License, but only as regards disclaiming warranties: any other -implication that these Warranty Disclaimers may have is void and has -no effect on the meaning of this License. - - -\begin{center} - {\Large\bf 2. VERBATIM COPYING\par} - \phantomsection - \addcontentsline{toc}{section}{2. VERBATIM COPYING} -\end{center} - -You may copy and distribute the Document in any medium, either -commercially or noncommercially, provided that this License, the -copyright notices, and the license notice saying this License applies -to the Document are reproduced in all copies, and that you add no other -conditions whatsoever to those of this License. You may not use -technical measures to obstruct or control the reading or further -copying of the copies you make or distribute. However, you may accept -compensation in exchange for copies. If you distribute a large enough -number of copies you must also follow the conditions in section~3. - -You may also lend copies, under the same conditions stated above, and -you may publicly display copies. - - -\begin{center} - {\Large\bf 3. COPYING IN QUANTITY\par} - \phantomsection - \addcontentsline{toc}{section}{3. COPYING IN QUANTITY} -\end{center} - - -If you publish printed copies (or copies in media that commonly have -printed covers) of the Document, numbering more than 100, and the -Document's license notice requires Cover Texts, you must enclose the -copies in covers that carry, clearly and legibly, all these Cover -Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on -the back cover. Both covers must also clearly and legibly identify -you as the publisher of these copies. The front cover must present -the full title with all words of the title equally prominent and -visible. You may add other material on the covers in addition. -Copying with changes limited to the covers, as long as they preserve -the title of the Document and satisfy these conditions, can be treated -as verbatim copying in other respects. - -If the required texts for either cover are too voluminous to fit -legibly, you should put the first ones listed (as many as fit -reasonably) on the actual cover, and continue the rest onto adjacent -pages. - -If you publish or distribute Opaque copies of the Document numbering -more than 100, you must either include a machine-readable Transparent -copy along with each Opaque copy, or state in or with each Opaque copy -a computer-network location from which the general network-using -public has access to download using public-standard network protocols -a complete Transparent copy of the Document, free of added material. -If you use the latter option, you must take reasonably prudent steps, -when you begin distribution of Opaque copies in quantity, to ensure -that this Transparent copy will remain thus accessible at the stated -location until at least one year after the last time you distribute an -Opaque copy (directly or through your agents or retailers) of that -edition to the public. - -It is requested, but not required, that you contact the authors of the -Document well before redistributing any large number of copies, to give -them a chance to provide you with an updated version of the Document. - - -\begin{center} - {\Large\bf 4. MODIFICATIONS\par} - \phantomsection - \addcontentsline{toc}{section}{4. MODIFICATIONS} -\end{center} - -You may copy and distribute a Modified Version of the Document under -the conditions of sections 2 and 3 above, provided that you release -the Modified Version under precisely this License, with the Modified -Version filling the role of the Document, thus licensing distribution -and modification of the Modified Version to whoever possesses a copy -of it. In addition, you must do these things in the Modified Version: - -\begin{itemize} - \item[A.] - Use in the Title Page (and on the covers, if any) a title distinct - from that of the Document, and from those of previous versions - (which should, if there were any, be listed in the History section - of the Document). You may use the same title as a previous version - if the original publisher of that version gives permission. - - \item[B.] - List on the Title Page, as authors, one or more persons or entities - responsible for authorship of the modifications in the Modified - Version, together with at least five of the principal authors of the - Document (all of its principal authors, if it has fewer than five), - unless they release you from this requirement. - - \item[C.] - State on the Title page the name of the publisher of the - Modified Version, as the publisher. - - \item[D.] - Preserve all the copyright notices of the Document. - - \item[E.] - Add an appropriate copyright notice for your modifications - adjacent to the other copyright notices. - - \item[F.] - Include, immediately after the copyright notices, a license notice - giving the public permission to use the Modified Version under the - terms of this License, in the form shown in the Addendum below. - - \item[G.] - Preserve in that license notice the full lists of Invariant Sections - and required Cover Texts given in the Document's license notice. - - \item[H.] - Include an unaltered copy of this License. - - \item[I.] - Preserve the section Entitled ``History'', Preserve its Title, and add - to it an item stating at least the title, year, new authors, and - publisher of the Modified Version as given on the Title Page. If - there is no section Entitled ``History'' in the Document, create one - stating the title, year, authors, and publisher of the Document as - given on its Title Page, then add an item describing the Modified - Version as stated in the previous sentence. - - \item[J.] - Preserve the network location, if any, given in the Document for - public access to a Transparent copy of the Document, and likewise - the network locations given in the Document for previous versions - it was based on. These may be placed in the ``History'' section. - You may omit a network location for a work that was published at - least four years before the Document itself, or if the original - publisher of the version it refers to gives permission. - - \item[K.] - For any section Entitled ``Acknowledgements'' or ``Dedications'', - Preserve the Title of the section, and preserve in the section all - the substance and tone of each of the contributor acknowledgements - and/or dedications given therein. - - \item[L.] - Preserve all the Invariant Sections of the Document, - unaltered in their text and in their titles. Section numbers - or the equivalent are not considered part of the section titles. - - \item[M.] - Delete any section Entitled ``Endorsements''. Such a section - may not be included in the Modified Version. - - \item[N.] - Do not retitle any existing section to be Entitled ``Endorsements'' - or to conflict in title with any Invariant Section. - - \item[O.] - Preserve any Warranty Disclaimers. -\end{itemize} - -If the Modified Version includes new front-matter sections or -appendices that qualify as Secondary Sections and contain no material -copied from the Document, you may at your option designate some or all -of these sections as invariant. To do this, add their titles to the -list of Invariant Sections in the Modified Version's license notice. -These titles must be distinct from any other section titles. - -You may add a section Entitled ``Endorsements'', provided it contains -nothing but endorsements of your Modified Version by various -parties---for example, statements of peer review or that the text has -been approved by an organization as the authoritative definition of a -standard. - -You may add a passage of up to five words as a Front-Cover Text, and a -passage of up to 25 words as a Back-Cover Text, to the end of the list -of Cover Texts in the Modified Version. Only one passage of -Front-Cover Text and one of Back-Cover Text may be added by (or -through arrangements made by) any one entity. If the Document already -includes a cover text for the same cover, previously added by you or -by arrangement made by the same entity you are acting on behalf of, -you may not add another; but you may replace the old one, on explicit -permission from the previous publisher that added the old one. - -The author(s) and publisher(s) of the Document do not by this License -give permission to use their names for publicity for or to assert or -imply endorsement of any Modified Version. - - -\begin{center} - {\Large\bf 5. COMBINING DOCUMENTS\par} - \phantomsection - \addcontentsline{toc}{section}{5. COMBINING DOCUMENTS} -\end{center} - - -You may combine the Document with other documents released under this -License, under the terms defined in section~4 above for modified -versions, provided that you include in the combination all of the -Invariant Sections of all of the original documents, unmodified, and -list them all as Invariant Sections of your combined work in its -license notice, and that you preserve all their Warranty Disclaimers. - -The combined work need only contain one copy of this License, and -multiple identical Invariant Sections may be replaced with a single -copy. If there are multiple Invariant Sections with the same name but -different contents, make the title of each such section unique by -adding at the end of it, in parentheses, the name of the original -author or publisher of that section if known, or else a unique number. -Make the same adjustment to the section titles in the list of -Invariant Sections in the license notice of the combined work. - -In the combination, you must combine any sections Entitled ``History'' -in the various original documents, forming one section Entitled -``History''; likewise combine any sections Entitled ``Acknowledgements'', -and any sections Entitled ``Dedications''. You must delete all sections -Entitled ``Endorsements''. - -\begin{center} - {\Large\bf 6. COLLECTIONS OF DOCUMENTS\par} - \phantomsection - \addcontentsline{toc}{section}{6. COLLECTIONS OF DOCUMENTS} -\end{center} - -You may make a collection consisting of the Document and other documents -released under this License, and replace the individual copies of this -License in the various documents with a single copy that is included in -the collection, provided that you follow the rules of this License for -verbatim copying of each of the documents in all other respects. - -You may extract a single document from such a collection, and distribute -it individually under this License, provided you insert a copy of this -License into the extracted document, and follow this License in all -other respects regarding verbatim copying of that document. - - -\begin{center} - {\Large\bf 7. AGGREGATION WITH INDEPENDENT WORKS\par} - \phantomsection - \addcontentsline{toc}{section}{7. AGGREGATION WITH INDEPENDENT WORKS} -\end{center} - - -A compilation of the Document or its derivatives with other separate -and independent documents or works, in or on a volume of a storage or -distribution medium, is called an ``aggregate'' if the copyright -resulting from the compilation is not used to limit the legal rights -of the compilation's users beyond what the individual works permit. -When the Document is included in an aggregate, this License does not -apply to the other works in the aggregate which are not themselves -derivative works of the Document. - -If the Cover Text requirement of section~3 is applicable to these -copies of the Document, then if the Document is less than one half of -the entire aggregate, the Document's Cover Texts may be placed on -covers that bracket the Document within the aggregate, or the -electronic equivalent of covers if the Document is in electronic form. -Otherwise they must appear on printed covers that bracket the whole -aggregate. - - -\begin{center} - {\Large\bf 8. TRANSLATION\par} - \phantomsection - \addcontentsline{toc}{section}{8. TRANSLATION} -\end{center} - - -Translation is considered a kind of modification, so you may -distribute translations of the Document under the terms of section~4. -Replacing Invariant Sections with translations requires special -permission from their copyright holders, but you may include -translations of some or all Invariant Sections in addition to the -original versions of these Invariant Sections. You may include a -translation of this License, and all the license notices in the -Document, and any Warranty Disclaimers, provided that you also include -the original English version of this License and the original versions -of those notices and disclaimers. In case of a disagreement between -the translation and the original version of this License or a notice -or disclaimer, the original version will prevail. - -If a section in the Document is Entitled ``Acknowledgements'', -``Dedications'', or ``History'', the requirement (section~4) to Preserve -its Title (section~1) will typically require changing the actual -title. - - -\begin{center} - {\Large\bf 9. TERMINATION\par} - \phantomsection - \addcontentsline{toc}{section}{9. TERMINATION} -\end{center} - - -You may not copy, modify, sublicense, or distribute the Document -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense, or distribute it is void, and -will automatically terminate your rights under this License. - -However, if you cease all violation of this License, then your license -from a particular copyright holder is reinstated (a) provisionally, -unless and until the copyright holder explicitly and finally -terminates your license, and (b) permanently, if the copyright holder -fails to notify you of the violation by some reasonable means prior to -60 days after the cessation. - -Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - -Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, receipt of a copy of some or all of the same material does -not give you any rights to use it. - - -\begin{center} - {\Large\bf 10. FUTURE REVISIONS OF THIS LICENSE\par} - \phantomsection - \addcontentsline{toc}{section}{10. FUTURE REVISIONS OF THIS LICENSE} -\end{center} - - -The Free Software Foundation may publish new, revised versions -of the GNU Free Documentation License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. See -\texttt{https://www.gnu.org/licenses/}. - -Each version of the License is given a distinguishing version number. -If the Document specifies that a particular numbered version of this -License ``or any later version'' applies to it, you have the option of -following the terms and conditions either of that specified version or -of any later version that has been published (not as a draft) by the -Free Software Foundation. If the Document does not specify a version -number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. If the Document -specifies that a proxy can decide which future versions of this -License can be used, that proxy's public statement of acceptance of a -version permanently authorizes you to choose that version for the -Document. - - -\begin{center} - {\Large\bf 11. RELICENSING\par} - \phantomsection - \addcontentsline{toc}{section}{11. RELICENSING} -\end{center} - - -``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any -World Wide Web server that publishes copyrightable works and also -provides prominent facilities for anybody to edit those works. A -public wiki that anybody can edit is an example of such a server. A -``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the -site means any set of copyrightable works thus published on the MMC -site. - -``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0 -license published by Creative Commons Corporation, a not-for-profit -corporation with a principal place of business in San Francisco, -California, as well as future copyleft versions of that license -published by that same organization. - -``Incorporate'' means to publish or republish a Document, in whole or -in part, as part of another Document. - -An MMC is ``eligible for relicensing'' if it is licensed under this -License, and if all works that were first published under this License -somewhere other than this MMC, and subsequently incorporated in whole -or in part into the MMC, (1) had no cover texts or invariant sections, -and (2) were thus incorporated prior to November 1, 2008. - -The operator of an MMC Site may republish an MMC contained in the site -under CC-BY-SA on the same site at any time before August 1, 2009, -provided the MMC is eligible for relicensing. diff --git a/hkrecruitment-documentation/chapters/objectives.tex b/hkrecruitment-documentation/chapters/objectives.tex deleted file mode 100644 index 56fe1db..0000000 --- a/hkrecruitment-documentation/chapters/objectives.tex +++ /dev/null @@ -1,10 +0,0 @@ -%File: obiettivi.tex -%Data creazione: 31/12/2020 -%Data ultima modifica: 31/12/2020 - -\chapter{Project objectives} -\section{Included features} -\section{Process requirements} -\subsection{Validity constraints} -\subsection{Optimality criteria} -\section{Form di apply} diff --git a/hkrecruitment-documentation/chapters/overview.tex b/hkrecruitment-documentation/chapters/overview.tex deleted file mode 100644 index 50db622..0000000 --- a/hkrecruitment-documentation/chapters/overview.tex +++ /dev/null @@ -1,8 +0,0 @@ -%File: panoramica.tex -%Data creazione: 31/12/2020 -%Data ultima modifica: 31/12/2020 - -\chapter{Overview} -\section{Introduction} -\section{About this document} -\section{Periodic review} \ No newline at end of file diff --git a/hkrecruitment-documentation/chapters/security.tex b/hkrecruitment-documentation/chapters/security.tex deleted file mode 100644 index 3223e4d..0000000 --- a/hkrecruitment-documentation/chapters/security.tex +++ /dev/null @@ -1,159 +0,0 @@ -%File: sicurezza.tex -%Data creazione: 31/12/2020 -%Data ultima modifica: 31/12/2020 - - -\chapter{Security} - -\section{Authentication} -Authentication is \textit{"the process of verifying a claim that a system entity or system resource has a certain attribute value"} (RFC-4949, Internet security glossary). -According the NIST SP800.63B digital authentication model (see Figure \ref{DAM}), an actor who wants to use a system is called an \textit{applicant}: if it possesses an authenticator it can provide it to the \textbf{CSP} (Credential Service Provider), or it can get one. The CSP is that component that will issue or enrol user credential and authenticator and verify and store associated attributes. -When this procedure is completed successfully, the actor becomes a \textit{subscriber}, that is an entity recorded in the authentication system. Later, when the actor wants to use some network service, typically the actor is called a \textit{claimant}, because he claims to be a valid user: generally, an authentication protocol against a \textbf{verifier} is run, who verifies this claim. When this process end with success, the actor become a subscriber with an open authenticated session with the \textbf{relying party}, that will request and receive an authN assertion from the verifier to assess user identity (and attributes). The relying party is the end application server, which requests the actor to be authenticated. The verifier may have a communication with the CSP to validate the binding between the authenticator used in the authentication protocol and the credential claimed. - -These roles may be separate or collapsed together. For the purpose of this project, several options have been considered for managing the authentication. The following subsections describe each a different solution with relative benefits and drawbacks. - -\begin{figure}[h] - \centering - \includegraphics[width=0.7\textwidth]{DAM.png} - \caption{NIST SP800.63B digital authentication model} - \label{DAM} -\end{figure} - -\subsection{Custom login con with standalone implementation} -In this case the verifier and the CSP are the embedded in the API server, that is the relying party. -\subsubsection*{Direct use of tokens and sessions} -%Pros and cons -\begin{itemize} - \item \textbf{Pros:} - \begin{itemize} - \item greater implementation flexibility; - \item less dependence on external services (hosting platform only). - \end{itemize} - \item \textbf{Cons:} - \begin{itemize} - \item double implementation required for direct login and social login (also required for internal members); - \item authentication and related security systems not at the level of ad-hoc professional platforms. - \end{itemize} -\end{itemize} - -\subsection*{Use of external libraries (es. Passport)} -%Pros and cons -\begin{itemize} - \item \textbf{Pros:} - \begin{itemize} - \item less dependence on external services (hosting platform only); - \item predisposition to social login (Google, LinkedIn). - \end{itemize} - \item \textbf{Cons:} - \begin{itemize} - \item improved architecture compared to direct use, but with security features still delegated to the developer (e.g. rate limit). - \end{itemize} -\end{itemize} - -\subsection{Social login Provider} -In this case the verifier and the CSP are external to the API server: their functionalities are provided by the social provider of choice (e.g. Google, LinkedIn). - -%Pros and cons -\begin{itemize} - \item \textbf{Pros:} - \begin{itemize} - \item authentication and security measures delegated to external services; - \item authentication and related professional security systems; - \item Delegated Identity Management (authentication data management and security issues are delegated). - \end{itemize} - \item \textbf{Cons:} - \begin{itemize} - \item need to implement more services to guarantee more authentication alternatives to users; - \item impossibility of simple registration to the WebApp, users are bound to have an account of at least one of the services offered. This does not arise for HKN members, given the associative email, but it is potentially limiting for applicants. - \end{itemize} -\end{itemize} - -\subsection{Third party custom service (Auth0, Amazon Cognito, Okta)} -In this case the verifier is the third party authentication server while the CSP is that same entity in case of traditional login with reusable password, or the social provider when that feature is used. -%Pros and cons -\begin{itemize} - \item \textbf{Pros:} - \begin{itemize} - \item authentication and security measures delegated to external services; - \item authentication and related professional security systems; - \item Delegated Identity Management (authentication data management and security issues are delegated); - \item possibility of access via social login provider (Google). - \end{itemize} - \item \textbf{Cons:} - \begin{itemize} - \item possible, but limited customization possibilities; - \item limitation of 7000 active users / month with the free plan; - \item double dependency to external platforms (hosting platform and authentication service). - \end{itemize} -\end{itemize} - -\subsection{Our choice} -Basing on the motivations above, our choice is to use a third party custom service. For this purpose, we compared the two major solutions available on the market: Auth0 and Amazon Cognito. - -Amazon Cognito and Auth0 are both authentication tools. They are most commonly used by developers to implement on mobile or web applications being built. -Amazon Cognito is used across company sizes, particularly companies that already live in the Amazon tech ecosystem. It’s ideal for 1st-party applications built for in-house use. In contrast, Auth0 is most commonly used by smaller organizations or teams, particularly those that can make use of the tool’s free version. Auth0 excels at helping these teams implement and manage authentication across services or apps, or across multiple clients. -\subsection*{Features} -Amazon Cognito and Auth0 focus on serving distinct audiences, and they emphasize different feature strengths accordingly. -Amazon Cognito stands out for its use in Amazon environments, although it is still a strong option beyond Amazon apps. It’s also ideal for managing authentication across multiple internally-facing or used tools. \textbf{This means that Cognito is often the first choice for internal applications built on Amazon infrastructure.} It also provides a range of sign-on capabilities, including integrating with 3rd-party ID providers like Microsoft Active Directory. -\textbf{Auth0 provides stronger support and features for smaller-scale teams and companies.} For instance, it provides excellent documentation, as well as a mix of prebuilt and customizable authentication methods. \textbf{Auth0 is also much cheaper to initially get off the ground, with a robust free version that can suffice for very small use cases.} It also provides a more user-friendly administrative interface relative to other authentication providers. -\subsection*{Limitations} -Amazon Cognito and Auth0 also each have some limitations worth considering. -\textbf{Amazon Cognito is less accessible to smaller or less advanced developers.} While it offers more advanced features, those capabilities lack sufficient documentation for some reviewers, which can create a \textbf{longer and more intensive learning curve}, even among skilled developers. It also makes customization more complex to develop and implement than comparable authentication products. -On the other hand, Auth0 is less scalable for midsize and large companies. Its customizability at higher levels is much more limited, both in terms of functionality and branding or design. Auth0’s pricing structure also makes it less ideal for companies as they scale up. Companies should ensure that the initial pricing structure is efficient for their needs, and make sure that they don’t scale out of cost-efficiency as they grow. - -\subsection{Single Sign-On with Auth0 and authentication flow} -Single Sign-On (SSO) authentication is now required more than ever. Nowadays, almost every website requires some form of authentication to access its features and content. With the number of websites and services rising, a centralized login system has become a necessity. -Sooner or later web development teams face one problem: you have developed an application at domain X and now you want your new deployment at domain Y to use the same login information as the other domain. In fact, you want more: you want users who are already logged-in at domain X to be already logged-in at domain Y. This is what SSO is all about. -Whenever users go to a domain that requires authentication, they are redirected to the authentication domain. As users are already logged-in at that domain, they can be immediately redirected to the original domain with the necessary authentication token. -Auth0 Single Sign-On (SSO) solution works as a bridge between different SSO frameworks: Figure \ref{fig:SSOn} describes the mechanism. For more details, see the official article \href{https://auth0.com/blog/what-is-and-how-does-single-sign-on-work/}{\textit{What Is and How Does Single Sign-On Authentication Work?}} - -\begin{figure}[ht] - \centering - \includegraphics[width=0.9\textwidth]{auth0.png} - - \caption{Auth0 Single Sign-On (SSO) solution} - \label{fig:SSOn} -\end{figure} - -\subsection*{What happens when an application is composed by a React front-end and an API server} -When, like in this project, the application is a \textit{Single-Page Application} communicating with an API server, the authentication system is different from the classical one in which the server communicates with the verifier to authenticate the user. With machine-to-machine (M2M) applications, such as CLIs, daemons, or services running on your back-end, the system authenticates and authorizes the app rather than a user. For this scenario, typical authentication schemes like username + password or social logins don't make sense. Instead, M2M apps use the Client Credentials Flow (defined in OAuth 2.0 RFC 6749, section 4.4), in which they pass along their Client ID and Client Secret to authenticate themselves and get a token. Figure \ref{fig:ClientCredentialFlowAuth0} shows the Client Credentials Flow in Auth0: for more details see \href{https://auth0.com/docs/flows/client-credentials-flow}{\textit{Client Credentials Flow}}. An important detail to point out is that the API server will contact Auth0 to be able to verify the authenticity and integrity of the token received by the front-end app: for more details see \href{https://auth0.com/docs/tokens/json-web-tokens/validate-json-web-tokens}{\textit{Validate JSON Web Tokens}}. - -\begin{figure}[ht] - \centering - \includegraphics[width=0.9\textwidth]{auth-sequence-client-credentials.png} - - \caption{Client Credentials Flow in Auth0} - \label{fig:ClientCredentialFlowAuth0} -\end{figure} - -\subsection*{What does an Auth0 JWT contain?} -JSON web tokens (JWTs) claims are pieces of information asserted about a subject. In a JWT, a claim appears as a name/value pair where the name is always a string and the value can be any JSON value. It is possible to read more about this subject on \href{https://auth0.com/docs/tokens/json-web-tokens/json-web-token-claims}{\textit{JSON Web Token Claims}} webpage. - -As per default, a token that will be received by the front-end application will contain at least the following claims: -\begin{lstlisting}[language=json] -{ -"name": "John Doe", -"nickname": "john.doe", -"picture": "https://myawesomeavatar.com/avatar.png", -"updated_at": "2017-03-30T15:13:40.474Z", -"email": "john.doe@test.com", -"email_verified": false, -"sub": "auth0|USER-ID", -} -\end{lstlisting} -Among these, three claims are important for our purposes: -\begin{itemize} - \item \texttt{email}: is the email used to sign up or log in. During registration phase, its value can be taken as default value. Please note that the is no constraint for a user on changing its email address: in this case the new address will be used when its necessary to contact the user, but the authentication will still use the address used during sign up; - \item \texttt{email\_verified}: indicates whether the user has verified the email address provided during sign up. This value van be used by the client and the API server as an additional check that the user is a real one, for example forbidding the proceed with registration if the value is \texttt{false}; - \item \texttt{sub}: it is used as user identification inside our system. -\end{itemize} - -\subsection{How this impacts on our system} -When logging in, the system should understand if the logged user is a member or an applicant. This somehow imposes this information to be required during logging in phase, and then confirmed by looking into the database. Because the login form is not entirely on our control, this can be non trivial. -After having considered several possibilities, the easiest and fastest one is to impose the following rules on user registration: -\begin{itemize} - \item Member users can sign up only by using their official HKN email address, either using the "sign up with Google" or by inserting the email address. Any other email address associated with the registration of a member will lead to an error; - \item Applicants can use whatever supported method. A registration of a member with an HKN email address will lead to an error; - \item Since now it is possible that the same person is associated with two different account that have associated different email addresses, so two different entries in the person table, the uniqueness constraint on the \texttt{phone\_no} attribute must be changed: now two different members or two different applicants cannot share the same \texttt{phone\_no}. -\end{itemize} -In such a way, the system is able to determine if a user is a member or an applicant by looking at the email address only, that is contained inside the json web token (JWT) exchanged with Auth0. \ No newline at end of file diff --git a/hkrecruitment-documentation/chapters/specifications.tex b/hkrecruitment-documentation/chapters/specifications.tex deleted file mode 100644 index 8934222..0000000 --- a/hkrecruitment-documentation/chapters/specifications.tex +++ /dev/null @@ -1,10 +0,0 @@ -%File: specifiche.tex -%Data creazione: 31/12/2020 -%Data ultima modifica: 31/12/2020 - -\chapter{Technical specifications} -\section{Information model} -\section{Database schema} -\section{RESTful APIs} -\section{Software architecture} -\section{Integration with Google RESTful APIs} diff --git a/hkrecruitment-documentation/chapters/testing.tex b/hkrecruitment-documentation/chapters/testing.tex deleted file mode 100644 index 3325fb3..0000000 --- a/hkrecruitment-documentation/chapters/testing.tex +++ /dev/null @@ -1,7 +0,0 @@ -%File: testing.tex -%Data creazione: 31/12/2020 -%Data ultima modifica: 31/12/2020 - -\chapter{Testing} -\section{Techniques and tools} -\section{Test coverage} \ No newline at end of file diff --git a/hkrecruitment-documentation/ext_sections/preliminary.tex b/hkrecruitment-documentation/ext_sections/preliminary.tex deleted file mode 100644 index 0a7dd5a..0000000 --- a/hkrecruitment-documentation/ext_sections/preliminary.tex +++ /dev/null @@ -1,13 +0,0 @@ -%File: versioni.tex -%Data creazione: 31/12/2020 -%Data ultima modifica: 31/12/2020 - -\chapter*{Preliminary notes} -Copyright (C) 2021 HKNPolito. - -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.3 -or any later version published by the Free Software Foundation; -with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. -A copy of the license is included in the appendix \ref{appendix:GNU} entitled "GNU -Free Documentation License". \ No newline at end of file diff --git a/hkrecruitment-documentation/ext_sections/versions.tex b/hkrecruitment-documentation/ext_sections/versions.tex deleted file mode 100644 index 516702a..0000000 --- a/hkrecruitment-documentation/ext_sections/versions.tex +++ /dev/null @@ -1,18 +0,0 @@ -%File: versioni.tex -%Data creazione: 31/12/2020 -%Data ultima modifica: 31/12/2020 - -\chapter*{Versions and revisions of this document } - -\begin{table}[hb] - \centering - \begin{tabular}{llp{0.2\textwidth}p{0.4\textwidth}} - \toprule - Version & Date & Edited by & Change description \\ - \midrule - 1.0 & 31/12/2020 & Riccardo Zaccone & Document creation \\ - \bottomrule - \end{tabular} - \caption{Project specification version history} - \label{tab:change_history} -\end{table} \ No newline at end of file diff --git a/hkrecruitment-documentation/hkrecruitment-documentation.tex b/hkrecruitment-documentation/hkrecruitment-documentation.tex deleted file mode 100644 index 9876579..0000000 --- a/hkrecruitment-documentation/hkrecruitment-documentation.tex +++ /dev/null @@ -1,123 +0,0 @@ -\documentclass[11pt]{report} -\usepackage[english]{babel} -\usepackage[T1]{fontenc} -\usepackage[utf8]{inputenc} -\usepackage{graphicx} -\usepackage{fancyhdr} -\usepackage{vmargin} -\usepackage{hyperref} -\usepackage{subfig} -\usepackage{booktabs} -\usepackage{longtable} -\setmarginsrb{2.5 cm}{2.5 cm}{2.5 cm}{2.5 cm}{1 cm}{1.5 cm}{1 cm}{1.5 cm} -\graphicspath{{images/}} - -\usepackage[dvipsnames]{xcolor} -\usepackage{listings} -\lstdefinelanguage{json}{ - basicstyle=\scriptsize\ttfamily, - string=[s]{"}{"}, - stringstyle=\color{blue}, - comment=[l]{:}, - commentstyle=\color{black}, -} - -\lstdefinelanguage{JavaScript}{ - basicstyle=\scriptsize\ttfamily, - keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, const, let}, - keywordstyle=\color{blue}\bfseries, - ndkeywords={class, export, boolean, throw, implements, import, this}, - ndkeywordstyle=\color{darkgray}\bfseries, - identifierstyle=\color{black}, - sensitive=false, - comment=[l]{//}, - morecomment=[s]{/*}{*/}, - commentstyle=\color{ForestGreen}\ttfamily, - stringstyle=\color{red}\ttfamily, - morestring=[b]', - morestring=[b]" -} - -\title{HKRecruitment Project Specifications} % Title -%\author{Riccardo Zaccone} % Author -\author{Riccardo Zaccone \\ Arianna Ravera} % Authors -\date{\today} % Date -%\date{08 novembre 2020} % Date - -\makeatletter -\let\thetitle\@title -\let\theauthor\@author -\let\thedate\@date -\makeatother - -\hypersetup{ - pdftitle={\thetitle}, - pdfauthor={\theauthor}, - pdfsubject={}, - pdfkeywords={}, - hidelinks} - -\pagestyle{fancy} -\fancyhf{} -\lhead{\thetitle} -\cfoot{\thepage} - -\begin{document} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{titlepage} - \centering - \vspace*{0.5 cm} - \includegraphics[scale = 0.2]{hkn_logo.pdf}\\[1.0 cm] % HKN Logo - \textsc{\LARGE HKN PoliTo $\mid$ Mu Nu Chapter of IEEE-HKN}\\[-0.2 cm] % Name - \rule{\linewidth}{0.2 mm} \\ - \textsc{\large Politecnico di Torino IEEE Student Branch}\\[1.0 cm] % Branch Name - \textsc{\Large Area IT}\\[0.5 cm] % Area - \rule{\linewidth}{0.2 mm} \\[0.4 cm] - { \huge \bfseries \thetitle}\\ - \rule{\linewidth}{0.2 mm} \\%[1 cm] - \textsc{\Large Design and implementation of a RESTful web-application for recruitment process management}\\[0 cm] - \textsc{}\\[0.4 cm] - - \begin{minipage}{0.4\textwidth} - \begin{flushleft} \large - \emph{Autore:}\\ - \theauthor - \end{flushleft} - \end{minipage}~ - \begin{minipage}{0.4\textwidth} - \begin{flushright} \large - \emph{Affiliazione:} \\ - Member \\ - Member \\ - %Member \\ - \end{flushright} - \end{minipage}\\[2.0 cm] - - {\large Versione 1.0 \\ \thedate}\\[2 cm] - \vfill - -\end{titlepage} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\include{ext_sections/preliminary} -\tableofcontents -\pagebreak - - -\include{ext_sections/versions} -\include{chapters/overview} -\include{chapters/objectives} -\include{chapters/security} -\include{chapters/specifications} -\include{chapters/testing} - - -\appendix -\include{appendix/GNUFreeDocumentationLicense} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\end{document} \ No newline at end of file diff --git a/hkrecruitment-documentation/images/DAM.png b/hkrecruitment-documentation/images/DAM.png deleted file mode 100644 index d64a3c2daad4891888e443fe2dadefe30c64c3f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90724 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

4^<%ScB3wVi{v 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

^=5fOLshropP$XDRhi*zpPVelSVJnU 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 diff --git a/hkrecruitment-documentation/images/auth0.png b/hkrecruitment-documentation/images/auth0.png deleted file mode 100644 index 1d0b9d8dd6a4ca3c879684e0710da5bced1770ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 630931 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�IVintEwv_7! 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≶x-5aCU$PuF0Trp41@sa`9etc+u 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⁣&|^$J$dNlix>CXT(#SpsT(soG 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 z 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≠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 diff --git a/hkrecruitment-documentation/images/hkn_logo.pdf b/hkrecruitment-documentation/images/hkn_logo.pdf deleted file mode 100644 index 917ecb6abf19e21b87bc120972cffd4eaa939377..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38205 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 diff --git a/package.json b/package.json new file mode 100644 index 0000000..631e569 --- /dev/null +++ b/package.json @@ -0,0 +1,29 @@ +{ + "name": "hkrecruitment", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "dev:web": "pnpm --filter frontend dev", + "dev:api": "pnpm --filter api start:dev", + "dev": "pnpm run --stream dev:web & pnpm run --stream dev:api", + "dev:tmux": "tmux new-session -d -s hkrecruitment 'pnpm run dev:web' \\; split-window -h -p 50 'pnpm run dev:api' \\; attach", + "build:web": "pnpm --filter frontend build", + "build:api": "pnpm --filter api prebuild && pnpm --filter api build", + "build": "pnpm run build:web && pnpm run build:api", + "preview:web": "pnpm --filter frontend preview", + "preview:api": "pnpm --filter api start:prod", + "preview": "pnpm run --stream preview:web & pnpm run --stream preview:api", + "preview:tmux": "tmux new-session -d -s hkrecruitment 'pnpm run preview:web' \\; split-window -h -p 50 'pnpm run preview:api' \\; attach", + "clean:web": "pnpm --filter frontend clean", + "clean:api": "pnpm --filter api clean", + "clean": "pnpm run clean:web && pnpm run clean:api", + "format:shared": "pnpm --filter shared format", + "format:web": "pnpm --filter frontend format", + "format:api": "pnpm --filter api format", + "format": "pnpm format:shared && pnpm format:web && pnpm format:api" + }, + "keywords": [], + "author": "", + "license": "ISC" +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..9fc78dc --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,6989 @@ +lockfileVersion: 5.4 + +importers: + + .: + specifiers: {} + + api: + specifiers: + '@casl/ability': ^6.3.3 + '@fastify/static': ^6.6.0 + '@hkrecruitment/shared': workspace:* + '@nestjs/cli': ^9.0.0 + '@nestjs/common': ^9.0.0 + '@nestjs/config': ^2.2.0 + '@nestjs/core': ^9.0.0 + '@nestjs/passport': ^9.0.0 + '@nestjs/platform-express': ^9.0.0 + '@nestjs/platform-fastify': ^9.2.1 + '@nestjs/schematics': ^9.0.0 + '@nestjs/swagger': ^6.1.3 + '@nestjs/testing': ^9.0.0 + '@nestjs/typeorm': ^9.0.1 + '@types/express': ^4.17.14 + '@types/jest': 28.1.8 + '@types/js-yaml': ^4.0.5 + '@types/node': ^16.11.10 + '@types/passport-jwt': ^3.0.7 + '@types/supertest': ^2.0.11 + '@typescript-eslint/eslint-plugin': ^5.0.0 + '@typescript-eslint/parser': ^5.0.0 + eslint: ^8.0.1 + eslint-config-prettier: ^8.3.0 + eslint-plugin-prettier: ^4.0.0 + jest: 28.1.3 + joi: ^17.7.0 + js-yaml: ^4.1.0 + jwks-rsa: ^3.0.0 + passport: ^0.6.0 + passport-jwt: ^4.0.0 + pg: ^8.4.0 + prettier: ^2.3.2 + reflect-metadata: ^0.1.13 + rimraf: ^3.0.2 + rxjs: ^7.2.0 + source-map-support: ^0.5.20 + supertest: ^6.1.3 + ts-jest: 28.0.8 + ts-loader: ^9.2.3 + ts-node: 10.7.0 + tsconfig-paths: 4.1.0 + typeorm: 0.3.11 + typescript: 4.5.2 + webpack: ^5.75.0 + dependencies: + '@casl/ability': 6.3.3 + '@fastify/static': 6.6.0 + '@hkrecruitment/shared': link:../shared + '@nestjs/common': 9.2.1_yzt46al3aifnexifjjdb4dxxja + '@nestjs/config': 2.2.0_zgn5mu6qrgzh2mkt2kmizzegr4 + '@nestjs/core': 9.2.1_tuv4y6h3m23xb7odf2gtnrhr3e + '@nestjs/passport': 9.0.0_6o47igfla2pj7yzh7agpvpttka + '@nestjs/platform-express': 9.2.1_hjcqpoaebdr7gdo5hgc22hthbe + '@nestjs/platform-fastify': 9.2.1_ikxpgcebo3djgwayhrp6upsvza + '@nestjs/swagger': 6.1.3_msprghgtrmqoraddow4lmr54ka + '@nestjs/typeorm': 9.0.1_y35eg2ubdzamw4yabeyff6xsia + '@types/js-yaml': 4.0.5 + '@types/passport-jwt': 3.0.7 + joi: 17.7.0 + js-yaml: 4.1.0 + jwks-rsa: 3.0.0 + passport: 0.6.0 + passport-jwt: 4.0.0 + pg: 8.8.0 + reflect-metadata: 0.1.13 + rimraf: 3.0.2 + rxjs: 7.5.7 + typeorm: 0.3.11_pg@8.8.0+ts-node@10.7.0 + webpack: 5.75.0 + devDependencies: + '@nestjs/cli': 9.1.5 + '@nestjs/schematics': 9.0.3_typescript@4.5.2 + '@nestjs/testing': 9.2.1_wdbvfsxfdwzlwdfiyh2gynjl4m + '@types/express': 4.17.14 + '@types/jest': 28.1.8 + '@types/node': 16.18.4 + '@types/supertest': 2.0.12 + '@typescript-eslint/eslint-plugin': 5.45.0_redz6kwzpg3a7iw367fgkvhm44 + '@typescript-eslint/parser': 5.45.0_kobv54wr2sqljopxonyssrcrhy + eslint: 8.29.0 + eslint-config-prettier: 8.5.0_eslint@8.29.0 + eslint-plugin-prettier: 4.2.1_nrhoyyjffvfyk4vtlt5destxgm + jest: 28.1.3_p2pvtibqqduefcbmb3gxha6ifa + prettier: 2.8.0 + source-map-support: 0.5.21 + supertest: 6.3.2 + ts-jest: 28.0.8_7juzc6xa7or7ixjucqve24xyoa + ts-loader: 9.4.2_d63nrm6duq2bmriw5fi744532e + ts-node: 10.7.0_7lgrp6ny656ifyohyk3emjmisu + tsconfig-paths: 4.1.0 + typescript: 4.5.2 + + frontend: + specifiers: + '@auth0/auth0-react': ^1.12.0 + '@hkrecruitment/shared': workspace:* + '@popperjs/core': ^2.11.6 + '@types/react': ^18.0.28 + '@types/react-dom': ^18.0.11 + '@vitejs/plugin-react': ^3.1.0 + bootstrap: ^5.2.3 + moment: ^2.29.3 + moment-timezone: ^0.5.34 + prop-types: ^15.7.0 + react: ^18.2.0 + react-bootstrap: ^2.2.3 + react-dom: ^18.2.0 + react-moment: ^1.1.3 + react-router-dom: ^6.9.0 + typescript: ^4.6.4 + vite: ^4.2.1 + vite-plugin-html: ^3.2.0 + web-vitals: ^2.1.4 + dependencies: + '@auth0/auth0-react': 1.12.0_biqbaboplfbrettd7655fr4n2y + '@hkrecruitment/shared': link:../shared + '@popperjs/core': 2.11.6 + '@types/react': 18.0.28 + '@types/react-dom': 18.0.11 + bootstrap: 5.2.3_@popperjs+core@2.11.6 + moment: 2.29.4 + moment-timezone: 0.5.41 + prop-types: 15.8.1 + react: 18.2.0 + react-bootstrap: 2.7.2_zula6vjvt3wdocc4mwcxqa6nzi + react-dom: 18.2.0_react@18.2.0 + react-moment: 1.1.3_mmavuqf6ek6upnyryxchoaliru + react-router-dom: 6.9.0_biqbaboplfbrettd7655fr4n2y + web-vitals: 2.1.4 + devDependencies: + '@vitejs/plugin-react': 3.1.0_vite@4.2.1 + typescript: 4.9.3 + vite: 4.2.1 + vite-plugin-html: 3.2.0_vite@4.2.1 + + shared: + specifiers: + '@casl/ability': ^6.3.3 + joi: ^17.7.0 + typescript: ^4.9.3 + dependencies: + '@casl/ability': 6.3.3 + joi: 17.7.0 + devDependencies: + typescript: 4.9.3 + +packages: + + /@ampproject/remapping/2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.17 + dev: true + + /@angular-devkit/core/14.2.1: + resolution: {integrity: sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==} + engines: {node: ^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 + dependencies: + ajv: 8.11.0 + ajv-formats: 2.1.1 + jsonc-parser: 3.1.0 + rxjs: 6.6.7 + source-map: 0.7.4 + dev: true + + /@angular-devkit/core/14.2.1_chokidar@3.5.3: + resolution: {integrity: sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==} + engines: {node: ^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 + dependencies: + ajv: 8.11.0 + ajv-formats: 2.1.1 + chokidar: 3.5.3 + jsonc-parser: 3.1.0 + rxjs: 6.6.7 + source-map: 0.7.4 + dev: true + + /@angular-devkit/core/14.2.2_chokidar@3.5.3: + resolution: {integrity: sha512-ofDhTmJqoAkmkJP0duwUaCxDBMxPlc+AWYwgs3rKKZeJBb0d+tchEXHXevD5bYbbRfXtnwM+Vye2XYHhA4nWAA==} + engines: {node: ^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 + dependencies: + ajv: 8.11.0 + ajv-formats: 2.1.1 + chokidar: 3.5.3 + jsonc-parser: 3.1.0 + rxjs: 6.6.7 + source-map: 0.7.4 + dev: true + + /@angular-devkit/schematics-cli/14.2.2_chokidar@3.5.3: + resolution: {integrity: sha512-timCty5tO1A5VOcy8nVJ+jL98i6+ct5/Hg+4rQxc3J6agmmNL9fALboJBEz1ckTt7MewlGtrpohMMy+YGhuWOg==} + engines: {node: ^14.15.0 || >=16.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + hasBin: true + dependencies: + '@angular-devkit/core': 14.2.2_chokidar@3.5.3 + '@angular-devkit/schematics': 14.2.2_chokidar@3.5.3 + ansi-colors: 4.1.3 + inquirer: 8.2.4 + symbol-observable: 4.0.0 + yargs-parser: 21.1.1 + transitivePeerDependencies: + - chokidar + dev: true + + /@angular-devkit/schematics/14.2.1: + resolution: {integrity: sha512-0U18FwDYt4zROBPrvewH6iBTkf2ozVHN4/gxUb9jWrqVw8mPU5AWc/iYxQLHBSinkr2Egjo1H/i9aBqgJSeh3g==} + engines: {node: ^14.15.0 || >=16.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + dependencies: + '@angular-devkit/core': 14.2.1 + jsonc-parser: 3.1.0 + magic-string: 0.26.2 + ora: 5.4.1 + rxjs: 6.6.7 + transitivePeerDependencies: + - chokidar + dev: true + + /@angular-devkit/schematics/14.2.1_chokidar@3.5.3: + resolution: {integrity: sha512-0U18FwDYt4zROBPrvewH6iBTkf2ozVHN4/gxUb9jWrqVw8mPU5AWc/iYxQLHBSinkr2Egjo1H/i9aBqgJSeh3g==} + engines: {node: ^14.15.0 || >=16.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + dependencies: + '@angular-devkit/core': 14.2.1_chokidar@3.5.3 + jsonc-parser: 3.1.0 + magic-string: 0.26.2 + ora: 5.4.1 + rxjs: 6.6.7 + transitivePeerDependencies: + - chokidar + dev: true + + /@angular-devkit/schematics/14.2.2_chokidar@3.5.3: + resolution: {integrity: sha512-90hseNg1yQ2AR+lVr/NByZRHnYAlzCL6hr9p9q1KPHxA3Owo04yX6n6dvR/xf27hCopXInXKPsasR59XCx5ZOQ==} + engines: {node: ^14.15.0 || >=16.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + dependencies: + '@angular-devkit/core': 14.2.2_chokidar@3.5.3 + jsonc-parser: 3.1.0 + magic-string: 0.26.2 + ora: 5.4.1 + rxjs: 6.6.7 + transitivePeerDependencies: + - chokidar + dev: true + + /@auth0/auth0-react/1.12.0_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-Cny2RyHvr0GrKKKV8PMh6GU0vkWNSgd6mp/YHYJynnYCs9yFduNo9hdpHPxXbdDX5CB6wc2PqK6aL8leDlnl/A==} + peerDependencies: + react: ^16.11.0 || ^17 || ^18 + react-dom: ^16.11.0 || ^17 || ^18 + dependencies: + '@auth0/auth0-spa-js': 1.22.5 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@auth0/auth0-spa-js/1.22.5: + resolution: {integrity: sha512-6gaQcd+Eb8ZBcdQkrrm9undM7dY/rPvVdQN8s7rxxrviUCs7OopEygsfSkHf67IP4HtlCiE8dSW5/AipRUOw/A==} + dependencies: + abortcontroller-polyfill: 1.7.5 + browser-tabs-lock: 1.2.15 + core-js: 3.26.1 + es-cookie: 1.3.2 + fast-text-encoding: 1.0.6 + promise-polyfill: 8.2.3 + unfetch: 4.2.0 + dev: false + + /@babel/code-frame/7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + dev: true + + /@babel/compat-data/7.20.5: + resolution: {integrity: sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core/7.20.5: + resolution: {integrity: sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.5 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.5 + '@babel/helper-module-transforms': 7.20.2 + '@babel/helpers': 7.20.6 + '@babel/parser': 7.20.5 + '@babel/template': 7.18.10 + '@babel/traverse': 7.20.5 + '@babel/types': 7.20.5 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/core/7.21.3: + resolution: {integrity: sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.21.3 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.3 + '@babel/helper-module-transforms': 7.21.2 + '@babel/helpers': 7.21.0 + '@babel/parser': 7.21.3 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.3 + '@babel/types': 7.21.3 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator/7.20.5: + resolution: {integrity: sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.5 + '@jridgewell/gen-mapping': 0.3.2 + jsesc: 2.5.2 + dev: true + + /@babel/generator/7.21.3: + resolution: {integrity: sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.17 + jsesc: 2.5.2 + dev: true + + /@babel/helper-compilation-targets/7.20.0_@babel+core@7.20.5: + resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.20.5 + '@babel/core': 7.20.5 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.4 + semver: 6.3.0 + dev: true + + /@babel/helper-compilation-targets/7.20.7_@babel+core@7.21.3: + resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.20.5 + '@babel/core': 7.21.3 + '@babel/helper-validator-option': 7.21.0 + browserslist: 4.21.5 + lru-cache: 5.1.1 + semver: 6.3.0 + dev: true + + /@babel/helper-environment-visitor/7.18.9: + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name/7.19.0: + resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.18.10 + '@babel/types': 7.20.5 + dev: true + + /@babel/helper-function-name/7.21.0: + resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.21.3 + dev: true + + /@babel/helper-hoist-variables/7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.5 + dev: true + + /@babel/helper-module-imports/7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.5 + dev: true + + /@babel/helper-module-transforms/7.20.2: + resolution: {integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.20.2 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.18.10 + '@babel/traverse': 7.20.5 + '@babel/types': 7.20.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-module-transforms/7.21.2: + resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.20.2 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.3 + '@babel/types': 7.21.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-plugin-utils/7.20.2: + resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-simple-access/7.20.2: + resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.5 + dev: true + + /@babel/helper-split-export-declaration/7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.5 + dev: true + + /@babel/helper-string-parser/7.19.4: + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier/7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option/7.18.6: + resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option/7.21.0: + resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers/7.20.6: + resolution: {integrity: sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.18.10 + '@babel/traverse': 7.20.5 + '@babel/types': 7.20.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helpers/7.21.0: + resolution: {integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.3 + '@babel/types': 7.21.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight/7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser/7.20.5: + resolution: {integrity: sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.20.5 + dev: true + + /@babel/parser/7.21.3: + resolution: {integrity: sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.21.3 + dev: true + + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.5: + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.20.5: + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.5: + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.20.5: + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.5: + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.5: + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.5: + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.5: + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.5: + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.5: + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.5: + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.5: + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.20.5: + resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-react-jsx-self/7.21.0_@babel+core@7.21.3: + resolution: {integrity: sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.3 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-react-jsx-source/7.19.6_@babel+core@7.21.3: + resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.3 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/runtime/7.21.0: + resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: false + + /@babel/template/7.18.10: + resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.20.5 + '@babel/types': 7.20.5 + dev: true + + /@babel/template/7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.21.3 + '@babel/types': 7.21.3 + dev: true + + /@babel/traverse/7.20.5: + resolution: {integrity: sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.5 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.20.5 + '@babel/types': 7.20.5 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/traverse/7.21.3: + resolution: {integrity: sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.21.3 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.21.3 + '@babel/types': 7.21.3 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types/7.20.5: + resolution: {integrity: sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + dev: true + + /@babel/types/7.21.3: + resolution: {integrity: sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + dev: true + + /@bcoe/v8-coverage/0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + + /@casl/ability/6.3.3: + resolution: {integrity: sha512-UzbqsE9etu6QzZrRmqIyVun2kztAzJ46Tz7lC/2P2buCE6B6Ll7Vptz7JTQtGwapLbeKo2jS7dL966TVOQ7x4g==} + dependencies: + '@ucast/mongo2js': 1.3.3 + dev: false + + /@colors/colors/1.5.0: + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + requiresBuild: true + dev: true + optional: true + + /@cspotcode/source-map-consumer/0.8.0: + resolution: {integrity: sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==} + engines: {node: '>= 12'} + + /@cspotcode/source-map-support/0.7.0: + resolution: {integrity: sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==} + engines: {node: '>=12'} + dependencies: + '@cspotcode/source-map-consumer': 0.8.0 + + /@esbuild/android-arm/0.17.12: + resolution: {integrity: sha512-E/sgkvwoIfj4aMAPL2e35VnUJspzVYl7+M1B2cqeubdBhADV4uPon0KCc8p2G+LqSJ6i8ocYPCqY3A4GGq0zkQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64/0.17.12: + resolution: {integrity: sha512-WQ9p5oiXXYJ33F2EkE3r0FRDFVpEdcDiwNX3u7Xaibxfx6vQE0Sb8ytrfQsA5WO6kDn6mDfKLh6KrPBjvkk7xA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64/0.17.12: + resolution: {integrity: sha512-m4OsaCr5gT+se25rFPHKQXARMyAehHTQAz4XX1Vk3d27VtqiX0ALMBPoXZsGaB6JYryCLfgGwUslMqTfqeLU0w==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64/0.17.12: + resolution: {integrity: sha512-O3GCZghRIx+RAN0NDPhyyhRgwa19MoKlzGonIb5hgTj78krqp9XZbYCvFr9N1eUxg0ZQEpiiZ4QvsOQwBpP+lg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64/0.17.12: + resolution: {integrity: sha512-5D48jM3tW27h1qjaD9UNRuN+4v0zvksqZSPZqeSWggfMlsVdAhH3pwSfQIFJwcs9QJ9BRibPS4ViZgs3d2wsCA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64/0.17.12: + resolution: {integrity: sha512-OWvHzmLNTdF1erSvrfoEBGlN94IE6vCEaGEkEH29uo/VoONqPnoDFfShi41Ew+yKimx4vrmmAJEGNoyyP+OgOQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64/0.17.12: + resolution: {integrity: sha512-A0Xg5CZv8MU9xh4a+7NUpi5VHBKh1RaGJKqjxe4KG87X+mTjDE6ZvlJqpWoeJxgfXHT7IMP9tDFu7IZ03OtJAw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm/0.17.12: + resolution: {integrity: sha512-WsHyJ7b7vzHdJ1fv67Yf++2dz3D726oO3QCu8iNYik4fb5YuuReOI9OtA+n7Mk0xyQivNTPbl181s+5oZ38gyA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64/0.17.12: + resolution: {integrity: sha512-cK3AjkEc+8v8YG02hYLQIQlOznW+v9N+OI9BAFuyqkfQFR+DnDLhEM5N8QRxAUz99cJTo1rLNXqRrvY15gbQUg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32/0.17.12: + resolution: {integrity: sha512-jdOBXJqcgHlah/nYHnj3Hrnl9l63RjtQ4vn9+bohjQPI2QafASB5MtHAoEv0JQHVb/xYQTFOeuHnNYE1zF7tYw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64/0.17.12: + resolution: {integrity: sha512-GTOEtj8h9qPKXCyiBBnHconSCV9LwFyx/gv3Phw0pa25qPYjVuuGZ4Dk14bGCfGX3qKF0+ceeQvwmtI+aYBbVA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el/0.17.12: + resolution: {integrity: sha512-o8CIhfBwKcxmEENOH9RwmUejs5jFiNoDw7YgS0EJTF6kgPgcqLFjgoc5kDey5cMHRVCIWc6kK2ShUePOcc7RbA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64/0.17.12: + resolution: {integrity: sha512-biMLH6NR/GR4z+ap0oJYb877LdBpGac8KfZoEnDiBKd7MD/xt8eaw1SFfYRUeMVx519kVkAOL2GExdFmYnZx3A==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64/0.17.12: + resolution: {integrity: sha512-jkphYUiO38wZGeWlfIBMB72auOllNA2sLfiZPGDtOBb1ELN8lmqBrlMiucgL8awBw1zBXN69PmZM6g4yTX84TA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x/0.17.12: + resolution: {integrity: sha512-j3ucLdeY9HBcvODhCY4b+Ds3hWGO8t+SAidtmWu/ukfLLG/oYDMaA+dnugTVAg5fnUOGNbIYL9TOjhWgQB8W5g==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64/0.17.12: + resolution: {integrity: sha512-uo5JL3cgaEGotaqSaJdRfFNSCUJOIliKLnDGWaVCgIKkHxwhYMm95pfMbWZ9l7GeW9kDg0tSxcy9NYdEtjwwmA==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64/0.17.12: + resolution: {integrity: sha512-DNdoRg8JX+gGsbqt2gPgkgb00mqOgOO27KnrWZtdABl6yWTST30aibGJ6geBq3WM2TIeW6COs5AScnC7GwtGPg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64/0.17.12: + resolution: {integrity: sha512-aVsENlr7B64w8I1lhHShND5o8cW6sB9n9MUtLumFlPhG3elhNWtE7M1TFpj3m7lT3sKQUMkGFjTQBrvDDO1YWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64/0.17.12: + resolution: {integrity: sha512-qbHGVQdKSwi0JQJuZznS4SyY27tYXYF0mrgthbxXrZI3AHKuRvU+Eqbg/F0rmLDpW/jkIZBlCO1XfHUBMNJ1pg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64/0.17.12: + resolution: {integrity: sha512-zsCp8Ql+96xXTVTmm6ffvoTSZSV2B/LzzkUXAY33F/76EajNw1m+jZ9zPfNJlJ3Rh4EzOszNDHsmG/fZOhtqDg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32/0.17.12: + resolution: {integrity: sha512-FfrFjR4id7wcFYOdqbDfDET3tjxCozUgbqdkOABsSFzoZGFC92UK7mg4JKRc/B3NNEf1s2WHxJ7VfTdVDPN3ng==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64/0.17.12: + resolution: {integrity: sha512-JOOxw49BVZx2/5tW3FqkdjSD/5gXYeVGPDcB0lvap0gLQshkh1Nyel1QazC+wNxus3xPlsYAgqU1BUmrmCvWtw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint/eslintrc/1.3.3: + resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.4.1 + globals: 13.18.0 + ignore: 5.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@fastify/accept-negotiator/1.1.0: + resolution: {integrity: sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ==} + engines: {node: '>=14'} + dev: false + + /@fastify/ajv-compiler/3.4.0: + resolution: {integrity: sha512-69JnK7Cot+ktn7LD5TikP3b7psBPX55tYpQa8WSumt8r117PCa2zwHnImfBtRWYExreJlI48hr0WZaVrTBGj7w==} + dependencies: + ajv: 8.11.0 + ajv-formats: 2.1.1 + fast-uri: 2.2.0 + dev: false + + /@fastify/cors/8.2.0: + resolution: {integrity: sha512-qDgwpmg6C4D0D3nh8MTMuRXWyEwPnDZDBODaJv90FP2o9ukbahJByW4FtrM5Bpod5KbTf1oIExBmpItbUTQmHg==} + dependencies: + fastify-plugin: 4.4.0 + mnemonist: 0.39.5 + dev: false + + /@fastify/deepmerge/1.3.0: + resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} + dev: false + + /@fastify/error/3.2.0: + resolution: {integrity: sha512-KAfcLa+CnknwVi5fWogrLXgidLic+GXnLjijXdpl8pvkvbXU5BGa37iZO9FGvsh9ZL4y+oFi5cbHBm5UOG+dmQ==} + dev: false + + /@fastify/fast-json-stringify-compiler/4.1.0: + resolution: {integrity: sha512-cTKBV2J9+u6VaKDhX7HepSfPSzw+F+TSd+k0wzifj4rG+4E5PjSFJCk19P8R6tr/72cuzgGd+mbB3jFT6lvAgw==} + dependencies: + fast-json-stringify: 5.5.0 + dev: false + + /@fastify/formbody/7.3.0: + resolution: {integrity: sha512-4uHTS7wH0mkUoltk4wyJ966rs/TQP0BNDSCtyqRMy7p5adGg+5ERbYue/zGh/qI9yLDPN0K98u7Fw+lLEmBZJQ==} + dependencies: + fast-querystring: 1.0.0 + fastify-plugin: 4.4.0 + dev: false + + /@fastify/middie/8.0.0: + resolution: {integrity: sha512-SsZUzJwRV2IBhko8TNI5gGzUdUp2Xd0XCrU+pBTfsMN8LYGsksDI/Hb3qcUZ2/Kfg6ecbFEeRO4nZmHeFCDpHQ==} + dependencies: + fastify-plugin: 3.0.1 + path-to-regexp: 6.2.1 + reusify: 1.0.4 + dev: false + + /@fastify/static/6.6.0: + resolution: {integrity: sha512-UiYSN2dUmDZ48M40xdIwY1dPwSSYD7c+wtoIQP8y7wyxCwcUtf1YT5/Q4n1uJsBF1fySvuo9njQZKlHeiKy4HQ==} + dependencies: + '@fastify/accept-negotiator': 1.1.0 + content-disposition: 0.5.4 + fastify-plugin: 4.4.0 + glob: 8.0.3 + p-limit: 3.1.0 + readable-stream: 4.2.0 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@hapi/hoek/9.3.0: + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + dev: false + + /@hapi/topo/5.1.0: + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: false + + /@humanwhocodes/config-array/0.11.7: + resolution: {integrity: sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer/1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema/1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + + /@istanbuljs/load-nyc-config/1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + dev: true + + /@istanbuljs/schema/0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jest/console/28.1.3: + resolution: {integrity: sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + '@types/node': 16.18.4 + chalk: 4.1.2 + jest-message-util: 28.1.3 + jest-util: 28.1.3 + slash: 3.0.0 + dev: true + + /@jest/core/28.1.3_ts-node@10.7.0: + resolution: {integrity: sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/console': 28.1.3 + '@jest/reporters': 28.1.3 + '@jest/test-result': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 16.18.4 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.7.0 + exit: 0.1.2 + graceful-fs: 4.2.10 + jest-changed-files: 28.1.3 + jest-config: 28.1.3_p2pvtibqqduefcbmb3gxha6ifa + jest-haste-map: 28.1.3 + jest-message-util: 28.1.3 + jest-regex-util: 28.0.2 + jest-resolve: 28.1.3 + jest-resolve-dependencies: 28.1.3 + jest-runner: 28.1.3 + jest-runtime: 28.1.3 + jest-snapshot: 28.1.3 + jest-util: 28.1.3 + jest-validate: 28.1.3 + jest-watcher: 28.1.3 + micromatch: 4.0.5 + pretty-format: 28.1.3 + rimraf: 3.0.2 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + + /@jest/environment/28.1.3: + resolution: {integrity: sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/fake-timers': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 16.18.4 + jest-mock: 28.1.3 + dev: true + + /@jest/expect-utils/28.1.3: + resolution: {integrity: sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + jest-get-type: 28.0.2 + dev: true + + /@jest/expect/28.1.3: + resolution: {integrity: sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + expect: 28.1.3 + jest-snapshot: 28.1.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/fake-timers/28.1.3: + resolution: {integrity: sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + '@sinonjs/fake-timers': 9.1.2 + '@types/node': 16.18.4 + jest-message-util: 28.1.3 + jest-mock: 28.1.3 + jest-util: 28.1.3 + dev: true + + /@jest/globals/28.1.3: + resolution: {integrity: sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/environment': 28.1.3 + '@jest/expect': 28.1.3 + '@jest/types': 28.1.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/reporters/28.1.3: + resolution: {integrity: sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 28.1.3 + '@jest/test-result': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + '@jridgewell/trace-mapping': 0.3.17 + '@types/node': 16.18.4 + chalk: 4.1.2 + collect-v8-coverage: 1.0.1 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.10 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-instrument: 5.2.1 + istanbul-lib-report: 3.0.0 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.5 + jest-message-util: 28.1.3 + jest-util: 28.1.3 + jest-worker: 28.1.3 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + terminal-link: 2.1.1 + v8-to-istanbul: 9.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/schemas/28.1.3: + resolution: {integrity: sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@sinclair/typebox': 0.24.51 + dev: true + + /@jest/source-map/28.1.2: + resolution: {integrity: sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jridgewell/trace-mapping': 0.3.17 + callsites: 3.1.0 + graceful-fs: 4.2.10 + dev: true + + /@jest/test-result/28.1.3: + resolution: {integrity: sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/console': 28.1.3 + '@jest/types': 28.1.3 + '@types/istanbul-lib-coverage': 2.0.4 + collect-v8-coverage: 1.0.1 + dev: true + + /@jest/test-sequencer/28.1.3: + resolution: {integrity: sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/test-result': 28.1.3 + graceful-fs: 4.2.10 + jest-haste-map: 28.1.3 + slash: 3.0.0 + dev: true + + /@jest/transform/28.1.3: + resolution: {integrity: sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@babel/core': 7.20.5 + '@jest/types': 28.1.3 + '@jridgewell/trace-mapping': 0.3.17 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 1.9.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.10 + jest-haste-map: 28.1.3 + jest-regex-util: 28.0.2 + jest-util: 28.1.3 + micromatch: 4.0.5 + pirates: 4.0.5 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/types/28.1.3: + resolution: {integrity: sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/schemas': 28.1.3 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 16.18.4 + '@types/yargs': 17.0.15 + chalk: 4.1.2 + dev: true + + /@jridgewell/gen-mapping/0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@jridgewell/gen-mapping/0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping': 0.3.17 + + /@jridgewell/resolve-uri/3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array/1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/source-map/0.3.2: + resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} + dependencies: + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.17 + + /@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + + /@jridgewell/trace-mapping/0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + + /@nestjs/cli/9.1.5: + resolution: {integrity: sha512-rSp26+Nv7PFtYrRSP18Gv5ZK8rRSc2SCCF5wh4SdZaVGgkxShpNq9YEfI+ik/uziN3KC5o74ppYRXGj+aHGVsA==} + engines: {node: '>= 12.9.0'} + hasBin: true + dependencies: + '@angular-devkit/core': 14.2.2_chokidar@3.5.3 + '@angular-devkit/schematics': 14.2.2_chokidar@3.5.3 + '@angular-devkit/schematics-cli': 14.2.2_chokidar@3.5.3 + '@nestjs/schematics': 9.0.3_ar2on76c45aosuucycxzxivxgm + chalk: 3.0.0 + chokidar: 3.5.3 + cli-table3: 0.6.2 + commander: 4.1.1 + fork-ts-checker-webpack-plugin: 7.2.13_qqxisngxjbp7lstdk7boexbu3e + inquirer: 7.3.3 + node-emoji: 1.11.0 + ora: 5.4.1 + os-name: 4.0.1 + rimraf: 3.0.2 + shelljs: 0.8.5 + source-map-support: 0.5.21 + tree-kill: 1.2.2 + tsconfig-paths: 4.1.0 + tsconfig-paths-webpack-plugin: 4.0.0 + typescript: 4.8.4 + webpack: 5.74.0 + webpack-node-externals: 3.0.0 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + - vue-template-compiler + - webpack-cli + dev: true + + /@nestjs/common/9.2.1_yzt46al3aifnexifjjdb4dxxja: + resolution: {integrity: sha512-nZuo3oDsSSlC5mti/M2aCWTEIfHPGDXmBwWgPeCpRbrNz3IWd109rkajll+yxgidVjznAdBS9y00JkAVJblNYw==} + peerDependencies: + cache-manager: <=5 + class-transformer: '*' + class-validator: '*' + reflect-metadata: ^0.1.12 + rxjs: ^7.1.0 + peerDependenciesMeta: + cache-manager: + optional: true + class-transformer: + optional: true + class-validator: + optional: true + dependencies: + iterare: 1.2.1 + reflect-metadata: 0.1.13 + rxjs: 7.5.7 + tslib: 2.4.1 + uuid: 9.0.0 + + /@nestjs/config/2.2.0_zgn5mu6qrgzh2mkt2kmizzegr4: + resolution: {integrity: sha512-78Eg6oMbCy3D/YvqeiGBTOWei1Jwi3f2pSIZcZ1QxY67kYsJzTRTkwRT8Iv30DbK0sGKc1mcloDLD5UXgZAZtg==} + peerDependencies: + '@nestjs/common': ^7.0.0 || ^8.0.0 || ^9.0.0 + reflect-metadata: ^0.1.13 + rxjs: ^6.0.0 || ^7.2.0 + dependencies: + '@nestjs/common': 9.2.1_yzt46al3aifnexifjjdb4dxxja + dotenv: 16.0.1 + dotenv-expand: 8.0.3 + lodash: 4.17.21 + reflect-metadata: 0.1.13 + rxjs: 7.5.7 + uuid: 8.3.2 + dev: false + + /@nestjs/core/9.2.1_tuv4y6h3m23xb7odf2gtnrhr3e: + resolution: {integrity: sha512-a9GkXuu8uXgNgCVW+17iI8kLCltO+HwHpU2IhR+32JKnN2WEQ1YEWU4t3GJ2MNq44YkjIw9zrKvFkjJBlYrNbQ==} + requiresBuild: true + peerDependencies: + '@nestjs/common': ^9.0.0 + '@nestjs/microservices': ^9.0.0 + '@nestjs/platform-express': ^9.0.0 + '@nestjs/websockets': ^9.0.0 + reflect-metadata: ^0.1.12 + rxjs: ^7.1.0 + peerDependenciesMeta: + '@nestjs/microservices': + optional: true + '@nestjs/platform-express': + optional: true + '@nestjs/websockets': + optional: true + dependencies: + '@nestjs/common': 9.2.1_yzt46al3aifnexifjjdb4dxxja + '@nestjs/platform-express': 9.2.1_hjcqpoaebdr7gdo5hgc22hthbe + '@nuxtjs/opencollective': 0.3.2 + fast-safe-stringify: 2.1.1 + iterare: 1.2.1 + object-hash: 3.0.0 + path-to-regexp: 3.2.0 + reflect-metadata: 0.1.13 + rxjs: 7.5.7 + tslib: 2.4.1 + uuid: 9.0.0 + transitivePeerDependencies: + - encoding + + /@nestjs/mapped-types/1.2.0_n3ccvzwmui2f6jwh4xeqysew6i: + resolution: {integrity: sha512-NTFwPZkQWsArQH8QSyFWGZvJ08gR+R4TofglqZoihn/vU+ktHEJjMqsIsADwb7XD97DhiD+TVv5ac+jG33BHrg==} + peerDependencies: + '@nestjs/common': ^7.0.8 || ^8.0.0 || ^9.0.0 + class-transformer: ^0.2.0 || ^0.3.0 || ^0.4.0 || ^0.5.0 + class-validator: ^0.11.1 || ^0.12.0 || ^0.13.0 + reflect-metadata: ^0.1.12 + peerDependenciesMeta: + class-transformer: + optional: true + class-validator: + optional: true + dependencies: + '@nestjs/common': 9.2.1_yzt46al3aifnexifjjdb4dxxja + reflect-metadata: 0.1.13 + dev: false + + /@nestjs/passport/9.0.0_6o47igfla2pj7yzh7agpvpttka: + resolution: {integrity: sha512-Gnh8n1wzFPOLSS/94X1sUP4IRAoXTgG4odl7/AO5h+uwscEGXxJFercrZfqdAwkWhqkKWbsntM3j5mRy/6ZQDA==} + peerDependencies: + '@nestjs/common': ^8.0.0 || ^9.0.0 + passport: ^0.4.0 || ^0.5.0 || ^0.6.0 + dependencies: + '@nestjs/common': 9.2.1_yzt46al3aifnexifjjdb4dxxja + passport: 0.6.0 + dev: false + + /@nestjs/platform-express/9.2.1_hjcqpoaebdr7gdo5hgc22hthbe: + resolution: {integrity: sha512-7PecaXt8lrdS1p6Vb1X/am3GGv+EO1VahyDzaEGOK6C0zwhc0VPfLtwihkjjfhS6BjpRIXXgviwEjONUvxVZnA==} + peerDependencies: + '@nestjs/common': ^9.0.0 + '@nestjs/core': ^9.0.0 + dependencies: + '@nestjs/common': 9.2.1_yzt46al3aifnexifjjdb4dxxja + '@nestjs/core': 9.2.1_tuv4y6h3m23xb7odf2gtnrhr3e + body-parser: 1.20.1 + cors: 2.8.5 + express: 4.18.2 + multer: 1.4.4-lts.1 + tslib: 2.4.1 + transitivePeerDependencies: + - supports-color + + /@nestjs/platform-fastify/9.2.1_ikxpgcebo3djgwayhrp6upsvza: + resolution: {integrity: sha512-vhygCrU1Q4VkgsSo9EbS5Ihn2J78ZAK+Zb4M5Bbg+DGWGyrOLbMWL/gYgGSGIV4Fe7CVzp7H9xwuCfl8oqEFNg==} + peerDependencies: + '@fastify/static': ^6.0.0 + '@fastify/view': ^7.0.0 + '@nestjs/common': ^9.0.0 + '@nestjs/core': ^9.0.0 + peerDependenciesMeta: + '@fastify/static': + optional: true + '@fastify/view': + optional: true + dependencies: + '@fastify/cors': 8.2.0 + '@fastify/formbody': 7.3.0 + '@fastify/middie': 8.0.0 + '@fastify/static': 6.6.0 + '@nestjs/common': 9.2.1_yzt46al3aifnexifjjdb4dxxja + '@nestjs/core': 9.2.1_tuv4y6h3m23xb7odf2gtnrhr3e + fastify: 4.10.2 + light-my-request: 5.6.1 + path-to-regexp: 3.2.0 + tslib: 2.4.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@nestjs/schematics/9.0.3_ar2on76c45aosuucycxzxivxgm: + resolution: {integrity: sha512-kZrU/lrpVd2cnK8I3ibDb3Wi1ppl3wX3U3lVWoL+DzRRoezWKkh8upEL4q0koKmuXnsmLiu3UPxFeMOrJV7TSA==} + peerDependencies: + typescript: ^4.3.5 + dependencies: + '@angular-devkit/core': 14.2.1_chokidar@3.5.3 + '@angular-devkit/schematics': 14.2.1_chokidar@3.5.3 + fs-extra: 10.1.0 + jsonc-parser: 3.2.0 + pluralize: 8.0.0 + typescript: 4.8.4 + transitivePeerDependencies: + - chokidar + dev: true + + /@nestjs/schematics/9.0.3_typescript@4.5.2: + resolution: {integrity: sha512-kZrU/lrpVd2cnK8I3ibDb3Wi1ppl3wX3U3lVWoL+DzRRoezWKkh8upEL4q0koKmuXnsmLiu3UPxFeMOrJV7TSA==} + peerDependencies: + typescript: ^4.3.5 + dependencies: + '@angular-devkit/core': 14.2.1 + '@angular-devkit/schematics': 14.2.1 + fs-extra: 10.1.0 + jsonc-parser: 3.2.0 + pluralize: 8.0.0 + typescript: 4.5.2 + transitivePeerDependencies: + - chokidar + dev: true + + /@nestjs/swagger/6.1.3_msprghgtrmqoraddow4lmr54ka: + resolution: {integrity: sha512-H9C/yRgLFb5QrAt6iGrYmIX9X7Q0zXkgZaTNUATljUBra+RCWrEUbLHBcGjTAOtcIyGV/vmyCLv68YSVcZoE0Q==} + peerDependencies: + '@fastify/static': ^6.0.0 + '@nestjs/common': ^9.0.0 + '@nestjs/core': ^9.0.0 + reflect-metadata: ^0.1.12 + peerDependenciesMeta: + '@fastify/static': + optional: true + dependencies: + '@fastify/static': 6.6.0 + '@nestjs/common': 9.2.1_yzt46al3aifnexifjjdb4dxxja + '@nestjs/core': 9.2.1_tuv4y6h3m23xb7odf2gtnrhr3e + '@nestjs/mapped-types': 1.2.0_n3ccvzwmui2f6jwh4xeqysew6i + js-yaml: 4.1.0 + lodash: 4.17.21 + path-to-regexp: 3.2.0 + reflect-metadata: 0.1.13 + swagger-ui-dist: 4.15.1 + transitivePeerDependencies: + - class-transformer + - class-validator + dev: false + + /@nestjs/testing/9.2.1_wdbvfsxfdwzlwdfiyh2gynjl4m: + resolution: {integrity: sha512-lemXZdRSuqoZ87l0orCrS/c7gqwxeduIFOd21g9g2RUeQ4qlWPegbQDKASzbfC28klPyrgJLW4MNq7uv2JwV8w==} + peerDependencies: + '@nestjs/common': ^9.0.0 + '@nestjs/core': ^9.0.0 + '@nestjs/microservices': ^9.0.0 + '@nestjs/platform-express': ^9.0.0 + peerDependenciesMeta: + '@nestjs/microservices': + optional: true + '@nestjs/platform-express': + optional: true + dependencies: + '@nestjs/common': 9.2.1_yzt46al3aifnexifjjdb4dxxja + '@nestjs/core': 9.2.1_tuv4y6h3m23xb7odf2gtnrhr3e + '@nestjs/platform-express': 9.2.1_hjcqpoaebdr7gdo5hgc22hthbe + tslib: 2.4.1 + dev: true + + /@nestjs/typeorm/9.0.1_y35eg2ubdzamw4yabeyff6xsia: + resolution: {integrity: sha512-A2BgLIPsMtmMI0bPKEf4bmzgFPsnvHqNBx3KkvaJ7hJrBQy0OqYOb+Rr06ifblKWDWS2tUPNrAFQbZjtk3PI+g==} + peerDependencies: + '@nestjs/common': ^8.0.0 || ^9.0.0 + '@nestjs/core': ^8.0.0 || ^9.0.0 + reflect-metadata: ^0.1.13 + rxjs: ^7.2.0 + typeorm: ^0.3.0 + dependencies: + '@nestjs/common': 9.2.1_yzt46al3aifnexifjjdb4dxxja + '@nestjs/core': 9.2.1_tuv4y6h3m23xb7odf2gtnrhr3e + reflect-metadata: 0.1.13 + rxjs: 7.5.7 + typeorm: 0.3.11_pg@8.8.0+ts-node@10.7.0 + uuid: 8.3.2 + dev: false + + /@nodelib/fs.scandir/2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk/1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.14.0 + dev: true + + /@nuxtjs/opencollective/0.3.2: + resolution: {integrity: sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + dependencies: + chalk: 4.1.2 + consola: 2.15.3 + node-fetch: 2.6.7 + transitivePeerDependencies: + - encoding + + /@popperjs/core/2.11.6: + resolution: {integrity: sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==} + dev: false + + /@react-aria/ssr/3.5.0_react@18.2.0: + resolution: {integrity: sha512-h0MJdSWOd1qObLnJ8mprU31wI8tmKFJMuwT22MpWq6psisOOZaga6Ml4u6Ee6M6duWWISjXvqO4Sb/J0PBA+nQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@swc/helpers': 0.4.14 + react: 18.2.0 + dev: false + + /@remix-run/router/1.4.0: + resolution: {integrity: sha512-BJ9SxXux8zAg991UmT8slpwpsd31K1dHHbD3Ba4VzD+liLQ4WAMSxQp2d2ZPRPfN0jN2NPRowcSSoM7lCaF08Q==} + engines: {node: '>=14'} + dev: false + + /@restart/hooks/0.4.9_react@18.2.0: + resolution: {integrity: sha512-3BekqcwB6Umeya+16XPooARn4qEPW6vNvwYnlofIYe6h9qG1/VeD7UvShCWx11eFz5ELYmwIEshz+MkPX3wjcQ==} + peerDependencies: + react: '>=16.8.0' + dependencies: + dequal: 2.0.3 + react: 18.2.0 + dev: false + + /@restart/ui/1.6.2_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-hcYs8PwpmHEtwjihLVn2Jr89yrYajfhxN5HtTq3HA9U3+feg1SC3swBM8/qibMTCFsXWToEEtzJMV+LWE+Qjpg==} + peerDependencies: + react: '>=16.14.0' + react-dom: '>=16.14.0' + dependencies: + '@babel/runtime': 7.21.0 + '@popperjs/core': 2.11.6 + '@react-aria/ssr': 3.5.0_react@18.2.0 + '@restart/hooks': 0.4.9_react@18.2.0 + '@types/warning': 3.0.0 + dequal: 2.0.3 + dom-helpers: 5.2.1 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + uncontrollable: 8.0.0_react@18.2.0 + warning: 4.0.3 + dev: false + + /@rollup/pluginutils/4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@sideway/address/4.1.4: + resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: false + + /@sideway/formula/3.0.0: + resolution: {integrity: sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==} + dev: false + + /@sideway/pinpoint/2.0.0: + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + dev: false + + /@sinclair/typebox/0.24.51: + resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==} + dev: true + + /@sinonjs/commons/1.8.6: + resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} + dependencies: + type-detect: 4.0.8 + dev: true + + /@sinonjs/fake-timers/9.1.2: + resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} + dependencies: + '@sinonjs/commons': 1.8.6 + dev: true + + /@sqltools/formatter/1.2.5: + resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==} + dev: false + + /@swc/helpers/0.4.14: + resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} + dependencies: + tslib: 2.4.1 + dev: false + + /@tsconfig/node10/1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + + /@tsconfig/node12/1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + /@tsconfig/node14/1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + /@tsconfig/node16/1.0.3: + resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} + + /@types/babel__core/7.1.20: + resolution: {integrity: sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==} + dependencies: + '@babel/parser': 7.20.5 + '@babel/types': 7.20.5 + '@types/babel__generator': 7.6.4 + '@types/babel__template': 7.4.1 + '@types/babel__traverse': 7.18.3 + dev: true + + /@types/babel__generator/7.6.4: + resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} + dependencies: + '@babel/types': 7.20.5 + dev: true + + /@types/babel__template/7.4.1: + resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} + dependencies: + '@babel/parser': 7.20.5 + '@babel/types': 7.20.5 + dev: true + + /@types/babel__traverse/7.18.3: + resolution: {integrity: sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==} + dependencies: + '@babel/types': 7.20.5 + dev: true + + /@types/body-parser/1.19.2: + resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} + dependencies: + '@types/connect': 3.4.35 + '@types/node': 16.18.4 + + /@types/connect/3.4.35: + resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} + dependencies: + '@types/node': 16.18.4 + + /@types/cookiejar/2.1.2: + resolution: {integrity: sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==} + dev: true + + /@types/eslint-scope/3.7.4: + resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} + dependencies: + '@types/eslint': 8.4.10 + '@types/estree': 0.0.51 + + /@types/eslint/8.4.10: + resolution: {integrity: sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==} + dependencies: + '@types/estree': 0.0.51 + '@types/json-schema': 7.0.11 + + /@types/estree/0.0.51: + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} + + /@types/express-serve-static-core/4.17.31: + resolution: {integrity: sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==} + dependencies: + '@types/node': 16.18.4 + '@types/qs': 6.9.7 + '@types/range-parser': 1.2.4 + + /@types/express/4.17.14: + resolution: {integrity: sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==} + dependencies: + '@types/body-parser': 1.19.2 + '@types/express-serve-static-core': 4.17.31 + '@types/qs': 6.9.7 + '@types/serve-static': 1.15.0 + + /@types/graceful-fs/4.1.5: + resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} + dependencies: + '@types/node': 16.18.4 + dev: true + + /@types/istanbul-lib-coverage/2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} + dev: true + + /@types/istanbul-lib-report/3.0.0: + resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + dev: true + + /@types/istanbul-reports/3.0.1: + resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} + dependencies: + '@types/istanbul-lib-report': 3.0.0 + dev: true + + /@types/jest/28.1.8: + resolution: {integrity: sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw==} + dependencies: + expect: 28.1.3 + pretty-format: 28.1.3 + dev: true + + /@types/js-yaml/4.0.5: + resolution: {integrity: sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==} + dev: false + + /@types/json-schema/7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + + /@types/jsonwebtoken/8.5.9: + resolution: {integrity: sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==} + dependencies: + '@types/node': 16.18.4 + dev: false + + /@types/mime/3.0.1: + resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} + + /@types/node/16.18.4: + resolution: {integrity: sha512-9qGjJ5GyShZjUfx2ArBIGM+xExdfLvvaCyQR0t6yRXKPcWCVYF/WemtX/uIU3r7FYECXRXkIiw2Vnhn6y8d+pw==} + + /@types/parse-json/4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + dev: true + + /@types/passport-jwt/3.0.7: + resolution: {integrity: sha512-qRQ4qlww1Yhs3IaioDKrsDNmKy6gLDLgFsGwpCnc2YqWovO2Oxu9yCQdWHMJafQ7UIuOba4C4/TNXcGkQfEjlQ==} + dependencies: + '@types/express': 4.17.14 + '@types/jsonwebtoken': 8.5.9 + '@types/passport-strategy': 0.2.35 + dev: false + + /@types/passport-strategy/0.2.35: + resolution: {integrity: sha512-o5D19Jy2XPFoX2rKApykY15et3Apgax00RRLf0RUotPDUsYrQa7x4howLYr9El2mlUApHmCMv5CZ1IXqKFQ2+g==} + dependencies: + '@types/express': 4.17.14 + '@types/passport': 1.0.11 + dev: false + + /@types/passport/1.0.11: + resolution: {integrity: sha512-pz1cx9ptZvozyGKKKIPLcVDVHwae4hrH5d6g5J+DkMRRjR3cVETb4jMabhXAUbg3Ov7T22nFHEgaK2jj+5CBpw==} + dependencies: + '@types/express': 4.17.14 + dev: false + + /@types/prettier/2.7.1: + resolution: {integrity: sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==} + dev: true + + /@types/prop-types/15.7.5: + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + dev: false + + /@types/qs/6.9.7: + resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} + + /@types/range-parser/1.2.4: + resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} + + /@types/react-dom/18.0.11: + resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==} + dependencies: + '@types/react': 18.0.28 + dev: false + + /@types/react-transition-group/4.4.5: + resolution: {integrity: sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==} + dependencies: + '@types/react': 18.0.28 + dev: false + + /@types/react/18.0.28: + resolution: {integrity: sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.2 + csstype: 3.1.1 + dev: false + + /@types/scheduler/0.16.2: + resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} + dev: false + + /@types/semver/7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + dev: true + + /@types/serve-static/1.15.0: + resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} + dependencies: + '@types/mime': 3.0.1 + '@types/node': 16.18.4 + + /@types/stack-utils/2.0.1: + resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} + dev: true + + /@types/superagent/4.1.16: + resolution: {integrity: sha512-tLfnlJf6A5mB6ddqF159GqcDizfzbMUB1/DeT59/wBNqzRTNNKsaw79A/1TZ84X+f/EwWH8FeuSkjlCLyqS/zQ==} + dependencies: + '@types/cookiejar': 2.1.2 + '@types/node': 16.18.4 + dev: true + + /@types/supertest/2.0.12: + resolution: {integrity: sha512-X3HPWTwXRerBZS7Mo1k6vMVR1Z6zmJcDVn5O/31whe0tnjE4te6ZJSJGq1RiqHPjzPdMTfjCFogDJmwng9xHaQ==} + dependencies: + '@types/superagent': 4.1.16 + dev: true + + /@types/warning/3.0.0: + resolution: {integrity: sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==} + dev: false + + /@types/yargs-parser/21.0.0: + resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} + dev: true + + /@types/yargs/17.0.15: + resolution: {integrity: sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==} + dependencies: + '@types/yargs-parser': 21.0.0 + dev: true + + /@typescript-eslint/eslint-plugin/5.45.0_redz6kwzpg3a7iw367fgkvhm44: + resolution: {integrity: sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/parser': 5.45.0_kobv54wr2sqljopxonyssrcrhy + '@typescript-eslint/scope-manager': 5.45.0 + '@typescript-eslint/type-utils': 5.45.0_kobv54wr2sqljopxonyssrcrhy + '@typescript-eslint/utils': 5.45.0_kobv54wr2sqljopxonyssrcrhy + debug: 4.3.4 + eslint: 8.29.0 + ignore: 5.2.1 + natural-compare-lite: 1.4.0 + regexpp: 3.2.0 + semver: 7.3.8 + tsutils: 3.21.0_typescript@4.5.2 + typescript: 4.5.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser/5.45.0_kobv54wr2sqljopxonyssrcrhy: + resolution: {integrity: sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.45.0 + '@typescript-eslint/types': 5.45.0 + '@typescript-eslint/typescript-estree': 5.45.0_typescript@4.5.2 + debug: 4.3.4 + eslint: 8.29.0 + typescript: 4.5.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager/5.45.0: + resolution: {integrity: sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.45.0 + '@typescript-eslint/visitor-keys': 5.45.0 + dev: true + + /@typescript-eslint/type-utils/5.45.0_kobv54wr2sqljopxonyssrcrhy: + resolution: {integrity: sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.45.0_typescript@4.5.2 + '@typescript-eslint/utils': 5.45.0_kobv54wr2sqljopxonyssrcrhy + debug: 4.3.4 + eslint: 8.29.0 + tsutils: 3.21.0_typescript@4.5.2 + typescript: 4.5.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types/5.45.0: + resolution: {integrity: sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree/5.45.0_typescript@4.5.2: + resolution: {integrity: sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.45.0 + '@typescript-eslint/visitor-keys': 5.45.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.8 + tsutils: 3.21.0_typescript@4.5.2 + typescript: 4.5.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils/5.45.0_kobv54wr2sqljopxonyssrcrhy: + resolution: {integrity: sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.45.0 + '@typescript-eslint/types': 5.45.0 + '@typescript-eslint/typescript-estree': 5.45.0_typescript@4.5.2 + eslint: 8.29.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.29.0 + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys/5.45.0: + resolution: {integrity: sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.45.0 + eslint-visitor-keys: 3.3.0 + dev: true + + /@ucast/core/1.10.1: + resolution: {integrity: sha512-sXKbvQiagjFh2JCpaHUa64P4UdJbOxYeC5xiZFn8y6iYdb0WkismduE+RmiJrIjw/eLDYmIEXiQeIYYowmkcAw==} + dev: false + + /@ucast/js/3.0.2: + resolution: {integrity: sha512-zxNkdIPVvqJjHI7D/iK8Aai1+59yqU+N7bpHFodVmiTN7ukeNiGGpNmmSjQgsUw7eNcEBnPrZHNzp5UBxwmaPw==} + dependencies: + '@ucast/core': 1.10.1 + dev: false + + /@ucast/mongo/2.4.2: + resolution: {integrity: sha512-/zH1TdBJlYGKKD+Wh0oyD+aBvDSWrwHcD8b4tUL9UgHLhzHtkEnMVFuxbw3SRIRsAa01wmy06+LWt+WoZdj1Bw==} + dependencies: + '@ucast/core': 1.10.1 + dev: false + + /@ucast/mongo2js/1.3.3: + resolution: {integrity: sha512-sBPtMUYg+hRnYeVYKL+ATm8FaRPdlU9PijMhGYKgsPGjV9J4Ks41ytIjGayvKUnBOEhiCaKUUnY4qPeifdqATw==} + dependencies: + '@ucast/core': 1.10.1 + '@ucast/js': 3.0.2 + '@ucast/mongo': 2.4.2 + dev: false + + /@vitejs/plugin-react/3.1.0_vite@4.2.1: + resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.1.0-beta.0 + dependencies: + '@babel/core': 7.21.3 + '@babel/plugin-transform-react-jsx-self': 7.21.0_@babel+core@7.21.3 + '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.21.3 + magic-string: 0.27.0 + react-refresh: 0.14.0 + vite: 4.2.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@webassemblyjs/ast/1.11.1: + resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} + dependencies: + '@webassemblyjs/helper-numbers': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + + /@webassemblyjs/floating-point-hex-parser/1.11.1: + resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==} + + /@webassemblyjs/helper-api-error/1.11.1: + resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==} + + /@webassemblyjs/helper-buffer/1.11.1: + resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==} + + /@webassemblyjs/helper-numbers/1.11.1: + resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==} + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.1 + '@webassemblyjs/helper-api-error': 1.11.1 + '@xtuc/long': 4.2.2 + + /@webassemblyjs/helper-wasm-bytecode/1.11.1: + resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==} + + /@webassemblyjs/helper-wasm-section/1.11.1: + resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 + + /@webassemblyjs/ieee754/1.11.1: + resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==} + dependencies: + '@xtuc/ieee754': 1.2.0 + + /@webassemblyjs/leb128/1.11.1: + resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==} + dependencies: + '@xtuc/long': 4.2.2 + + /@webassemblyjs/utf8/1.11.1: + resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==} + + /@webassemblyjs/wasm-edit/1.11.1: + resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/helper-wasm-section': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 + '@webassemblyjs/wasm-opt': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + '@webassemblyjs/wast-printer': 1.11.1 + + /@webassemblyjs/wasm-gen/1.11.1: + resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/ieee754': 1.11.1 + '@webassemblyjs/leb128': 1.11.1 + '@webassemblyjs/utf8': 1.11.1 + + /@webassemblyjs/wasm-opt/1.11.1: + resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + + /@webassemblyjs/wasm-parser/1.11.1: + resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-api-error': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/ieee754': 1.11.1 + '@webassemblyjs/leb128': 1.11.1 + '@webassemblyjs/utf8': 1.11.1 + + /@webassemblyjs/wast-printer/1.11.1: + resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@xtuc/long': 4.2.2 + + /@xtuc/ieee754/1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + /@xtuc/long/4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + /abort-controller/3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + dependencies: + event-target-shim: 5.0.1 + dev: false + + /abortcontroller-polyfill/1.7.5: + resolution: {integrity: sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==} + dev: false + + /abstract-logging/2.0.1: + resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} + dev: false + + /accepts/1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + /acorn-import-assertions/1.8.0_acorn@8.8.1: + resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.8.1 + + /acorn-jsx/5.3.2_acorn@8.8.1: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.8.1 + dev: true + + /acorn-walk/8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + + /acorn/8.8.1: + resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} + engines: {node: '>=0.4.0'} + hasBin: true + + /ajv-formats/2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.11.0 + + /ajv-keywords/3.5.2_ajv@6.12.6: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 + + /ajv/6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + /ajv/8.11.0: + resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + + /ansi-colors/4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + dev: true + + /ansi-escapes/4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-regex/5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + + /ansi-styles/5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + + /any-promise/1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: false + + /anymatch/3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /app-root-path/3.1.0: + resolution: {integrity: sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==} + engines: {node: '>= 6.0.0'} + dev: false + + /append-field/1.0.0: + resolution: {integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==} + + /archy/1.0.0: + resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} + dev: false + + /arg/4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + /argparse/1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + /array-flatten/1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + /array-union/2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /asap/2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + dev: true + + /async/3.2.4: + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} + dev: true + + /asynckit/0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true + + /atomic-sleep/1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + dev: false + + /avvio/8.2.0: + resolution: {integrity: sha512-bbCQdg7bpEv6kGH41RO/3B2/GMMmJSo2iBK+X8AWN9mujtfUipMDfIjsgHCfpnKqoGEQrrmCDKSa5OQ19+fDmg==} + dependencies: + archy: 1.0.0 + debug: 4.3.4 + fastq: 1.14.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-jest/28.1.3_@babel+core@7.20.5: + resolution: {integrity: sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.20.5 + '@jest/transform': 28.1.3 + '@types/babel__core': 7.1.20 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 28.1.3_@babel+core@7.20.5 + chalk: 4.1.2 + graceful-fs: 4.2.10 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-istanbul/6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-jest-hoist/28.1.3: + resolution: {integrity: sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@babel/template': 7.18.10 + '@babel/types': 7.20.5 + '@types/babel__core': 7.1.20 + '@types/babel__traverse': 7.18.3 + dev: true + + /babel-preset-current-node-syntax/1.0.1_@babel+core@7.20.5: + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.5 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.5 + '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.20.5 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.5 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.20.5 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.5 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.5 + dev: true + + /babel-preset-jest/28.1.3_@babel+core@7.20.5: + resolution: {integrity: sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.5 + babel-plugin-jest-hoist: 28.1.3 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.5 + dev: true + + /balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /base64-js/1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + /binary-extensions/2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /bl/4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: true + + /body-parser/1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.4 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + /boolbase/1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true + + /bootstrap/5.2.3_@popperjs+core@2.11.6: + resolution: {integrity: sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ==} + peerDependencies: + '@popperjs/core': ^2.11.6 + dependencies: + '@popperjs/core': 2.11.6 + dev: false + + /brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /brace-expansion/2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + + /braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browser-tabs-lock/1.2.15: + resolution: {integrity: sha512-J8K9vdivK0Di+b8SBdE7EZxDr88TnATing7XoLw6+nFkXMQ6sVBh92K3NQvZlZU91AIkFRi0w3sztk5Z+vsswA==} + requiresBuild: true + dependencies: + lodash: 4.17.21 + dev: false + + /browserslist/4.21.4: + resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001436 + electron-to-chromium: 1.4.284 + node-releases: 2.0.6 + update-browserslist-db: 1.0.10_browserslist@4.21.4 + + /browserslist/4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001468 + electron-to-chromium: 1.4.284 + node-releases: 2.0.10 + update-browserslist-db: 1.0.10_browserslist@4.21.5 + dev: true + + /bs-logger/0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} + dependencies: + fast-json-stable-stringify: 2.1.0 + dev: true + + /bser/2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + dependencies: + node-int64: 0.4.0 + dev: true + + /buffer-equal-constant-time/1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + dev: false + + /buffer-from/1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + /buffer-writer/2.0.0: + resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} + engines: {node: '>=4'} + dev: false + + /buffer/5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /buffer/6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + + /busboy/1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + dependencies: + streamsearch: 1.1.0 + + /bytes/3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + /call-bind/1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.1.3 + + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camel-case/4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + dependencies: + pascal-case: 3.1.2 + tslib: 2.4.1 + dev: true + + /camelcase/5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /camelcase/6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true + + /caniuse-lite/1.0.30001436: + resolution: {integrity: sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg==} + + /caniuse-lite/1.0.30001468: + resolution: {integrity: sha512-zgAo8D5kbOyUcRAgSmgyuvBkjrGk5CGYG5TYgFdpQv+ywcyEpo1LOWoG8YmoflGnh+V+UsNuKYedsoYs0hzV5A==} + dev: true + + /chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk/3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk/4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + /char-regex/1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + dev: true + + /chardet/0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true + + /chokidar/3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /chrome-trace-event/1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} + + /ci-info/3.7.0: + resolution: {integrity: sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==} + engines: {node: '>=8'} + dev: true + + /cjs-module-lexer/1.2.2: + resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} + dev: true + + /classnames/2.3.2: + resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} + dev: false + + /clean-css/5.3.2: + resolution: {integrity: sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==} + engines: {node: '>= 10.0'} + dependencies: + source-map: 0.6.1 + dev: true + + /cli-cursor/3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-highlight/2.1.11: + resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + dependencies: + chalk: 4.1.2 + highlight.js: 10.7.3 + mz: 2.7.0 + parse5: 5.1.1 + parse5-htmlparser2-tree-adapter: 6.0.1 + yargs: 16.2.0 + dev: false + + /cli-spinners/2.7.0: + resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} + engines: {node: '>=6'} + dev: true + + /cli-table3/0.6.2: + resolution: {integrity: sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==} + engines: {node: 10.* || >= 12.*} + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + dev: true + + /cli-width/3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + dev: true + + /cliui/7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: false + + /cliui/8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + /clone/1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: true + + /co/4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true + + /collect-v8-coverage/1.0.1: + resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} + dev: true + + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + + /color-name/1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true + + /color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /colorette/2.0.19: + resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + dev: true + + /combined-stream/1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: true + + /commander/2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + /commander/4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + + /commander/8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + dev: true + + /component-emitter/1.3.0: + resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} + dev: true + + /concat-map/0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + /concat-stream/1.6.2: + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} + engines: {'0': node >= 0.8} + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 2.3.7 + typedarray: 0.0.6 + + /connect-history-api-fallback/1.6.0: + resolution: {integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==} + engines: {node: '>=0.8'} + dev: true + + /consola/2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + + /content-disposition/0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.2.1 + + /content-type/1.0.4: + resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==} + engines: {node: '>= 0.6'} + + /convert-source-map/1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: true + + /cookie-signature/1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + /cookie/0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + + /cookiejar/2.1.3: + resolution: {integrity: sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==} + dev: true + + /core-js/3.26.1: + resolution: {integrity: sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==} + requiresBuild: true + dev: false + + /core-util-is/1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + /cors/2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + + /cosmiconfig/7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /create-require/1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + /cross-spawn/7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /css-select/4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + dev: true + + /css-what/6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: true + + /csstype/3.1.1: + resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} + dev: false + + /date-fns/2.29.3: + resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} + engines: {node: '>=0.11'} + dev: false + + /debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /dedent/0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + dev: true + + /deep-is/0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /deepmerge/4.2.2: + resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} + engines: {node: '>=0.10.0'} + dev: true + + /defaults/1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + dev: true + + /delayed-stream/1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: true + + /depd/2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + /dequal/2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: false + + /destroy/1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + /detect-newline/3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true + + /dezalgo/1.0.4: + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} + dependencies: + asap: 2.0.6 + wrappy: 1.0.2 + dev: true + + /diff-sequences/28.1.1: + resolution: {integrity: sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dev: true + + /diff/4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + /dir-glob/3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine/3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-helpers/5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + dependencies: + '@babel/runtime': 7.21.0 + csstype: 3.1.1 + dev: false + + /dom-serializer/1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + dev: true + + /domelementtype/2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true + + /domhandler/4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domutils/2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + dev: true + + /dot-case/3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dependencies: + no-case: 3.0.4 + tslib: 2.4.1 + dev: true + + /dotenv-expand/8.0.3: + resolution: {integrity: sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==} + engines: {node: '>=12'} + + /dotenv/16.0.1: + resolution: {integrity: sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==} + engines: {node: '>=12'} + + /ecdsa-sig-formatter/1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /ee-first/1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + /ejs/3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.8.5 + dev: true + + /electron-to-chromium/1.4.284: + resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} + + /emittery/0.10.2: + resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==} + engines: {node: '>=12'} + dev: true + + /emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + /encodeurl/1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + /end-of-stream/1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: true + + /enhanced-resolve/5.12.0: + resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.10 + tapable: 2.2.1 + + /entities/2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + dev: true + + /error-ex/1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-cookie/1.3.2: + resolution: {integrity: sha512-UTlYYhXGLOy05P/vKVT2Ui7WtC7NiRzGtJyAKKn32g5Gvcjn7KAClLPWlipCtxIus934dFg9o9jXiBL0nP+t9Q==} + dev: false + + /es-module-lexer/0.9.3: + resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} + + /esbuild/0.17.12: + resolution: {integrity: sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.12 + '@esbuild/android-arm64': 0.17.12 + '@esbuild/android-x64': 0.17.12 + '@esbuild/darwin-arm64': 0.17.12 + '@esbuild/darwin-x64': 0.17.12 + '@esbuild/freebsd-arm64': 0.17.12 + '@esbuild/freebsd-x64': 0.17.12 + '@esbuild/linux-arm': 0.17.12 + '@esbuild/linux-arm64': 0.17.12 + '@esbuild/linux-ia32': 0.17.12 + '@esbuild/linux-loong64': 0.17.12 + '@esbuild/linux-mips64el': 0.17.12 + '@esbuild/linux-ppc64': 0.17.12 + '@esbuild/linux-riscv64': 0.17.12 + '@esbuild/linux-s390x': 0.17.12 + '@esbuild/linux-x64': 0.17.12 + '@esbuild/netbsd-x64': 0.17.12 + '@esbuild/openbsd-x64': 0.17.12 + '@esbuild/sunos-x64': 0.17.12 + '@esbuild/win32-arm64': 0.17.12 + '@esbuild/win32-ia32': 0.17.12 + '@esbuild/win32-x64': 0.17.12 + dev: true + + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + /escape-html/1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp/2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true + + /escape-string-regexp/4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /eslint-config-prettier/8.5.0_eslint@8.29.0: + resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.29.0 + dev: true + + /eslint-plugin-prettier/4.2.1_nrhoyyjffvfyk4vtlt5destxgm: + resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: '>=7.28.0' + eslint-config-prettier: '*' + prettier: '>=2.0.0' + peerDependenciesMeta: + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.29.0 + eslint-config-prettier: 8.5.0_eslint@8.29.0 + prettier: 2.8.0 + prettier-linter-helpers: 1.0.0 + dev: true + + /eslint-scope/5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + /eslint-scope/7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-utils/3.0.0_eslint@8.29.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.29.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys/2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true + + /eslint-visitor-keys/3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint/8.29.0: + resolution: {integrity: sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': 1.3.3 + '@humanwhocodes/config-array': 0.11.7 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0_eslint@8.29.0 + eslint-visitor-keys: 3.3.0 + espree: 9.4.1 + esquery: 1.4.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.18.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.1 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.2.0 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + regexpp: 3.2.0 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree/9.4.1: + resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.1 + acorn-jsx: 5.3.2_acorn@8.8.1 + eslint-visitor-keys: 3.3.0 + dev: true + + /esprima/4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /esquery/1.4.0: + resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse/4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + + /estraverse/4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + /estraverse/5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + /estree-walker/2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + + /esutils/2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /etag/1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + /event-target-shim/5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + dev: false + + /events/3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + /execa/4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa/5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /exit/0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + dev: true + + /expect/28.1.3: + resolution: {integrity: sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/expect-utils': 28.1.3 + jest-get-type: 28.0.2 + jest-matcher-utils: 28.1.3 + jest-message-util: 28.1.3 + jest-util: 28.1.3 + dev: true + + /express/4.18.2: + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + engines: {node: '>= 0.10.0'} + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.1 + content-disposition: 0.5.4 + content-type: 1.0.4 + cookie: 0.5.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.11.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + /external-editor/3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /fast-decode-uri-component/1.0.1: + resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} + dev: false + + /fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + /fast-diff/1.2.0: + resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} + dev: true + + /fast-glob/3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + /fast-json-stringify/5.5.0: + resolution: {integrity: sha512-rmw2Z8/mLkND8zI+3KTYIkNPEoF5v6GqDP/o+g7H3vjdWjBwuKpgAYFHIzL6ORRB+iqDjjtJnLIW9Mzxn5szOA==} + dependencies: + '@fastify/deepmerge': 1.3.0 + ajv: 8.11.0 + ajv-formats: 2.1.1 + fast-deep-equal: 3.1.3 + fast-uri: 2.2.0 + rfdc: 1.3.0 + dev: false + + /fast-levenshtein/2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fast-querystring/1.0.0: + resolution: {integrity: sha512-3LQi62IhQoDlmt4ULCYmh17vRO2EtS7hTSsG4WwoKWgV7GLMKBOecEh+aiavASnLx8I2y89OD33AGLo0ccRhzA==} + dependencies: + fast-decode-uri-component: 1.0.1 + dev: false + + /fast-redact/3.1.2: + resolution: {integrity: sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==} + engines: {node: '>=6'} + dev: false + + /fast-safe-stringify/2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + + /fast-text-encoding/1.0.6: + resolution: {integrity: sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==} + dev: false + + /fast-uri/2.2.0: + resolution: {integrity: sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg==} + dev: false + + /fastify-plugin/3.0.1: + resolution: {integrity: sha512-qKcDXmuZadJqdTm6vlCqioEbyewF60b/0LOFCcYN1B6BIZGlYJumWWOYs70SFYLDAH4YqdE1cxH/RKMG7rFxgA==} + dev: false + + /fastify-plugin/4.4.0: + resolution: {integrity: sha512-ovwFQG2qNy3jcCROiWpr94Hs0le+c7N/3t7m9aVwbFhkxcR/esp2xu25dP8e617HpQdmeDv+gFX4zagdUhDByw==} + dev: false + + /fastify/4.10.2: + resolution: {integrity: sha512-0T+4zI6N3S8ex0LCZi3H4FasJR4AzWw834fUkPWvV8r6GBJkLmAOfFxH8f5V29Plef24IK0QSQD/tz1Nx+1UOA==} + dependencies: + '@fastify/ajv-compiler': 3.4.0 + '@fastify/error': 3.2.0 + '@fastify/fast-json-stringify-compiler': 4.1.0 + abstract-logging: 2.0.1 + avvio: 8.2.0 + content-type: 1.0.4 + find-my-way: 7.3.1 + light-my-request: 5.6.1 + pino: 8.7.0 + process-warning: 2.1.0 + proxy-addr: 2.0.7 + rfdc: 1.3.0 + secure-json-parse: 2.6.0 + semver: 7.3.8 + tiny-lru: 10.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /fastq/1.14.0: + resolution: {integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==} + dependencies: + reusify: 1.0.4 + + /fb-watchman/2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + dependencies: + bser: 2.1.1 + dev: true + + /figures/3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /file-entry-cache/6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + dev: true + + /filelist/1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + dependencies: + minimatch: 5.1.1 + dev: true + + /fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /finalhandler/1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + /find-my-way/7.3.1: + resolution: {integrity: sha512-kGvM08SOkqvheLcuQ8GW9t/H901Qb9rZEbcNWbXopzy4jDRoaJpJoObPSKf4MnQLZ20ZTp7rL5MpF6rf+pqmyg==} + engines: {node: '>=14'} + dependencies: + fast-deep-equal: 3.1.3 + fast-querystring: 1.0.0 + safe-regex2: 2.0.0 + dev: false + + /find-up/4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up/5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /flat-cache/3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.7 + rimraf: 3.0.2 + dev: true + + /flatted/3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + dev: true + + /fork-ts-checker-webpack-plugin/7.2.13_qqxisngxjbp7lstdk7boexbu3e: + resolution: {integrity: sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==} + engines: {node: '>=12.13.0', yarn: '>=1.0.0'} + peerDependencies: + typescript: '>3.6.0' + vue-template-compiler: '*' + webpack: ^5.11.0 + peerDependenciesMeta: + vue-template-compiler: + optional: true + dependencies: + '@babel/code-frame': 7.18.6 + chalk: 4.1.2 + chokidar: 3.5.3 + cosmiconfig: 7.1.0 + deepmerge: 4.2.2 + fs-extra: 10.1.0 + memfs: 3.4.12 + minimatch: 3.1.2 + node-abort-controller: 3.0.1 + schema-utils: 3.1.1 + semver: 7.3.8 + tapable: 2.2.1 + typescript: 4.8.4 + webpack: 5.74.0 + dev: true + + /form-data/4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /formidable/2.1.1: + resolution: {integrity: sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ==} + dependencies: + dezalgo: 1.0.4 + hexoid: 1.0.0 + once: 1.4.0 + qs: 6.11.0 + dev: true + + /forwarded/0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + /fresh/0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + /fs-extra/10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.10 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-monkey/1.0.3: + resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} + dev: true + + /fs.realpath/1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + /fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + + /gensync/1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-caller-file/2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + /get-intrinsic/1.1.3: + resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + + /get-package-type/0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + dev: true + + /get-stream/5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: true + + /get-stream/6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent/6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-to-regexp/0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + /glob/7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + /glob/8.0.3: + resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.1 + once: 1.4.0 + dev: false + + /globals/11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals/13.18.0: + resolution: {integrity: sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globby/11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.1 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /graceful-fs/4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + + /grapheme-splitter/1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + + /has-flag/3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + /has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + + /he/1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + + /hexoid/1.0.0: + resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} + engines: {node: '>=8'} + dev: true + + /highlight.js/10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + dev: false + + /html-escaper/2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + + /html-minifier-terser/6.1.0: + resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} + engines: {node: '>=12'} + hasBin: true + dependencies: + camel-case: 4.1.2 + clean-css: 5.3.2 + commander: 8.3.0 + he: 1.2.0 + param-case: 3.0.4 + relateurl: 0.2.7 + terser: 5.16.1 + dev: true + + /http-errors/2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + /human-signals/1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + dev: true + + /human-signals/2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /iconv-lite/0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + + /ieee754/1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + /ignore/5.2.1: + resolution: {integrity: sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==} + engines: {node: '>= 4'} + dev: true + + /import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /import-local/3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + dev: true + + /imurmurhash/0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /inflight/1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + /inquirer/7.3.3: + resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} + engines: {node: '>=8.0.0'} + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + run-async: 2.4.1 + rxjs: 6.6.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + dev: true + + /inquirer/8.2.4: + resolution: {integrity: sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==} + engines: {node: '>=12.0.0'} + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.5.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /interpret/1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + dev: true + + /invariant/2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /ipaddr.js/1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + /is-arrayish/0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + + /is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-core-module/2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + dependencies: + has: 1.0.3 + dev: true + + /is-extglob/2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + /is-generator-fn/2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + dev: true + + /is-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-interactive/1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + dev: true + + /is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-path-inside/3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-stream/2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-unicode-supported/0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + + /isarray/1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + /isexe/2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /istanbul-lib-coverage/3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-instrument/5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.20.5 + '@babel/parser': 7.20.5 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-report/3.0.0: + resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} + engines: {node: '>=8'} + dependencies: + istanbul-lib-coverage: 3.2.0 + make-dir: 3.1.0 + supports-color: 7.2.0 + dev: true + + /istanbul-lib-source-maps/4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + dependencies: + debug: 4.3.4 + istanbul-lib-coverage: 3.2.0 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-reports/3.1.5: + resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.0 + dev: true + + /iterare/1.2.1: + resolution: {integrity: sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==} + engines: {node: '>=6'} + + /jake/10.8.5: + resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + async: 3.2.4 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + dev: true + + /jest-changed-files/28.1.3: + resolution: {integrity: sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + execa: 5.1.1 + p-limit: 3.1.0 + dev: true + + /jest-circus/28.1.3: + resolution: {integrity: sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/environment': 28.1.3 + '@jest/expect': 28.1.3 + '@jest/test-result': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 16.18.4 + chalk: 4.1.2 + co: 4.6.0 + dedent: 0.7.0 + is-generator-fn: 2.1.0 + jest-each: 28.1.3 + jest-matcher-utils: 28.1.3 + jest-message-util: 28.1.3 + jest-runtime: 28.1.3 + jest-snapshot: 28.1.3 + jest-util: 28.1.3 + p-limit: 3.1.0 + pretty-format: 28.1.3 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-cli/28.1.3_p2pvtibqqduefcbmb3gxha6ifa: + resolution: {integrity: sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 28.1.3_ts-node@10.7.0 + '@jest/test-result': 28.1.3 + '@jest/types': 28.1.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.10 + import-local: 3.1.0 + jest-config: 28.1.3_p2pvtibqqduefcbmb3gxha6ifa + jest-util: 28.1.3 + jest-validate: 28.1.3 + prompts: 2.4.2 + yargs: 17.6.2 + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node + dev: true + + /jest-config/28.1.3_p2pvtibqqduefcbmb3gxha6ifa: + resolution: {integrity: sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.20.5 + '@jest/test-sequencer': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 16.18.4 + babel-jest: 28.1.3_@babel+core@7.20.5 + chalk: 4.1.2 + ci-info: 3.7.0 + deepmerge: 4.2.2 + glob: 7.2.3 + graceful-fs: 4.2.10 + jest-circus: 28.1.3 + jest-environment-node: 28.1.3 + jest-get-type: 28.0.2 + jest-regex-util: 28.0.2 + jest-resolve: 28.1.3 + jest-runner: 28.1.3 + jest-util: 28.1.3 + jest-validate: 28.1.3 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 28.1.3 + slash: 3.0.0 + strip-json-comments: 3.1.1 + ts-node: 10.7.0_7lgrp6ny656ifyohyk3emjmisu + transitivePeerDependencies: + - supports-color + dev: true + + /jest-diff/28.1.3: + resolution: {integrity: sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 28.1.1 + jest-get-type: 28.0.2 + pretty-format: 28.1.3 + dev: true + + /jest-docblock/28.1.1: + resolution: {integrity: sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + detect-newline: 3.1.0 + dev: true + + /jest-each/28.1.3: + resolution: {integrity: sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + chalk: 4.1.2 + jest-get-type: 28.0.2 + jest-util: 28.1.3 + pretty-format: 28.1.3 + dev: true + + /jest-environment-node/28.1.3: + resolution: {integrity: sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/environment': 28.1.3 + '@jest/fake-timers': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 16.18.4 + jest-mock: 28.1.3 + jest-util: 28.1.3 + dev: true + + /jest-get-type/28.0.2: + resolution: {integrity: sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dev: true + + /jest-haste-map/28.1.3: + resolution: {integrity: sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + '@types/graceful-fs': 4.1.5 + '@types/node': 16.18.4 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.10 + jest-regex-util: 28.0.2 + jest-util: 28.1.3 + jest-worker: 28.1.3 + micromatch: 4.0.5 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /jest-leak-detector/28.1.3: + resolution: {integrity: sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + jest-get-type: 28.0.2 + pretty-format: 28.1.3 + dev: true + + /jest-matcher-utils/28.1.3: + resolution: {integrity: sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 28.1.3 + jest-get-type: 28.0.2 + pretty-format: 28.1.3 + dev: true + + /jest-message-util/28.1.3: + resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@babel/code-frame': 7.18.6 + '@jest/types': 28.1.3 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.10 + micromatch: 4.0.5 + pretty-format: 28.1.3 + slash: 3.0.0 + stack-utils: 2.0.6 + dev: true + + /jest-mock/28.1.3: + resolution: {integrity: sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + '@types/node': 16.18.4 + dev: true + + /jest-pnp-resolver/1.2.3_jest-resolve@28.1.3: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 28.1.3 + dev: true + + /jest-regex-util/28.0.2: + resolution: {integrity: sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dev: true + + /jest-resolve-dependencies/28.1.3: + resolution: {integrity: sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + jest-regex-util: 28.0.2 + jest-snapshot: 28.1.3 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-resolve/28.1.3: + resolution: {integrity: sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.10 + jest-haste-map: 28.1.3 + jest-pnp-resolver: 1.2.3_jest-resolve@28.1.3 + jest-util: 28.1.3 + jest-validate: 28.1.3 + resolve: 1.22.1 + resolve.exports: 1.1.0 + slash: 3.0.0 + dev: true + + /jest-runner/28.1.3: + resolution: {integrity: sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/console': 28.1.3 + '@jest/environment': 28.1.3 + '@jest/test-result': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 16.18.4 + chalk: 4.1.2 + emittery: 0.10.2 + graceful-fs: 4.2.10 + jest-docblock: 28.1.1 + jest-environment-node: 28.1.3 + jest-haste-map: 28.1.3 + jest-leak-detector: 28.1.3 + jest-message-util: 28.1.3 + jest-resolve: 28.1.3 + jest-runtime: 28.1.3 + jest-util: 28.1.3 + jest-watcher: 28.1.3 + jest-worker: 28.1.3 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-runtime/28.1.3: + resolution: {integrity: sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/environment': 28.1.3 + '@jest/fake-timers': 28.1.3 + '@jest/globals': 28.1.3 + '@jest/source-map': 28.1.2 + '@jest/test-result': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + chalk: 4.1.2 + cjs-module-lexer: 1.2.2 + collect-v8-coverage: 1.0.1 + execa: 5.1.1 + glob: 7.2.3 + graceful-fs: 4.2.10 + jest-haste-map: 28.1.3 + jest-message-util: 28.1.3 + jest-mock: 28.1.3 + jest-regex-util: 28.0.2 + jest-resolve: 28.1.3 + jest-snapshot: 28.1.3 + jest-util: 28.1.3 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-snapshot/28.1.3: + resolution: {integrity: sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@babel/core': 7.20.5 + '@babel/generator': 7.20.5 + '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.5 + '@babel/traverse': 7.20.5 + '@babel/types': 7.20.5 + '@jest/expect-utils': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + '@types/babel__traverse': 7.18.3 + '@types/prettier': 2.7.1 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.5 + chalk: 4.1.2 + expect: 28.1.3 + graceful-fs: 4.2.10 + jest-diff: 28.1.3 + jest-get-type: 28.0.2 + jest-haste-map: 28.1.3 + jest-matcher-utils: 28.1.3 + jest-message-util: 28.1.3 + jest-util: 28.1.3 + natural-compare: 1.4.0 + pretty-format: 28.1.3 + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-util/28.1.3: + resolution: {integrity: sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + '@types/node': 16.18.4 + chalk: 4.1.2 + ci-info: 3.7.0 + graceful-fs: 4.2.10 + picomatch: 2.3.1 + dev: true + + /jest-validate/28.1.3: + resolution: {integrity: sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 28.0.2 + leven: 3.1.0 + pretty-format: 28.1.3 + dev: true + + /jest-watcher/28.1.3: + resolution: {integrity: sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/test-result': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 16.18.4 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.10.2 + jest-util: 28.1.3 + string-length: 4.0.2 + dev: true + + /jest-worker/27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 16.18.4 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + /jest-worker/28.1.3: + resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@types/node': 16.18.4 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /jest/28.1.3_p2pvtibqqduefcbmb3gxha6ifa: + resolution: {integrity: sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 28.1.3_ts-node@10.7.0 + '@jest/types': 28.1.3 + import-local: 3.1.0 + jest-cli: 28.1.3_p2pvtibqqduefcbmb3gxha6ifa + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node + dev: true + + /joi/17.7.0: + resolution: {integrity: sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==} + dependencies: + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + '@sideway/address': 4.1.4 + '@sideway/formula': 3.0.0 + '@sideway/pinpoint': 2.0.0 + dev: false + + /jose/4.11.1: + resolution: {integrity: sha512-YRv4Tk/Wlug8qicwqFNFVEZSdbROCHRAC6qu/i0dyNKr5JQdoa2pIGoS04lLO/jXQX7Z9omoNewYIVIxqZBd9Q==} + dev: false + + /js-sdsl/4.2.0: + resolution: {integrity: sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==} + dev: true + + /js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml/3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + + /jsesc/2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + /json-schema-traverse/0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + /json-schema-traverse/1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + /json-stable-stringify-without-jsonify/1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json5/2.2.1: + resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /json5/2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonc-parser/3.1.0: + resolution: {integrity: sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==} + dev: true + + /jsonc-parser/3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + + /jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.10 + dev: true + + /jsonwebtoken/8.5.1: + resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} + engines: {node: '>=4', npm: '>=1.4.28'} + dependencies: + jws: 3.2.2 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 + ms: 2.1.3 + semver: 5.7.1 + dev: false + + /jwa/1.4.1: + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + dev: false + + /jwks-rsa/3.0.0: + resolution: {integrity: sha512-x9qNrP/kD6tOfrLzBVC5HaneBTR+fCEGIjwk/xSdl+KA7Tzf+R3oiY9ibrONKVLF9fR0V03enkitYPZkO65fAQ==} + engines: {node: '>=14'} + dependencies: + '@types/express': 4.17.14 + '@types/jsonwebtoken': 8.5.9 + debug: 4.3.4 + jose: 4.11.1 + limiter: 1.1.5 + lru-memoizer: 2.1.4 + transitivePeerDependencies: + - supports-color + dev: false + + /jws/3.2.2: + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + dependencies: + jwa: 1.4.1 + safe-buffer: 5.2.1 + dev: false + + /kleur/3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + dev: true + + /leven/3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true + + /levn/0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /light-my-request/5.6.1: + resolution: {integrity: sha512-sbJnC1UBRivi9L1kICr3CESb82pNiPNB3TvtdIrZZqW0Qh8uDXvoywMmWKZlihDcmw952CMICCzM+54LDf+E+g==} + dependencies: + cookie: 0.5.0 + process-warning: 2.1.0 + set-cookie-parser: 2.5.1 + dev: false + + /limiter/1.1.5: + resolution: {integrity: sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==} + dev: false + + /lines-and-columns/1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /loader-runner/4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + /locate-path/5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path/6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.clonedeep/4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + dev: false + + /lodash.includes/4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + dev: false + + /lodash.isboolean/3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + dev: false + + /lodash.isinteger/4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + dev: false + + /lodash.isnumber/3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + dev: false + + /lodash.isplainobject/4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: false + + /lodash.isstring/4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + dev: false + + /lodash.memoize/4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: true + + /lodash.merge/4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.once/4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + dev: false + + /lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + /log-symbols/4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /loose-envify/1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: false + + /lower-case/2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.4.1 + dev: true + + /lru-cache/4.0.2: + resolution: {integrity: sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: false + + /lru-cache/5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + + /lru-memoizer/2.1.4: + resolution: {integrity: sha512-IXAq50s4qwrOBrXJklY+KhgZF+5y98PDaNo0gi/v2KQBFLyWr+JyFvijZXkGKjQj/h9c0OwoE+JZbwUXce76hQ==} + dependencies: + lodash.clonedeep: 4.5.0 + lru-cache: 4.0.2 + dev: false + + /macos-release/2.5.0: + resolution: {integrity: sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g==} + engines: {node: '>=6'} + dev: true + + /magic-string/0.26.2: + resolution: {integrity: sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==} + engines: {node: '>=12'} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + /magic-string/0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /make-dir/3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + dev: true + + /make-error/1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + /makeerror/1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + dependencies: + tmpl: 1.0.5 + dev: true + + /media-typer/0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + /memfs/3.4.12: + resolution: {integrity: sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==} + engines: {node: '>= 4.0.0'} + dependencies: + fs-monkey: 1.0.3 + dev: true + + /merge-descriptors/1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + + /merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /methods/1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db/1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + /mime-types/2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + + /mime/1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + /mime/2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + dev: true + + /mimic-fn/2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + + /minimatch/5.1.1: + resolution: {integrity: sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + + /minimist/1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + + /mkdirp/0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.7 + + /mkdirp/1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: false + + /mnemonist/0.39.5: + resolution: {integrity: sha512-FPUtkhtJ0efmEFGpU14x7jGbTB+s18LrzRL2KgoWz9YvcY3cPomz8tih01GbHwnGk/OmkOKfqd/RAQoc8Lm7DQ==} + dependencies: + obliterator: 2.0.4 + dev: false + + /moment-timezone/0.5.41: + resolution: {integrity: sha512-e0jGNZDOHfBXJGz8vR/sIMXvBIGJJcqFjmlg9lmE+5KX1U7/RZNMswfD8nKnNCnQdKTIj50IaRKwl1fvMLyyRg==} + dependencies: + moment: 2.29.4 + dev: false + + /moment/2.29.4: + resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} + dev: false + + /ms/2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + /ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms/2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + /multer/1.4.4-lts.1: + resolution: {integrity: sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==} + engines: {node: '>= 6.0.0'} + dependencies: + append-field: 1.0.0 + busboy: 1.6.0 + concat-stream: 1.6.2 + mkdirp: 0.5.6 + object-assign: 4.1.1 + type-is: 1.6.18 + xtend: 4.0.2 + + /mute-stream/0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + dev: true + + /mz/2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: false + + /nanoid/3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /natural-compare-lite/1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + + /natural-compare/1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /negotiator/0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + /neo-async/2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + /no-case/3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + dependencies: + lower-case: 2.0.2 + tslib: 2.4.1 + dev: true + + /node-abort-controller/3.0.1: + resolution: {integrity: sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==} + dev: true + + /node-emoji/1.11.0: + resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} + dependencies: + lodash: 4.17.21 + dev: true + + /node-fetch/2.6.7: + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + + /node-html-parser/5.4.2: + resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==} + dependencies: + css-select: 4.3.0 + he: 1.2.0 + dev: true + + /node-int64/0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + dev: true + + /node-releases/2.0.10: + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} + dev: true + + /node-releases/2.0.6: + resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} + + /normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /npm-run-path/4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /nth-check/2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: true + + /object-assign/4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + /object-hash/3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + /object-inspect/1.12.2: + resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} + + /obliterator/2.0.4: + resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} + dev: false + + /on-exit-leak-free/2.1.0: + resolution: {integrity: sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==} + dev: false + + /on-finished/2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + + /once/1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + + /onetime/5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /optionator/0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /ora/5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.7.0 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /os-name/4.0.1: + resolution: {integrity: sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==} + engines: {node: '>=10'} + dependencies: + macos-release: 2.5.0 + windows-release: 4.0.0 + dev: true + + /os-tmpdir/1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: true + + /p-limit/2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + + /p-locate/4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate/5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-try/2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /packet-reader/1.0.0: + resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} + dev: false + + /param-case/3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + dependencies: + dot-case: 3.0.4 + tslib: 2.4.1 + dev: true + + /parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-json/5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.18.6 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parse5-htmlparser2-tree-adapter/6.0.1: + resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + dependencies: + parse5: 6.0.1 + dev: false + + /parse5/5.1.1: + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + dev: false + + /parse5/6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + dev: false + + /parseurl/1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + /pascal-case/3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + dependencies: + no-case: 3.0.4 + tslib: 2.4.1 + dev: true + + /passport-jwt/4.0.0: + resolution: {integrity: sha512-BwC0n2GP/1hMVjR4QpnvqA61TxenUMlmfNjYNgK0ZAs0HK4SOQkHcSv4L328blNTLtHq7DbmvyNJiH+bn6C5Mg==} + dependencies: + jsonwebtoken: 8.5.1 + passport-strategy: 1.0.0 + dev: false + + /passport-strategy/1.0.0: + resolution: {integrity: sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==} + engines: {node: '>= 0.4.0'} + dev: false + + /passport/0.6.0: + resolution: {integrity: sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==} + engines: {node: '>= 0.4.0'} + dependencies: + passport-strategy: 1.0.0 + pause: 0.0.1 + utils-merge: 1.0.1 + dev: false + + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute/1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + /path-key/3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-to-regexp/0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + + /path-to-regexp/3.2.0: + resolution: {integrity: sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==} + + /path-to-regexp/6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + dev: false + + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /pathe/0.2.0: + resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} + dev: true + + /pause/0.0.1: + resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==} + dev: false + + /pg-connection-string/2.5.0: + resolution: {integrity: sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==} + dev: false + + /pg-int8/1.0.1: + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} + engines: {node: '>=4.0.0'} + dev: false + + /pg-pool/3.5.2_pg@8.8.0: + resolution: {integrity: sha512-His3Fh17Z4eg7oANLob6ZvH8xIVen3phEZh2QuyrIl4dQSDVEabNducv6ysROKpDNPSD+12tONZVWfSgMvDD9w==} + peerDependencies: + pg: '>=8.0' + dependencies: + pg: 8.8.0 + dev: false + + /pg-protocol/1.5.0: + resolution: {integrity: sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==} + dev: false + + /pg-types/2.2.0: + resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} + engines: {node: '>=4'} + dependencies: + pg-int8: 1.0.1 + postgres-array: 2.0.0 + postgres-bytea: 1.0.0 + postgres-date: 1.0.7 + postgres-interval: 1.2.0 + dev: false + + /pg/8.8.0: + resolution: {integrity: sha512-UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw==} + engines: {node: '>= 8.0.0'} + peerDependencies: + pg-native: '>=3.0.1' + peerDependenciesMeta: + pg-native: + optional: true + dependencies: + buffer-writer: 2.0.0 + packet-reader: 1.0.0 + pg-connection-string: 2.5.0 + pg-pool: 3.5.2_pg@8.8.0 + pg-protocol: 1.5.0 + pg-types: 2.2.0 + pgpass: 1.0.5 + dev: false + + /pgpass/1.0.5: + resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} + dependencies: + split2: 4.1.0 + dev: false + + /picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pino-abstract-transport/1.0.0: + resolution: {integrity: sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==} + dependencies: + readable-stream: 4.2.0 + split2: 4.1.0 + dev: false + + /pino-std-serializers/6.0.0: + resolution: {integrity: sha512-mMMOwSKrmyl+Y12Ri2xhH1lbzQxwwpuru9VjyJpgFIH4asSj88F2csdMwN6+M5g1Ll4rmsYghHLQJw81tgZ7LQ==} + dev: false + + /pino/8.7.0: + resolution: {integrity: sha512-l9sA5uPxmZzwydhMWUcm1gI0YxNnYl8MfSr2h8cwLvOAzQLBLewzF247h/vqHe3/tt6fgtXeG9wdjjoetdI/vA==} + hasBin: true + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.1.2 + on-exit-leak-free: 2.1.0 + pino-abstract-transport: 1.0.0 + pino-std-serializers: 6.0.0 + process-warning: 2.1.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.4.1 + sonic-boom: 3.2.1 + thread-stream: 2.2.0 + dev: false + + /pirates/4.0.5: + resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} + engines: {node: '>= 6'} + dev: true + + /pkg-dir/4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + dev: true + + /pluralize/8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: true + + /postcss/8.4.21: + resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /postgres-array/2.0.0: + resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} + engines: {node: '>=4'} + dev: false + + /postgres-bytea/1.0.0: + resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} + engines: {node: '>=0.10.0'} + dev: false + + /postgres-date/1.0.7: + resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} + engines: {node: '>=0.10.0'} + dev: false + + /postgres-interval/1.2.0: + resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} + engines: {node: '>=0.10.0'} + dependencies: + xtend: 4.0.2 + dev: false + + /prelude-ls/1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prettier-linter-helpers/1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.2.0 + dev: true + + /prettier/2.8.0: + resolution: {integrity: sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + + /pretty-format/28.1.3: + resolution: {integrity: sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/schemas': 28.1.3 + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + + /process-nextick-args/2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + /process-warning/2.1.0: + resolution: {integrity: sha512-9C20RLxrZU/rFnxWncDkuF6O999NdIf3E1ws4B0ZeY3sRVPzWBMsYDE2lxjxhiXxg464cQTgKUGm8/i6y2YGXg==} + dev: false + + /process/0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + dev: false + + /promise-polyfill/8.2.3: + resolution: {integrity: sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg==} + dev: false + + /prompts/2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + dev: true + + /prop-types-extra/1.1.1_react@18.2.0: + resolution: {integrity: sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==} + peerDependencies: + react: '>=0.14.0' + dependencies: + react: 18.2.0 + react-is: 16.13.1 + warning: 4.0.3 + dev: false + + /prop-types/15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + + /proxy-addr/2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + /pseudomap/1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + dev: false + + /pump/3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /punycode/2.1.1: + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + engines: {node: '>=6'} + + /qs/6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /quick-format-unescaped/4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + dev: false + + /randombytes/2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + + /range-parser/1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + /raw-body/2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + /react-bootstrap/2.7.2_zula6vjvt3wdocc4mwcxqa6nzi: + resolution: {integrity: sha512-WDSln+mG4RLLFO01stkj2bEx/3MF4YihK9D/dWnHaSxOiQZLbhhlf95D2Jb20X3t2m7vMxRe888FVrfLJoGmmA==} + peerDependencies: + '@types/react': '>=16.14.8' + react: '>=16.14.0' + react-dom: '>=16.14.0' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.21.0 + '@restart/hooks': 0.4.9_react@18.2.0 + '@restart/ui': 1.6.2_biqbaboplfbrettd7655fr4n2y + '@types/react': 18.0.28 + '@types/react-transition-group': 4.4.5 + classnames: 2.3.2 + dom-helpers: 5.2.1 + invariant: 2.2.4 + prop-types: 15.8.1 + prop-types-extra: 1.1.1_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-transition-group: 4.4.5_biqbaboplfbrettd7655fr4n2y + uncontrollable: 7.2.1_react@18.2.0 + warning: 4.0.3 + dev: false + + /react-dom/18.2.0_react@18.2.0: + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: false + + /react-is/16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: false + + /react-is/18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true + + /react-lifecycles-compat/3.0.4: + resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} + dev: false + + /react-moment/1.1.3_mmavuqf6ek6upnyryxchoaliru: + resolution: {integrity: sha512-8EPvlUL8u6EknPp1ISF5MQ3wx2OHJVXIP/iZc4wRh3iV3XozftZERDv9ANZeAtMlhNNQHdFoqcZHFUkBSTONfA==} + peerDependencies: + moment: ^2.29.0 + prop-types: ^15.7.0 + react: ^16.0 || ^17.0.0 || ^18.0.0 + dependencies: + moment: 2.29.4 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /react-refresh/0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + dev: true + + /react-router-dom/6.9.0_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-/seUAPY01VAuwkGyVBPCn1OXfVbaWGGu4QN9uj0kCPcTyNYgL1ldZpxZUpRU7BLheKQI4Twtl/OW2nHRF1u26Q==} + engines: {node: '>=14'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': 1.4.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-router: 6.9.0_react@18.2.0 + dev: false + + /react-router/6.9.0_react@18.2.0: + resolution: {integrity: sha512-51lKevGNUHrt6kLuX3e/ihrXoXCa9ixY/nVWRLlob4r/l0f45x3SzBvYJe3ctleLUQQ5fVa4RGgJOTH7D9Umhw==} + engines: {node: '>=14'} + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': 1.4.0 + react: 18.2.0 + dev: false + + /react-transition-group/4.4.5_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + dependencies: + '@babel/runtime': 7.21.0 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /react/18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + dev: false + + /readable-stream/2.3.7: + resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + /readable-stream/3.6.0: + resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readable-stream/4.2.0: + resolution: {integrity: sha512-gJrBHsaI3lgBoGMW/jHZsQ/o/TIWiu5ENCJG1BB7fuCKzpFM8GaS2UoBVt9NO+oI+3FcrBNbUkl3ilDe09aY4A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + dev: false + + /readdirp/3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /real-require/0.2.0: + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} + engines: {node: '>= 12.13.0'} + dev: false + + /rechoir/0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} + dependencies: + resolve: 1.22.1 + dev: true + + /reflect-metadata/0.1.13: + resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==} + + /regenerator-runtime/0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + dev: false + + /regexpp/3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true + + /relateurl/0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} + dev: true + + /require-directory/2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + /require-from-string/2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + /resolve-cwd/3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve-from/5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve.exports/1.1.0: + resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} + engines: {node: '>=10'} + dev: true + + /resolve/1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + hasBin: true + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /restore-cursor/3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /ret/0.2.2: + resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==} + engines: {node: '>=4'} + dev: false + + /reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + /rfdc/1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: false + + /rimraf/3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + + /rollup/3.20.0: + resolution: {integrity: sha512-YsIfrk80NqUDrxrjWPXUa7PWvAfegZEXHuPsEZg58fGCdjL1I9C1i/NaG+L+27kxxwkrG/QEDEQc8s/ynXWWGQ==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /run-async/2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + dev: true + + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rxjs/6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + dependencies: + tslib: 1.14.1 + dev: true + + /rxjs/7.5.7: + resolution: {integrity: sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==} + dependencies: + tslib: 2.4.1 + + /safe-buffer/5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + /safe-buffer/5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + /safe-regex2/2.0.0: + resolution: {integrity: sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==} + dependencies: + ret: 0.2.2 + dev: false + + /safe-stable-stringify/2.4.1: + resolution: {integrity: sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA==} + engines: {node: '>=10'} + dev: false + + /safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + /sax/1.2.4: + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + dev: false + + /scheduler/0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /schema-utils/3.1.1: + resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': 7.0.11 + ajv: 6.12.6 + ajv-keywords: 3.5.2_ajv@6.12.6 + + /secure-json-parse/2.6.0: + resolution: {integrity: sha512-B9osKohb6L+EZ6Kve3wHKfsAClzOC/iISA2vSuCe5Jx5NAKiwitfxx8ZKYapHXr0sYRj7UZInT7pLb3rp2Yx6A==} + dev: false + + /semver/5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + dev: false + + /semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: true + + /semver/7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + + /send/0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + /serialize-javascript/6.0.0: + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + dependencies: + randombytes: 2.1.0 + + /serve-static/1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + + /set-cookie-parser/2.5.1: + resolution: {integrity: sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==} + dev: false + + /setprototypeof/1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + /sha.js/2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: false + + /shebang-command/2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex/3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /shelljs/0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} + hasBin: true + dependencies: + glob: 7.2.3 + interpret: 1.4.0 + rechoir: 0.6.2 + dev: true + + /side-channel/1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.3 + object-inspect: 1.12.2 + + /signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /sisteransi/1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: true + + /slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /sonic-boom/3.2.1: + resolution: {integrity: sha512-iITeTHxy3B9FGu8aVdiDXUVAcHMF9Ss0cCsAOo2HfCrmVGT3/DT5oYaeu0M/YKZDlKTvChEyPq0zI9Hf33EX6A==} + dependencies: + atomic-sleep: 1.0.0 + dev: false + + /source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-support/0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map-support/0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + /source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + /source-map/0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: true + + /sourcemap-codec/1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + dev: true + + /split2/4.1.0: + resolution: {integrity: sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==} + engines: {node: '>= 10.x'} + dev: false + + /sprintf-js/1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true + + /stack-utils/2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 2.0.0 + dev: true + + /statuses/2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + /streamsearch/1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + + /string-length/4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + dev: true + + /string-width/4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + /string_decoder/1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + + /string_decoder/1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /strip-ansi/6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + + /strip-bom/3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-bom/4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true + + /strip-final-newline/2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-json-comments/3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /superagent/8.0.5: + resolution: {integrity: sha512-lQVE0Praz7nHiSaJLKBM/cZyi7J0E4io8tWnGSBdBrqAzhzrjQ/F5iGP9Zr29CJC8N5zYdhG2kKaNcB6dKxp7g==} + engines: {node: '>=6.4.0 <13 || >=14'} + dependencies: + component-emitter: 1.3.0 + cookiejar: 2.1.3 + debug: 4.3.4 + fast-safe-stringify: 2.1.1 + form-data: 4.0.0 + formidable: 2.1.1 + methods: 1.1.2 + mime: 2.6.0 + qs: 6.11.0 + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + dev: true + + /supertest/6.3.2: + resolution: {integrity: sha512-mSmbW/sPpBU6K8w8189ZiHdc62zMe7dCHpC2ktS9tc0/d2DN0FaxNbDJJNFknZD4jCrGJpxkiFoVyemvKgOdwA==} + engines: {node: '>=6.4.0'} + dependencies: + methods: 1.1.2 + superagent: 8.0.5 + transitivePeerDependencies: + - supports-color + dev: true + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + + /supports-color/8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + + /supports-hyperlinks/2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + dev: true + + /supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /swagger-ui-dist/4.15.1: + resolution: {integrity: sha512-DlZARu6ckUFqDe0j5IPayO4k0gQvYQw9Un02MhxAgaMtVnTH2vmyyDe+yKeV0r1LiiPx3JbasdS/5Yyb/AV3iw==} + dev: false + + /symbol-observable/4.0.0: + resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} + engines: {node: '>=0.10'} + dev: true + + /tapable/2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + /terminal-link/2.1.1: + resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} + engines: {node: '>=8'} + dependencies: + ansi-escapes: 4.3.2 + supports-hyperlinks: 2.3.0 + dev: true + + /terser-webpack-plugin/5.3.6_webpack@5.74.0: + resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.17 + jest-worker: 27.5.1 + schema-utils: 3.1.1 + serialize-javascript: 6.0.0 + terser: 5.16.1 + webpack: 5.74.0 + dev: true + + /terser-webpack-plugin/5.3.6_webpack@5.75.0: + resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.17 + jest-worker: 27.5.1 + schema-utils: 3.1.1 + serialize-javascript: 6.0.0 + terser: 5.16.1 + webpack: 5.75.0 + + /terser/5.16.1: + resolution: {integrity: sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.2 + acorn: 8.8.1 + commander: 2.20.3 + source-map-support: 0.5.21 + + /test-exclude/6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + + /text-table/0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /thenify-all/1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: false + + /thenify/3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: false + + /thread-stream/2.2.0: + resolution: {integrity: sha512-rUkv4/fnb4rqy/gGy7VuqK6wE1+1DOCOWy4RMeaV69ZHMP11tQKZvZSip1yTgrKCMZzEMcCL/bKfHvSfDHx+iQ==} + dependencies: + real-require: 0.2.0 + dev: false + + /through/2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /tiny-lru/10.0.1: + resolution: {integrity: sha512-Vst+6kEsWvb17Zpz14sRJV/f8bUWKhqm6Dc+v08iShmIJ/WxqWytHzCTd6m88pS33rE2zpX34TRmOpAJPloNCA==} + engines: {node: '>=6'} + dev: false + + /tmp/0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /tmpl/1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + dev: true + + /to-fast-properties/2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + + /to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /toidentifier/1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + /tr46/0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + /tree-kill/1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: true + + /ts-jest/28.0.8_7juzc6xa7or7ixjucqve24xyoa: + resolution: {integrity: sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^28.0.0 + babel-jest: ^28.0.0 + esbuild: '*' + jest: ^28.0.0 + typescript: '>=4.3' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + dependencies: + bs-logger: 0.2.6 + fast-json-stable-stringify: 2.1.0 + jest: 28.1.3_p2pvtibqqduefcbmb3gxha6ifa + jest-util: 28.1.3 + json5: 2.2.1 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.3.8 + typescript: 4.5.2 + yargs-parser: 21.1.1 + dev: true + + /ts-loader/9.4.2_d63nrm6duq2bmriw5fi744532e: + resolution: {integrity: sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.12.0 + micromatch: 4.0.5 + semver: 7.3.8 + typescript: 4.5.2 + webpack: 5.75.0 + dev: true + + /ts-node/10.7.0_7lgrp6ny656ifyohyk3emjmisu: + resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.7.0 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.3 + '@types/node': 16.18.4 + acorn: 8.8.1 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.5.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + /tsconfig-paths-webpack-plugin/4.0.0: + resolution: {integrity: sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==} + engines: {node: '>=10.13.0'} + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.12.0 + tsconfig-paths: 4.1.0 + dev: true + + /tsconfig-paths/4.1.0: + resolution: {integrity: sha512-AHx4Euop/dXFC+Vx589alFba8QItjF+8hf8LtmuiCwHyI4rHXQtOOENaM8kvYf5fR0dRChy3wzWIZ9WbB7FWow==} + engines: {node: '>=6'} + dependencies: + json5: 2.2.1 + minimist: 1.2.7 + strip-bom: 3.0.0 + dev: true + + /tslib/1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tslib/2.4.1: + resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + + /tsutils/3.21.0_typescript@4.5.2: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.5.2 + dev: true + + /type-check/0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-detect/4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + + /type-fest/0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-is/1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + /typedarray/0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + + /typeorm/0.3.11_pg@8.8.0+ts-node@10.7.0: + resolution: {integrity: sha512-pzdOyWbVuz/z8Ww6gqvBW4nylsM0KLdUCDExr2gR20/x1khGSVxQkjNV/3YqliG90jrWzrknYbYscpk8yxFJVg==} + engines: {node: '>= 12.9.0'} + hasBin: true + peerDependencies: + '@google-cloud/spanner': ^5.18.0 + '@sap/hana-client': ^2.12.25 + better-sqlite3: ^7.1.2 || ^8.0.0 + hdb-pool: ^0.1.6 + ioredis: ^5.0.4 + mongodb: ^3.6.0 + mssql: ^7.3.0 + mysql2: ^2.2.5 + oracledb: ^5.1.0 + pg: ^8.5.1 + pg-native: ^3.0.0 + pg-query-stream: ^4.0.0 + redis: ^3.1.1 || ^4.0.0 + sql.js: ^1.4.0 + sqlite3: ^5.0.3 + ts-node: ^10.7.0 + typeorm-aurora-data-api-driver: ^2.0.0 + peerDependenciesMeta: + '@google-cloud/spanner': + optional: true + '@sap/hana-client': + optional: true + better-sqlite3: + optional: true + hdb-pool: + optional: true + ioredis: + optional: true + mongodb: + optional: true + mssql: + optional: true + mysql2: + optional: true + oracledb: + optional: true + pg: + optional: true + pg-native: + optional: true + pg-query-stream: + optional: true + redis: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + ts-node: + optional: true + typeorm-aurora-data-api-driver: + optional: true + dependencies: + '@sqltools/formatter': 1.2.5 + app-root-path: 3.1.0 + buffer: 6.0.3 + chalk: 4.1.2 + cli-highlight: 2.1.11 + date-fns: 2.29.3 + debug: 4.3.4 + dotenv: 16.0.1 + glob: 7.2.3 + js-yaml: 4.1.0 + mkdirp: 1.0.4 + pg: 8.8.0 + reflect-metadata: 0.1.13 + sha.js: 2.4.11 + ts-node: 10.7.0_7lgrp6ny656ifyohyk3emjmisu + tslib: 2.4.1 + uuid: 8.3.2 + xml2js: 0.4.23 + yargs: 17.6.2 + transitivePeerDependencies: + - supports-color + dev: false + + /typescript/4.5.2: + resolution: {integrity: sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==} + engines: {node: '>=4.2.0'} + hasBin: true + + /typescript/4.8.4: + resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /typescript/4.9.3: + resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /uncontrollable/7.2.1_react@18.2.0: + resolution: {integrity: sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==} + peerDependencies: + react: '>=15.0.0' + dependencies: + '@babel/runtime': 7.21.0 + '@types/react': 18.0.28 + invariant: 2.2.4 + react: 18.2.0 + react-lifecycles-compat: 3.0.4 + dev: false + + /uncontrollable/8.0.0_react@18.2.0: + resolution: {integrity: sha512-a954G/0JyXoZdpt0YIzTfoQyWtRS1VvygOBsHttCtZL8jDTKd6vQlUo811y46XnWoXIqQ36QKi3cSEdPuFADkA==} + peerDependencies: + react: '>=17.0.0' + dependencies: + '@types/react': 18.0.28 + react: 18.2.0 + dev: false + + /unfetch/4.2.0: + resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} + dev: false + + /universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + + /unpipe/1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + /update-browserslist-db/1.0.10_browserslist@4.21.4: + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.4 + escalade: 3.1.1 + picocolors: 1.0.0 + + /update-browserslist-db/1.0.10_browserslist@4.21.5: + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.5 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /uri-js/4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.1.1 + + /util-deprecate/1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + /utils-merge/1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + /uuid/8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: false + + /uuid/9.0.0: + resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} + hasBin: true + + /v8-compile-cache-lib/3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + /v8-to-istanbul/9.0.1: + resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.17 + '@types/istanbul-lib-coverage': 2.0.4 + convert-source-map: 1.9.0 + dev: true + + /vary/1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + /vite-plugin-html/3.2.0_vite@4.2.1: + resolution: {integrity: sha512-2VLCeDiHmV/BqqNn5h2V+4280KRgQzCFN47cst3WiNK848klESPQnzuC3okH5XHtgwHH/6s1Ho/YV6yIO0pgoQ==} + peerDependencies: + vite: '>=2.0.0' + dependencies: + '@rollup/pluginutils': 4.2.1 + colorette: 2.0.19 + connect-history-api-fallback: 1.6.0 + consola: 2.15.3 + dotenv: 16.0.1 + dotenv-expand: 8.0.3 + ejs: 3.1.9 + fast-glob: 3.2.12 + fs-extra: 10.1.0 + html-minifier-terser: 6.1.0 + node-html-parser: 5.4.2 + pathe: 0.2.0 + vite: 4.2.1 + dev: true + + /vite/4.2.1: + resolution: {integrity: sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.17.12 + postcss: 8.4.21 + resolve: 1.22.1 + rollup: 3.20.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /walker/1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + dependencies: + makeerror: 1.0.12 + dev: true + + /warning/4.0.3: + resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /watchpack/2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + + /wcwidth/1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + dev: true + + /web-vitals/2.1.4: + resolution: {integrity: sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==} + dev: false + + /webidl-conversions/3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + /webpack-node-externals/3.0.0: + resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==} + engines: {node: '>=6'} + dev: true + + /webpack-sources/3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + /webpack/5.74.0: + resolution: {integrity: sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.4 + '@types/estree': 0.0.51 + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/wasm-edit': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + acorn: 8.8.1 + acorn-import-assertions: 1.8.0_acorn@8.8.1 + browserslist: 4.21.4 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.12.0 + es-module-lexer: 0.9.3 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.1.1 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.6_webpack@5.74.0 + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + + /webpack/5.75.0: + resolution: {integrity: sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.4 + '@types/estree': 0.0.51 + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/wasm-edit': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + acorn: 8.8.1 + acorn-import-assertions: 1.8.0_acorn@8.8.1 + browserslist: 4.21.4 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.12.0 + es-module-lexer: 0.9.3 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.1.1 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.6_webpack@5.75.0 + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + /whatwg-url/5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + /which/2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /windows-release/4.0.0: + resolution: {integrity: sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==} + engines: {node: '>=10'} + dependencies: + execa: 4.1.0 + dev: true + + /word-wrap/1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + dev: true + + /wrap-ansi/7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + /wrappy/1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /write-file-atomic/4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: true + + /xml2js/0.4.23: + resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} + engines: {node: '>=4.0.0'} + dependencies: + sax: 1.2.4 + xmlbuilder: 11.0.1 + dev: false + + /xmlbuilder/11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + dev: false + + /xtend/4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + /y18n/5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + /yallist/2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + dev: false + + /yallist/3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + /yaml/1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + + /yargs-parser/20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: false + + /yargs-parser/21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + /yargs/16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + dev: false + + /yargs/17.6.2: + resolution: {integrity: sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + /yn/3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..62e8f85 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,4 @@ +packages: + - "api" + - "frontend" + - "shared" \ No newline at end of file diff --git a/shared/package.json b/shared/package.json new file mode 100644 index 0000000..a88eb0d --- /dev/null +++ b/shared/package.json @@ -0,0 +1,18 @@ +{ + "name": "@hkrecruitment/shared", + "private": "true", + "type": "commonjs", + "description": "Shared types and schemas", + "main": "src/index", + "scripts": { + "format": "prettier --write \"src/**/*.ts\"" + }, + "devDependencies": { + "typescript": "^4.9.3", + "prettier": "^2.8.5" + }, + "dependencies": { + "@casl/ability": "^6.3.3", + "joi": "^17.7.0" + } +} diff --git a/shared/src/abilities.ts b/shared/src/abilities.ts new file mode 100644 index 0000000..d07b8ac --- /dev/null +++ b/shared/src/abilities.ts @@ -0,0 +1,54 @@ +import { + AbilityBuilder, + AbilityClass, + createMongoAbility, + PureAbility, + subject, +} from "@casl/ability"; +import { applyAbilitesOnPerson, Person, Role } from "./person"; + +export interface UserAuth { + sub: string; + role: Role; +} + +export enum Action { + Manage = "manage", + Create = "create", + Read = "read", + Update = "update", + Delete = "delete", +} +type SubjectsTypes = Partial; +type SubjectNames = "Person"; +export type Subjects = SubjectsTypes | SubjectNames; + +export type AppAbility = PureAbility<[Action, Subjects]>; +export const AppAbility = PureAbility as AbilityClass; + +export type ApplyAbilities = ( + user: UserAuth, + { can, cannot }: AbilityBuilder +) => void; + +export const abilityForUser = (user: UserAuth): AppAbility => { + const builder = new AbilityBuilder(createMongoAbility); + + applyAbilitesOnPerson(user, builder); + + const { build } = builder; + return build(); +}; + +export const checkAbility = ( + ability: AppAbility, + Action: Action, + subjectObj: SubjectsTypes, + subjectName: SubjectNames +): boolean => { + const subj = subject(subjectName, subjectObj); + return ( + ability.can(Action, subj) && + Object.keys(subject).every((field) => ability.can(Action, subj, field)) + ); +}; diff --git a/shared/src/index.ts b/shared/src/index.ts new file mode 100644 index 0000000..482f0ff --- /dev/null +++ b/shared/src/index.ts @@ -0,0 +1,2 @@ +export * from "./person"; +export * from "./abilities"; diff --git a/shared/src/person.ts b/shared/src/person.ts new file mode 100644 index 0000000..be65b86 --- /dev/null +++ b/shared/src/person.ts @@ -0,0 +1,83 @@ +import * as Joi from "joi"; +import { Action, ApplyAbilities } from "./abilities"; + +export enum Role { + None = "none", + Applicant = "applicant", + Member = "member", + Clerk = "clerk", + Supervisor = "supervisor", + Admin = "admin", +} + +export interface Person { + oauthId: string; + firstName: string; + lastName: string; + sex: string; + email: string; + phone_no?: string; + telegramId?: string; + role: Role; +} + +export const createUserSchema = Joi.object({ + firstName: Joi.string().required(), + lastName: Joi.string().required(), + sex: Joi.string().required(), + email: Joi.string().required(), + phone_no: Joi.string() + .regex(/^\+?[0-9]{8,15}$/) + .optional(), + telegramId: Joi.string().optional(), + role: Joi.string() + .valid("none", "applicant", "member", "clerk", "supervisor", "admin") + .optional(), +}); + +export const updateUserSchema = Joi.object({ + firstName: Joi.string().optional(), + lastName: Joi.string().optional(), + sex: Joi.string().optional(), + phone_no: Joi.string() + .regex(/^\+?[0-9]{8,15}$/) + .optional(), + telegramId: Joi.string().optional(), + role: Joi.string() + .valid("none", "applicant", "member", "clerk", "supervisor", "admin") + .optional(), +}); + +export const applyAbilitesOnPerson: ApplyAbilities = ( + user, + { can, cannot } +) => { + can(Action.Read, "Person", { oauthId: user.sub }); + can( + Action.Create, + "Person", + [ + "oauthId", + "firstName", + "lastName", + "sex", + "email", + "phone_no", + "telegramId", + ], + { oauthId: user.sub } + ); + // can( + // Action.Update, + // "Person", + // ["firstName", "lastName", "sex", "phone_no", "telegramId"], + // { oauthId: user.sub } + // ); + can(Action.Delete, "Person", { oauthId: user.sub }); + + if (user.role === Role.Admin) { + can(Action.Manage, "Person"); // Admin can do anything on any user + } + + cannot(Action.Update, "Person", ["oauthId"]); // No one can update oauthId +}; diff --git a/shared/tsconfig.json b/shared/tsconfig.json new file mode 100644 index 0000000..1d29421 --- /dev/null +++ b/shared/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "declaration": true, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": "es2017", + "sourceMap": true, + "outDir": "./dist", + "baseUrl": "./src", + "rootDir": "./src", + "incremental": true, + "skipLibCheck": true, + "strictNullChecks": false, + "noImplicitAny": false, + "strictBindCallApply": false, + "forceConsistentCasingInFileNames": false, + "noFallthroughCasesInSwitch": false + }, + "exclude": ["./dist"] +} \ No newline at end of file