From 7cb3b63fabc89dae2966c95b2e2b81cfa3762130 Mon Sep 17 00:00:00 2001 From: Om Mishra <32200996+mishraomp@users.noreply.github.com> Date: Mon, 27 Nov 2023 13:45:34 -0800 Subject: [PATCH] Initial commit --- .github/ISSUE_TEMPLATE/bug.md | 35 + .github/ISSUE_TEMPLATE/custom.md | 8 + .github/ISSUE_TEMPLATE/decision.md | 8 + .github/ISSUE_TEMPLATE/documentation.md | 26 + .github/ISSUE_TEMPLATE/epic.md | 21 + .github/ISSUE_TEMPLATE/feature.md | 26 + .github/ISSUE_TEMPLATE/question.md | 22 + .github/ISSUE_TEMPLATE/task.md | 20 + .github/ISSUE_TEMPLATE/ux.md | 22 + .github/pull_request_template.md | 43 + .github/workflows/.deploy.yml | 120 + .github/workflows/.tests.yml | 74 + .github/workflows/analysis.yml | 103 + .github/workflows/merge.yml | 135 + .github/workflows/pr-close.yml | 32 + .github/workflows/pr-open.yml | 77 + .github/workflows/scheduled.yml | 110 + .gitignore | 122 + .graphics/analysis.png | Bin 0 -> 16215 bytes .graphics/branch-protection.png | Bin 0 -> 74876 bytes .graphics/deploymentUpdate.png | Bin 0 -> 28504 bytes .graphics/merge.png | Bin 0 -> 70093 bytes .graphics/mergeNotification.png | Bin 0 -> 19252 bytes .graphics/packages.png | Bin 0 -> 43354 bytes .graphics/pr-cleanup.png | Bin 0 -> 48268 bytes .graphics/pr-close.png | Bin 0 -> 24261 bytes .graphics/pr-open.png | Bin 0 -> 26201 bytes .graphics/schemaspy.png | Bin 0 -> 53909 bytes .graphics/template.png | Bin 0 -> 39709 bytes CODE_OF_CONDUCT.md | 132 + COMPLIANCE.yaml | 11 + CONTRIBUTING.md | 9 + LICENSE | 201 + README.md | 340 + SECURITY.md | 10 + backend/Dockerfile | 28 + backend/nest-cli.json | 4 + backend/package-lock.json | 11402 ++++++++++++++++ backend/package.json | 108 + backend/src/app.controller.spec.ts | 22 + backend/src/app.controller.ts | 12 + backend/src/app.module.ts | 33 + backend/src/app.service.ts | 8 + backend/src/app.spec.ts | 18 + backend/src/app.ts | 36 + backend/src/common/logger.config.spec.ts | 15 + backend/src/common/logger.config.ts | 25 + backend/src/main.ts | 11 + backend/src/middleware/req.res.logger.spec.ts | 42 + backend/src/middleware/req.res.logger.ts | 21 + backend/src/users/dto/create-user.dto.ts | 7 + backend/src/users/dto/update-user.dto.ts | 3 + backend/src/users/dto/user.dto.ts | 21 + backend/src/users/entities/users.entity.ts | 28 + backend/src/users/users.controller.spec.ts | 174 + backend/src/users/users.controller.ts | 64 + backend/src/users/users.module.ts | 12 + backend/src/users/users.service.spec.ts | 240 + backend/src/users/users.service.ts | 106 + backend/test/app.e2e-spec.ts | 22 + backend/test/jest-e2e.json | 9 + backend/tsconfig.build.json | 4 + backend/tsconfig.json | 24 + charts/quickstart-openshift/.helmignore | 23 + charts/quickstart-openshift/Chart.lock | 15 + charts/quickstart-openshift/Chart.yaml | 50 + .../templates/_helpers.tpl | 48 + .../quickstart-openshift/templates/knp.yaml | 29 + .../templates/secret.yaml | 24 + charts/quickstart-openshift/values.yaml | 467 + docker-compose.yml | 91 + frontend/.dockerignore | 6 + frontend/.eslintignore | 7 + frontend/.eslintrc.yml | 75 + frontend/.gitignore | 24 + frontend/.prettierrc.yml | 22 + frontend/.vscode/extensions.json | 3 + frontend/Caddyfile | 45 + frontend/Dockerfile | 25 + frontend/cypress.config.ts | 12 + frontend/cypress/e2e/home-page.cy.ts | 8 + frontend/cypress/e2e/user-table.cy.ts | 30 + frontend/cypress/support/e2e.ts | 0 frontend/cypress/support/index.ts | 2 + frontend/index.html | 17 + frontend/package-lock.json | 10340 ++++++++++++++ frontend/package.json | 66 + frontend/public/favicon.ico | Bin 0 -> 5193 bytes frontend/src/App.tsx | 34 + frontend/src/__tests__/App.test.tsx | 9 + frontend/src/assets/gov-bc-logo-horiz.png | Bin 0 -> 3603 bytes frontend/src/components/Dashboard.tsx | 31 + frontend/src/components/Footer.tsx | 96 + frontend/src/components/Header.tsx | 20 + frontend/src/components/NotFound.tsx | 37 + .../components/__tests__/NotFound.test.tsx | 20 + frontend/src/interfaces/UserDto.ts | 5 + frontend/src/main.tsx | 15 + frontend/src/routes/index.tsx | 12 + frontend/src/service/api-service.ts | 32 + frontend/src/test-setup.ts | 32 + frontend/src/test-utils.tsx | 19 + frontend/src/theme.tsx | 19 + frontend/tsconfig.json | 31 + frontend/tsconfig.node.json | 10 + frontend/vite.config.ts | 58 + frontend/vitest.config.ts | 18 + integration-tests/package-lock.json | 140 + integration-tests/package.json | 15 + integration-tests/src/main.js | 94 + .../src/test_suites/it.backend.fastapi.json | 62 + .../src/test_suites/it.backend.fiber.json | 68 + .../src/test_suites/it.backend.nest.json | 62 + .../src/test_suites/it.backend.quarkus.json | 62 + migrations/Dockerfile | 12 + migrations/sql/V1.0.0__init.sql | 24 + migrations/sql/V1.0.1__alter_user_seq.sql | 1 + renovate.json | 7 + 118 files changed, 26680 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug.md create mode 100644 .github/ISSUE_TEMPLATE/custom.md create mode 100644 .github/ISSUE_TEMPLATE/decision.md create mode 100644 .github/ISSUE_TEMPLATE/documentation.md create mode 100644 .github/ISSUE_TEMPLATE/epic.md create mode 100644 .github/ISSUE_TEMPLATE/feature.md create mode 100644 .github/ISSUE_TEMPLATE/question.md create mode 100644 .github/ISSUE_TEMPLATE/task.md create mode 100644 .github/ISSUE_TEMPLATE/ux.md create mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/.deploy.yml create mode 100644 .github/workflows/.tests.yml create mode 100644 .github/workflows/analysis.yml create mode 100644 .github/workflows/merge.yml create mode 100644 .github/workflows/pr-close.yml create mode 100644 .github/workflows/pr-open.yml create mode 100644 .github/workflows/scheduled.yml create mode 100644 .gitignore create mode 100644 .graphics/analysis.png create mode 100644 .graphics/branch-protection.png create mode 100644 .graphics/deploymentUpdate.png create mode 100644 .graphics/merge.png create mode 100644 .graphics/mergeNotification.png create mode 100644 .graphics/packages.png create mode 100644 .graphics/pr-cleanup.png create mode 100644 .graphics/pr-close.png create mode 100644 .graphics/pr-open.png create mode 100644 .graphics/schemaspy.png create mode 100644 .graphics/template.png create mode 100644 CODE_OF_CONDUCT.md create mode 100644 COMPLIANCE.yaml create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 SECURITY.md create mode 100644 backend/Dockerfile create mode 100644 backend/nest-cli.json create mode 100644 backend/package-lock.json create mode 100644 backend/package.json create mode 100644 backend/src/app.controller.spec.ts create mode 100644 backend/src/app.controller.ts create mode 100644 backend/src/app.module.ts create mode 100644 backend/src/app.service.ts create mode 100644 backend/src/app.spec.ts create mode 100644 backend/src/app.ts create mode 100644 backend/src/common/logger.config.spec.ts create mode 100644 backend/src/common/logger.config.ts create mode 100644 backend/src/main.ts create mode 100644 backend/src/middleware/req.res.logger.spec.ts create mode 100644 backend/src/middleware/req.res.logger.ts create mode 100644 backend/src/users/dto/create-user.dto.ts create mode 100644 backend/src/users/dto/update-user.dto.ts create mode 100644 backend/src/users/dto/user.dto.ts create mode 100644 backend/src/users/entities/users.entity.ts create mode 100644 backend/src/users/users.controller.spec.ts create mode 100644 backend/src/users/users.controller.ts create mode 100644 backend/src/users/users.module.ts create mode 100644 backend/src/users/users.service.spec.ts create mode 100644 backend/src/users/users.service.ts create mode 100644 backend/test/app.e2e-spec.ts create mode 100644 backend/test/jest-e2e.json create mode 100644 backend/tsconfig.build.json create mode 100644 backend/tsconfig.json create mode 100644 charts/quickstart-openshift/.helmignore create mode 100644 charts/quickstart-openshift/Chart.lock create mode 100644 charts/quickstart-openshift/Chart.yaml create mode 100644 charts/quickstart-openshift/templates/_helpers.tpl create mode 100644 charts/quickstart-openshift/templates/knp.yaml create mode 100644 charts/quickstart-openshift/templates/secret.yaml create mode 100644 charts/quickstart-openshift/values.yaml create mode 100644 docker-compose.yml create mode 100644 frontend/.dockerignore create mode 100644 frontend/.eslintignore create mode 100644 frontend/.eslintrc.yml create mode 100644 frontend/.gitignore create mode 100644 frontend/.prettierrc.yml create mode 100644 frontend/.vscode/extensions.json create mode 100644 frontend/Caddyfile create mode 100644 frontend/Dockerfile create mode 100644 frontend/cypress.config.ts create mode 100644 frontend/cypress/e2e/home-page.cy.ts create mode 100644 frontend/cypress/e2e/user-table.cy.ts create mode 100644 frontend/cypress/support/e2e.ts create mode 100644 frontend/cypress/support/index.ts create mode 100644 frontend/index.html create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/public/favicon.ico create mode 100644 frontend/src/App.tsx create mode 100644 frontend/src/__tests__/App.test.tsx create mode 100644 frontend/src/assets/gov-bc-logo-horiz.png create mode 100644 frontend/src/components/Dashboard.tsx create mode 100644 frontend/src/components/Footer.tsx create mode 100644 frontend/src/components/Header.tsx create mode 100644 frontend/src/components/NotFound.tsx create mode 100644 frontend/src/components/__tests__/NotFound.test.tsx create mode 100644 frontend/src/interfaces/UserDto.ts create mode 100644 frontend/src/main.tsx create mode 100644 frontend/src/routes/index.tsx create mode 100644 frontend/src/service/api-service.ts create mode 100644 frontend/src/test-setup.ts create mode 100644 frontend/src/test-utils.tsx create mode 100644 frontend/src/theme.tsx create mode 100644 frontend/tsconfig.json create mode 100644 frontend/tsconfig.node.json create mode 100644 frontend/vite.config.ts create mode 100644 frontend/vitest.config.ts create mode 100644 integration-tests/package-lock.json create mode 100644 integration-tests/package.json create mode 100644 integration-tests/src/main.js create mode 100644 integration-tests/src/test_suites/it.backend.fastapi.json create mode 100644 integration-tests/src/test_suites/it.backend.fiber.json create mode 100644 integration-tests/src/test_suites/it.backend.nest.json create mode 100644 integration-tests/src/test_suites/it.backend.quarkus.json create mode 100644 migrations/Dockerfile create mode 100644 migrations/sql/V1.0.0__init.sql create mode 100644 migrations/sql/V1.0.1__alter_user_seq.sql create mode 100644 renovate.json diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md new file mode 100644 index 0000000..08be974 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.md @@ -0,0 +1,35 @@ +--- +name: Bug +about: Create a report to help us improve +title: '' +labels: bug +assignees: '' + +--- + +**Describe the Bug** +A clear and concise description of what the bug is. + +**Expected Behaviour** +A clear and concise description of what you expected to happen. + +**Actual Behaviour** +A clear and concise description of what you expected to happen. + +** Steps To Reproduce** +Steps to reproduce the behaviour: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/custom.md b/.github/ISSUE_TEMPLATE/custom.md new file mode 100644 index 0000000..b1069d8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/custom.md @@ -0,0 +1,8 @@ +--- +name: Custom issue template +about: Describe this issue template's purpose here +title: '' +labels: '' +assignees: '' + +--- diff --git a/.github/ISSUE_TEMPLATE/decision.md b/.github/ISSUE_TEMPLATE/decision.md new file mode 100644 index 0000000..83d1a79 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/decision.md @@ -0,0 +1,8 @@ +--- +name: Decision +about: This is a big decision that has been made or raised to PO +title: '' +labels: decision +assignees: '' + +--- diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md new file mode 100644 index 0000000..5186b69 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation.md @@ -0,0 +1,26 @@ +--- +name: Documentation +about: Documentation for a specific area or need +title: '' +labels: documentation +assignees: '' + +--- + +**As a** *(User Type/Persona)* **I want** *(Feature/enhancement)* **So That** *(Value, why is this wanted, what is the user trying to accomplish)* + +**Additional Context** +- enter text here +- enter text here + +**Acceptance Criteria** +- [ ] Given (Context), When (action carried out), Then (expected outcome) +- [ ] Given (Context), When (action carried out), Then (expected outcome) + +**Definition of Done** +- [ ] Ready to Demo in Sprint Review +- [ ] Does what I have made have appropriate test coverage? +- [ ] Documentation and/or scientific documentation exists and can be found +- [ ] Peer Reviewed by 2 people on the team +- [ ] Manual testing of all PRs in Dev and Prod +- [ ] Merged diff --git a/.github/ISSUE_TEMPLATE/epic.md b/.github/ISSUE_TEMPLATE/epic.md new file mode 100644 index 0000000..ae28e6f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/epic.md @@ -0,0 +1,21 @@ +--- +name: Epic +about: A User Story Large enough that it cannot be completed in a single sprint, the + desired end state of a feature +title: '' +labels: epic +assignees: '' + +--- + +**As a** *(User Type/Persona)* **I want** *(Feature/enhancement)* **So That** *(Value, why is this wanted, what is the user trying to accomplish)* + +**Additional Context** + +- enter text here +- enter text here + +**Acceptance Criteria** + +- [ ] Given (Context), When (action carried out), Then (expected outcome) +- [ ] Given (Context), When (action carried out), Then (expected outcome) diff --git a/.github/ISSUE_TEMPLATE/feature.md b/.github/ISSUE_TEMPLATE/feature.md new file mode 100644 index 0000000..c779fac --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature.md @@ -0,0 +1,26 @@ +--- +name: Feature request / user story +about: Suggest an idea from the perspective of a user +title: '' +labels: enhancement +assignees: '' + +--- + +**As a** *(User Type/Persona)* **I want** *(Feature/enhancement)* **So That** *(Value, why is this wanted, what is the user trying to accomplish)* + +**Additional Context** +- enter text here +- enter text here + +**Acceptance Criteria** +- [ ] Given (Context), When (action carried out), Then (expected outcome) +- [ ] Given (Context), When (action carried out), Then (expected outcome) + +**Definition of Done** +- [ ] Ready to Demo in Sprint Review +- [ ] Does what I have made have appropriate test coverage? +- [ ] Documentation and/or scientific documentation exists and can be found +- [ ] Peer Reviewed by 2 people on the team +- [ ] Manual testing of all PRs in Dev and Prod +- [ ] Merged diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md new file mode 100644 index 0000000..43b5c68 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.md @@ -0,0 +1,22 @@ +--- +name: Question +about: Ask us a question! +title: '' +labels: question +assignees: '' + +--- + +**Describe the task** +basic description of the task, is it focuse on research with users or the business area? is it design focused on either co-design or wireframing? is it User Testing or compiling results? + +**Acceptance Criteria** +- [ ] what is required for this task to be complete? +- what is the finishing point or end state of this task? +- [ ] what is the output of this task? + +**SME/User Contact** +(may want to use a persona to fill this in) + +**Additional context** +- any additional details that could not be captured above diff --git a/.github/ISSUE_TEMPLATE/task.md b/.github/ISSUE_TEMPLATE/task.md new file mode 100644 index 0000000..f9b5f1f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/task.md @@ -0,0 +1,20 @@ +--- +name: Task +about: Work for the team that cannot be written as a user story +title: '' +labels: task +assignees: '' + +--- + +**Describe the task** +A clear and concise description of what the task is. + +**Acceptance Criteria** +- [ ] first +- [ ] second +- [ ] third + +**Additional context** +- Add any other context about the task here. +- Or here diff --git a/.github/ISSUE_TEMPLATE/ux.md b/.github/ISSUE_TEMPLATE/ux.md new file mode 100644 index 0000000..3bb98fc --- /dev/null +++ b/.github/ISSUE_TEMPLATE/ux.md @@ -0,0 +1,22 @@ +--- +name: UX Task +about: This is a Task for UX Research, Design or Testing +title: '' +labels: ux +assignees: '' + +--- + +**Describe the task** +basic description of the task, is it focuse on research with users or the business area? is it design focused on either co-design or wireframing? is it User Testing or compiling results? + +**Acceptance Criteria** +- [ ] what is required for this task to be complete? +- what is the finishing point or end state of this task? +- [ ] what is the output of this task? + +**SME/User Contact** +(may want to use a persona to fill this in) + +**Additional context** +- any additional details that could not be captured above diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..dcb3541 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,43 @@ + + +# Description + +Please provide a summary of the change and the issue fixed. Please include relevant context. List dependency changes. + +Fixes # (issue) + +## Type of change + +Please delete options that are not relevant. + +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) +- [ ] This change requires a documentation update + +# How Has This Been Tested? + +Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration + +- [ ] Test A +- [ ] Test B + + +## Checklist + + + + +- [ ] I have read the [CONTRIBUTING](CONTRIBUTING.md) doc +- [ ] I have performed a self-review of my own code +- [ ] I have commented my code, particularly in hard-to-understand areas +- [ ] I have made corresponding changes to the documentation +- [ ] My changes generate no new warnings +- [ ] I have added tests that prove my fix is effective or that my feature works +- [ ] New and existing unit tests pass locally with my changes +- [ ] Any dependent changes have already been accepted and merged + + +## Further comments + + diff --git a/.github/workflows/.deploy.yml b/.github/workflows/.deploy.yml new file mode 100644 index 0000000..0b4957b --- /dev/null +++ b/.github/workflows/.deploy.yml @@ -0,0 +1,120 @@ +name: .Deploys + +on: + workflow_call: + inputs: + ### Required + release: + description: Deployment release; usually PR number, test or prod + required: true + type: string + + ### Typical / recommended + autoscaling: + description: Autoscaling enabled or not for the deployments + required: false + type: boolean + default: true + environment: + description: Environment name; omit for PRs + required: false + type: string + tag: + description: Container tag; usually PR number + required: false + type: string + default: ${{ github.event.number }} + triggers: + description: Paths to trigger a deploy; omit=always; e.g. ('backend/' 'frontend/') + required: false + type: string + + ### Usually a bad idea / not recommended + directory: + description: 'Chart directory' + default: 'charts/${{ github.event.repository.name }}' + required: false + type: string + timeout-minutes: + description: 'Timeout minutes' + default: 10 + required: false + type: number + values: + description: 'Values file' + default: 'values.yaml' + required: false + type: string + +env: + repo_release: ${{ github.event.repository.name }}-${{ inputs.release }} + package_tag: ${{ inputs.tag }} + +jobs: + deploys: + name: Helm + environment: ${{ inputs.environment }} + runs-on: ubuntu-22.04 + timeout-minutes: ${{ inputs.timeout-minutes }} + steps: + - uses: actions/checkout@v4 + - name: Check Deployment Triggers + id: triggers + run: | + # Expand for trigger processing + + # Always deploy if no triggers are provided + if [ -z "${{ inputs.triggers }}" ]; then + echo "Always deploy when no triggers are provided" + echo "triggered=true" >> $GITHUB_OUTPUT + exit 0 + fi + + # Deploy if changed files (git diff) match triggers + TRIGGERS=${{ inputs.triggers }} + git fetch origin ${{ github.event.repository.default_branch }} + while read -r check; do + for t in "${TRIGGERS[@]}"; do + if [[ "${check}" =~ "${t}" ]]; then + echo "Build triggered based on git diff" + echo -e "${t}\n --> ${check}" + echo "triggered=true" >> $GITHUB_OUTPUT + exit 0 + fi + done + done < <(git diff origin/${{ github.event.repository.default_branch }} --name-only) + + # If here skip deployment + echo "No triggers have fired, deployment skipped" + + - name: Deploy if Triggers Fired + if: ${{ steps.triggers.outputs.triggered == 'true' }} + working-directory: ${{ inputs.directory }} + shell: bash + run: | + oc login --token=${{ secrets.oc_token }} --server=${{ vars.oc_server }} + oc project ${{ vars.OC_NAMESPACE }} # Safeguard! + + # Interrupt any previous jobs (status = pending-upgrade) + PREVIOUS=$(helm status ${{ env.repo_release }} -o json | jq .info.status || true) + if [[ ${PREVIOUS} =~ pending ]]; then + echo "Rollback triggered" + helm rollback ${{ env.repo_release }} || \ + helm uninstall ${{ env.repo_release }} + fi + + # Deploy Helm Chart + helm dependency update + helm upgrade \ + --set global.autoscaling=${{ inputs.autoscaling }} \ + --set-string global.repository=${{ github.repository }} \ + --set-string global.secrets.databasePassword=${{ secrets.DB_PASSWORD }} \ + --set-string backend.containers[0].tag="${{ env.package_tag }}" \ + --set-string backend.initContainers[0].tag="${{ env.package_tag }}" \ + --set-string frontend.containers[0].tag="${{ env.package_tag }}" \ + --install --wait --atomic ${{ env.repo_release }} \ + --timeout ${{ inputs.timeout-minutes }}m \ + --values ${{ inputs.values }} . + + # Remove old build runs, build pods and deployment pods + oc delete po --field-selector=status.phase==Succeeded diff --git a/.github/workflows/.tests.yml b/.github/workflows/.tests.yml new file mode 100644 index 0000000..cb4d148 --- /dev/null +++ b/.github/workflows/.tests.yml @@ -0,0 +1,74 @@ +name: .Tests + +on: + workflow_call: + inputs: + ### Required + target: + description: PR number, test or prod + required: true + type: string + +jobs: + integration-tests: + name: Integration Tests + runs-on: ubuntu-22.04 + timeout-minutes: 1 + steps: + - uses: actions/checkout@v4 + - id: cache-npm + uses: actions/cache@v3 + with: + path: ~/.npm + key: ${{ runner.os }}-build-cache-node-modules-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-build-cache-node-modules- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - name: Integration tests + env: + API_NAME: nest + BASE_URL: https://${{ github.event.repository.name }}-${{ inputs.target }}-frontend.apps.silver.devops.gov.bc.ca + run: | + cd integration-tests + npm ci + node src/main.js + + cypress-e2e: + name: E2E Tests + runs-on: ubuntu-22.04 + defaults: + run: + working-directory: frontend + strategy: + matrix: + browser: [chrome, firefox, edge] + timeout-minutes: 5 + steps: + - uses: actions/checkout@v4 + - id: cache-npm + uses: actions/cache@v3 + with: + path: ~/.npm + key: ${{ runner.os }}-build-cache-node-modules-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-build-cache-node-modules- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - uses: cypress-io/github-action@v6 + name: Cypress run + env: + CYPRESS_baseUrl: https://${{ github.event.repository.name }}-${{ inputs.target }}-frontend.apps.silver.devops.gov.bc.ca/ + with: + config: pageLoadTimeout=10000 + working-directory: ./frontend + browser: ${{ matrix.browser }} + + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: cypress-screenshots + path: ./cypress/screenshots + if-no-files-found: ignore # 'warn' or 'error' are also available, defaults to `warn` diff --git a/.github/workflows/analysis.yml b/.github/workflows/analysis.yml new file mode 100644 index 0000000..a3bad66 --- /dev/null +++ b/.github/workflows/analysis.yml @@ -0,0 +1,103 @@ +name: Analysis + +on: + push: + branches: [main] + pull_request: + types: [opened, reopened, synchronize, ready_for_review] + schedule: + - cron: "0 11 * * 0" # 3 AM PST = 12 PM UDT, runs sundays + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + codeql: + name: CodeQL + if: github.event_name != 'pull_request' || !github.event.pull_request.draft + runs-on: ubuntu-22.04 + timeout-minutes: 5 + steps: + - uses: actions/checkout@v4 + - uses: github/codeql-action/init@v2 + with: + languages: javascript + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: "/language:javascript" + + # https://github.com/marketplace/actions/aqua-security-trivy + trivy: + name: Trivy Security Scan + if: github.event_name != 'pull_request' || !github.event.pull_request.draft + runs-on: ubuntu-22.04 + timeout-minutes: 1 + steps: + - uses: actions/checkout@v4 + - name: Run Trivy vulnerability scanner in repo mode + uses: aquasecurity/trivy-action@0.14.0 + with: + format: "sarif" + output: "trivy-results.sarif" + ignore-unfixed: true + scan-type: "fs" + scanners: "vuln,secret,config" + severity: "CRITICAL,HIGH" + + - name: Upload Trivy scan results to GitHub Security tab + uses: github/codeql-action/upload-sarif@v2 + with: + sarif_file: "trivy-results.sarif" + + tests: + name: Tests + if: github.event_name != 'pull_request' || !github.event.pull_request.draft + runs-on: ubuntu-22.04 + timeout-minutes: 5 + services: + postgres: + image: postgres + env: + POSTGRES_DB: postgres + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 5432:5432 + strategy: + matrix: + dir: [backend, frontend] + include: + - dir: backend + sonar_projectKey: quickstart-openshift_backend + token: SONAR_TOKEN_BACKEND + triggers: ('backend/') + - dir: frontend + sonar_projectKey: quickstart-openshift_frontend + token: SONAR_TOKEN_FRONTEND + triggers: ('frontend/') + steps: + - uses: bcgov-nr/action-test-and-analyse@v1.1.0 + with: + commands: | + npm ci + npm run test:cov + dir: ${{ matrix.dir }} + node_version: "20" + sonar_args: > + -Dsonar.exclusions=**/coverage/**,**/node_modules/**,**/*spec.ts + -Dsonar.organization=bcgov-sonarcloud + -Dsonar.projectKey=${{ matrix.sonar_projectKey }} + -Dsonar.sources=src + -Dsonar.tests.inclusions=**/*spec.ts + -Dsonar.javascript.lcov.reportPaths=./coverage/lcov.info + sonar_token: ${{ secrets[matrix.token] }} + triggers: ${{ matrix.triggers }} diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml new file mode 100644 index 0000000..87e78fa --- /dev/null +++ b/.github/workflows/merge.yml @@ -0,0 +1,135 @@ +name: Merge + +on: + push: + branches: [main] + paths-ignore: + - '*.md' + - '.graphics/**' + - '.github/**' + - '!.github/workflows/merge.yml' + workflow_dispatch: + inputs: + pr_no: + description: "PR-numbered container set to deploy" + type: number + required: true + +jobs: + vars: + name: Output Semver and PR Number + outputs: + pr: ${{ steps.pr-number.outputs.pr }} + tag: ${{ steps.changelog.outputs.tag }} + runs-on: ubuntu-22.04 + timeout-minutes: 1 + steps: + - uses: actions/checkout@v4 + # Outputs semver as steps.id.outputs.tag + - name: Conventional Changelog Update + uses: TriPSs/conventional-changelog-action@v4 + id: changelog + with: + git-branch: refs/heads/${{ github.event.repository.default_branch }} + git-push: "false" + github-token: ${{ github.token }} + skip-commit: "true" + skip-on-empty: "false" + skip-version-file: "true" + + # Create and push semver tag + - name: Create Tags + run: | + echo git tag ${{ steps.changelog.outputs.tag }} + echo git push origin --tag + + # Get last merged (or current) PR number + - name: Get PR Number + id: pr-number + run: | + # Accept a provided PR number or use the API + if [ ! -z "${{ inputs.pr_no }}" ]; then + PR_NO="${{ inputs.pr_no }}" + else + HEAD=$(git log main --oneline | head -n1 | awk '{print $1}') + PR_NO=$(\ + curl -L -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${{ github.token }}" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + https://api.github.com/repos/bcgov/quickstart-openshift/commits/${HEAD}/pulls \ + | jq .[0].number + ) + fi + echo -e "Last merged PR: ${PR_NO}" + + # Validate PR number and send to GitHub Output + if [ "${PR_NO}" =~ ^[0-9]+$ ]; then + echo "No PR number not found" + exit 1 + fi + echo "pr=${PR_NO}" >> $GITHUB_OUTPUT + + # Add tag number and latest tags to PR image + retags: + name: Retag Images + needs: [vars] + runs-on: ubuntu-22.04 + permissions: + packages: write + strategy: + matrix: + package: [migrations, backend, frontend] + timeout-minutes: 1 + steps: + - uses: shrink/actions-docker-registry-tag@v3 + with: + registry: ghcr.io + repository: ${{ github.repository }}/${{ matrix.package }} + target: ${{ needs.vars.outputs.pr }} + tags: | + latest + ${{ needs.vars.outputs.tag }} + + deploy-test: + name: Deploy (test) + needs: [vars] + uses: ./.github/workflows/.deploy.yml + secrets: inherit + with: + environment: test + tag: ${{ needs.vars.outputs.pr }} + release: test + + integration-e2e: + name: Integration and E2E Tests + needs: [deploy-test] + uses: ./.github/workflows/.tests.yml + with: + target: test + + deploy-prod: + name: Deploy (prod) + needs: [integration-e2e, vars] + uses: ./.github/workflows/.deploy.yml + secrets: inherit + with: + environment: prod + tag: ${{ needs.vars.outputs.pr }} + release: prod + + promote: + name: Promote Images + needs: [deploy-prod, vars] + runs-on: ubuntu-22.04 + permissions: + packages: write + strategy: + matrix: + package: [migrations, backend, frontend] + timeout-minutes: 1 + steps: + - uses: shrink/actions-docker-registry-tag@v3 + with: + registry: ghcr.io + repository: ${{ github.repository }}/${{ matrix.package }} + target: ${{ needs.vars.outputs.pr }} + tags: prod diff --git a/.github/workflows/pr-close.yml b/.github/workflows/pr-close.yml new file mode 100644 index 0000000..70730a9 --- /dev/null +++ b/.github/workflows/pr-close.yml @@ -0,0 +1,32 @@ +name: PR Closed + +on: + pull_request: + types: [closed] + +concurrency: + # PR open and close use the same group, allowing only one at a time + group: pr-${{ github.workflow }}-${{ github.event.number }} + cancel-in-progress: true + +jobs: + # Clean up OpenShift when PR closed, no conditions + cleanup-openshift: + name: Cleanup OpenShift + env: + release: ${{ github.event.repository.name }}-${{ github.event.number }} + runs-on: ubuntu-22.04 + timeout-minutes: 10 + steps: + - name: Remove OpenShift artifacts + run: | + oc login --token=${{ secrets.OC_TOKEN }} --server=${{ vars.OC_SERVER }} + oc project ${{ vars.OC_NAMESPACE }} # Safeguard! + + # If found, then remove + helm status ${{ env.release }} && helm uninstall --no-hooks ${{ env.release }} || \ + echo "Not found: ${{ env.release }}" + + # Remove Bitnami Crunchy PVCs + oc delete pvc data-${{ env.release }}-bitnami-pg-0 || \ + echo "Not found: pvc data-${{ env.release }}-bitnami-pg-0" diff --git a/.github/workflows/pr-open.yml b/.github/workflows/pr-open.yml new file mode 100644 index 0000000..bd027c7 --- /dev/null +++ b/.github/workflows/pr-open.yml @@ -0,0 +1,77 @@ +name: PR + +on: + pull_request: + +concurrency: + # PR open and close use the same group, allowing only one at a time + group: ${{ github.workflow }}-${{ github.event.number }} + cancel-in-progress: true + +jobs: + # Enforce conventional commits in PR titles + conventional-commits: + name: Conventional Commits + runs-on: ubuntu-22.04 + steps: + - uses: amannn/action-semantic-pull-request@v5.4.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + pr-description-add: + name: PR Description Add + env: + DOMAIN: apps.silver.devops.gov.bc.ca + PREFIX: ${{ github.event.repository.name }} + runs-on: ubuntu-22.04 + permissions: + pull-requests: write + timeout-minutes: 1 + steps: + - uses: bcgov-nr/action-pr-description-add@v1.1.0 + with: + add_markdown: | + --- + + Thanks for the PR! + + Deployments, as required, will be available below: + - [Frontend](https://${{ env.PREFIX }}-${{ github.event.number }}-frontend.${{ env.DOMAIN }}) + - [Backend](https://${{ env.PREFIX }}-${{ github.event.number }}-frontend.${{ env.DOMAIN }}/api) + + Please create PRs in draft mode. Mark as ready to enable: + - [Analysis Workflow](https://github.com/${{ github.repository }}/actions/workflows/analysis.yml) + + After merge, new images are deployed in: + - [Merge Workflow](https://github.com/${{ github.repository }}/actions/workflows/merge.yml) + + # https://github.com/bcgov-nr/action-builder-ghcr + builds: + name: Builds + runs-on: ubuntu-22.04 + permissions: + packages: write + strategy: + matrix: + package: [migrations, backend, frontend] + timeout-minutes: 10 + steps: + - uses: bcgov-nr/action-builder-ghcr@v2.0.0 + with: + keep_versions: 50 + package: ${{ matrix.package }} + tag: ${{ github.event.number }} + tag_fallback: latest + triggers: ('${{ matrix.package }}/') + + # https://github.com/bcgov-nr/action-deployer-openshift + deploys: + name: Deploys + needs: [builds] + uses: ./.github/workflows/.deploy.yml + secrets: inherit + with: + autoscaling: false + tag: ${{ github.event.number }} + release: ${{ github.event.number }} + triggers: ('backend/' 'frontend/' 'migrations/' 'charts/') diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml new file mode 100644 index 0000000..20aa0a9 --- /dev/null +++ b/.github/workflows/scheduled.yml @@ -0,0 +1,110 @@ +name: Scheduled + +on: + schedule: [cron: "0 11 * * 6"] # 3 AM PST = 12 PM UDT, Saturdays + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + zap_scan: + runs-on: ubuntu-latest + name: Penetration Tests + env: + DOMAIN: apps.silver.devops.gov.bc.ca + PREFIX: ${{ github.event.repository.name }}-test + strategy: + matrix: + name: [backend, frontend] + steps: + - name: ZAP Scan + uses: zaproxy/action-full-scan@v0.8.0 + with: + allow_issue_writing: true + artifact_name: "zap_${{ matrix.name }}" + cmd_options: "-a" + issue_title: "ZAP: ${{ matrix.name }}" + target: https://${{ env.PREFIX }}-${{ matrix.name }}.${{ env.DOMAIN }} + + generate-schema-spy: + name: Generate SchemaSpy Documentation + runs-on: ubuntu-22.04 + services: + postgres: + image: postgres + env: + POSTGRES_DB: default + POSTGRES_USER: default + POSTGRES_PASSWORD: default + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 5432:5432 + timeout-minutes: 10 + steps: + - uses: actions/checkout@v4 + - uses: joshuaavalon/flyway-action@v3.0.0 + name: Generate SchemaSpy docs for node backend + with: + url: jdbc:postgresql://postgres:5432/default + user: default + password: default + env: + FLYWAY_VALIDATE_MIGRATION_NAMING: true + FLYWAY_LOCATIONS: filesystem:./migrations + FLYWAY_DEFAULT_SCHEMA: "users" + + - name: Create Output Folder + run: | + mkdir output + chmod a+rwx -R output + + - name: Run Schemaspy + run: docker run --network host -v "$PWD/output:/output" schemaspy/schemaspy:6.2.4 -t pgsql -db default -host 127.0.0.1 -port 5432 -u default -p default -schemas users + - name: Deploy to Pages + uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: output + target-folder: schemaspy + + ageOutPRs: + name: PR Env Purge + env: + # https://tecadmin.net/getting-yesterdays-date-in-bash/ + CUTOFF: "1 week ago" + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - name: Clean up Helm Releases + run: | + oc login --token=${{ secrets.OC_TOKEN }} --server=${{ vars.OC_SERVER }} + oc project ${{ vars.OC_NAMESPACE }} # Safeguard! + + # Echos + echo "Delete stale Helm releases" + echo "Cutoff: ${{ env.CUTOFF }}" + + # Before date, list of releases + BEFORE=$(date +%s -d "${{ env.CUTOFF }}") + RELEASES=$(helm ls -aq) + + # If releases, then iterate + [ -z "${RELEASES}" ]|| for r in ${RELEASES[@]}; do + + # Get last update and convert the date + UPDATED=$(date "+%s" -d <<< echo $(helm status $r -o json | jq -r .info.last_deployed)) + + # Compare to cutoff and delete as necessary + if [[ ${UPDATED} < ${BEFORE} ]]; then + echo -e "\nOlder than cutoff: ${r}" + helm uninstall --no-hooks ${r} + else + echo -e "\nNewer than cutoff: ${r}" + echo "No need to delete" + fi + done diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4298d01 --- /dev/null +++ b/.gitignore @@ -0,0 +1,122 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov +lcov.* +.coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Jest +test-report.xml + +# Docker/Podman volumes +.volumes +.idea +*.iml +**/bin +**/build +**/dist +**/out +**/target + +# VSCode +.vscode/ diff --git a/.graphics/analysis.png b/.graphics/analysis.png new file mode 100644 index 0000000000000000000000000000000000000000..5f624e8733263d09a9b005c0cf66a155fa6d924e GIT binary patch literal 16215 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 Pc@PN^SwM}DUci3=H`6Kq literal 0 HcmV?d00001 diff --git a/.graphics/branch-protection.png b/.graphics/branch-protection.png new file mode 100644 index 0000000000000000000000000000000000000000..7153c26ca3d1ef03115ff042febe5b1da6d15dc1 GIT binary patch literal 74876 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 literal 0 HcmV?d00001 diff --git a/.graphics/deploymentUpdate.png b/.graphics/deploymentUpdate.png new file mode 100644 index 0000000000000000000000000000000000000000..6c475b85b4f07c0aff187e2af9b68a5d1e58442f GIT binary patch literal 28504 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 literal 0 HcmV?d00001 diff --git a/.graphics/merge.png b/.graphics/merge.png new file mode 100644 index 0000000000000000000000000000000000000000..124b2cc09ca634f56486a9db0d6542bb90f5bc73 GIT binary patch literal 70093 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 z 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 MI|cC)QQa^94+oN(K>z>% literal 0 HcmV?d00001 diff --git a/.graphics/mergeNotification.png b/.graphics/mergeNotification.png new file mode 100644 index 0000000000000000000000000000000000000000..377a9e1748f5df3535005e9a78e8ba4ad86c2904 GIT binary patch literal 19252 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�In??91NN=S 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 YdS9yekm;#e#ob+Q-!#%j0*N~R0t{}NMgRZ+ literal 0 HcmV?d00001 diff --git a/.graphics/pr-cleanup.png b/.graphics/pr-cleanup.png new file mode 100644 index 0000000000000000000000000000000000000000..0e06ae6dcdcd2aa16e2c6771927cf6bb849ac55d GIT binary patch literal 48268 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

Wjkhb3GN?;Cwr$5 zAD!JDvmAfod1V6;tP_q3osrM>QrCg~aJ-JX^YsoD)BMRHqsiW2O8je6QxPw0a{F{s z({>2gi@?dNVN`Cb=t<7i*_xA_4`)_=-`%tuXUHN7`7!;TZ1N1nW1B8#SJfg?I=XqI zu1LwnLgT(*bCzn+`R2HmVl?Z+Zn{VbbA5AHcReVfH(QR_mJ4TUN*g3uFU30_K7i;~ z`)8;=yUEX)fFi!Vl^X%%{1#n%x9%u&K;6e0zr%|PX=99P)%~nLh{&fi%)c>EqZHry zZz?4}Jz~AvcDU{nyBzt`gj!fxebrg+myF}_*Aw=qUYDFJ>>nD6+TPxF%wCLt+n0=G zW7AYas4=#EXqaO*Il>(i8%wWVehqbq^92aGAMJJJlj$P`ooc*+c&D>SiBIV7?#_Sq z0`|A?cuGhIx2tI{_X8_C*Rpw+(OF37|DlFns4Q@b*(hFfe{@^{`F0J)< zC+)Fpen1^N_YT;sKTAwqh5bpj7Aaj&hx`L9cLptO_r6Gv@<4*CU}m7viQ{zZNF9pY z(65=m3>Gd+nLySr2Cll79Z#{o2#oFUdMw{pZ| zk&$`A?6tn5gf>Cg7qBUw06XS>WIMa*Sg=5q!vs`qY)xyRXBspHR|c!1Wdu(?dwA^g zj%mxwQ)_8y!I;efX9Y3gwn~=jH&8ye(eJ^+{c%hm|JQBN9~RBc6~>O zKYH`74($M*HMPH?-5$yBXQ-5O1{AHa;%@Gpp>Yy7Td&2mSsi(X6mYhKCk5l!U|?=h zPgpKJlx0#2G)&9hHwvD5w7#iB3`YZ){S-3xaHNw7+I-|L7@I!SJW~z4kO$U>l9|St zF9DHF6vm!^ZMIJCT2NE&Fzc(sd;2!-eZ8ZPAt51aq}xQyY96xH)sj*BM4--%af_2S zd{Hi?J5>xHKyWY-*Ksi)$;%VK8R&K?FzJ>3SIg!j^(St*Qzbg#rngOrmrHJ^`LTM}*w(hOgHMJU-SiPo?t+HDuD9rZwQ+hYOv-X8Tyv!Faj_+_GSh~Ak zz$|XP3Df}GLm7=bn@ImYket zjUbYaJhVnRnEe-WqJe5Q&Us=gZW`eGF}0(Xz6Y6klXsKS=6shLd6gUl&783(<2UN zR*u=o44`O)L^{Mkn0BYGmUfWydHPHk4>AT#SU1yNrr}}q8T8hUeUC#Dxd_S1;(?aq z?N>+vgf%$PwUKOkzY5LI!Z{8_{&`LZvO^_Zc82Y(t)ISqqYe%ZhEx32S`2rYhWvtt zOTmc4Hy4yqJc?@PCI*Sy*8YHIBIryoDi^;mqjYKr(y9lQiJ|f8AY3t}b>lPF$fdvZ2W2;v992|V6*8e70F1cVipqUhWEHNDD zl;rUI@If~7wO(56$&QSk{2<3KxOV|wv(hvk6xs}{@228&6FQE}2zg-T0E)V~pL?);1! z?%?S7z;3~;Eu6`(sE7mPT~xK3rUW%K;$W{T$Faf8rlcw+UcjIc5B&nx_$HTWhZQP% zeE)biIwz9Png{D9=NshMsL^0$r29qenI(#~SuR8tl~>@KqYlJPt&+F_(3T_N%M}F5 zR0=rt1_RkbffQAP6}DW+N)!=oPt6g(;vbae(`oSk8%8}+&YvqGEjlCI;Lm6bK|b5+ zsdbUD$%iCYiY|*2>}C_*gNU;iZbk1xE$xOm-^tq)-oP*k2*d9Hx_EQ4q%N<*d22Hn z!t|dhrhVxo67;R5BA~0_oBQz6hM0_R{N;){Du7Ofktq_=KRiIT{j)^CLb*gy2T*@{3peaH^y% zmgcm@VlG&AdLzc8}2*+0^+~q)Vd;q`dI;^_7VS%c2<)5+Hj4 z9JFCj9#Q4YRF$z1-{klIbTck44&c=-P^3|9%8^gYpLKfr^qfgH#V?Xo#^!rtyB)2F z+X1IPnjV6=5tXt{uA!pkM`7uGxkW_@#z)wpEShfq%dQt$lNE`X zRIU*#5ufRbncZHL`{-iB$ehg#;;C%A2gGP>)wT+abHl9?FldmSHu*;$O*Vs4_Jh-{ zF4iJTbMvN(x801ce0;1d?+P7euRtc;v&NN5F-yg~YcJ+z_ls_Th$oZ~IPTw}(LzV6 zQVzxLE;iV8^W*&&l5_Qu;Vxly2slYfizhtS!hym_m|^Y{U01K}w-Kuadz-r#CJu|1 zt(>-BK&l##@SglPv&lQ41pWz5IxI&=$KAEjt&$w3KfvVX{T4t{fmcCxwDTmq(aypG zkZ@{`c~tbflIZQur*V{fXC%T=!Vp7(@Ox3SbxD?rbQ&;}bhV|$0L*?;YjWjR zUaaT1la!T}Rk98E2QoD&hkA>y@Ky~M^B5i1qungNqvMCn8s#mJ^*iZzo~P!fiQEGL z`Gs6u$bb8i58K{9*%|oEzjwC!zyue4*%@0})}_d92vP&pD{MAlqi!_dt7CZkew^vp z$YGmWd~xl@Lyyw^m*{jkC6TiT=+js%S z@6 zmoB?fj@rTS0Fd1NdD-8%p~hc%dLnYVR{IAxFS|{`5R8nnWSsx7`3UwYD5!+Q#pOMh zsyR8EIy>LYz*21%&wyWc`X?ydtN7^jz<$U`w<89;KDM(LaHdD;@sYM-dzl)j59d}! zo&WNW>|gc%M>r^bvqpa)MjL>1P6WZ`a1!k|bF)e1^AR|>3=D=usC_nfFYNlx&Nx<` zw)KU?*g;f;LhZAsCafcBYO4ZlH?CPNjm-Y#MQ#3Q{jbn>n+vRpgf%X#?9?U;dk7_xam8?lVWWC@4*)WK{j}Lorz(Wd4 z?og4q7Xu8+_DG*rqpvDO zD(z9+p1(fdDBoKVI(yobsb2KH!`0{(H~q38@IPoPD}6VIe`+2Wx4usAOKpXFyRW^( zYp-Hk-s+JULS-80N&?D_HEu$`inJLVZC1a$q1Oa7sTFPz?V5vff4w6cEk5y0iTIQY zTC6Ga4_%G|VjtYN)*i!o8SuC`U>dx4XMWy*xJs;~q$?SFsWvgtHpxRqjOet`yUkQd zyT3wib6eo|&CaZC>Y%eL1lQn9rCq4A2Ss`ez?mglgR6h>{yJ-Rdx0NI`E4tUu$(gBE?eXR6K|xF8Z`W;xQF9ys)lWx=!A4KOm?1@Pa4(IX{vmG}Mo>)X z8*V+$=)C;4gYiO0jWP}c$X(bgPqwo4u=3p0^b{tTzow?9@Buo>{1`UURrIgjt&t5L zc8Cp+{e8yiH_d~Ck(lluK)47aH!pAU$0SPap=$u}xsvS>oZG8h9`#;(1x|}oe3cBp z4MZ6+n#xG=$~-SGlwN5p-_(%(wIQe&5g(N_gNXzt1>7AxE#UD{-@c7q(0Zo?X1Um=&F|+WqKEwb6|iNan#--40aJ})H+(#d z9SadLL_xUZrAw_rsZmpy&*9eGA7A1I;52WPjUI8lg!CL7E(0;PlK&4BcMdLiBkn zWMA|yIWH7(4VLRu0UyodgNE*Ku@oQInnG|e{$Pn7SEDa+S6-a8p;C8}s*DEtDW~EE zL+Loarm!D~r@~`jl;SZfH|D5;6%)aHzQA#w6B-CyzQ)(FUqZXpI8SN0_?74@niY?W zd%%T06FT-PF5%+3SrFc{*nd=uVxG?SjaW}O{h}4#S9&#SipJ^2eY+b-=}5bpKgs@2 zWdB-s|70M|w(ys&vIYM+)epq~Np@-~rD!;-6zNB-mVug8zW#K%YuTOO8;#zZ-B|7E zw|Dz2k~ja5fm<1(IRDM>-Z@qNUqq_?Go=4+{%-U!*+|Dgc`Baf46~9gYs>cPb!S(%SgPxWnxf?BWFS1S z)7vD_a7JN)@w3}0;$ocNT#mXEEO>>GxxI)X;Xjx+uFtw(H~M@mH6P%#r_cyTE`(^C z+4BzINq?jMhKqY6Bx6^TMXjMFMWg^Eb0L~xjWrz1C)9L7VL`5djK^*wZmAOoaQ!*N z`Eg*_p-JGZvC+G0*Pu=jL}%XyOoPAL17y<9IBu-kMYfcO&YSF)FJDHxf_hDSh?Yqq z(960`Cmoj?b3_LjS~(~X$oA0aw2;DWrTn}2Gg`sX>#Q=wE9P6)oi^!q(&^R={?R#> z*~4_yO+D!f(TvT*g@z(lR@?lVltn(iRPj3gOlb||4!*xoorqQlM-RE(ACoVKU+ z078xlr|%PSi+jMY02G>|r_A*$ zl$dDd?uLV>Wz{*)mqi4m+gqJf9ce4@GmOpl6*QbcR`%A0NX&hd0Ni z#A&nhKqMjq;k7v+`qAFLEikOY;`QOW#UdW)V$7~`HIHw^0fprOc$E9$n>2Usyyq}f z-0Hy@m#eTLPnM4NDe@--HnDbZ%OtqP#)>%_t+PQ0$tYInG7zp{H~@T8B-ByZqW=S^ zY#0mR{;OBmq7$BpBG_ztyNubI6(7Jq67mZCW?WGWUCS&$e^~%ELxoN8u(tNQ5Xf6m z(uPFNb*TPKQNj^8onk8aL z?Z>K5vvRQ&J?bL%Ehhd^*12J%1nGyj4m%4?2bON_aYvXi=fFM1fP-*4EJEX}Ob&(G<*K@ggnH!u z$G_3+)BF%9>kwINm#YyvQ|EmxplD_M8nbh>qh6%O+S+pH@-j6oO}_Cm=TI^76?cEO zvtxgb>ctE7#?3tc6(N%M4BF9w?EPYnAMlyJsQ8nDleINkXDTW#{(5|jA7TMLk{sEj zHaKnFy5^mq04Ubo-R)HM3e$L~xN5r4^6Uk$b1&EXl=ygexj|bdoD+EDG}JS9G8D6K z(a?m|))pLB+hAp>mLPW6TBTD&cneHMRRH*V3{N19e^VutT=qrCdv>0wDyK6o_f&G&?{Au6T1m>_QKczFK)*A=$FgmyixJ zIX!tlK)q@uk8W-El7)QbQ*($2v<3scy`clq4#uxRURJw>=LQFT-^V&Te>S}>M6hr>+B2&g6>MqaA_akfNw81rpWk$9vGh<7O8gKVPazH;rMrtSWrP`rsd1SN|R{p zu?0_3qeusDtelG&BM(X|2lq6{_^!VTD<; zGIP_YTKXUVlN)as>3=k^WyGs+HlZ@?$_vy zi#8=y&M)(1pCN2S-(G^+MLT zcu}`}?@ApK2EC5BH+xS*{`z&s0SCh8j5${{^1x4d=kR#(Ee2uI-k9VqPY1R=N zIHSfLvHUsWyLTTxKRG#>$I|GUJwg(tX{Q8~Cn&R>KX>l!!jH-FBn5^+Bb%ge-%?*p zH?c-{l%E{F9kt%8${$|6a)sXEwbNrag~>^U+2wiF*J3q2i@mm2iI+|;9@4Y3%R?I% zQdXnS(#c8sh&lgxhV#(G9A2ewW=S=4DLT3X4!l?nD#^ESmgUoTrpQlc7P_f;Y*s#p zv#{_l%LYT!x}BAt>AqxjUgrw4yfJ6jC?JQYvgo?nbe?bzayu+~&iAFs={XmyJ6cyw zV|T>zigXtA2h{8z*UT<0C9}+T4iH<;w;>R6r}hU)tOGHhJ|zSupDMYz>BVKcY|eSdX!^e+qf z%sbIu;c2FIAMg)##21xA!W#Sf?s(OwL2C=KpJ!2r8Rj9hq`VIDG)fmH43r9N$c;w} z6Y>%Ne9?qy_x^`Do>JHG^GBh}?FhkRRvj%Lju-DJw&KhBXQAB?<@-6x17_~{- zgAdVPKcOP4k7&aDeWi(=wc_W!&- zJhi+0`={EVODuoB>IU8<&7c1l`X9bDyp0(HV|_0bk0`r#;(A$yW6PWL6$1>ltQhH5 zgAOGJm2}zQkb4zm@KLo%__B$6^J{b23o1oAtdVa@21CQ*>06Ztbudc}BH!ed-n~mL z@AmyRkHxE+%=7(i%va!JN_WHk&(d$Bs31U(A>p4f5ZxfVQ_-O~sDn}Z zVbGZK`~@$08xr(aJc0SBRcId_6|!;E(uu&FAk{4)ZW|p<{AUx?68gf-WxswVL#P)h zff3efe^~L)m974ZxxK6%`spth;D3Ie|BDO!Z~CSG>4pkX;HxyGFAVh@6=#|7(UK3+OpGAha^+D(R6RJO3R zl!NxR?3>-V7Cf;u0T380yPvwG+K!_H;gOHPYYt~rX7rnFJJEh$QBh%HII6-B&QddD zDH!=cPD4Xuo^Q_Vq18CQt>Hqh*3yr>9_}NfvBDQQRfp-+^wiYydn1lHueG&j=aD%h zF=VS_RjLKLo$>}tm;Fh2r8`V3H!9Ke9k!tgy)K$@^hB9)l;)r2oWpqaa157%IM&>r zxvxV0MU$JH&e&PYlS+G)ysvjdH#fI`GG(dguaufc-9Mox7qCiws#!3|=v8mt%7G%x zGO1E9G0Bb~)Hsaz>U*V39Vwo$n;42^jyG9=5r;RiuSFl%1!gq1CV%6@HOoqHewLV+d?&30`h;nZdQaoSdvy`BrXjNPF=IdAxv)5^_!(Dfq3 z!%M$N;q<7BZ!boe|Kzj4G4diPyChSm0VS}!K*?0<#;N?q0Z@L4vr5EYmJSsfr_{c? z1%0d*=HmwzAXq2n$AOu;&ja=js;Bj5JODK^x*sUNhY!$QCZ0s z%SXNxBOf)_c_7O*W|s)v&$H{juosKOLUwwFiXg)p3zhrX19UR7qHj|#;JApw$rUzg zGSJ@<&7s|t!ehM@8a4Jq()|KXe+ldzlhb{#GiTikty=Mn$E&4KhdWB5qTV*ELrEp$ z4h0V{t@f4`lv}MP2Ti=9p`|f^Jo-?nmit=uJjLi>MnsHsiiydfEER>zOK9dm%4(Im z#O3`$V~pN-tWb2kSlZT@wyth6I0%bxRHC4uaA!GZnO%Q#nUviw7pNI8M_71y z=PR|eVSS5D1~Y9|hr_P03>O>blv26|jhe7nkJUbQCnO;FMsHe~eeq}~Bqt}{h%=g$ zOaG3Nl9Dr@bNT!C?tOW3A_oVD`rThW4|k(Ysl}?Rt4Vo`N?+gP4D}n#tUB6Vtj9@S zZ1DM7TLeit^hlvmM3H5)jqymS7{9}AZ;ObCXz=UTulqop8hqge7%VVN5}sWpZksf_ zOU*71Vp4LW<<>f^VvslLaTWZWT-e)-x5H)BD=On3f2&|HlcYe`ux{U+Cp^e(tZStU za2-$&4rfW(8gVmm>vQ=2h3o$P=eVCfIas#c^bHJ*phoY2QQPr8f3C5+TuMsNJ3^F% zB=}oqCL=dlfW(zRDcTUA2xZ5+YGeS$cemWZ+Is1y6s7Y+DbM+RBQPxQ7%n@)Y1yXm zNDAq4`3_mcf_q-1eyM$Qu)lAxjW4s1#g&q(gdAIfO%Ufir_X=# zOOyld7rY%>vGT>aXltbN-ZIE~bJ+cO#PnHEQzn2UV~NAyEqa?2nkN#up2iCE9p_Rn zg3M-EXy~^|p$mrX3oou*!R`mf1k2(Hi2UvB3|#Hq{%~_x5$p7qwrHb2v{G*wWlQzwNk_yjF#DIXFBN zzjs9d%AU6OwW)U21-%ea@hM&(u6>d(40RmY-x#X2FZjUE{t^PV7xC533NK&Y72Dj} z8~9~DUAXQ#Zt$q)B8UA?YU{O;XTbCSL=A<5n#z%p4tBquqb&E$l9G}QAPJphFjj3G zt?SAuAreT|{munv;pLOM^MVDw(DpJ3+RKibi`d#b#2xI!MSe;EN0DLN0EHMZGdJ%p zw>B(-w!z%7(qQ34X(MM=XKBDYBj>g4c1K;zIIZ>SO|u+eaNz}OfT51xDpI;*GarUPFU4v7q(rXp1HNBggf`@ANVBe{#6v^%^acnQr#S?Jw#DeLS*)XaH zjdBLod*Up7r>3*Bv9j<`I-_<5NCmZ?n5WJ!%_Y-F5J?2vAjg=!_)GxHT}?Ea1EW*V`*G28gVF>Bkj>Uythiq(DTQa8Dldeh{} zXTw!}>)U|Erw=65Mr}38sg0+rV?`3dg?f9;J4>Ug5=5?=+YVhOksZ389v|-U@~ZX- z9zPHE)eD1SLPZ>Yc><08EF~EV3W_K}*SJi@jAEm~ug0pysnS&rDa!^KLSPtEiVXeM zxNd78!kOT}G~SuU5p3x}NGK~SHztg4?55@cM_9apfh z!sH2xmA9Z(_VAS})M6wgi;XDb^PFWB6@-B$`r56tO|A5;@O&{S7~1ujDKipvoJ=8P zn}KlZ7aAkSeGZr-z*d4DW>k<$^Y+ z(d}(Eq|jqGDcB;=qAJ)|*Mo-)yR3|`itG06@8x^dM}*d+))o(F+*- zl6>VxWC1lfpH=R|%4=7zD!G5Y(Q#m);j?_2*F0aDGiR_;nu31x3w5?=QJV;sp|Zpo zi~X&#(5}o(*qPRy{46~(arXPYC(cLc2+G>os*sf3`-PEF=GwxTIw+j=hjMAKl%QT_ z45TJxk2>7tq7(5WW(lsJg#A@^<|IlFUx*l}!5saY2SR$L<}97SI<(&=`8BqRb~&T-DcO zt_INclr@_@gpNq`SfoErE49NE{7E@R4ghdAHGJsgkRaYFjFzWFIPP4{+dPRijZi%a48^Doc{V!7MZpOJ^Thr5aANY9Hi zQ&aP`OjiLwvr2)-mZfmweT6z;@R2rDimiNfT@{OO6=%jPE2|rIAqs#l{Sn#HKYv0-2Dk3R+17Sil3Yo1SSOsiDPiE!u-Ns{y0 z^thdMEYj@=%pd-B6(1%_>B26=X`vY(-OFe+j-ENBZ+O2|u52g1#@uDS=6Q_!i-v|a zj;-{#;9CPV*j*wd;;tBIiiXusK5wIGcj9By_?iyCf6X!|N*5Owzt_k0fc^#emshYa z)0=FW*+#_2kJG64baY6KR@e?eS)y8{$Qxx4Niv)dAUCjH&MIFm9xl|~F(8bIi&Tz- zGoBESG#wl&!a&Ue#jL4m5Ut(Z+G2=Hq8H=n9I|AE!s8b&UeGjc<6H__UOYL$#LOQw zQaK$qjpDRUKS9Qp^ybMmv-a80$1B_G4;7|ez;a2IcYN}s5(|#KawZpNlX$HC zbhCM4rD+;Yv$wa|J(ZY-Ad~8bI@JBn*AeqTy}H`P*WdU!A_pCg9;>5c(b;>}ssTp! zH0~TVqB5hq2B@nSB8n@Y&}1P}bIY+Q_`Xny1T0h^Q3h3bd7)jE6dBDd)jbIxns%L{ z*NqlMCOwKp%e|i(U%!CTGkM?_XDO4@iQT(<_c^E}&rDAzLcfY-kn|vZ_%_JN$q5=$ zCqc`DrM%|&(g_X_z9b|d%goKa&tW*G#!|hVKQc1P;kc_ub7=4A$iU8C*eiJAdZkG* z`(;8nlj(~B-Ht+wSzn3j`Fzl;4$k`W2#b_GsP&Dk9}!pDi+bVB_4S~Xln77&pz^9u z0N#De>%3I0L}7zpsV_Ew;@;dUcAs%`IJ{s+_`Q1{ds@A=F+(IIjvmyh3g;ob8@nBcKvYK!%t8Bj|ooQc}8kNV0)> zPX}wHBzmq)Om-tlnqg6D3E$~VW4yBnb7a)?B2Ec)xY5-}rV(?;(4mo8$9cJfo|N@X zYO?Eg9!L=unNJG?(zcb~G?eR7Rej*#ChYGb3++>RTo@ncR2~O|ze+>sX+}lqsAgJu z5Dw0aOcjTY?*&2jr${N(BW#fbs9#UE9kV}rKVWBYd`|3{qhg$-M9&ATWe#LUj`+$j zy%>~(E9Q(EDF}A%>k4>NRdE|erHX|$B*5TUD?(5Mr~^- zRt7Y0_U8CZl=q*5v-&ex>Sp2F$tPfd#DYV^BGXz!G3~%M`KA(yo4_9A_sU)p_wWh;iK-wiqjpy7OPeqYv7?*U~Sq6?xBbDqfXWVsZJz62pX81hT$lu(O1V!Xws z;0B?wpA%-LRLK#-(=65Cj+Uc@pzFFyfv!I=K~)Bm&~g9$Tj+?+vyDGIXGHseC%w0g`TT`E^bGQ!q_r`l z!{guE6@68V|D`C{|2gQ)|JO(*bcg{4E4LT1yIY!&bH>mSQ4-}vO@Cxp{c~^rp0Q)G zMc}NGh37vrn25#!4+QvePRIXnXOmCRaNvmmA0(9s`kR{ zD}AjbGQK*jt@Ks&=A|?RDs}NXhUt?*|1Rr=UwQjGh5B+k!_Ye^7|1q#UmK-J1yATv zg*L`M+OE&wNCypLi%vr{Hd;IG2B6>b>`E#=W}fLywRGFGJIG6ctb1JuL=V6yVFoo> zJH~CDoz*kT62XIN4^EYV4*%l+>h8Lun$EX8>NxB;ql_Y=fFKH@fS~k_qJW`FN2-FM zS83825E-ONmllv-gY-^B1%-&zfJl=jkWeHLdfEHKd2i>vbKcpvR!3q3E#E;#QUI&{*oK@J^{%;T7!zuO4Uz^U2c!lo?X;ktOu5%U>9~-zv~=^^w^mSTihZ-??c4lOzXL!_cea)b z6dBaWgq-4u0qX(MRZY#$v)kLV5DJWqZ~jQ5K3q!?crbG(Ffa&ggLyE(qmiX6G9vs^ z?Yn1pj-C6aj@-495)W9pVFzn}E~ro2647HCA&CXkh4bS<+-;O4jU7GWg~q~=^sM`uAb<4gmBnq|FCb#`6Xt> zKinI@cF@LbTW24%ayKN`_(GBIvUF^n3b=M$c6C{VqR+Lq1xKKI+~D^1j-cz1$d&EU zDu&L*8_E~~REoG8VxzF30s{jPe+gnl^El)sSz!c+F-jXH3ETI*4EoV}Hj16tQ&kMU zN60%blNAegc6Q74XH5+J9x-752wHsmvfO7?Qaw|az)wfZSdc9&Aa0(TmUd40(dL;V zy&9RD%nXIXIZA5rSVKaVwT|s*rE-~cQdWk1xCJ=q&fKhHAGThiLoTX#DGMbjAKH{m zW6>_+zGfGaWY>4rZRiDnU){e41#yXsE2@Svu%p0uNcmi8TM%#Lbt8cKXz%9=YXPg3 z=u%zoL~-+Qgl}pd_056)FvuSPfJp~X9?DQz2QhN&jq}RPamlsqpAl5`MbBjvu{*24 z$bADH_Gt2c7Gwb(*;=pq)t1Fp{oWf*0&a8 zfCmFstM$#Bo6FN38sK%qS1bnOt~5^&3hyd{R$$YnPiacO2v&(c9jED;%D$qGy15~? zXg)qZ0k@A3)+eD0WeKu2hx%$OPDHTux6yGuC>wB|e1E@rXFb5KuE-@}G}_4$Oqr)4 zTWVlg=zx1Fl_aVWLhs89z9YZ{7QM6)BwZPQ7*8v2^0mlIOKQ5hpANqhNKmrsZ)`aA zA+@--mlhBNLAM11z??2!ti11tqvMLB?~ofVw~Wrm& zw3*o@4i0_D*Z|e;tIRq!ZK`C7^PblR7DXf(Pt(bsHav*{+aR*sP*O8rlcH3fo?NNCk3Vgb#|p-a{?Q7kByB1j_SQc3Jv|G$goT<3X-E|djkD? z)Wl@UM>~y3)Dtt1)c5oC16$fzV(F1%lAtsKMZu)%2|p`~U)4~}JjKFWJ~*}DGv>I| zuUV{i6UwLGu~P{@#cRX{1R~g9;MQc4GBW5`Sc+5ou-G|11Ts{V0fOU_&cILZNAkVR zM)99m`z=YH^5yrtSy5uX4(^*niY2C7LJ5Wjz2`2|U=~zr8kE$xKx0sXJ0QIhu*!}$i^EnN3}*16geB+rVVx{1{yfjUL` zmGhtR;4#7jBQxA*dr2Op4zLk;<75g&(*BzV51_f7wnh3}mG^IMY;4T_w#9O%?5l8_ zT@}|AK`q1?9k9^`Yp2$2@da?;hkrbbX*BySUo-DK=vNYy%==cvQ&f;$0&%PEIJ`u5 z%)LW2oI8`Kc?e+qQ1Qa+pY#`9gF6t;`483wvC-dzXz*;*!`}zWxRtCzz(N&N6uOCo z=@C3H7r#a{M?-d8)lj;sRLYC^z2$sJ?~o0WClT{KSbZ8OUr!>gJc~Eq&3SvAA!5z+ zj9pq-?u)tnu%epSkjFC9kkplpYqtUY=9p-rHb7|FAE?l^2uY}1IuXXFs z;Ws08MMhZeQ)6BUY?k=Ac0e*bria%w!F%U3CiT0J5VV>IXi+aXY+CmmUXCP^pRmmW zRHxY>chpwrgj4Aqyh71k5Zd{>l#{m_o(yib(A_i~fM z>!I5V*&(><9zaW`eNgiG?Y_ae6X7Li$E8Rf0$*W_ z&@o_k-;JwqPQ1DtC_q-bu51tBx&o(1{-c&A0|0EQ3$w=Qkj1NwvDo_6s~g0=c@|`Y z1U9eSX14neg#%U;To%702*6PDj_jhD7i*}HfS`1$5x)7~r5S$K%zsrp`~#W7zvuS+ zr?e0M{7Dmk)%r?B#aM*8bwl$%Ag=i5FYvb~{lfXxSs^M9TE{_|KV_E(=@Oo^0L2rYs{L#<)dGq-B0zus0C>v%i^Gd60wLuJly?;taCo3lldH+{o1UI`V3YN@; zg@stdBYxHh`~I%2XS3a!|qJnaA07Uq7i1vCjU#m&U`!_urd7&a94DAy?cZaLvc-ZZUfMLkjbl&!P_UUA9fTASsj#2@bEu_Xjazoh-iZ$GAjAj zGx!L1laA~^`>+3_B8dNN&wYQW|C@vOZ^zjGlRN#cRzd&0eo6CWjz+28ax5k;KV~ws zjR$e<`bA)scy+j@u7(S=NDwpz$|3ZWxxzzj*Sl1lp{P?KA^tKlbf=lpFHo<-z%H6g zhhI5_nE*8Q#XsGe5SOenH9gg8R~7Q*MD=G;a2{e)<2giAWJeK{2dwSKo>9bte>EEM-=_!rw}IcPJ^*LO+JO+|h}}%VtIs3k zqOYu|HYrT;%1({KAf^aVx>y5NxC5$JxyWLLE~ zeCmj#1rm^4xsc$3SU6LLWB>XlccRKuCG zAb&I$}irik{JQ~)?Tny57b5k*Przyn#eyDp?0Mw5)P%#Q96>U(fAgE4ov~mCA zoEA`O(9#*byHZu&o%UP6N>jNdIPE!Xd8i&nfd}t@otm1moKF;_KMT1-OV-WpSy%>a zgqrtu>)7&us~~p1n9w?FH1cWuV)I*}xR7SqB^(QZhASR#R%W>Rh#7++e#$HG^7dNU zm`iA$hbr<`gR8EG4^v;}=U0T>Z)$paR_;T{4s|DQ-%000)Hj>+n-Vuff6}fvtq(Zx z2{HnD9pMc+#+ZGG`j`bdGZ-BIsLaRfj}W}#0*kK<;r#iSsAPk2CZI}=p1yhqKp%ut z4WM2nK?x}J@mYr=vvxg(s}^ZkTx0E#BZUZAwF%|e!OaF%)C>{GATl3G&yma0zP@M0 z9$km53E^b2iX}+1fT-!+Ygl$&qGbDS2TMH{(jxh8DcdW#Yd{_%Z5x}=^BGvsb73H$ zgw}SjHmkP*rtne5T~*}vqAxaT4>5yVSfpP$QxP030BSV=c+@~OleoLYv59jV0VKs) z=gysHh?;0^)Kdo%`$lCxf38bmym}qN%n*bhvZGmay$*aR!sPMNSbAe~ol~4cAG9Gn z_V)Hg;UPV99cHK~usD1Biu5TEsZH0vG(l4k6CGXj0TgSMuVw1&Y`SD1sZta;Hm(bw zuvMczihbK&0NLr@xN$?T;$a|$iC-JaGbUcMuGHo>&gLfc>{3TdG=iS>1hjq;I^kqE-|goZI61_VNkK`O?ORTD2VYJRv(=gpH} z`g$f()s>V&K~HrN^-$~x-O1Cr$SLQZa|n`+BRGk*Bm&lZVAYnJn_Cl*MFHUa*6m)v>CxMKCOH&pbz$ey(wyC!E_Skl_9whW41-91L!7bMxtg?*- zB|1b#OpcAc0B|Ouorn0TCWLuTT6c$9DpMt;?iB9?vPWWnKz5*qQ;f5B#}UT^&4TCh z*^zfR;~MRoH#OCGoV`Ob{w3#q&@|}9#R3yL{V_!l0I;l_9K80OwBoNHBYm%@0gAz! z)03Ce5(Z)y<2I`bPIh)#{Yo3PutdS9?;Kp5di*z*Cjou~5dg%zAbL)|e#j+f4<2L` z8{)5;m7xG?&RXOxoY@`kp#2JotMN8MTx@Ka)wWYl=>P?r0+hme_5=Z|ArBMLYOu2C z*jcemKyDCH9f<0Q=LlnJTIt4^4S2L;#OCNg0y?-dLu~v3n2=MG;59_Y-!}o zc12zwKu%V7&-h;whKGkK&C_L|_bQsqWSjrgXb2M+?PHJC=1`A{jd@hR?xNZ2BIYyq zoUL`%`MrrFp~|?UzvUxBdb%aW+jo-p8X*-RDE7WlwG4$sIKA8 zfn6YNGoAo8An4i0ktjG}3L+3r0f9m264Cvr$P2B6(=>su5(>1v9Eh+16OOx&dZ+6w}EL7CN0RNMJ0r|9A?PdXLFnhr## zvSy;L66Dt}uOmIJQDtagpsA~?o8ImyHp?h%78=eZYCuc|#g^qtv?(IY(yKEIV>%YJ zNpo6P;%D`!-Ex_obfxSlRN=sOPXEO+n@WH6Y4+4(uxr$*K%U6UE)wU@%RqzVai~u| z^w?M&xRHY>V;^u`de$@B3CjTp<=+0R>9NEp4w6#D27yR15+D#OGdMX!CC4EC6@`+; zcR1RC+P$j6?gAiB-nehR?3H5c6HSsTK^m*C`DvCM#hCaK+L%8As&mDV-0->5ItLc- z+0GXMU=>6XthD}-Ol5A$EgIVC`eDSF1wjwfhbv2;dAl{jU+_6p_?2;D@ z0kBXTZS+=bZ(RAd(mN@fJ=1dPibA=$*@H{cysBU>>7+|SBukWLnYJx}%T_K121`;= zf>tp`m7Y?E4_BVp`j=YIM=^<_^vphH!SzW=NkEOnx_ZP-4j`K&&=R?Bsf}6T!2D2V zx-yAkXP zOUusI+U2WPzonaA2lb0Bd4=5V_A@TF-DgAf4DNY(FKyx;!JvJ6<-$(AYuG{mgKz^+ z=9>;}QQH086GcsHp+@6L#=+{>L}(MLHpYFCQAfrf@Z+j@EdskM8B` z-Fl31UlkR!8`6!8R6``46f(Z}lC-p{er1f$)3s7GzBk9-7&tFwkn|xs(2FWQhG0P{ zC@RO|aJcgqGA4<{e9y%?V^HB8xnz3XZF}93fHl;|U}R~|5h2gOQemyMfbC~Z$Osn= zGN{_Mnac$Pz52P$4lr7jDI`MA3`eRaNW%hyf(jr22^5O{2M-<+oaj+iSXum35-lTh za|$@Ng<(&N!AjfGuhZ5PqR0mI4~V{M5`>JMop-`gzmohd zRT{)R29^o-MfsIf9V2asDghOC9_Yx3Svp2)K0dI-?;7=Fs}T4*By*sGk;N2wioVcX zc__lFJ2QC1Ys(gq6GM2{>@5X_;Di@kI#^9eO{j(Q@y^1Cybv}@E%f*A#<#G~B3dG# zmMIIv@`$hn+M(_JZCLLaDGPOraUK?U-~uTi5T?^(SAtxZot}#gT&T9T551G9;@Kvj z9hd%LH!fje9f+4&q4*z0d!*(ldmFp060_@YB;{k>qUE@Cu~o;yu&=w)g*;3!$U|el|v3h0XHa zYSGj~U+A1yqfL|ar(5K-sP0h-TK9MLDKm1`g`Qv-?c7dQ73K+f&Z?H*-C3;Utx;)i zIlWRUExE1056X1C3ac#GPYtjWkRXjTp=v(Us-}8r_XMW#m;vXWAJrRgY4DD}wDtcr z`0DC1(DAIUDiJzzN$0c{^<=Rap6NMLJXh~n^JTG9I-5=Vie9Q;L9EUBp`<#xO~gTg zHO%YeogV$hNX&kamE%<%6p62`UUMHta+pWpea&2OND*W@L!oF+owNPZHC65R)gTV7 zoyK;nvLoh=U%_EjM&u2={<{OJlH-B$%m$sx^(;QX?2t?B`t1Aj07Rfms*wmK&d5Ju zc6&fGtdvI<9yq=GIez`r36ayZr8hs^O5EF14VSx+VvsqYq*R@tWD;QOka{@bQpV#> zzd@c4%iI|XTLsFQ^+c?{yh8mCU-SYdGI9wdJo6#lbiD><_=Ju)K=tYZyU{_1q5zt$ z$Z2;0hA?!*LGBw+EkdGW;>(-eQuzZ^Um{QN9$3$l9&HSMUusdQr&d6CedhT~VreeH zs>`P0eCZr<6rMph>T@YI)j8XVR*~JccZ*$vKF1l8hArGMa@oeO+uD{3mhDu-k2N^{ zMD?mWIG*a{!*BPE-y_ZY!V3^&c(I|NZ{QWh_B~V$1($`7er)h ze168Zv>)7dJL-E7+yC;<^D5_%yQNA~5*Oz+H7#SDcNH(?uIu3^OGI>8oP^e%SsUfG z4VQiX&S+Y8|4Hw$3o^8S+M;Onrb+~NIh=&5=+~0k7gh=tvQ7}Ju6P(9oU9WrHkFXV z5tu5hu6+F1F%E&rWC>gklXPiC1zk{3kdx<#_o|q^)c#n#$3DNa$$1_>J~3;lloKr; zg#Z2b0h?1jvusirjNF3(LYe(Fd5rw_&g|lIl^my|@#yLfqiN;u_cAp%SHDeenQ~a@ zU_Kh8=1XRCbu~Jbn4w+NJTPFf;Kcpfc2)1k{U-N|Eh`xa>v~y#PlO@d#I#J`BD`$5 ztoy6(<8;p}0sFo2s?D-$&=D$CeO`v5$LYg%^obMW>Gh(gUd$Nbzr1EfT1s0b4lOM) zLEhN(Sn=RZ*DI2{_10M|%+20-&$=DL76cO8fB(I@zCJV{V5eZ21qW?&WcV}&eV1%* zFp>%9Ik!JfzFF9;xsGpdbIY0QnBP~)=~?Vc{v|xas2IvR)DeP>7MtCc$gG3I!y(a4 zO97vvzu#YmTAsFvvruTpn>W_|UW}Al{p0g0=EpOxC}j+6Gni{k10w>jzYMmB7H6@I zv7GV#;#7Ed+3~zji}?id1qp`5k;WRrW<*X7&A82bEtpL3-&ZHk^_Q)mTF)4Tp9+suV~)_TBG>(9F}JYLyiB3ICiVAWnn!qx6_S5XJ-$C<9tkkC zn~kYf6!!_+RbV#$GL1xGIfdyYZ|W)<;#x;LYzH~kdO}*=re&~2k|A;v#3u``b!U5K zAB;K0<&Exfwc_1-!t* z7a-4bCmkjU!ODGcUaO!23S~gO?6()C~lv{rliF9`0b;rDWBoPkR4jif84*Fxc jZv`|Lx$=K?TiB)fS?qTPCfji=aypc($}OzSJ^z0Nnnof} literal 0 HcmV?d00001 diff --git a/.graphics/pr-close.png b/.graphics/pr-close.png new file mode 100644 index 0000000000000000000000000000000000000000..28f6d81bbfbfd5876909cab6f286e2596d6b5cc2 GIT binary patch literal 24261 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 literal 0 HcmV?d00001 diff --git a/.graphics/pr-open.png b/.graphics/pr-open.png new file mode 100644 index 0000000000000000000000000000000000000000..8117993b306ffb63aa2819a4242ecff04f6126be GIT binary patch literal 26201 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 Im94}759Pd!RR910 literal 0 HcmV?d00001 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..6f5be04 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,132 @@ +# Contributor Covenant Code of Conduct + +## Overview + +Act in the best interests of the community, the government of British Columbia and your fellow collaborators. We welcome and appreciate your contributions, in any capacity. + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +derek.roberts@gmail.com. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/COMPLIANCE.yaml b/COMPLIANCE.yaml new file mode 100644 index 0000000..f18d0a7 --- /dev/null +++ b/COMPLIANCE.yaml @@ -0,0 +1,11 @@ +name: compliance +description: | + This document is used to track a projects PIA and STRA + compliance. +spec: + - name: PIA + status: not-required + last-updated: '2022-01-26T23:07:19.992Z' + - name: STRA + status: not-required + last-updated: '2022-01-26T23:07:19.992Z' diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..5628e47 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,9 @@ +# How to contribute + +Government employees, public and members of the private sector are encouraged to contribute to the repository by **creating a branch and submitting a pull request**. Outside forks come with permissions complications, but can still be accepted. + +(If you are new to GitHub, you might start with a [basic tutorial](https://help.github.com/articles/set-up-git) and check out a more detailed guide to [pull requests](https://help.github.com/articles/using-pull-requests/).) + +Pull requests will be evaluated by the repository guardians on a schedule and if deemed beneficial will be committed to the main branch. + +All contributors retain the original copyright to their stuff, but by contributing to this project, you grant a world-wide, royalty-free, perpetual, irrevocable, non-exclusive, transferable license to all users **under the terms of the [license](./LICENSE.md) under which this project is distributed**. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..87b08a0 --- /dev/null +++ b/README.md @@ -0,0 +1,340 @@ +[![MIT License](https://img.shields.io/github/license/bcgov/quickstart-openshift.svg)](/LICENSE.md) +[![Lifecycle](https://img.shields.io/badge/Lifecycle-Experimental-339999)](https://github.com/bcgov/repomountie/blob/master/doc/lifecycle-badges.md) + +[![Merge](https://github.com/bcgov/quickstart-openshift/actions/workflows/merge.yml/badge.svg)](https://github.com/bcgov/quickstart-openshift/actions/workflows/merge.yml) +[![Analysis](https://github.com/bcgov/quickstart-openshift/actions/workflows/analysis.yml/badge.svg)](https://github.com/bcgov/quickstart-openshift/actions/workflows/analysis.yml) +[![Scheduled](https://github.com/bcgov/quickstart-openshift/actions/workflows/scheduled.yml/badge.svg)](https://github.com/bcgov/quickstart-openshift/actions/workflows/scheduled.yml) + +##### Frontend (JavaScript/TypeScript) +[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_frontend&metric=bugs)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_frontend) +[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_frontend&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_frontend) +[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_frontend&metric=coverage)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_frontend) +[![Duplicated Lines](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_frontend&metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_frontend) +[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_frontend&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_frontend) +[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_frontend&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_frontend) +[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_frontend&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_frontend) +[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_frontend&metric=sqale_index)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_frontend) +[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_frontend&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_frontend) + +##### Backend (JavaScript/TypeScript) +[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_backend&metric=bugs)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_backend) +[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_backend&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_backend) +[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_backend&metric=coverage)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_backend) +[![Duplicated Lines](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_backend&metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_backend) +[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_backend&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_backend) +[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_backend&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_backend) +[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_backend&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_backend) +[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_backend&metric=sqale_index)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_backend) +[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=quickstart-openshift_backend&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=quickstart-openshift_backend) + +# QuickStart for OpenShift + +## Pull Request-Based Workflows with Sample Stack + +The is a fully functional set of [GitHub Actions](https://github.com/bcgov/quickstart-openshift/actions) workflows and a starter application stack intended to help Agile teams hit the ground running. + +Features: +* Pull Request-based pipeline +* Sandboxed development environments +* Gateable production deployments +* Container publishing (ghcr.io) and importing (OpenShift) +* Security, vulnerability, infrastructure, and container scan tools +* Automatic dependency patching available from [bcgov/nr-renovate](https://github.com/bcgov/nr-renovate) +* Enforced code reviews and workflow jobs (pass|fail) +* Helm Package Manager for atomic deployments +* Sample application stack: + * Database: Postgres, PostGIS, backups + * Frontend: TypeScript, Caddy Server + * Backend: TypeScript, Nest.js + * Alternative backends for [Java/Quarkus, Go/Fiber and Python/FastAPI](https://github.com/bcgov/quickstart-openshift-backends) + +# Table of Contents + +* [Setup](#Setup) + * [Prerequisites](#Prerequisites) + * [Using this Template](#Using-this-Template) + * [Secrets and Variables](#Secrets-and-Variables) + * [Environments](#environments) + * [Updating Dependencies](#Updating-Dependencies) + * [Repository Configuration](#Repository-Configuration) +* [Workflows](#Workflows) + * [Pull Request](#Pull-Request) + * [Analysis](#Analysis) + * [Pull Request Closed](#Pull-Request-Closed) + * [Merge](#Merge) +* [App Stack](#App-Stack) + * [Starter](#Starter) + * [Pluggable Backends](#Pluggable-Backends) + * [SchemaSpy](#SchemaSpy) +* [Resources](#Resources) +* [Contributing](#Contributing) + +# Setup + +Initial setup is intended to take an hour or less. This depends greatly on intended complexity, features selected/excluded and outside cooperation. + +## Prerequisites + +The following are required: + +* BC Government IDIR accounts for anyone submitting requests +* GitHub accounts for all participating team members + * [Sign Up is free](https://github.com/signup) +* Membership in the BCGov GitHub organization + * Provide GitHub IDs to [BCGov's Just Ask](https://just-ask.developer.gov.bc.ca/) +* Project namespaces: + * OpenShift * [Register a New Project](https://registry.developer.gov.bc.ca) + +## Using this Template + +Create a new repository using this repository as a template. + +* Select bcgov/quickstart-openshift under Repository template +* Check Codecov | Code Coverage to grant access + +![](./.graphics/template.png) + +## Secrets and Variables + +Variables and secrets are consumed by workflows. Environments provide their own values, overriding default sets. + +Secrets are hidden from logs and outputs, while variables are visible. Using secrets exclusively can make troubeshooting more difficult. + +Note: Dependabot, which we don't recommend as highly as Renovate, requires its own set of variables. + +### Secrets Values + +> Click Settings > Secrets and Variables > Actions > Secrets > New repository secret + +**GITHUB_TOKEN** + +Default token. Replaced every workflow run, available to all workflows. +* Consume: `{{ secrets.GITHUB_TOKEN }}` + +**OC_TOKEN** + +OpenShift token, different for every project/namespace. This guide assumes your OpenShift platform team has provisioned a pipeline account. + +* Consume: `{{ secrets.OC_TOKEN }}` + +Locate an OpenShift pipeline token: + +1. Login to your OpenShift cluster, e.g.: [Gold](https://console.apps.silver.devops.gov.bc.ca/) or [Silver](https://console.apps.silver.devops.gov.bc.ca/) +2. Select your DEV namespace +3. Click Workloads > Secrets (under Workloads for Administrator view) +4. Select `pipeline-token-...` or a similarly privileged token +5. Under Data, copy `token` +6. Paste into the GitHub Secret `OC_TOKEN` + +**SONAR_TOKEN(s)** + +If SonarCloud is being used each application will have its own token. Single-application repositories typically use `${{ secrets.SONAR_TOKEN }}`, while monorepos use multiple, e.g. `${{ secrets.SONAR_TOKEN_BACKEND }}`, `${{ secrets.SONAR_TOKEN_FRONTEND }}`. + +BC Government employees can request SonarCloud projects by creating an [issue](https://github.com/BCDevOps/devops-requests/issues/new/choose) with BCDevOps. Please make sure to request a monorepo with component names (e.g. backend, frontend), which may not be explained in their directions. + +### Variable Values + +> Click Settings > Secrets and Variables > Actions > Variables > New repository variable + +**OC_SERVER** + +OpenShift server address. +* Consume: `{{ vars.OC_SERVER }}` +* Value: `https://api.gold.devops.gov.bc.ca:6443` or `https://api.silver.devops.gov.bc.ca:6443` + +**OC_NAMESPACE** + +OpenShift project/namespace. Provided by your OpenShift platform team. + +* Consume: `{{ vars.OC_NAMESPACE }}` +* Value: format `abc123-dev | test | prod` + +## Environments + +Environments are groups of secrets and variables that can be gatekept. This includes limting access to certain users or requiring manual approval before a requesting workflow can run. Environment values override any default values. + +For pull requests and development surrounding lower-level, sandboxed environments it is best not to use an environment at all. Higher level environments, like TEST and PROD, will override those values as necessary. + +> Click Settings > Environments > New environment + +Environments provide a [number of features](https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment), including: + +* Required reviewers +* Wait timer +* Deployment branches + +## Updating Dependencies + +Dependabot and Mend Renovate can both provide dependency updates using pull requests. Dependabot is simpler to configure, while Renovate is much more configurable and lighter on resources. + +### Self-Hosted Renovate + +Renovate is provided by DevOps at the Natural Resources. Support is best effort. It is our recommended path, due to being highly configurable and light on resources. + +To opt-in: + * Provide our bot, `bcgov-renovate`, write access to a repository + * Sign up with us by [pick one]: + * Add your repository to our [list](https://github.com/bcgov/nr-renovate/blob/main/renovate.json#L21) using a pull request + * OR write us [an issue](https://github.com/bcgov/nr-renovate/issues/new/choose) providing your repository name + +### Dependabot + +Dependabot is configurable from the following file. More information is available [here](https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot). + +Please be aware that Dependabot requires its own set of secrets to be configured. Navigation: + +> Click Settings > Secrets and Variables > Actions > Variables > New repository variable + +## Repository Configuration + +### Pull Request Handling + +Squash merging is recommended for simplified history and ease of rollback. Cleaning up merged branches is recommended for your DevOps Specialist's fragile sanity. + +> Click Settings > General (selected automatically) + +Pull Requests: + +* `[uncheck] Allow merge commits` +* `[check] Allow squash merging` + * `Default to pull request title` +* `[uncheck] Allow rebase merging` +* `[check] Always suggest updating pull request branches` +* `[uncheck] Allow auto-merge` +* `[check] Automatically delete head branches` + +### Packages + +Packages are available from your repository (link on right). All should have visibility set to public for the workflows to run successfully. + +E.g. https://github.com/bcgov/quickstart-openshift/packages + +### Branch Protection + +This is required to prevent direct pushes and merges to the default branch. These steps must be run after one full pull request pipeline has been run. + +1. Select Settings (gear, top right) *> Branches (under Code and Automation) +2. Click `Add Rule` or edit an existing rule +3. Under `Protect matching branches` specify the following: + * Branch name pattern: `main` + * `[check] Require a pull request before merging` + * `[check] Require approvals` (default = 1) + * `[check] Dismiss stale pull request approvals when new commits are pushed` + * `[check] Require review from Code Owners` + * `[check] Require status checks to pass before merging` + * `[check] Require branches to be up to date before merging` + * `Status checks that are required`: + * Select checks as appropriate, e.g. Build x, Deploy y + * `[check] Require conversation resolution before merging` + * `[check] Include administrators` (optional) + +![](./.graphics/branch-protection.png) + +### Adding Team Members + +Don't forget to add your team members! + +1. Select Settings (gear, top right) *> Collaborators and teams (under `Access`) +2. Click `Add people` or `Add teams` +3. Use the search box to find people or teams +4. Choose a role (read, triage, write, maintain, admin) +5. Click Add + +# Workflows + +## Pull Request + +Runs on pull request submission. + +* Provides safe, sandboxed deployment environments +* Build action pushes to GitHub Container Registry (ghcr.io) +* Build triggers select new builds vs reusing builds +* Deployment triggers to only deploy when changes are made +* Deployment includes curl checks and optional penetration tests +* Other checks and updates as required + +![](.graphics/pr-open.png) + +## Analysis + +Runs on pull request submission or merge to the default branch. + +* Unit tests (should include coverage) +* SonarCloud coverage and analysis +* CodeQL/GitHub security reporting +* Trivy password, vulnerability and security scanning + +![](.graphics/analysis.png) + +## Pull Request Closed + +Runs on pull request close or merge. + +* Cleans up OpenShift objects/artifacts +* Merge promotes successful build images to TEST + +![](.graphics/pr-close.png) + +## Merge + +Runs on merge to main branch. + +* Code scanning and reporting to GitHub Security overview +* Zero-downtime* TEST deployment +* Penetration tests on TEST deployment +* Zero-downtime* PROD deployment +* Labels successful deployment images as PROD + +\* excludes database changes + +![](.graphics/merge.png) + +# App Stack + +## Starter + +The starter stack includes a (React, MUI, Vite, Caddy) frontend, Pluggable backend(Nest/Node, Quarkus/Java On Native, FastAPI/Python, Fiber/Golang) and postgres database. See subfolder for source, including Dockerfiles and OpenShift templates. + +Features: +* [TypeScript](https://www.typescriptlang.org/) strong-typing for JavaScript +* [NestJS](https://docs.nestjs.com) Nest/Node backend and frontend +* [Flyway](https://flywaydb.org/) database migrations +* [Postgres](https://www.postgresql.org/) or [PostGIS](https://postgis.net/) database +* [backup-container](https://github.com/BCDevOps/backup-container) provided by BCDevOps + +Postgres is default. Switch to PostGIS by copying the appropriate Dockerfile to `./database`: + +> cp ./database/postgis/Dockerfile ./database + +## Pluggable Backends + +This quickstart works with more than just JavaScript. Please check out our pluggable [backends repository](https://github.com/bcgov/quickstart-openshift-backends). Flyway-based database migrations for each are included. + +Supported languages: +* [Go with Fiber](https://github.com/bcgov/quickstart-openshift-backends/tree/main/backend-go) +* [Java with Quarkus, Cloud Native](https://github.com/bcgov/quickstart-openshift-backends/tree/main/backend-go) +* [Python with FastAPI](https://github.com/bcgov/quickstart-openshift-backends/tree/main/backend-py) + +## SchemaSpy + +The database documentation is created and deployed to GitHub pages. See [here](https://bcgov.github.io/quickstart-openshift/schemaspy/index.html). + +After a full workflow run and merge can been run, please do the following: + +1. Select Settings (gear, top right) *> Pages (under `Code and automation`) +2. Click `Branch` or `Add teams` +3. Select `gh-pages` +4. Click `Save` + +![img.png](.graphics/schemaspy.png) + +# Resources + +This repository is provided by NRIDS Architecture and Forestry Digital Services, courtesy of the Government of British Columbia. + +* NRID's [Kickstarter Guide](https://github.com/bcgov/nr-arch-templates/blob/main/confluence/pages/Agile_Team_Kickstarter/README.md) (via. Confluence, links may be internal) +* [OpenShift Backends for Go, Java and Python](https://github.com/bcgov/quickstart-openshift-backends) + +# Contributing + +Please contribute your ideas! [Issues](/../../issues) and [Pull Requests](/../../pulls) are appreciated. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..d45a162 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,10 @@ +# Security Policy + +## Supported Versions + +This product currently has no support and is experimental. That could change in future. + + +## Reporting a Vulnerability + +Please report any issues or vulerabilities with an [issue](https://github.com/bcgov/quickstart-openshift/issues). diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..a1108a5 --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,28 @@ +# Build static files +# Node Bullseye has npm +FROM node:20.10.0-bullseye-slim AS build + +# Install packages, build and keep only prod packages +WORKDIR /app +COPY *.json ./ +COPY ./src ./src +RUN npm ci --ignore-scripts --no-update-notifier --omit=dev && \ + npm run build + +# Deploy container +# Distroless has node, but not npm +FROM gcr.io/distroless/nodejs20-debian11:nonroot +ENV NODE_ENV production + +# Copy over app +WORKDIR /app +COPY --from=build /app/node_modules ./node_modules +COPY --from=build /app/dist ./dist + +# Ports, health check and non-root user +EXPOSE 3000 +HEALTHCHECK --interval=30s --timeout=3s CMD curl -f http://localhost/:3000/api || exit 1 +USER app + +# Start up command with 50MB of heap size, each application needs to determine what is the best value. DONT use default as it is 4GB. +CMD ["--max-old-space-size=50", "/app/dist/main"] diff --git a/backend/nest-cli.json b/backend/nest-cli.json new file mode 100644 index 0000000..56167b3 --- /dev/null +++ b/backend/nest-cli.json @@ -0,0 +1,4 @@ +{ + "collection": "@nestjs/schematics", + "sourceRoot": "src" +} diff --git a/backend/package-lock.json b/backend/package-lock.json new file mode 100644 index 0000000..f15f35e --- /dev/null +++ b/backend/package-lock.json @@ -0,0 +1,11402 @@ +{ + "name": "backend", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "license": "Apache-2.0", + "dependencies": { + "@nestjs/cli": "^10.1.16", + "@nestjs/common": "^10.0.0", + "@nestjs/config": "^3.0.0", + "@nestjs/core": "^10.0.0", + "@nestjs/platform-express": "^10.0.0", + "@nestjs/schematics": "^10.0.0", + "@nestjs/swagger": "^7.0.3", + "@nestjs/testing": "^10.0.0", + "@nestjs/typeorm": "^10.0.0", + "dotenv": "^16.0.1", + "helmet": "^7.0.0", + "nest-winston": "^1.9.4", + "pg": "^8.11.3", + "reflect-metadata": "^0.1.13", + "rimraf": "^5.0.0", + "rxjs": "^7.8.0", + "swagger-ui-express": "^5.0.0", + "typeorm": "^0.3.17", + "winston": "^3.11.0" + }, + "devDependencies": { + "@types/express": "^4.17.15", + "@types/jest": "^29.0.0", + "@types/node": "^20.0.0", + "@types/supertest": "^2.0.11", + "@typescript-eslint/eslint-plugin": "^6.5.0", + "@typescript-eslint/parser": "^6.5.0", + "eslint": "^8.32.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^9.0.0", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-promise": "^6.1.1", + "istanbul-badges-readme": "^1.8.4", + "jest": "^29.7.0", + "jest-badges": "^0.1.3", + "jest-sonar-reporter": "^2.0.0", + "lint-staged": "^15.0.2", + "prettier": "^3.0.3", + "source-map-support": "^0.5.21", + "supertest": "^6.3.3", + "ts-jest": "^29.1.1", + "ts-loader": "^9.5.0", + "ts-node": "^10.9.1", + "tsconfig-paths": "^4.2.0", + "typescript": "^5.2.2" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.8.tgz", + "integrity": "sha512-PTGozYvh1Bin5lB15PwcXa26Ayd17bWGLS3H8Rs0s+04mUDvfNofmweaX1LgumWWy3nCUTDuwHxX10M3G0wE2g==", + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "picomatch": "2.3.1", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.2.8.tgz", + "integrity": "sha512-MBiKZOlR9/YMdflALr7/7w/BGAfo/BGTrlkqsIB6rDWV1dYiCgxI+033HsiNssLS6RQyCFx/e7JA2aBBzu9zEg==", + "dependencies": { + "@angular-devkit/core": "16.2.8", + "jsonc-parser": "3.2.0", + "magic-string": "0.30.1", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics-cli": { + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-16.2.8.tgz", + "integrity": "sha512-EXURJCzWTVYCipiTT4vxQQOrF63asOUDbeOy3OtiSh7EwIUvxm3BPG6hquJqngEnI/N6bA75NJ1fBhU6Hrh7eA==", + "dependencies": { + "@angular-devkit/core": "16.2.8", + "@angular-devkit/schematics": "16.2.8", + "ansi-colors": "4.1.3", + "inquirer": "8.2.4", + "symbol-observable": "4.0.0", + "yargs-parser": "21.1.1" + }, + "bin": { + "schematics": "bin/schematics.js" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/inquirer": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@angular-devkit/schematics-cli/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/@babel/code-frame": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", + "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/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/@babel/code-frame/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/@babel/code-frame/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/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/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/@babel/compat-data": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz", + "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.4", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", + "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.4", + "@babel/types": "^7.23.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "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==", + "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==", + "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==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "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==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", + "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", + "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-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "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==", + "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/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz", + "integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz", + "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.4", + "@babel/generator": "^7.23.4", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.4", + "@babel/types": "^7.23.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/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/@babel/types": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", + "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "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/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "devOptional": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "devOptional": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@eslint/js": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", + "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/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/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/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/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "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/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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/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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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/@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": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.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/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lukeed/csprng": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", + "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@nestjs/cli": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-10.2.1.tgz", + "integrity": "sha512-CAJAQwmxFZfB3RTvqz/eaXXWpyU+mZ4QSqfBYzjneTsPgF+uyOAW3yQpaLNn9Dfcv39R9UxSuAhayv6yuFd+Jg==", + "dependencies": { + "@angular-devkit/core": "16.2.8", + "@angular-devkit/schematics": "16.2.8", + "@angular-devkit/schematics-cli": "16.2.8", + "@nestjs/schematics": "^10.0.1", + "chalk": "4.1.2", + "chokidar": "3.5.3", + "cli-table3": "0.6.3", + "commander": "4.1.1", + "fork-ts-checker-webpack-plugin": "9.0.2", + "glob": "10.3.10", + "inquirer": "8.2.6", + "node-emoji": "1.11.0", + "ora": "5.4.1", + "os-name": "4.0.1", + "rimraf": "4.4.1", + "shelljs": "0.8.5", + "source-map-support": "0.5.21", + "tree-kill": "1.2.2", + "tsconfig-paths": "4.2.0", + "tsconfig-paths-webpack-plugin": "4.1.0", + "typescript": "5.2.2", + "webpack": "5.89.0", + "webpack-node-externals": "3.0.0" + }, + "bin": { + "nest": "bin/nest.js" + }, + "engines": { + "node": ">= 16.14" + }, + "peerDependencies": { + "@swc/cli": "^0.1.62", + "@swc/core": "^1.3.62" + }, + "peerDependenciesMeta": { + "@swc/cli": { + "optional": true + }, + "@swc/core": { + "optional": true + } + } + }, + "node_modules/@nestjs/cli/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@nestjs/cli/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@nestjs/cli/node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@nestjs/cli/node_modules/rimraf": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", + "dependencies": { + "glob": "^9.2.0" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@nestjs/cli/node_modules/rimraf/node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@nestjs/cli/node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/@nestjs/common": { + "version": "10.2.10", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.2.10.tgz", + "integrity": "sha512-fwAk931rjW8CNH2Mgwawq/7HWHH1dxkOLdcgs7U52ddLk8CtHXjejm1cbNahewlSbNhvlOl7y1STLHutE6sUqw==", + "dependencies": { + "iterare": "1.2.1", + "tslib": "2.6.2", + "uid": "2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "class-transformer": "*", + "class-validator": "*", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/config": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@nestjs/config/-/config-3.1.1.tgz", + "integrity": "sha512-qu5QlNiJdqQtOsnB6lx4JCXPQ96jkKUsOGd+JXfXwqJqZcOSAq6heNFg0opW4pq4J/VZoNwoo87TNnx9wthnqQ==", + "dependencies": { + "dotenv": "16.3.1", + "dotenv-expand": "10.0.0", + "lodash": "4.17.21", + "uuid": "9.0.0" + }, + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", + "reflect-metadata": "^0.1.13" + } + }, + "node_modules/@nestjs/core": { + "version": "10.2.10", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.2.10.tgz", + "integrity": "sha512-+ckOI6BPi2ZMHikT9MCG4ctHDc4OnjhoIytrn7f2AYMMXI4bnutJhqyQKc30VDka5x3Wq6QAD57pgSP7y+JjJg==", + "hasInstallScript": true, + "dependencies": { + "@nuxtjs/opencollective": "0.3.2", + "fast-safe-stringify": "2.1.1", + "iterare": "1.2.1", + "path-to-regexp": "3.2.0", + "tslib": "2.6.2", + "uid": "2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^10.0.0", + "@nestjs/microservices": "^10.0.0", + "@nestjs/platform-express": "^10.0.0", + "@nestjs/websockets": "^10.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 + } + } + }, + "node_modules/@nestjs/mapped-types": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nestjs/mapped-types/-/mapped-types-2.0.3.tgz", + "integrity": "sha512-40Zdqg98lqoF0+7ThWIZFStxgzisK6GG22+1ABO4kZiGF/Tu2FE+DYLw+Q9D94vcFWizJ+MSjNN4ns9r6hIGxw==", + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", + "class-transformer": "^0.4.0 || ^0.5.0", + "class-validator": "^0.13.0 || ^0.14.0", + "reflect-metadata": "^0.1.12" + }, + "peerDependenciesMeta": { + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/platform-express": { + "version": "10.2.10", + "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.2.10.tgz", + "integrity": "sha512-U4KDgtMjH8TqEvt0RzC/POP8ABvL9bYoCScvlGtFSKgVGaMLBKkZ4+jHtbQx6qItYSlBBRUuz/dveMZCObfrkQ==", + "dependencies": { + "body-parser": "1.20.2", + "cors": "2.8.5", + "express": "4.18.2", + "multer": "1.4.4-lts.1", + "tslib": "2.6.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^10.0.0", + "@nestjs/core": "^10.0.0" + } + }, + "node_modules/@nestjs/schematics": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-10.0.3.tgz", + "integrity": "sha512-2BRujK0GqGQ7j1Zpz+obVfskDnnOeVKt5aXoSaVngKo8Oczy8uYCY+R547TQB+Kf35epdfFER2pVnQrX3/It5A==", + "dependencies": { + "@angular-devkit/core": "16.2.8", + "@angular-devkit/schematics": "16.2.8", + "comment-json": "4.2.3", + "jsonc-parser": "3.2.0", + "pluralize": "8.0.0" + }, + "peerDependencies": { + "typescript": ">=4.8.2" + } + }, + "node_modules/@nestjs/swagger": { + "version": "7.1.16", + "resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-7.1.16.tgz", + "integrity": "sha512-f9KBk/BX9MUKPTj7tQNYJ124wV/jP5W2lwWHLGwe/4qQXixuDOo39zP55HIJ44LE7S04B7BOeUOo9GBJD/vRcw==", + "dependencies": { + "@nestjs/mapped-types": "2.0.3", + "js-yaml": "4.1.0", + "lodash": "4.17.21", + "path-to-regexp": "3.2.0", + "swagger-ui-dist": "5.9.1" + }, + "peerDependencies": { + "@fastify/static": "^6.0.0", + "@nestjs/common": "^9.0.0 || ^10.0.0", + "@nestjs/core": "^9.0.0 || ^10.0.0", + "class-transformer": "*", + "class-validator": "*", + "reflect-metadata": "^0.1.12" + }, + "peerDependenciesMeta": { + "@fastify/static": { + "optional": true + }, + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/testing": { + "version": "10.2.10", + "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-10.2.10.tgz", + "integrity": "sha512-IVLUnPz/+fkBtPATYfqTIP+phN9yjkXejmj+JyhmcfPJZpxBmD1i9VSMqa4u54l37j0xkGPscQ0IXpbhqMYUKw==", + "dependencies": { + "tslib": "2.6.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^10.0.0", + "@nestjs/core": "^10.0.0", + "@nestjs/microservices": "^10.0.0", + "@nestjs/platform-express": "^10.0.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + } + } + }, + "node_modules/@nestjs/typeorm": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@nestjs/typeorm/-/typeorm-10.0.1.tgz", + "integrity": "sha512-YVFYL7D25VAVp5/G+KLXIgsRfYomA+VaFZBpm2rtwrrBOmkXNrxr7kuI2bBBO/Xy4kKBDe6wbvIVVFeEA7/ngA==", + "dependencies": { + "uuid": "9.0.1" + }, + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", + "@nestjs/core": "^8.0.0 || ^9.0.0 || ^10.0.0", + "reflect-metadata": "^0.1.13", + "rxjs": "^7.2.0", + "typeorm": "^0.3.0" + } + }, + "node_modules/@nestjs/typeorm/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nuxtjs/opencollective": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", + "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", + "dependencies": { + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.1" + }, + "bin": { + "opencollective": "bin/opencollective.js" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/utils": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", + "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "fast-glob": "^3.3.0", + "is-glob": "^4.0.3", + "open": "^9.1.0", + "picocolors": "^1.0.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@sqltools/formatter": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz", + "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==" + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "devOptional": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "devOptional": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "devOptional": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "devOptional": true + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cookiejar": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.5.tgz", + "integrity": "sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==", + "dev": true + }, + "node_modules/@types/eslint": { + "version": "8.44.7", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.7.tgz", + "integrity": "sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.10", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.10.tgz", + "integrity": "sha512-tE4yxKEphEyxj9s4inideLHktW/x6DwesIwWZ9NN1FKf9zbJYsnhBoA9vrHA/IuIOKwPa5PcFBNV4lpMIOEzyQ==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.9.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.4.tgz", + "integrity": "sha512-wmyg8HUhcn6ACjsn8oKYjkN/zUzQeNtMy44weTJSM6p4MMzEOuKbA3OjJ267uPCOW7Xex9dyrNTful8XTQYoDA==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/qs": { + "version": "6.9.10", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", + "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/superagent": { + "version": "4.1.22", + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.22.tgz", + "integrity": "sha512-GMaOrnnUsjChvH8zlzdDPARRXky8bU3E8xsU/fOclgqsINekbwDu1+wzJzJaGzZP91SGpOutf5Te5pm5M/qCWg==", + "dev": true, + "dependencies": { + "@types/cookiejar": "*", + "@types/node": "*" + } + }, + "node_modules/@types/supertest": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.16.tgz", + "integrity": "sha512-6c2ogktZ06tr2ENoZivgm7YnprnhYE4ZoXGMY+oA7IuAf17M8FWvujXZGmxLv8y0PTyts4x5A+erSwVUFA8XSg==", + "dev": true, + "dependencies": { + "@types/superagent": "*" + } + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==" + }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.12.0.tgz", + "integrity": "sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.12.0", + "@typescript-eslint/type-utils": "6.12.0", + "@typescript-eslint/utils": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.12.0.tgz", + "integrity": "sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.12.0", + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/typescript-estree": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz", + "integrity": "sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.12.0.tgz", + "integrity": "sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.12.0", + "@typescript-eslint/utils": "6.12.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.12.0.tgz", + "integrity": "sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz", + "integrity": "sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.12.0.tgz", + "integrity": "sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.12.0", + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/typescript-estree": "6.12.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz", + "integrity": "sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.12.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@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/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.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "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==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", + "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", + "devOptional": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "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-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "engines": { + "node": ">=6" + } + }, + "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-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==", + "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": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/app-root-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz", + "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "devOptional": 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/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-timsort": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", + "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "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": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.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.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "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-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "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/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "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/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "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.2", + "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/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "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/browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "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/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "peer": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.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/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "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/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001563", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz", + "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "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/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "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/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.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dependencies": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/cli-highlight/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/cli-highlight/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/cli-highlight/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/cli-highlight/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/cli-spinners": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz", + "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/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==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/cli-truncate/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==", + "dev": true + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/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/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.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/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color/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/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "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/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/comment-json": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", + "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "dependencies": { + "array-timsort": "^1.0.3", + "core-util-is": "^1.0.3", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "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/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==", + "dev": true + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + "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-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "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": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true + }, + "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/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "devOptional": true + }, + "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/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "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/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "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.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-browser/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/default-browser/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/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==", + "dev": true + }, + "node_modules/default-browser/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "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/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/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/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "devOptional": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, + "node_modules/dotenv-expand": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", + "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", + "engines": { + "node": ">=12" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.590", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.590.tgz", + "integrity": "sha512-hohItzsQcG7/FBsviCYMtQwUSWvVF7NVqPOnJCErWsAshsP/CR2LAXdmq276RbESNdhxiAq5/vRo1g2pxGXVww==" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "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/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "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==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.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==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==" + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "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": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", + "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.54.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "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.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "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-compat-utils": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", + "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-airbnb-base/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", + "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "dev": true, + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-es-x": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.4.0.tgz", + "integrity": "sha512-WJa3RhYzBtl8I37ebY9p76s61UhZyi4KaFOnX2A5r32RPazkXj5yoT6PGnD02dhwzEUj0KwsUdqfKDd/OuvGsw==", + "dev": true, + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.6.0", + "eslint-compat-utils": "^0.1.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/eslint-plugin-import/node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-import/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/eslint-plugin-n": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.3.1.tgz", + "integrity": "sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==", + "dev": true, + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "builtins": "^5.0.1", + "eslint-plugin-es-x": "^7.1.0", + "get-tsconfig": "^4.7.0", + "ignore": "^5.2.4", + "is-builtin-module": "^3.2.1", + "is-core-module": "^2.12.1", + "minimatch": "^3.1.2", + "resolve": "^1.22.2", + "semver": "^7.5.3" + }, + "engines": { + "node": ">=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-node": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", + "dev": true, + "dependencies": { + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "peerDependencies": { + "eslint": ">=5.16.0" + } + }, + "node_modules/eslint-plugin-node/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz", + "integrity": "sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.5" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "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.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "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/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": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/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==", + "dev": true + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "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" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "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" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/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": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/express/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/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "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-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "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-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": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.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.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "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" + }, + "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "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.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flat-cache/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/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-9.0.2.tgz", + "integrity": "sha512-Uochze2R8peoN1XqlSi/rGUkDQpRogtLFocP9+PGu68zk1BDAKXfdeCdyVZpgTk8V8WFVQXdEz426VKjXLO1Gg==", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cosmiconfig": "^8.2.0", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">=12.13.0", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "typescript": ">3.6.0", + "webpack": "^5.11.0" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "dev": true, + "dependencies": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "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/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "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==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "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-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "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-tsconfig": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "dev": true, + "peer": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "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==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "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/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-own-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", + "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "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==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/helmet": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-7.1.0.tgz", + "integrity": "sha512-g+HZqgfbpXdCkme/Cd/mZkV0aV3BZZZSugecH03kl38m/Kmdx8jKjBikpDj2cr+Iynv4KpYEviojNdTJActJAg==", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "engines": { + "node": "*" + } + }, + "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-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/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/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/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "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-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "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/inquirer": { + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "engines": { + "node": ">= 0.10" + } + }, + "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-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "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": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "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==", + "dev": true, + "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-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "peer": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "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==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "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": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "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.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "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-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-wsl/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, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/istanbul-badges-readme": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/istanbul-badges-readme/-/istanbul-badges-readme-1.8.5.tgz", + "integrity": "sha512-VEh90ofuufPZIbLeDF2g14wpe0sebhirG0xHooYKpNPYOkGXm6y+HJFotQqIzCg0NmbCnlKnOPL1B2oxG7/piA==", + "dev": true, + "bin": { + "istanbul-badges-readme": "lib/index.js" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "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": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "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-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterare": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", + "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-badges": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/jest-badges/-/jest-badges-0.1.3.tgz", + "integrity": "sha512-7Mc3oacFiSmUi6iDtPT1fAXkjnQhh/q1g3+lUT+Ldz8zwK0ZrNbnE25HHTtfXl5pYZagMseSuNaQj59j3bVYow==", + "dev": true, + "dependencies": { + "istanbul-lib-report": "^3.0.0" + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-sonar-reporter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jest-sonar-reporter/-/jest-sonar-reporter-2.0.0.tgz", + "integrity": "sha512-ZervDCgEX5gdUbdtWsjdipLN3bKJwpxbvhkYNXTAYvAckCihobSLr9OT/IuyNIRT1EZMDDwR6DroWtrq+IL64w==", + "dev": true, + "dependencies": { + "xml": "^1.0.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "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": "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/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-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "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-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-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" + }, + "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/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "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/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" + }, + "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.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "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/lint-staged": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.1.0.tgz", + "integrity": "sha512-ZPKXWHVlL7uwVpy8OZ7YQjYDAuO5X4kMh0XgZvPNxLcCCngd0PO5jKQyy3+s4TL2EnHoIXIzP1422f/l3nZKMw==", + "dev": true, + "dependencies": { + "chalk": "5.3.0", + "commander": "11.1.0", + "debug": "4.3.4", + "execa": "8.0.1", + "lilconfig": "2.1.0", + "listr2": "7.0.2", + "micromatch": "4.0.5", + "pidtree": "0.6.0", + "string-argv": "0.3.2", + "yaml": "2.3.4" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": ">=18.12.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/lint-staged/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/lint-staged/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/lint-staged/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-7.0.2.tgz", + "integrity": "sha512-rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g==", + "dev": true, + "dependencies": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^5.0.1", + "rfdc": "^1.3.0", + "wrap-ansi": "^8.1.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/listr2/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==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/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==", + "dev": true + }, + "node_modules/listr2/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "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.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz", + "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==", + "dev": true, + "dependencies": { + "ansi-escapes": "^5.0.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^5.0.0", + "strip-ansi": "^7.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "dev": true, + "dependencies": { + "type-fest": "^1.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/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==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/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==", + "dev": true + }, + "node_modules/log-update/node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/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==", + "dev": true + }, + "node_modules/log-update/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/logform": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.6.0.tgz", + "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/logform/node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/macos-release": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.1.tgz", + "integrity": "sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/magic-string": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", + "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "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==", + "devOptional": 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/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "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": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "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==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "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.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.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/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.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "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/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-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4-lts.1.tgz", + "integrity": "sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "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/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "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/nest-winston": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/nest-winston/-/nest-winston-1.9.4.tgz", + "integrity": "sha512-ilEmHuuYSAI6aMNR120fLBl42EdY13QI9WRggHdEizt9M7qZlmXJwpbemVWKW/tqRmULjSx/otKNQ3GMQbfoUQ==", + "dependencies": { + "fast-safe-stringify": "^2.1.1" + }, + "peerDependencies": { + "@nestjs/common": "^5.0.0 || ^6.6.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0", + "winston": "^3.0.0" + } + }, + "node_modules/node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==" + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + }, + "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/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/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "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": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "dev": true, + "dependencies": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-name": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz", + "integrity": "sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==", + "dependencies": { + "macos-release": "^2.5.0", + "windows-release": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/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": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/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/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "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-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.3.tgz", + "integrity": "sha512-B7gr+F6MkqB3uzINHXNctGieGsRTMwIBgxkp0yq/5BwcuDzD4A8wQpHQW6vDAm1uKSLQghmRdD9sKqf2vJ1cEg==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", + "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==" + }, + "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/pg": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", + "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", + "dependencies": { + "buffer-writer": "2.0.0", + "packet-reader": "1.0.0", + "pg-connection-string": "^2.6.2", + "pg-pool": "^3.6.1", + "pg-protocol": "^1.6.0", + "pg-types": "^2.1.0", + "pgpass": "1.x" + }, + "engines": { + "node": ">= 8.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.1.1" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", + "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", + "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" + }, + "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.6.1", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", + "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", + "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" + }, + "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==" + }, + "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/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "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/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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "engines": { + "node": ">=4" + } + }, + "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": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "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.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", + "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "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/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "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==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/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.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "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/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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/readable-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/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/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "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/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "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": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "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/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "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==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/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-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/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "peer": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/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/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", + "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "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/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "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-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-stable-stringify": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "engines": { + "node": ">=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/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "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/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "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/schema-utils/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/schema-utils/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/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/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/semver/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/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "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" + }, + "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "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/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shelljs/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "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/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "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/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "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": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "engines": { + "node": "*" + } + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "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/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "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/string_decoder/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/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "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-cjs": { + "name": "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-cjs/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/string-width/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/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "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-ansi-cjs": { + "name": "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-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-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/superagent": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", + "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", + "dev": true, + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.1.2", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/supertest": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.3.tgz", + "integrity": "sha512-EMCG6G8gDu5qEqRQ3JjjPs6+FYT1a7Hv5ApHvtSghmOFJYtsU5S+pSb6Y2EUeCEY3CmEL3mmQ8YWlPOzQomabA==", + "dev": true, + "dependencies": { + "methods": "^1.1.2", + "superagent": "^8.0.5" + }, + "engines": { + "node": ">=6.4.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==", + "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/swagger-ui-dist": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.9.1.tgz", + "integrity": "sha512-5zAx+hUwJb9T3EAntc7TqYkV716CMqG6sZpNlAAMOMWkNXRYxGkN8ADIvD55dQZ10LxN90ZM/TQmN7y1gpICnw==" + }, + "node_modules/swagger-ui-express": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-5.0.0.tgz", + "integrity": "sha512-tsU9tODVvhyfkNSvf03E6FAk+z+5cU3lXAzMy6Pv4av2Gt2xA0++fogwC4qo19XuFf6hdxevPuVCSKFuMHJhFA==", + "dependencies": { + "swagger-ui-dist": ">=5.0.0" + }, + "engines": { + "node": ">= v0.10.32" + }, + "peerDependencies": { + "express": ">=4.0.0 || >=5.0.0-beta" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/synckit": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", + "dev": true, + "dependencies": { + "@pkgr/utils": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "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/terser": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", + "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" + }, + "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/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/terser-webpack-plugin/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/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/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/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "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": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "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/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-jest": { + "version": "29.1.1", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", + "integrity": "sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "^7.5.3", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-loader": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", + "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4", + "source-map": "^0.7.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "devOptional": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.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.1", + "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/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tsconfig-paths-webpack-plugin": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.1.0.tgz", + "integrity": "sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA==", + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.7.0", + "tsconfig-paths": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "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": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "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/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "node_modules/typeorm": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.17.tgz", + "integrity": "sha512-UDjUEwIQalO9tWw9O2A4GU+sT3oyoUXheHJy4ft+RFdnRdQctdQ34L9SqE2p7LdwzafHx1maxT+bqXON+Qnmig==", + "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.3", + "glob": "^8.1.0", + "mkdirp": "^2.1.3", + "reflect-metadata": "^0.1.13", + "sha.js": "^2.4.11", + "tslib": "^2.5.0", + "uuid": "^9.0.0", + "yargs": "^17.6.2" + }, + "bin": { + "typeorm": "cli.js", + "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", + "typeorm-ts-node-esm": "cli-ts-node-esm.js" + }, + "engines": { + "node": ">= 12.9.0" + }, + "funding": { + "url": "https://opencollective.com/typeorm" + }, + "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": "^5.2.0", + "mssql": "^9.1.1", + "mysql2": "^2.2.5 || ^3.0.1", + "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 + } + } + }, + "node_modules/typeorm/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typeorm/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "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": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/typeorm/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typeorm/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/typeorm/node_modules/mkdirp": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", + "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typescript": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", + "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uid": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", + "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", + "dependencies": { + "@lukeed/csprng": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "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/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "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": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "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==", + "devOptional": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", + "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/webpack": { + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "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-node-externals": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz", + "integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==", + "engines": { + "node": ">=6" + } + }, + "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/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "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==", + "dev": true, + "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-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/windows-release": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", + "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", + "dependencies": { + "execa": "^4.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/windows-release/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "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/windows-release/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==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/windows-release/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==", + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/windows-release/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/winston": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.11.0.tgz", + "integrity": "sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.5.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.6.0.tgz", + "integrity": "sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==", + "dependencies": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/winston/node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/winston/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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/wrap-ansi-cjs": { + "name": "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/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/write-file-atomic/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==", + "dev": true + }, + "node_modules/xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", + "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": "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": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "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.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "devOptional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/backend/package.json b/backend/package.json new file mode 100644 index 0000000..8365a02 --- /dev/null +++ b/backend/package.json @@ -0,0 +1,108 @@ +{ + "author": "BC Government Forestry Suite of Applications Starter Template", + "license": "Apache-2.0", + "main": "index.js", + "scripts": { + "prebuild": "rimraf dist", + "build": "nest build", + "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", + "start": "nest start", + "start:dev": "nest start --watch", + "start:debug": "nest start --debug --watch", + "start:prod": "node dist/main", + "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", + "lint:staged": "./node_modules/.bin/lint-staged", + "make-badges": "istanbul-badges-readme --logo=jest --exitCode=1", + "make-badges:ci": "npm run make-badges -- --ci", + "test": "jest", + "test:watch": "jest --watch", + "test:cov": "jest --coverage --detectOpenHandles --forceExit", + "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" + }, + "dependencies": { + "@nestjs/cli": "^10.1.16", + "@nestjs/common": "^10.0.0", + "@nestjs/config": "^3.0.0", + "@nestjs/core": "^10.0.0", + "@nestjs/platform-express": "^10.0.0", + "@nestjs/schematics": "^10.0.0", + "@nestjs/swagger": "^7.0.3", + "@nestjs/testing": "^10.0.0", + "@nestjs/typeorm": "^10.0.0", + "dotenv": "^16.0.1", + "pg": "^8.11.3", + "reflect-metadata": "^0.1.13", + "rimraf": "^5.0.0", + "rxjs": "^7.8.0", + "swagger-ui-express": "^5.0.0", + "typeorm": "^0.3.17", + "winston": "^3.11.0", + "nest-winston": "^1.9.4", + "helmet": "^7.0.0" + }, + "devDependencies": { + "@types/express": "^4.17.15", + "@types/jest": "^29.0.0", + "@types/node": "^20.0.0", + "@types/supertest": "^2.0.11", + "@typescript-eslint/eslint-plugin": "^6.5.0", + "@typescript-eslint/parser": "^6.5.0", + "eslint": "^8.32.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^9.0.0", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-promise": "^6.1.1", + "istanbul-badges-readme": "^1.8.4", + "jest": "^29.7.0", + "jest-badges": "^0.1.3", + "jest-sonar-reporter": "^2.0.0", + "lint-staged": "^15.0.2", + "prettier": "^3.0.3", + "source-map-support": "^0.5.21", + "supertest": "^6.3.3", + "ts-jest": "^29.1.1", + "ts-loader": "^9.5.0", + "ts-node": "^10.9.1", + "tsconfig-paths": "^4.2.0", + "typescript": "^5.2.2" + }, + "jest": { + "moduleFileExtensions": [ + "js", + "json", + "ts" + ], + "rootDir": "src", + "testRegex": ".*\\.spec\\.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + }, + "collectCoverage": true, + "collectCoverageFrom": [ + "**/*.(t|j)s" + ], + "coverageDirectory": "../coverage", + "coveragePathIgnorePatterns": [ + "/node_modules/", + "/test/" + ], + "coverageReporters": [ + "text", + "lcov", + "cobertura", + "jest-badges" + ], + "testEnvironment": "node", + "testResultsProcessor": "jest-sonar-reporter" + }, + "lint-staged": { + "*.{js,ts}": "./node_modules/.bin/eslint --cache --fix" + }, + "overrides": { + "minimist@<1.2.6": "1.2.6" + } +} diff --git a/backend/src/app.controller.spec.ts b/backend/src/app.controller.spec.ts new file mode 100644 index 0000000..722af67 --- /dev/null +++ b/backend/src/app.controller.spec.ts @@ -0,0 +1,22 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { AppController } from './app.controller'; +import { AppService } from './app.service'; + +describe('AppController', () => { + let appController: AppController; + + beforeEach(async () => { + const app: TestingModule = await Test.createTestingModule({ + controllers: [AppController], + providers: [AppService], + }).compile(); + + appController = app.get(AppController); + }); + + describe('root', () => { + it('should return "Hello Backend!"', () => { + expect(appController.getHello()).toBe('Hello Backend!'); + }); + }); +}); diff --git a/backend/src/app.controller.ts b/backend/src/app.controller.ts new file mode 100644 index 0000000..cce879e --- /dev/null +++ b/backend/src/app.controller.ts @@ -0,0 +1,12 @@ +import { Controller, Get } from '@nestjs/common'; +import { AppService } from './app.service'; + +@Controller() +export class AppController { + constructor(private readonly appService: AppService) {} + + @Get() + getHello(): string { + return this.appService.getHello(); + } +} diff --git a/backend/src/app.module.ts b/backend/src/app.module.ts new file mode 100644 index 0000000..ec261ba --- /dev/null +++ b/backend/src/app.module.ts @@ -0,0 +1,33 @@ +import "dotenv/config"; +import { MiddlewareConsumer, Module } from '@nestjs/common'; +import {TypeOrmModule} from "@nestjs/typeorm"; +import {ConfigModule} from "@nestjs/config"; +import {AppController} from "./app.controller"; +import {AppService} from "./app.service"; +import {UsersModule} from "./users/users.module"; +import { HTTPLoggerMiddleware } from './middleware/req.res.logger'; + +@Module({ + imports: [ + ConfigModule.forRoot(), + TypeOrmModule.forRoot({ + type: "postgres", + host: process.env.POSTGRES_HOST || "127.0.0.1", + port: 5432, + database: process.env.POSTGRES_DATABASE || "postgres", + username: process.env.POSTGRES_USER || "postgres", + password: process.env.POSTGRES_PASSWORD || "postgres", // helps in UT and e2e testing + // entities: [User], + autoLoadEntities: true, // Auto load all entities regiestered by typeorm forFeature method. + schema: "users", + //logging: "all" + }), + UsersModule, + ], + controllers: [AppController], + providers: [AppService], +}) +export class AppModule { // let's add a middleware on all routes + configure(consumer: MiddlewareConsumer) { + consumer.apply(HTTPLoggerMiddleware).forRoutes("*"); + }} diff --git a/backend/src/app.service.ts b/backend/src/app.service.ts new file mode 100644 index 0000000..8ce0cf3 --- /dev/null +++ b/backend/src/app.service.ts @@ -0,0 +1,8 @@ +import { Injectable } from "@nestjs/common"; + +@Injectable() +export class AppService { + getHello(): string { + return "Hello Backend!"; + } +} diff --git a/backend/src/app.spec.ts b/backend/src/app.spec.ts new file mode 100644 index 0000000..a44da53 --- /dev/null +++ b/backend/src/app.spec.ts @@ -0,0 +1,18 @@ +import {NestExpressApplication} from '@nestjs/platform-express'; +import {bootstrap} from "./app"; + +describe('main', () => { + let app: NestExpressApplication; + + beforeAll(async () => { + app = await bootstrap(); + }); + + afterAll(async () => { + await app.close(); + }); + + it('should start the application', async () => { + expect(app).toBeDefined(); + }); +}); diff --git a/backend/src/app.ts b/backend/src/app.ts new file mode 100644 index 0000000..f77062a --- /dev/null +++ b/backend/src/app.ts @@ -0,0 +1,36 @@ +import { NestFactory } from '@nestjs/core'; +import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'; +import { AppModule } from './app.module'; +import { customLogger } from './common/logger.config'; +import { NestExpressApplication } from '@nestjs/platform-express'; +import helmet from 'helmet'; +import { VersioningType } from '@nestjs/common'; + +/** + * + */ +export async function bootstrap() { + const app: NestExpressApplication = + await NestFactory.create(AppModule, { + logger: customLogger, + }); + app.use(helmet()); + app.enableCors(); + app.set("trust proxy", 1); + app.enableShutdownHooks(); + app.setGlobalPrefix("api"); + app.enableVersioning({ + type: VersioningType.URI, + prefix: "v", + }); + const config = new DocumentBuilder() + .setTitle("Users example") + .setDescription("The user API description") + .setVersion("1.0") + .addTag("users") + .build(); + + const document = SwaggerModule.createDocument(app, config); + SwaggerModule.setup("docs", app, document); + return app; +} diff --git a/backend/src/common/logger.config.spec.ts b/backend/src/common/logger.config.spec.ts new file mode 100644 index 0000000..58b23fe --- /dev/null +++ b/backend/src/common/logger.config.spec.ts @@ -0,0 +1,15 @@ +import {customLogger} from './logger.config'; + +describe('CustomLogger', () => { + it('should be defined', () => { + expect(customLogger).toBeDefined(); + }); + + it('should log a message', () => { + + const spy = jest.spyOn(customLogger, 'verbose'); + customLogger.verbose('Test message'); + expect(spy).toHaveBeenCalledWith('Test message'); + spy.mockRestore(); + }); +}); diff --git a/backend/src/common/logger.config.ts b/backend/src/common/logger.config.ts new file mode 100644 index 0000000..e09dbe6 --- /dev/null +++ b/backend/src/common/logger.config.ts @@ -0,0 +1,25 @@ +import {WinstonModule, utilities} from 'nest-winston'; +import * as winston from 'winston'; +import {LoggerService} from "@nestjs/common"; + +const globalLoggerFormat: winston.Logform.Format = winston.format.timestamp({format: "YYYY-MM-DD hh:mm:ss.SSS"}); + +const localLoggerFormat: winston.Logform.Format = winston.format.combine( + winston.format.colorize(), + winston.format.align(), + utilities.format.nestLike('Backend', {prettyPrint: true}) +); + + +export const customLogger: LoggerService = WinstonModule.createLogger({ + transports: [ + new winston.transports.Console({ + level: 'silly', + format: winston.format.combine( + globalLoggerFormat, + localLoggerFormat + ), + }), + ], + exitOnError: false, +}); diff --git a/backend/src/main.ts b/backend/src/main.ts new file mode 100644 index 0000000..900459c --- /dev/null +++ b/backend/src/main.ts @@ -0,0 +1,11 @@ +import {NestExpressApplication} from "@nestjs/platform-express"; +import {bootstrap} from "./app"; +import {Logger} from "@nestjs/common"; + +const logger = new Logger('NestApplication'); +bootstrap().then(async (app: NestExpressApplication) => { + await app.listen(3000); + logger.log(`Listening on ${await app.getUrl()}`); +}).catch(err=>{ + logger.error(err); +}); diff --git a/backend/src/middleware/req.res.logger.spec.ts b/backend/src/middleware/req.res.logger.spec.ts new file mode 100644 index 0000000..e595537 --- /dev/null +++ b/backend/src/middleware/req.res.logger.spec.ts @@ -0,0 +1,42 @@ +import {Test} from '@nestjs/testing'; +import {HTTPLoggerMiddleware} from './req.res.logger'; +import {Request, Response} from 'express'; +import {Logger} from '@nestjs/common'; + +describe('HTTPLoggerMiddleware', () => { + let middleware: HTTPLoggerMiddleware; + let logger: Logger; + + beforeEach(async () => { + const module = await Test.createTestingModule({ + providers: [HTTPLoggerMiddleware, Logger], + }).compile(); + + middleware = module.get(HTTPLoggerMiddleware); + logger = module.get(Logger); + }); + it('should log the correct information', () => { + const request: Request = { + method: 'GET', + originalUrl: '/test', + get: () => 'Test User Agent' + } as unknown as Request; + + const response: Response = { + statusCode: 200, + get: () => '100', + on: (event: string, cb: () => void) => { + if (event === 'finish') { + cb(); + } + } + } as unknown as Response; + + const loggerSpy = jest.spyOn(middleware['logger'], 'log'); + + middleware.use(request, response, () => { + }); + + expect(loggerSpy).toHaveBeenCalledWith(`GET /test 200 100 - Test User Agent`); + }); +}); diff --git a/backend/src/middleware/req.res.logger.ts b/backend/src/middleware/req.res.logger.ts new file mode 100644 index 0000000..efff5a1 --- /dev/null +++ b/backend/src/middleware/req.res.logger.ts @@ -0,0 +1,21 @@ +import { Request, Response, NextFunction } from "express"; +import { Injectable, NestMiddleware, Logger } from "@nestjs/common"; + +@Injectable() +export class HTTPLoggerMiddleware implements NestMiddleware { + private logger = new Logger("HTTP"); + + use(request: Request, response: Response, next: NextFunction): void { + const { method, originalUrl } = request; + + response.on("finish", () => { + const { statusCode } = response; + const contentLength = response.get("content-length"); + const hostedHttpLogFormat = `${method} ${originalUrl} ${statusCode} ${contentLength} - ${request.get( + "user-agent" + )}`; + this.logger.log(hostedHttpLogFormat); + }); + next(); + } +} diff --git a/backend/src/users/dto/create-user.dto.ts b/backend/src/users/dto/create-user.dto.ts new file mode 100644 index 0000000..039e11d --- /dev/null +++ b/backend/src/users/dto/create-user.dto.ts @@ -0,0 +1,7 @@ +import { PickType } from '@nestjs/swagger'; +import { UserDto } from './user.dto'; + +export class CreateUserDto extends PickType(UserDto, [ + 'email', + 'name', +] as const) {} diff --git a/backend/src/users/dto/update-user.dto.ts b/backend/src/users/dto/update-user.dto.ts new file mode 100644 index 0000000..9b35b94 --- /dev/null +++ b/backend/src/users/dto/update-user.dto.ts @@ -0,0 +1,3 @@ +import { CreateUserDto } from './create-user.dto'; + +export class UpdateUserDto extends CreateUserDto {} diff --git a/backend/src/users/dto/user.dto.ts b/backend/src/users/dto/user.dto.ts new file mode 100644 index 0000000..89eb7f0 --- /dev/null +++ b/backend/src/users/dto/user.dto.ts @@ -0,0 +1,21 @@ +import { ApiProperty } from '@nestjs/swagger'; + +export class UserDto { + @ApiProperty({ + description: 'The ID of the user', + // default: '9999', + }) + id: number; + + @ApiProperty({ + description: 'The name of the user', + // default: 'username', + }) + name: string; + + @ApiProperty({ + description: 'The contact email of the user', + default: '', + }) + email: string; +} diff --git a/backend/src/users/entities/users.entity.ts b/backend/src/users/entities/users.entity.ts new file mode 100644 index 0000000..f03d039 --- /dev/null +++ b/backend/src/users/entities/users.entity.ts @@ -0,0 +1,28 @@ +import {ApiProperty} from "@nestjs/swagger"; +import {Entity, Column, PrimaryGeneratedColumn} from "typeorm"; + +@Entity() +export class Users { + @ApiProperty({ + example: "1", + description: "The ID of the user", + }) + @PrimaryGeneratedColumn() + id: number; + + @ApiProperty({example: "Peter Green", description: "The name of the user"}) + @Column() + name: string; + + @ApiProperty({ + example: "abc@gmail.com", + description: "The email of the user", + }) + @Column() + email: string; + + constructor(name: string, email: string) { + this.name = name; + this.email = email; + } +} diff --git a/backend/src/users/users.controller.spec.ts b/backend/src/users/users.controller.spec.ts new file mode 100644 index 0000000..cf390ab --- /dev/null +++ b/backend/src/users/users.controller.spec.ts @@ -0,0 +1,174 @@ +import {Test, TestingModule} from "@nestjs/testing"; +import {getRepositoryToken} from "@nestjs/typeorm"; +import {UsersController} from "./users.controller"; +import {UsersService} from "./users.service"; +import {Users} from "./entities/users.entity"; +import * as request from 'supertest'; +import {HttpException, INestApplication} from "@nestjs/common"; +import {CreateUserDto} from "./dto/create-user.dto"; +import {UpdateUserDto} from "./dto/update-user.dto"; +import {UserDto} from "./dto/user.dto"; + +describe("UserController", () => { + let controller: UsersController; + let usersService: UsersService; + let app: INestApplication; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [UsersController], + providers: [ + UsersService, + { + provide: getRepositoryToken(Users), + useValue: {}, + }, + ], + }).compile(); + usersService = module.get(UsersService); + controller = module.get(UsersController); + app = module.createNestApplication(); + await app.init(); + }); + // Close the app after each test + afterEach(async () => { + await app.close(); + }); + + it("should be defined", () => { + expect(controller).toBeDefined(); + }); + + describe('create', () => { + it('should call the service create method with the given dto and return the result', async () => { + // Arrange + const createUserDto: CreateUserDto = { + email: 'test@example.com', + name: 'Test User', + }; + const expectedResult = { + id: 1, + ...createUserDto, + }; + jest.spyOn(usersService, 'create').mockResolvedValue(expectedResult); + + // Act + const result = await controller.create(createUserDto); + + // Assert + expect(usersService.create).toHaveBeenCalledWith(createUserDto); + expect(result).toEqual(expectedResult); + }); + }); + describe('findAll', () => { + it('should return an array of users', async () => { + const result: Users[] = []; + result.push({id: 1, name: 'Alice', email: 'test@gmail.com'}); + jest.spyOn(usersService, 'findAll').mockResolvedValue(result); + expect(await controller.findAll()).toBe(result); + }); + }); + describe('findOne', () => { + it('should return a user object', async () => { + const result = new Users('john', 'John Doe'); + result.id = 1; + jest.spyOn(usersService, 'findOne').mockResolvedValue(result); + + expect(await controller.findOne('1')).toBe(result); + }); + }); + describe('update', () => { + it('should update and return a user object', async () => { + const id = '1'; + const updateUserDto: UpdateUserDto = { + email: 'johndoe@example.com', + name: 'John Doe', + }; + const userDto: UserDto = { + id: 1, + name: 'John Doe', + email: 'johndoe@example.com', + }; + jest.spyOn(usersService, 'update').mockResolvedValue(userDto); + + expect(await controller.update(id, updateUserDto)).toBe(userDto); + expect(usersService.update).toHaveBeenCalledWith(+id, updateUserDto); + }); + }); + describe('remove', () => { + it('should remove a user', async () => { + const id = '1'; + jest.spyOn(usersService, 'remove').mockResolvedValue(undefined); + + expect(await controller.remove(id)).toBeUndefined(); + expect(usersService.remove).toHaveBeenCalledWith(+id); + }); + }); + // Test the GET /users/search endpoint + describe('GET /users/search', () => { + // Test with valid query parameters + it('given valid query parameters_should return an array of users with pagination metadata', async () => { + // Mock the usersService.searchUsers method to return a sample result + const result = { + users: [ + {id: 1, name: 'Alice', email: 'alice@example.com'}, + {id: 2, name: 'Adam', email: 'Adam@example.com'}, + ], + page: 1, + limit: 10, + sort: '{"name":"ASC"}', + filter: '[{"key":"name","operation":"like","value":"A"}]', + total: 2, + totalPages: 1, + }; + jest.spyOn(usersService, 'searchUsers').mockImplementation(async () => result); + + // Make a GET request with query parameters and expect a 200 status code and the result object + return request(app.getHttpServer()) + .get('/users/search') + .query({ + page: 1, + limit: 10, + sort: '{"name":"ASC"}', + filter: '[{"key":"name","operation":"like","value":"A"}]', + }) + .expect(200) + .expect(result); + }); + + // Test with invalid query parameters + it('given invalid query parameters_should return a 400 status code with an error message', async () => { + // Make a GET request with invalid query parameters and expect a 400 status code and an error message + return request(app.getHttpServer()) + .get('/users/search') + .query({ + page: 'invalid', + limit: 'invalid', + }) + .expect(400) + .expect({ + statusCode: 400, + message: 'Invalid query parameters' + }); + }); + it('given sort and filter as invalid query parameters_should return a 400 status code with an error message', async () => { + // Make a GET request with invalid query parameters and expect a 400 status code and an error message + jest.spyOn(usersService, 'searchUsers').mockImplementation(async () => { + throw new HttpException('Invalid query parameters', 400) + }); + return request(app.getHttpServer()) + .get('/users/search') + .query({ + page: 1, + limit: 10, + sort: 'invalid', + filter: 'invalid', + }) + .expect(400) + .expect({ + statusCode: 400, + message: 'Invalid query parameters' + }); + }); + }); +}); diff --git a/backend/src/users/users.controller.ts b/backend/src/users/users.controller.ts new file mode 100644 index 0000000..7374e80 --- /dev/null +++ b/backend/src/users/users.controller.ts @@ -0,0 +1,64 @@ +import { + Controller, + Get, + Post, + Body, + Put, + Param, + Delete, Query, HttpException, +} from "@nestjs/common"; +import {ApiTags} from "@nestjs/swagger"; +import {UsersService} from "./users.service"; +import {CreateUserDto} from "./dto/create-user.dto"; +import {UpdateUserDto} from "./dto/update-user.dto"; + +@ApiTags("users") +@Controller({path: "users", version: "1"}) +export class UsersController { + constructor(private readonly usersService: UsersService) { + } + + @Post() + create(@Body() createUserDto: CreateUserDto) { + return this.usersService.create(createUserDto); + } + + @Get() + findAll() { + return this.usersService.findAll(); + } + + @Get("search") // it must be ahead of the below Get(":id") to avoid conflict + async searchUsers( + @Query("page") page: number, + @Query("limit") limit: number, + @Query("sort") sort: string, // JSON string to store sort key and sort value, ex: {name: "ASC"} + @Query("filter") filter: string // JSON array for key, operation and value, ex: [{key: "name", operation: "like", value: "Peter"}] + ) { + if (isNaN(page) || isNaN(limit)) { + throw new HttpException("Invalid query parameters", 400); + } + return this.usersService.searchUsers(page, limit, sort, filter); + } + + @Get(":id") + async findOne(@Param("id") id: string) { + const user = await this.usersService.findOne(+id); + if (!user) { + throw new HttpException("User not found.", 404); + } + return user; + } + + @Put(":id") + update(@Param("id") id: string, @Body() updateUserDto: UpdateUserDto) { + return this.usersService.update(+id, updateUserDto); + } + + @Delete(":id") + remove(@Param("id") id: string) { + return this.usersService.remove(+id); + } + + +} diff --git a/backend/src/users/users.module.ts b/backend/src/users/users.module.ts new file mode 100644 index 0000000..1fc554d --- /dev/null +++ b/backend/src/users/users.module.ts @@ -0,0 +1,12 @@ +import { Module } from "@nestjs/common"; +import { TypeOrmModule } from "@nestjs/typeorm"; +import { UsersService } from "./users.service"; +import { UsersController } from "./users.controller"; +import { Users } from "./entities/users.entity"; + +@Module({ + imports: [TypeOrmModule.forFeature([Users])], + controllers: [UsersController], + providers: [UsersService], +}) +export class UsersModule {} diff --git a/backend/src/users/users.service.spec.ts b/backend/src/users/users.service.spec.ts new file mode 100644 index 0000000..025f9dd --- /dev/null +++ b/backend/src/users/users.service.spec.ts @@ -0,0 +1,240 @@ +import type { TestingModule } from "@nestjs/testing"; +import { Test } from "@nestjs/testing"; +import { getRepositoryToken } from "@nestjs/typeorm"; +import type { Repository } from "typeorm"; +import { UsersService } from "./users.service"; +import { Users } from "./entities/users.entity"; + +describe("UserService", () => { + let service: UsersService; + let repo: Repository; + + const oneUserName = "Test Numone"; + const oneUserEamil = "numone@test.com"; + const oneUser = new Users(oneUserName, oneUserEamil); + const updateUser = { + name: oneUserName, + email: oneUserEamil, + }; + + const twoUser = new Users("Test Numtwo", "numtwo@test.com"); + + const threeUserName = "Test Numthree"; + const threeUserEamil = "numthree@test.com"; + const newUser = { + name: threeUserName, + email: threeUserEamil, + }; + const threeUser = new Users(threeUserName, threeUserEamil); + + const userArray = [oneUser, twoUser]; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [ + UsersService, + { + provide: getRepositoryToken(Users), + useValue: { + // mock repository functions for testing + find: jest.fn().mockResolvedValue(userArray), + findOne: jest.fn().mockResolvedValue(oneUser), + create: jest.fn().mockReturnValue(threeUser), + save: jest.fn(), + // as these do not actually use their return values in our sample + // we just make sure that their resolve is true to not crash + update: jest.fn().mockResolvedValue(true), + // as these do not actually use their return values in our sample + // we just make sure that their resolve is true to not crash + delete: jest.fn().mockResolvedValue(true), + createQueryBuilder: jest.fn(), + getManyAndCount: jest.fn(), + }, + }, + ], + }).compile(); + + service = module.get(UsersService); + repo = module.get>(getRepositoryToken(Users)); + }); + + it("should be defined", () => { + expect(service).toBeDefined(); + }); + + describe("createOne", () => { + it("should successfully add a user", () => { + expect(service.create(newUser)).resolves.toEqual(threeUser); + expect(repo.create).toBeCalledTimes(1); + expect(repo.create).toBeCalledWith(newUser); + expect(repo.save).toBeCalledTimes(1); + }); + }); + + describe("findAll", () => { + it("should return an array of users", async () => { + const users = await service.findAll(); + expect(users).toEqual(userArray); + }); + }); + + describe("findOne", () => { + it("should get a single user", () => { + const repoSpy = jest.spyOn(repo, "findOne"); + expect(service.findOne(1)).resolves.toEqual(oneUser); + expect(repoSpy).toBeCalledWith({ where: { id: 1 } }); + }); + }); + + describe("update", () => { + it("should call the update method", async () => { + const user = await service.update(1, updateUser); + expect(user).toEqual(oneUser); + expect(repo.update).toBeCalledTimes(1); + expect(repo.update).toBeCalledWith({ id: 1 }, updateUser); + }); + }); + + describe("remove", () => { + it("should return {deleted: true}", () => { + expect(service.remove(2)).resolves.toEqual({ deleted: true }); + }); + it("should return {deleted: false, message: err.message}", () => { + const repoSpy = jest + .spyOn(repo, "delete") + .mockRejectedValueOnce(new Error("Bad Delete Method.")); + expect(service.remove(-1)).resolves.toEqual({ + deleted: false, + message: "Bad Delete Method.", + }); + expect(repoSpy).toBeCalledWith(-1); + expect(repoSpy).toBeCalledTimes(1); + }); + }); + describe("searchUsers", () => { + it("should return a list of users with pagination and filtering", async () => { + const page = 1; + const limit = 10; + const sort: any = '{ "name": "ASC" }'; + const filter: any = + '[{ "key": "name", "operation": "=", "value": "Peter" }]'; + const queryBuilder = { + skip: jest.fn().mockReturnThis(), + take: jest.fn().mockReturnThis(), + andWhere: jest.fn().mockReturnThis(), + orderBy: jest.fn().mockReturnThis(), + getManyAndCount: jest.fn().mockResolvedValueOnce([[], 0]), + }; + jest + .spyOn(repo, "createQueryBuilder") + .mockReturnValue(queryBuilder as any); + + const result = await service.searchUsers(page, limit, sort, filter); + + expect(repo.createQueryBuilder).toHaveBeenCalledWith("users"); + expect(queryBuilder.skip).toHaveBeenCalledWith(0); + expect(queryBuilder.take).toHaveBeenCalledWith(limit); + expect(queryBuilder.getManyAndCount).toHaveBeenCalled(); + expect(result).toEqual({ + users: [], + page, + limit, + total: 0, + totalPages: 0, + }); + }); + + it("given no page should return a list of users with pagination and filtering with default page 1", async () => { + const limit = 10; + const sort: any = '{ "name": "ASC" }'; + const filter: any = + '[{ "key": "name", "operation": "=", "value": "Peter" }]'; + const queryBuilder = { + skip: jest.fn().mockReturnThis(), + take: jest.fn().mockReturnThis(), + andWhere: jest.fn().mockReturnThis(), + orderBy: jest.fn().mockReturnThis(), + getManyAndCount: jest.fn().mockResolvedValueOnce([[], 0]), + }; + jest + .spyOn(repo, "createQueryBuilder") + .mockReturnValue(queryBuilder as any); + + const result = await service.searchUsers(null, limit, sort, filter); + + expect(repo.createQueryBuilder).toHaveBeenCalledWith("users"); + expect(queryBuilder.skip).toHaveBeenCalledWith(0); + expect(queryBuilder.take).toHaveBeenCalledWith(limit); + expect(queryBuilder.getManyAndCount).toHaveBeenCalled(); + expect(result).toEqual({ + users: [], + page: 1, + limit, + total: 0, + totalPages: 0, + }); + }); + it("given no limit should return a list of users with pagination and filtering with default limit 10", async () => { + const page = 1; + const sort: any = '{ "name": "ASC" }'; + const filter: any = + '[{ "key": "name", "operation": "=", "value": "Peter" }]'; + const queryBuilder = { + skip: jest.fn().mockReturnThis(), + take: jest.fn().mockReturnThis(), + andWhere: jest.fn().mockReturnThis(), + orderBy: jest.fn().mockReturnThis(), + getManyAndCount: jest.fn().mockResolvedValueOnce([[], 0]), + }; + jest + .spyOn(repo, "createQueryBuilder") + .mockReturnValue(queryBuilder as any); + + const result = await service.searchUsers(page, null, sort, filter); + + expect(repo.createQueryBuilder).toHaveBeenCalledWith("users"); + expect(queryBuilder.skip).toHaveBeenCalledWith(0); + expect(queryBuilder.take).toHaveBeenCalledWith(10); + expect(queryBuilder.getManyAndCount).toHaveBeenCalled(); + expect(result).toEqual({ + users: [], + page: 1, + limit: 10, + total: 0, + totalPages: 0, + }); + }); + + it("given limit greater than 200 should return a list of users with pagination and filtering with default limit 10", async () => { + const page = 1; + const limit = 201; + const sort: any = '{ "name": "ASC" }'; + const filter: any = + '[{ "key": "name", "operation": "=", "value": "Peter" }]'; + const queryBuilder = { + skip: jest.fn().mockReturnThis(), + take: jest.fn().mockReturnThis(), + andWhere: jest.fn().mockReturnThis(), + orderBy: jest.fn().mockReturnThis(), + getManyAndCount: jest.fn().mockResolvedValueOnce([[], 0]), + }; + jest + .spyOn(repo, "createQueryBuilder") + .mockReturnValue(queryBuilder as any); + + const result = await service.searchUsers(page, limit, sort, filter); + + expect(repo.createQueryBuilder).toHaveBeenCalledWith("users"); + expect(queryBuilder.skip).toHaveBeenCalledWith(0); + expect(queryBuilder.take).toHaveBeenCalledWith(10); + expect(queryBuilder.getManyAndCount).toHaveBeenCalled(); + expect(result).toEqual({ + users: [], + page: 1, + limit: 10, + total: 0, + totalPages: 0, + }); + }); + }); +}); diff --git a/backend/src/users/users.service.ts b/backend/src/users/users.service.ts new file mode 100644 index 0000000..501cc3e --- /dev/null +++ b/backend/src/users/users.service.ts @@ -0,0 +1,106 @@ +import {HttpException, Injectable} from "@nestjs/common"; +import {InjectRepository} from "@nestjs/typeorm"; +import {Repository, SelectQueryBuilder} from "typeorm"; +import {Users} from "./entities/users.entity"; + +import {CreateUserDto} from "./dto/create-user.dto"; +import {UpdateUserDto} from "./dto/update-user.dto"; + +@Injectable() +export class UsersService { + constructor( + @InjectRepository(Users) + private usersRepository: Repository + ) { + } + + async create(user: CreateUserDto): Promise { + const newUser = this.usersRepository.create(user); + await this.usersRepository.save(newUser); + return newUser; + } + + async findAll(): Promise { + return this.usersRepository.find(); + } + + async findOne(id: any): Promise { + return this.usersRepository.findOne({ where: { id } }); + } + + async update(id: number, updateUserDto: UpdateUserDto): Promise { + await this.usersRepository.update({id}, updateUserDto); + return this.findOne(id); + } + + async remove(id: number): Promise<{ deleted: boolean; message?: string }> { + try { + await this.usersRepository.delete(id); + return {deleted: true}; + } catch (err) { + return {deleted: false, message: err.message}; + } + } + + async searchUsers(page: number, + limit: number, + sort: string, // JSON string to store sort key and sort value, ex: {name: "ASC"} + filter: string): Promise { // JSON array for key, operation and value, ex: [{key: "name", operation: "like", value: "Peter"}] + + + page = page || 1; // default page is 1 + if (!limit || limit > 200) { + limit = 10; // default limit is 10 for no value or value > 200 + } + + const queryBuilder = this.usersRepository.createQueryBuilder('users'); + if (filter) { + this.setFilter(filter, queryBuilder); + } + if (sort) { + this.setSort(sort, queryBuilder); + } + // Apply pagination condition + queryBuilder.skip((page - 1) * limit).take(limit); + const [users, count] = await queryBuilder.getManyAndCount(); + return { + users, + page, + limit, + total: count, + totalPages: Math.ceil(count / limit), + }; + } + + private setSort(sort: string, queryBuilder: SelectQueryBuilder) { + let sortObj; + try { + sortObj = JSON.parse(sort); + } catch (e) { + throw new HttpException("Invalid query parameters as sort", 400); + } + Object.keys(sortObj).forEach((item, index) => { + if (index === 0) { + queryBuilder.orderBy(`users.${item}`, sortObj[item]); + } else { + queryBuilder.addOrderBy(`users.${item}`, sortObj[item]); + } + }); + } + + private setFilter(filter: string, queryBuilder: SelectQueryBuilder) { + let filterObj; + try { + filterObj = JSON.parse(filter); + } catch (e) { + throw new HttpException("Invalid query parameters as filter", 400); + } + for (const item of filterObj) { + if (item.operation === "like") { + queryBuilder.andWhere(`users.${item.key} ${item.operation} :${item.key}`, {[item.key]: `%${item.value}%`}); + } else { + queryBuilder.andWhere(`users.${item.key} ${item.operation} :${item.key}`, {[item.key]: item.value}); + } + } + } +} diff --git a/backend/test/app.e2e-spec.ts b/backend/test/app.e2e-spec.ts new file mode 100644 index 0000000..8b7549d --- /dev/null +++ b/backend/test/app.e2e-spec.ts @@ -0,0 +1,22 @@ +import * as request from 'supertest' +import { Test } from '@nestjs/testing' +import { INestApplication } from '@nestjs/common' +import { AppModule } from '../src/app.module' + +describe('AppController (e2e)', () => { + let app: INestApplication + + beforeAll(async () => { + const moduleFixture = await Test.createTestingModule({ + imports: [AppModule] + }).compile() + + app = moduleFixture.createNestApplication() + await app.init() + }) + + it('/ (GET)', () => request(app.getHttpServer()) + .get('/') + .expect(200) + .expect('Hello Backend!')) +}) diff --git a/backend/test/jest-e2e.json b/backend/test/jest-e2e.json new file mode 100644 index 0000000..e9d912f --- /dev/null +++ b/backend/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/backend/tsconfig.build.json b/backend/tsconfig.build.json new file mode 100644 index 0000000..2fe1df2 --- /dev/null +++ b/backend/tsconfig.build.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "exclude": ["node_modules", "dist", "test", "**/*spec.ts"] +} diff --git a/backend/tsconfig.json b/backend/tsconfig.json new file mode 100644 index 0000000..e63cd3a --- /dev/null +++ b/backend/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "NodeNext", + "moduleResolution": "NodeNext", + "strict": false, + "noUncheckedIndexedAccess": true, + "moduleDetection": "force", + "resolveJsonModule": true, + "allowJs": true, + "declaration": true, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": "es2022", + "sourceMap": true, + "outDir": "./dist", + "baseUrl": "./", + "incremental": true, + "skipLibCheck": true, + "lib": ["es2022"] + }, + "include": ["src/**/*.ts"], +} diff --git a/charts/quickstart-openshift/.helmignore b/charts/quickstart-openshift/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/charts/quickstart-openshift/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/quickstart-openshift/Chart.lock b/charts/quickstart-openshift/Chart.lock new file mode 100644 index 0000000..298f915 --- /dev/null +++ b/charts/quickstart-openshift/Chart.lock @@ -0,0 +1,15 @@ +dependencies: +- name: component + repository: https://bcgov.github.io/helm-service + version: 0.2.0 +- name: component + repository: https://bcgov.github.io/helm-service + version: 0.2.0 +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 13.2.16 +- name: component + repository: https://bcgov.github.io/helm-service + version: 0.2.0 +digest: sha256:5b19bc659b196e8325a14f8830e967f4b85b3fc1f4e9130f933e44b822528847 +generated: "2023-11-24T01:59:06.404205406Z" diff --git a/charts/quickstart-openshift/Chart.yaml b/charts/quickstart-openshift/Chart.yaml new file mode 100644 index 0000000..99078f0 --- /dev/null +++ b/charts/quickstart-openshift/Chart.yaml @@ -0,0 +1,50 @@ +apiVersion: v2 +name: quickstart-openshift +description: A Helm chart for Kubernetes deployment. +icon: https://www.nicepng.com/png/detail/521-5211827_bc-icon-british-columbia-government-logo.png + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.1.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +# It is recommended to use it with quotes. +appVersion: "1.16.0" + +dependencies: + - name: component + condition: backend.enabled + version: 0.2.0 + repository: https://bcgov.github.io/helm-service + alias: backend + + - name: component + condition: frontend.enabled + version: 0.2.0 + repository: https://bcgov.github.io/helm-service + alias: frontend + + - name: postgresql + condition: bitnami-pg.enabled + version: 13.2.16 + repository: https://charts.bitnami.com/bitnami + alias: bitnami-pg + + - name: component + condition: backup.enabled + version: 0.2.0 + repository: https://bcgov.github.io/helm-service + alias: backup diff --git a/charts/quickstart-openshift/templates/_helpers.tpl b/charts/quickstart-openshift/templates/_helpers.tpl new file mode 100644 index 0000000..9f6bfa3 --- /dev/null +++ b/charts/quickstart-openshift/templates/_helpers.tpl @@ -0,0 +1,48 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s" .Release.Name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "name.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "labels" -}} +helm.sh/chart: {{ include "name.chart" . }} +{{ include "selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "selectorLabels" -}} +app.kubernetes.io/name: {{ include "fullname" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + + diff --git a/charts/quickstart-openshift/templates/knp.yaml b/charts/quickstart-openshift/templates/knp.yaml new file mode 100644 index 0000000..dbd89d2 --- /dev/null +++ b/charts/quickstart-openshift/templates/knp.yaml @@ -0,0 +1,29 @@ +--- +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: {{ .Release.Name }}-openshift-ingress + labels: {{- include "selectorLabels" . | nindent 4 }} +spec: + podSelector: {} + ingress: + - from: + - namespaceSelector: + matchLabels: + network.openshift.io/policy-group: ingress + policyTypes: + - Ingress +--- +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: {{ .Release.Name }}-allow-same-namespace + labels: {{- include "selectorLabels" . | nindent 4 }} +spec: + podSelector: {} + ingress: + - from: + - podSelector: {} + policyTypes: + - Ingress + diff --git a/charts/quickstart-openshift/templates/secret.yaml b/charts/quickstart-openshift/templates/secret.yaml new file mode 100644 index 0000000..beb6119 --- /dev/null +++ b/charts/quickstart-openshift/templates/secret.yaml @@ -0,0 +1,24 @@ +{{- if and .Values.global.secrets .Values.global.secrets.enabled}} +{{- $databaseUser := .Values.global.secrets.databaseUser| default "quickstart" }} +{{- $databasePassword := .Values.global.secrets.databasePassword }} +{{- $databaseName := .Values.global.secrets.databaseName| default "quickstart" }} +{{- $host := printf "%s-%s:5432" .Release.Name .Values.global.databaseAlias }} +{{- $databaseURL := printf "postgresql://%s:%s@%s/%s" $databaseUser $databasePassword $host $databaseName }} +{{- $databaseJDBCURL := printf "jdbc:postgresql://%s:%s@%s/%s" $databaseUser $databasePassword $host $databaseName }} +{{- $databaseJDBCURLNoCreds := printf "jdbc:postgresql://%s/%s" $host $databaseName }} +--- +apiVersion: v1 +kind: Secret +metadata: + name: {{ .Release.Name }} + labels: {{- include "selectorLabels" . | nindent 4 }} +data: + databasePassword: {{ $databasePassword | b64enc | quote }} + postgres-password: {{ $databasePassword | b64enc | quote }} + password: {{ $databasePassword | b64enc | quote }} + databaseUser: {{ $databaseUser | b64enc | quote }} + databaseName: {{ $databaseName | b64enc | quote }} + databaseURL: {{ $databaseURL | b64enc | quote }} + databaseJDBCURL: {{ $databaseJDBCURL | b64enc | quote }} + databaseJDBCURLNoCreds: {{ $databaseJDBCURLNoCreds | b64enc | quote }} +{{- end }} diff --git a/charts/quickstart-openshift/values.yaml b/charts/quickstart-openshift/values.yaml new file mode 100644 index 0000000..c6f5bc9 --- /dev/null +++ b/charts/quickstart-openshift/values.yaml @@ -0,0 +1,467 @@ +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. +global: + repository: ~ # the repository where the images are stored. + registry: ghcr.io # the registry where the images are stored. override during runtime for other registry at global level or individual level. + tag: ~ + autoscaling: true + secrets: + enabled: true + databasePassword: ~ + databaseUser: ~ + databaseName: ~ + annotation: + helm.sh/policy: "keep" + domain: "apps.silver.devops.gov.bc.ca" # it is required, apps.silver.devops.gov.bc.ca for silver cluster + openshiftImageRegistry: "image-registry.openshift-image-registry.svc:5000" + databaseAlias: bitnami-pg # this is the alias for bitnami postgres, change it based on db type(crunchy,patroni...) and alias used in the chart. + +backend: + enabled: true + deployment: # can be either a statefulSet or a deployment not both + enabled: true + containers: + - name: backend + registry: '{{ .Values.global.registry }}' + repository: '{{ .Values.global.repository }}' # example, it includes registry and repository + image: backend # the exact component name, be it backend, api-1 etc... + tag: '{{ .Values.global.tag }}' # the tag of the image, it can be latest, 1.0.0 etc..., or the sha256 hash + env: + fromGlobalSecret: + - name: POSTGRES_PASSWORD + key: password + - name: POSTGRES_USER + key: databaseUser + - name: POSTGRES_DATABASE + key: databaseName + fromValues: + - name: POSTGRES_HOST + value: '{{ .Release.Name }}-{{.Values.global.databaseAlias}}' + ports: + - name: http + containerPort: 3000 + protocol: TCP + resources: # this is optional + limits: + cpu: 250m + memory: 250Mi + requests: + cpu: 100m + memory: 150Mi + readinessProbe: + httpGet: + path: /api + port: 3000 + scheme: HTTP + initialDelaySeconds: 5 + periodSeconds: 2 + timeoutSeconds: 2 + successThreshold: 1 + failureThreshold: 30 + livenessProbe: + successThreshold: 1 + failureThreshold: 3 + httpGet: + path: /api + port: 3000 + scheme: HTTP + initialDelaySeconds: 15 + periodSeconds: 30 + timeoutSeconds: 5 + initContainers: + - name: database-migrations + registry: '{{ .Values.global.registry }}' + repository: '{{ .Values.global.repository }}' # example, it includes registry and repository + image: migrations + tag: '{{ .Values.global.tag }}' + env: + fromGlobalSecret: + - name: FLYWAY_PASSWORD + key: databasePassword + - name: FLYWAY_URL + key: databaseJDBCURLNoCreds + - name: FLYWAY_USER + key: databaseUser + fromValues: + - name: FLYWAY_BASELINE_ON_MIGRATE + value: "true" + - name: FLYWAY_DEFAULT_SCHEMA + value: "USERS" + resources: + limits: + cpu: 500m + memory: 250Mi + requests: + cpu: 200m + memory: 150Mi + autoscaling: + enabled: true + minReplicas: 3 + maxReplicas: 7 + targetCPUUtilizationPercentage: 80 # this percentage from request cpu + behavior: + scaleDown: + stabilizationWindowSeconds: 300 + policies: + - type: Percent + value: 10 + periodSeconds: 60 + - type: Pods + value: 2 + periodSeconds: 60 + selectPolicy: Min + scaleUp: + stabilizationWindowSeconds: 0 + policies: + - type: Percent + value: 100 + periodSeconds: 30 + - type: Pods + value: 2 + periodSeconds: 30 + selectPolicy: Max + vault: + enabled: false + entrypoint: ~ # the entrypoint for vault, this is the override of container command. + role: ~ #licenseplate-prod or licenseplate-nonprod + secretPaths: # the paths where secrets live. dev/api-1, dev/api-2, test/api-1 etc... + - dev/api-1 + - dev/api-2 + - test/api-1 + - test/api-2 + - prod/api-1 + - prod/api-2 + resources: + limits: + cpu: 50m + memory: 50Mi + requests: + cpu: 50m + memory: 25Mi + service: + enabled: true + type: ClusterIP + ports: + - name: http + port: 80 + targetPort: 3000 # the container port where the application is listening on + protocol: TCP + nodeSelector: { } + tolerations: [ ] + affinity: { } + +frontend: + enabled: true + deployment: # can be either a statefulSet or a deployment not both + enabled: true + configmap: + enabled: true + data: # below is just for example. + config.js: |- + const envConfig = (() => { + return { + "VITE_DEPLOY_ENVIRONMENT":"{{ .Release.Name }}-{{ .Release.Namespace }}" + }; + })(); + config.prod.js: |- + const envConfig = (() => { + return { + "VITE_DEPLOY_ENVIRONMENT":"static" + }; + })(); + containers: + - name: frontend + registry: '{{ .Values.global.registry }}' + repository: '{{ .Values.global.repository }}' # example, it includes registry and repository + image: frontend # the exact component name, be it backend, api-1 etc... + tag: '{{ .Values.global.tag }}' # the tag of the image, it can be latest, 1.0.0 etc..., or the sha256 hash + securityContext: + capabilities: + add: [ "NET_BIND_SERVICE" ] + env: + fromValues: + - name: BACKEND_URL + value: "http://{{ .Release.Name }}-backend" + - name: LOG_LEVEL + value: "info" + fromLocalConfigmap: # just for example purpose. + - name: frontend-configmap + key: config.js + - name: frontend-prod-configmap + key: config.prod.js + ports: + - name: http + containerPort: 3000 + protocol: TCP + - name: http2 + containerPort: 3001 + protocol: TCP + resources: # this is optional + limits: + cpu: 100m + memory: 150Mi + requests: + cpu: 30m + memory: 50Mi + readinessProbe: + httpGet: + path: /health + port: 3001 + scheme: HTTP + initialDelaySeconds: 5 + periodSeconds: 2 + timeoutSeconds: 2 + successThreshold: 1 + failureThreshold: 30 + livenessProbe: + successThreshold: 1 + failureThreshold: 3 + httpGet: + path: /health + port: 3001 + scheme: HTTP + initialDelaySeconds: 15 + periodSeconds: 30 + timeoutSeconds: 5 + autoscaling: + enabled: true + minReplicas: 3 + maxReplicas: 7 + targetCPUUtilizationPercentage: 80 # this percentage from request cpu + behavior: + scaleDown: + stabilizationWindowSeconds: 300 + policies: + - type: Percent + value: 10 + periodSeconds: 60 + - type: Pods + value: 2 + periodSeconds: 60 + selectPolicy: Min + scaleUp: + stabilizationWindowSeconds: 0 + policies: + - type: Percent + value: 100 + periodSeconds: 30 + - type: Pods + value: 2 + periodSeconds: 30 + selectPolicy: Max + service: + enabled: true + type: ClusterIP + ports: + - name: http + port: 80 + targetPort: 3000 # the container port where the application is listening on + protocol: TCP + route: + enabled: true + host: "{{ .Release.Name }}-frontend.{{ .Values.global.domain }}" + targetPort: http # look at line#164 refer to the name. + +crunchy: # enable it for TEST and PROD, for PR based pipelines simply use single postgres + enabled: false + + crunchyImage: artifacts.developer.gov.bc.ca/bcgov-docker-local/crunchy-postgres-gis:ubi8-15.2-3.3-0 + + postgresVersion: 15 + postGISVersion: '3.3' + imagePullPolicy: Always + instances: + name: ha # high availability + replicas: 1 # 2 or 3 for high availability in TEST and PROD. + metadata: + annotations: + prometheus.io/scrape: 'true' + prometheus.io/port: '9187' + dataVolumeClaimSpec: + storage: 120Mi + storageClassName: netapp-block-standard + requests: + cpu: 25m + memory: 256Mi + limits: + cpu: 100m + memory: 512Mi + replicaCertCopy: + requests: + cpu: 1m + memory: 32Mi + limits: + cpu: 50m + memory: 64Mi + + pgBackRest: + enabled: false + image: # it's not necessary to specify an image as the images specified in the Crunchy Postgres Operator will be pulled by default + retention: "1" # Ideally a larger number such as 30 backups/days + # If retention-full-type set to 'count' then the oldest backups will expire when the number of backups reach the number defined in retention + # If retention-full-type set to 'time' then the number defined in retention will take that many days worth of full backups before expiration + retentionFullType: count + repos: + schedules: + full: 0 8 * * * + incremental: 0 0,4,12,16,20 * * * + volume: + accessModes: "ReadWriteOnce" + storage: 64Mi + storageClassName: netapp-file-backup + repoHost: + requests: + cpu: 1m + memory: 64Mi + limits: + cpu: 50m + memory: 128Mi + sidecars: + requests: + cpu: 1m + memory: 64Mi + limits: + cpu: 50m + memory: 128Mi + + patroni: + postgresql: + pg_hba: "host all all 0.0.0.0/0 md5" + parameters: + shared_buffers: 16MB # default is 128MB; a good tuned default for shared_buffers is 25% of the memory allocated to the pod + wal_buffers: "64kB" # this can be set to -1 to automatically set as 1/32 of shared_buffers or 64kB, whichever is larger + min_wal_size: 32MB + max_wal_size: 64MB # default is 1GB + max_slot_wal_keep_size: 128MB # default is -1, allowing unlimited wal growth when replicas fall behind + + proxy: + pgBouncer: + image: # it's not necessary to specify an image as the images specified in the Crunchy Postgres Operator will be pulled by default + replicas: 1 + requests: + cpu: 1m + memory: 64Mi + limits: + cpu: 50m + memory: 128Mi + + # Postgres Cluster resource values: + pgmonitor: + enabled: false + exporter: + image: # it's not necessary to specify an image as the images specified in the Crunchy Postgres Operator will be pulled by default + requests: + cpu: 1m + memory: 64Mi + limits: + cpu: 50m + memory: 128Mi + +bitnami-pg: + enabled: true + image: + registry: ghcr.io + repository: bcgov/nr-containers/bitnami/postgresql + tag: 15.5.0 + auth: + existingSecret: '{{ .Release.Name }}' + username: 'quickstart' + database: quickstart + shmVolume: + enabled: false + backup: + enabled: false + cronjob: + containerSecurityContext: { } + podSecurityContext: + enabled: false + storage: + size: 200Mi + primary: + persistence: + enabled: true + storageClass: netapp-file-standard + accessModes: + - ReadWriteOnce + size: 100Mi + containerSecurityContext: + enabled: false + podSecurityContext: + enabled: false + initdb: + scripts: # remove the below script, if POSTGIS is not required. + postgis.sh: | + #!/bin/sh + PGPASSWORD=$POSTGRES_PASSWORD psql -U postgres -d postgres -c "CREATE EXTENSION postgis;" + resources: + requests: + cpu: 50m + memory: 150Mi + limits: + cpu: 150m + memory: 250Mi + +backup: + enabled: true + pvc: + enabled: true + size: 256Mi + storageClassName: netapp-file-standard + accessModes: ReadWriteOnce + cronjob: + enabled: true + volumes: + - name: "{{.Release.Name}}-backup" + persistentVolumeClaim: + claimName: "{{.Release.Name}}-backup" + restartPolicy: "Never" + schedule: "0 0 * * *" + concurrencyPolicy: "Replace" + failedJobsHistoryLimit: 7 + successfulJobsHistoryLimit: 30 + startingDeadlineSeconds: 3600 + containers: + - name: backup + registry: 'docker.io' + repository: 'bcgovimages' # example, it includes registry and repository + image: backup-container # the exact component name, be it backend, api-1 etc... + tag: latest # the tag of the image, it can be latest, 1.0.0 etc..., or the sha256 hash + command: + - "/bin/bash" + - "-c" + - "/backup.sh -1" + volumeMounts: + - mountPath: "/backups/" + name: "{{.Release.Name}}-backup" + env: + fromValues: + - name: BACKUP_DIR + value: "/backups/" + - name: BACKUP_STRATEGY + value: "rolling" + - name: NUM_BACKUPS + value: '5' + - name: DAILY_BACKUPS + value: '7' + - name: WEEKLY_BACKUPS + value: '4' + - name: MONTHLY_BACKUPS + value: '1' + - name: DATABASE_SERVICE_NAME # depends on which chart being used, adjust accordingly. + value: '{{.Release.Name}}-{{.Values.global.databaseAlias}}' + - name: DEFAULT_PORT + value: "5432" + fromGlobalSecret: + - name: DATABASE_PASSWORD + key: password + - name: POSTGRESQL_DATABASE + key: databaseName + - name: DATABASE_USER + key: databaseUser + resources: + limits: + cpu: 50m + memory: 256Mi + requests: + cpu: 20m + memory: 128Mi diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..d758cfa --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,91 @@ +--- +version: "3.9" + +x-var: + - &POSTGRES_USER + postgres + - &POSTGRES_PASSWORD + default + - &POSTGRES_DATABASE + postgres + +x-postgres-vars: &postgres-vars + POSTGRES_HOST: database + POSTGRES_USER: *POSTGRES_USER + POSTGRES_PASSWORD: *POSTGRES_PASSWORD + POSTGRES_DATABASE: *POSTGRES_DATABASE + +services: + database: + image: postgres:15 + container_name: database + environment: + <<: *postgres-vars + healthcheck: + test: ["CMD", "pg_isready", "-U", *POSTGRES_USER] + ports: ["5432:5432"] + + migrations: + image: flyway/flyway:9-alpine + container_name: migrations + command: info migrate info + volumes: ["./migrations/sql:/flyway/sql:ro"] + environment: + FLYWAY_URL: jdbc:postgresql://database:5432/postgres + FLYWAY_USER: *POSTGRES_USER + FLYWAY_PASSWORD: *POSTGRES_PASSWORD + FLYWAY_BASELINE_ON_MIGRATE: true + FLYWAY_DEFAULT_SCHEMA: USERS + depends_on: + database: + condition: service_healthy + + backend: + container_name: backend + entrypoint: sh -c "npm i && npm run start:dev" + environment: + <<: *postgres-vars + NODE_ENV: development + image: node:20-bullseye + ports: ["3001:3000"] + volumes: ["./backend:/app", "/app/node_modules"] + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3000/api"] + working_dir: "/app" + depends_on: + migrations: + condition: service_started + + frontend: + container_name: frontend + entrypoint: sh -c "npm ci && npm run dev" + environment: + NODE_ENV: development + PORT: 3000 + BACKEND_URL: http://backend:3000 + image: node:20-bullseye + ports: ["3000:3000"] + volumes: ["./frontend:/app", "/app/node_modules"] + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3000"] + working_dir: "/app" + depends_on: + backend: + condition: service_healthy + + caddy: + container_name: caddy + profiles: ["caddy"] + build: ./frontend + environment: + NODE_ENV: development + PORT: 3000 + BACKEND_URL: http://backend:3000 + LOG_LEVEL: info + ports: ["3005:3000"] + volumes: ["./frontend/Caddyfile:/etc/caddy/Caddyfile"] + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3000"] + depends_on: + backend: + condition: service_healthy diff --git a/frontend/.dockerignore b/frontend/.dockerignore new file mode 100644 index 0000000..a5712a1 --- /dev/null +++ b/frontend/.dockerignore @@ -0,0 +1,6 @@ +coverage +.vscode +.idea +dist +node_modules +cypress diff --git a/frontend/.eslintignore b/frontend/.eslintignore new file mode 100644 index 0000000..7d455ee --- /dev/null +++ b/frontend/.eslintignore @@ -0,0 +1,7 @@ +.husky/ +.vscode/ +.yarn/ +coverage/ +dist/ +public/assets/ +tsconfig.*.json diff --git a/frontend/.eslintrc.yml b/frontend/.eslintrc.yml new file mode 100644 index 0000000..f088349 --- /dev/null +++ b/frontend/.eslintrc.yml @@ -0,0 +1,75 @@ +env: + browser: true + es2021: true + node: true + +extends: + - 'eslint:recommended' + - 'plugin:react/recommended' + - 'plugin:@typescript-eslint/recommended' + - 'prettier' + - 'plugin:prettier/recommended' + +parser: '@typescript-eslint/parser' + +parserOptions: + ecmaFeatures: + jsx: true + ecmaVersion: 12 + sourceType: module + project: './frontend/tsconfig.json' + +plugins: + - 'react' + - 'react-hooks' + - '@typescript-eslint' + - 'prettier' + - 'cypress' + +settings: + react: + version: 'detect' + +rules: + # General ESLint rules + 'no-console': 'off' + 'no-debugger': 'warn' + 'no-unused-vars': 'off' + 'no-empty': ['error', { allowEmptyCatch: true }] + 'no-undef': 'off' + 'no-use-before-define': 'off' + 'no-restricted-imports': [ + 'error', + { + paths: [ + { + name: 'react', + importNames: ['default'], + message: "Please import from 'react/jsx-runtime' instead.", + }, + ], + }, + ] + + # React rules + 'react/jsx-uses-react': 'off' + 'react/react-in-jsx-scope': 'off' + 'react/prop-types': 'off' + 'react/display-name': 'off' + 'react-hooks/rules-of-hooks': 'error' + 'react-hooks/exhaustive-deps': 'warn' + + # TypeScript rules + '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }] + '@typescript-eslint/explicit-module-boundary-types': 'off' + '@typescript-eslint/no-empty-interface': 'off' + '@typescript-eslint/no-explicit-any': 'off' + '@typescript-eslint/no-non-null-assertion': 'off' + '@typescript-eslint/ban-types': 'off' + '@typescript-eslint/no-use-before-define': ['error', { functions: false }] + '@typescript-eslint/no-var-requires': 'off' + '@typescript-eslint/explicit-function-return-type': 'off' + '@typescript-eslint/consistent-type-imports': [ + 'error', + { prefer: 'type-imports' }, + ] diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/frontend/.prettierrc.yml b/frontend/.prettierrc.yml new file mode 100644 index 0000000..0de77c4 --- /dev/null +++ b/frontend/.prettierrc.yml @@ -0,0 +1,22 @@ +# .prettierrc.yml + +# Use single quotes instead of double quotes +singleQuote: true + +# Use 2 spaces for indentation +tabWidth: 2 + +# Use spaces instead of tabs +useTabs: false + +# Add a trailing comma to the last item in an object or array +trailingComma: 'all' + +# Print semicolons at the ends of statements +semi: false + +# Wrap prose-like comments as-is +proseWrap: 'always' + +# Format files with Unix-style line endings +endOfLine: 'lf' \ No newline at end of file diff --git a/frontend/.vscode/extensions.json b/frontend/.vscode/extensions.json new file mode 100644 index 0000000..c0a6e5a --- /dev/null +++ b/frontend/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] +} diff --git a/frontend/Caddyfile b/frontend/Caddyfile new file mode 100644 index 0000000..2a88e9c --- /dev/null +++ b/frontend/Caddyfile @@ -0,0 +1,45 @@ +{ + auto_https off + admin off +} +:3000 { + log { + output stdout + format console { + time_format iso8601 + level_format color + } + level {$LOG_LEVEL} + } + root * /srv + encode zstd gzip + file_server + @spa_router { + not path /api/* + file { + try_files {path} /index.html + } + } + rewrite @spa_router {http.matchers.file.relative} + # Proxy requests to API service + reverse_proxy /api/* {$BACKEND_URL} { + header_up Host {http.reverse_proxy.upstream.hostport} + header_up X-Real-IP {remote_host} + header_up X-Forwarded-For {remote_host} + } + header { + X-Frame-Options "SAMEORIGIN" + X-XSS-Protection "1;mode=block" + Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate" + X-Content-Type-Options "nosniff" + Strict-Transport-Security "max-age=31536000" + Content-Security-Policy "default-src 'self' https://spt.apps.gov.bc.ca data:; script-src 'self' 'unsafe-eval' https://www2.gov.bc.ca ;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://use.fontawesome.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: https://fonts.googleapis.com http://www.w3.org https://*.gov.bc.ca" + Referrer-Policy "same-origin" + Feature-Policy "fullscreen 'self'; camera 'none'; microphone 'none'" + } +} +:3001 { + handle /health { + respond "OK" + } +} diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000..473cc4f --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,25 @@ +# Build static files +# Node Bullseye has npm +FROM node:20.10.0-bullseye-slim AS build + +# Install packages, build and keep only prod packages +WORKDIR /app +COPY *.json *.ts index.html ./ +COPY ./src ./src +RUN npm ci --ignore-scripts --no-update-notifier --omit=dev && \ + npm run build + +# Deploy container +# Caddy serves static files +FROM caddy:2.7.5-alpine +RUN apk add --no-cache ca-certificates + +# Copy static files and run formatting +COPY --from=build /app/dist /srv +COPY Caddyfile /etc/caddy/Caddyfile +RUN caddy fmt --overwrite /etc/caddy/Caddyfile + +# Ports, health check and non-root user +EXPOSE 3000 3001 +HEALTHCHECK --interval=30s --timeout=3s CMD curl -f http://localhost/:3001/health +USER 1001 diff --git a/frontend/cypress.config.ts b/frontend/cypress.config.ts new file mode 100644 index 0000000..732c2df --- /dev/null +++ b/frontend/cypress.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "cypress"; + +export default defineConfig({ + e2e: { + baseUrl: 'https://quickstart-openshift-test-frontend.apps.silver.devops.gov.bc.ca/', + setupNodeEvents(on, config) { + // implement node event listeners here + }, + experimentalStudio: true, + experimentalWebKitSupport: true, + }, +}); diff --git a/frontend/cypress/e2e/home-page.cy.ts b/frontend/cypress/e2e/home-page.cy.ts new file mode 100644 index 0000000..3d7864d --- /dev/null +++ b/frontend/cypress/e2e/home-page.cy.ts @@ -0,0 +1,8 @@ +/// +describe("Home page visit", () => { + + it("visit landing page", () => { + cy.visit("/"); + cy.contains("Quickstart OpenShift"); + }); +}); diff --git a/frontend/cypress/e2e/user-table.cy.ts b/frontend/cypress/e2e/user-table.cy.ts new file mode 100644 index 0000000..bc40487 --- /dev/null +++ b/frontend/cypress/e2e/user-table.cy.ts @@ -0,0 +1,30 @@ +/// +describe("User Table", () => { + beforeEach(() => { + cy.visit("/"); + }); + + it("renders the table", () => { + cy.get("h6.MuiTypography-root").should("exist").should(($div) => { + // access the native DOM element + expect($div.get(0).innerText).to.eq('User List') + }); + cy.get("th.MuiTableCell-root:nth-child(2) > span:nth-child(1) > button:nth-child(1) > div:nth-child(1) > div:nth-child(1)").should("exist").should(($div) => { + // access the native DOM element + expect($div.get(0).innerText).to.eq('ID'); + }); + cy.get("th.MuiTableCell-root:nth-child(3) > span:nth-child(1) > button:nth-child(1)").should("exist").should(($div) => { + // access the native DOM element + expect($div.get(0).innerText).to.eq('NAME'); + }); + cy.get("th.MuiTableCell-root:nth-child(4) > span:nth-child(1) > button:nth-child(1) > div:nth-child(1) > div:nth-child(1)").should("exist").should(($div) => { + // access the native DOM element + expect($div.get(0).innerText).to.eq('EMAIL'); + }); + cy.get(".MuiTableBody-root").should("exist").should(($div) => { + // access the native DOM element + console.info($div.get(0)) + expect($div.get(0).childNodes.length).to.eq(5); + }); + }); +}); diff --git a/frontend/cypress/support/e2e.ts b/frontend/cypress/support/e2e.ts new file mode 100644 index 0000000..e69de29 diff --git a/frontend/cypress/support/index.ts b/frontend/cypress/support/index.ts new file mode 100644 index 0000000..551c38a --- /dev/null +++ b/frontend/cypress/support/index.ts @@ -0,0 +1,2 @@ +declare namespace Cypress { +} diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..5d1983c --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,17 @@ + + + + + + + + + + + QuickStart OpenShift + + +

+ + + diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..82fcf37 --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,10340 @@ +{ + "name": "quickstart-openshift-react-frontend", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "quickstart-openshift-react-frontend", + "version": "1.0.0", + "dependencies": { + "@emotion/react": "^11.11.0", + "@emotion/styled": "^11.11.0", + "@mui/icons-material": "^5.11.16", + "@mui/material": "^5.13.1", + "@vitejs/plugin-react": "^4.0.0", + "axios": "^1.4.0", + "mui-datatables": "^4.3.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router": "^6.12.1", + "react-router-dom": "^6.12.1", + "vite": "^4.4.11", + "vite-tsconfig-paths": "^4.2.0" + }, + "devDependencies": { + "@faker-js/faker": "^8.0.2", + "@testing-library/cypress": "^10.0.0", + "@testing-library/jest-dom": "^6.0.0", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.4.3", + "@types/mui-datatables": "^4.3.5", + "@types/react": "^18.2.6", + "@types/react-dom": "^18.2.4", + "@vitest/coverage-v8": "^0.34.0", + "@vitest/ui": "^0.34.6", + "cypress": "^13.0.0", + "cypress-file-upload": "^5.0.8", + "cypress-plugin-api": "^2.11.1", + "eslint": "^8.41.0", + "eslint-config-prettier": "^9.0.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-import-resolver-alias": "^1.1.2", + "eslint-import-resolver-typescript": "^3.5.5", + "eslint-plugin-cypress": "^2.13.3", + "eslint-plugin-html": "^7.1.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-react": "^7.32.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-tsdoc": "^0.2.17", + "eslint-plugin-yaml": "^0.5.0", + "history": "^5.3.0", + "jsdom": "^22.1.0", + "msw": "^2.0.1", + "prettier": "^3.0.0", + "typescript": "^5.1.3", + "vitest": "^0.34.6" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.1.tgz", + "integrity": "sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==", + "dev": true + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", + "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/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/@babel/code-frame/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/@babel/code-frame/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/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/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/@babel/compat-data": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz", + "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==", + "dependencies": { + "@babel/types": "^7.23.4", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", + "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.4", + "@babel/types": "^7.23.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "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==", + "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==", + "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==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "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==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", + "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz", + "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz", + "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz", + "integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.23.4.tgz", + "integrity": "sha512-zQyB4MJGM+rvd4pM58n26kf3xbiitw9MHzL8oLiBMKb8MCtVDfV5nDzzJWWzLMtbvKI9wN6XwJYl479qF4JluQ==", + "dependencies": { + "core-js-pure": "^3.30.2", + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz", + "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==", + "dependencies": { + "@babel/code-frame": "^7.23.4", + "@babel/generator": "^7.23.4", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.4", + "@babel/types": "^7.23.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", + "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "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/@bundled-es-modules/cookie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/cookie/-/cookie-2.0.0.tgz", + "integrity": "sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==", + "dev": true, + "dependencies": { + "cookie": "^0.5.0" + } + }, + "node_modules/@bundled-es-modules/js-levenshtein": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/js-levenshtein/-/js-levenshtein-2.0.1.tgz", + "integrity": "sha512-DERMS3yfbAljKsQc0U2wcqGKUWpdFjwqWuoMugEJlqBnKO180/n+4SR/J8MRDt1AN48X1ovgoD9KrdVXcaa3Rg==", + "dev": true, + "dependencies": { + "js-levenshtein": "^1.1.6" + } + }, + "node_modules/@bundled-es-modules/statuses": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz", + "integrity": "sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==", + "dev": true, + "dependencies": { + "statuses": "^2.0.1" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cypress/request": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", + "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "6.10.4", + "safe-buffer": "^5.1.2", + "tough-cookie": "^4.1.3", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "dependencies": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "node_modules/@emotion/react": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz", + "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", + "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", + "dependencies": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + }, + "node_modules/@emotion/styled": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", + "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@faker-js/faker": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-8.3.1.tgz", + "integrity": "sha512-FdgpFxY6V6rLZE9mmIBb9hM0xpfvQOSNOLnzolzKwsE1DH+gC7lEKV1p1IbR0lAYyvYd5a4u3qWJzowUkw1bIw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/fakerjs" + } + ], + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0", + "npm": ">=6.14.13" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", + "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "dependencies": { + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "dependencies": { + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.4.tgz", + "integrity": "sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==", + "dependencies": { + "@floating-ui/dom": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "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/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", + "integrity": "sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==", + "dev": true + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz", + "integrity": "sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==", + "dev": true, + "dependencies": { + "@microsoft/tsdoc": "0.14.2", + "ajv": "~6.12.6", + "jju": "~1.4.0", + "resolve": "~1.19.0" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@mswjs/cookies": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-1.1.0.tgz", + "integrity": "sha512-0ZcCVQxifZmhwNBoQIrystCb+2sWBY2Zw8lpfJBPCHGCA/HWqehITeCRVIv4VMy8MPlaHo2w2pTHFV2pFfqKPw==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@mswjs/interceptors": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.25.12.tgz", + "integrity": "sha512-a+zyoR01cPQeukSmaDEkE6aMwSjjfcT5ILzsyxmctEeCePnc2DMOd0X8Fn9bytq1IsAfMxJf/lu2aTfdivDbRg==", + "dev": true, + "dependencies": { + "@open-draft/deferred-promise": "^2.2.0", + "@open-draft/logger": "^0.3.0", + "@open-draft/until": "^2.0.0", + "is-node-process": "^1.2.0", + "outvariant": "^1.2.1", + "strict-event-emitter": "^0.5.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@mui/base": { + "version": "5.0.0-beta.24", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.24.tgz", + "integrity": "sha512-bKt2pUADHGQtqWDZ8nvL2Lvg2GNJyd/ZUgZAJoYzRgmnxBL9j36MSlS3+exEdYkikcnvVafcBtD904RypFKb0w==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@floating-ui/react-dom": "^2.0.4", + "@mui/types": "^7.2.9", + "@mui/utils": "^5.14.18", + "@popperjs/core": "^2.11.8", + "clsx": "^2.0.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.14.18", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.18.tgz", + "integrity": "sha512-yFpF35fEVDV81nVktu0BE9qn2dD/chs7PsQhlyaV3EnTeZi9RZBuvoEfRym1/jmhJ2tcfeWXiRuHG942mQXJJQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + } + }, + "node_modules/@mui/icons-material": { + "version": "5.14.18", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.14.18.tgz", + "integrity": "sha512-o2z49R1G4SdBaxZjbMmkn+2OdT1bKymLvAYaB6pH59obM1CYv/0vAVm6zO31IqhwtYwXv6A7sLIwCGYTaVkcdg==", + "dependencies": { + "@babel/runtime": "^7.23.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@mui/material": "^5.0.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material": { + "version": "5.14.18", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.14.18.tgz", + "integrity": "sha512-y3UiR/JqrkF5xZR0sIKj6y7xwuEiweh9peiN3Zfjy1gXWXhz5wjlaLdoxFfKIEBUFfeQALxr/Y8avlHH+B9lpQ==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@mui/base": "5.0.0-beta.24", + "@mui/core-downloads-tracker": "^5.14.18", + "@mui/system": "^5.14.18", + "@mui/types": "^7.2.9", + "@mui/utils": "^5.14.18", + "@types/react-transition-group": "^4.4.8", + "clsx": "^2.0.0", + "csstype": "^3.1.2", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/private-theming": { + "version": "5.14.18", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.14.18.tgz", + "integrity": "sha512-WSgjqRlzfHU+2Rou3HlR2Gqfr4rZRsvFgataYO3qQ0/m6gShJN+lhVEvwEiJ9QYyVzMDvNpXZAcqp8Y2Vl+PAw==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@mui/utils": "^5.14.18", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.14.18", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.14.18.tgz", + "integrity": "sha512-pW8bpmF9uCB5FV2IPk6mfbQCjPI5vGI09NOLhtGXPeph/4xIfC3JdIX0TILU0WcTs3aFQqo6s2+1SFgIB9rCXA==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.2", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.14.18", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.14.18.tgz", + "integrity": "sha512-hSQQdb3KF72X4EN2hMEiv8EYJZSflfdd1TRaGPoR7CIAG347OxCslpBUwWngYobaxgKvq6xTrlIl+diaactVww==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@mui/private-theming": "^5.14.18", + "@mui/styled-engine": "^5.14.18", + "@mui/types": "^7.2.9", + "@mui/utils": "^5.14.18", + "clsx": "^2.0.0", + "csstype": "^3.1.2", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.9", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.9.tgz", + "integrity": "sha512-k1lN/PolaRZfNsRdAqXtcR71sTnv3z/VCCGPxU8HfdftDkzi335MdJ6scZxvofMAd/K/9EbzCZTFBmlNpQVdCg==", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.14.18", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.14.18.tgz", + "integrity": "sha512-HZDRsJtEZ7WMSnrHV9uwScGze4wM/Y+u6pDVo+grUjt5yXzn+wI8QX/JwTHh9YSw/WpnUL80mJJjgCnWj2VrzQ==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@types/prop-types": "^15.7.10", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@open-draft/deferred-promise": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", + "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", + "dev": true + }, + "node_modules/@open-draft/logger": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", + "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", + "dev": true, + "dependencies": { + "is-node-process": "^1.2.0", + "outvariant": "^1.4.0" + } + }, + "node_modules/@open-draft/until": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", + "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==", + "dev": true + }, + "node_modules/@pkgr/utils": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", + "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "fast-glob": "^3.3.0", + "is-glob": "^4.0.3", + "open": "^9.1.0", + "picocolors": "^1.0.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.23", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz", + "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==", + "dev": true + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@react-dnd/asap": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-4.0.1.tgz", + "integrity": "sha512-kLy0PJDDwvwwTXxqTFNAAllPHD73AycE9ypWeln/IguoGBEbvFcPDbCV03G52bEcC5E+YgupBE0VzHGdC8SIXg==" + }, + "node_modules/@react-dnd/invariant": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-2.0.0.tgz", + "integrity": "sha512-xL4RCQBCBDJ+GRwKTFhGUW8GXa4yoDfJrPbLblc3U09ciS+9ZJXJ3Qrcs/x2IODOdIE5kQxvMmE2UKyqUictUw==" + }, + "node_modules/@react-dnd/shallowequal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-2.0.0.tgz", + "integrity": "sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg==" + }, + "node_modules/@remix-run/router": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.12.0.tgz", + "integrity": "sha512-2hXv036Bux90e1GXTWSMfNzfDDK8LA8JYEWfyHxzvwdp6GyoWEovKc9cotb3KCKmkdwsIBuFGX7ScTWyiHv7Eg==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@testing-library/cypress": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@testing-library/cypress/-/cypress-10.0.1.tgz", + "integrity": "sha512-e8uswjTZIBhaIXjzEcrQQ8nHRWHgZH7XBxKuIWxZ/T7FxfWhCR48nFhUX5nfPizjVOKSThEfOSv67jquc1ASkw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.14.6", + "@testing-library/dom": "^9.0.0" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "cypress": "^12.0.0 || ^13.0.0" + } + }, + "node_modules/@testing-library/dom": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.3.tgz", + "integrity": "sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.1.4.tgz", + "integrity": "sha512-wpoYrCYwSZ5/AxcrjLxJmCU6I5QAJXslEeSiMQqaWmP2Kzpd1LvF/qxmAIW2qposULGWq2gw30GgVNFLSc2Jnw==", + "dev": true, + "dependencies": { + "@adobe/css-tools": "^4.3.1", + "@babel/runtime": "^7.9.2", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + }, + "peerDependencies": { + "@jest/globals": ">= 28", + "@types/jest": ">= 28", + "jest": ">= 28", + "vitest": ">= 0.32" + }, + "peerDependenciesMeta": { + "@jest/globals": { + "optional": true + }, + "@types/jest": { + "optional": true + }, + "jest": { + "optional": true + }, + "vitest": { + "optional": true + } + } + }, + "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==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.1.2.tgz", + "integrity": "sha512-z4p7DVBTPjKM5qDZ0t5ZjzkpSNb+fZy1u6bzO7kk8oeGagpPCAtgh4cx1syrfp7a+QWkM021jGqjJaxJJnXAZg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^9.0.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@testing-library/user-event": { + "version": "14.5.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.1.tgz", + "integrity": "sha512-UCcUKrUYGj7ClomOo2SpNVvx4/fkd/2BbIHDCle8A0ax+P3bU7yJwDBDrS6ZwdTMARWTGODX1hEsCcO+7beJjg==", + "dev": true, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/chai": { + "version": "4.3.11", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.11.tgz", + "integrity": "sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==", + "dev": true + }, + "node_modules/@types/chai-subset": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.5.tgz", + "integrity": "sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==", + "dev": true, + "dependencies": { + "@types/chai": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", + "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/js-levenshtein": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.3.tgz", + "integrity": "sha512-jd+Q+sD20Qfu9e2aEXogiO3vpOC1PYJOUdyN9gvs4Qrvkg4wF43L5OhqrPeokdv8TL0/mXoYfpkcoGZMNN2pkQ==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "peer": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/mui-datatables": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/@types/mui-datatables/-/mui-datatables-4.3.10.tgz", + "integrity": "sha512-MlL9F1kasoGW6tOPpS4P6YGRLQtKYUu0sraj8kcak8HpQJ4+FkOvPLUlETZcct/+D2weYa6uw4uRdXSjqjcnJw==", + "dev": true, + "dependencies": { + "@emotion/react": "^11.10.5", + "@emotion/styled": "^11.10.5", + "@mui/material": "^5.11.4", + "@types/react": "*", + "csstype": "^3.1.1" + } + }, + "node_modules/@types/node": { + "version": "18.18.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.12.tgz", + "integrity": "sha512-G7slVfkwOm7g8VqcEF1/5SXiMjP3Tbt+pXDU3r/qhlM2KkGm786DUD4xyMA2QzEElFrv/KZV9gjygv4LnkpbMQ==", + "devOptional": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + }, + "node_modules/@types/react": { + "version": "18.2.38", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.38.tgz", + "integrity": "sha512-cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.17", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.17.tgz", + "integrity": "sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.9", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.9.tgz", + "integrity": "sha512-ZVNmWumUIh5NhH8aMD9CR2hdW0fNuYInlocZHaZ+dgk/1K49j1w/HoAuK1ki+pgscQrOFRTlXeoURtuzEkV3dg==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + }, + "node_modules/@types/semver": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "dev": true, + "peer": true + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true + }, + "node_modules/@types/sizzle": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", + "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==", + "dev": true + }, + "node_modules/@types/statuses": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/statuses/-/statuses-2.0.4.tgz", + "integrity": "sha512-eqNDvZsCNY49OAXB0Firg/Sc2BgoWsntsLUdybGFOhAfCD6QJ2n9HXUIHGqt5qjrxmMv4wS8WLAw43ZkKcJ8Pw==", + "dev": true + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.12.0.tgz", + "integrity": "sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==", + "dev": true, + "peer": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.12.0", + "@typescript-eslint/type-utils": "6.12.0", + "@typescript-eslint/utils": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.12.0.tgz", + "integrity": "sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.12.0", + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/typescript-estree": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz", + "integrity": "sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.12.0.tgz", + "integrity": "sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==", + "dev": true, + "peer": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.12.0", + "@typescript-eslint/utils": "6.12.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.12.0.tgz", + "integrity": "sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz", + "integrity": "sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.12.0.tgz", + "integrity": "sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==", + "dev": true, + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.12.0", + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/typescript-estree": "6.12.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz", + "integrity": "sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.12.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.0.tgz", + "integrity": "sha512-+MHTH/e6H12kRp5HUkzOGqPMksezRMmW+TNzlh/QXfI8rRf6l2Z2yH/v12no1UvTwhZgEDMuQ7g7rrfMseU6FQ==", + "dependencies": { + "@babel/core": "^7.23.3", + "@babel/plugin-transform-react-jsx-self": "^7.23.3", + "@babel/plugin-transform-react-jsx-source": "^7.23.3", + "@types/babel__core": "^7.20.4", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/@vitest/coverage-v8": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-0.34.6.tgz", + "integrity": "sha512-fivy/OK2d/EsJFoEoxHFEnNGTg+MmdZBAVK9Ka4qhXR2K3J0DS08vcGVwzDtXSuUMabLv4KtPcpSKkcMXFDViw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@bcoe/v8-coverage": "^0.2.3", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.1.5", + "magic-string": "^0.30.1", + "picocolors": "^1.0.0", + "std-env": "^3.3.3", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": ">=0.32.0 <1" + } + }, + "node_modules/@vitest/expect": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.6.tgz", + "integrity": "sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==", + "dev": true, + "dependencies": { + "@vitest/spy": "0.34.6", + "@vitest/utils": "0.34.6", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.6.tgz", + "integrity": "sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==", + "dev": true, + "dependencies": { + "@vitest/utils": "0.34.6", + "p-limit": "^4.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/snapshot": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.6.tgz", + "integrity": "sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==", + "dev": true, + "dependencies": { + "magic-string": "^0.30.1", + "pathe": "^1.1.1", + "pretty-format": "^29.5.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vitest/snapshot/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/spy": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.6.tgz", + "integrity": "sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==", + "dev": true, + "dependencies": { + "tinyspy": "^2.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/ui": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.34.6.tgz", + "integrity": "sha512-/fxnCwGC0Txmr3tF3BwAbo3v6U2SkBTGR9UB8zo0Ztlx0BTOXHucE0gDHY7SjwEktCOHatiGmli9kZD6gYSoWQ==", + "dev": true, + "dependencies": { + "@vitest/utils": "0.34.6", + "fast-glob": "^3.3.0", + "fflate": "^0.8.0", + "flatted": "^3.2.7", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "sirv": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": ">=0.30.1 <1" + } + }, + "node_modules/@vitest/utils": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz", + "integrity": "sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==", + "dev": true, + "dependencies": { + "diff-sequences": "^29.4.3", + "loupe": "^2.3.6", + "pretty-format": "^29.5.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vitest/utils/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.8.tgz", + "integrity": "sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.23.0", + "@vue/shared": "3.3.8", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.8.tgz", + "integrity": "sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.3.8", + "@vue/shared": "3.3.8" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.8.tgz", + "integrity": "sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.23.0", + "@vue/compiler-core": "3.3.8", + "@vue/compiler-dom": "3.3.8", + "@vue/compiler-ssr": "3.3.8", + "@vue/reactivity-transform": "3.3.8", + "@vue/shared": "3.3.8", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.5", + "postcss": "^8.4.31", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.8.tgz", + "integrity": "sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.3.8", + "@vue/shared": "3.3.8" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.8.tgz", + "integrity": "sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw==", + "dev": true, + "dependencies": { + "@vue/shared": "3.3.8" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.8.tgz", + "integrity": "sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.23.0", + "@vue/compiler-core": "3.3.8", + "@vue/shared": "3.3.8", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.5" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.8.tgz", + "integrity": "sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw==", + "dev": true, + "dependencies": { + "@vue/reactivity": "3.3.8", + "@vue/shared": "3.3.8" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.8.tgz", + "integrity": "sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA==", + "dev": true, + "dependencies": { + "@vue/runtime-core": "3.3.8", + "@vue/shared": "3.3.8", + "csstype": "^3.1.2" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.8.tgz", + "integrity": "sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg==", + "dev": true, + "dependencies": { + "@vue/compiler-ssr": "3.3.8", + "@vue/shared": "3.3.8" + }, + "peerDependencies": { + "vue": "3.3.8" + } + }, + "node_modules/@vue/shared": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.8.tgz", + "integrity": "sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", + "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", + "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true + }, + "node_modules/asynciterator.prototype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", + "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true + }, + "node_modules/axios": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.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/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "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==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "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/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "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==", + "dev": true, + "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/browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "peer": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cachedir": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", + "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "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/caniuse-lite": { + "version": "1.0.30001563", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz", + "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "node_modules/chai": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "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/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "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/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==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha512-41U72MB56TfUMGndAKK8vJ78eooOD4Z5NOL4xEfjc0c23s+6EYKXlXsmACBVclLP1yOfWCgEganVzddVrSNoTg==", + "dev": true, + "dependencies": { + "exit": "0.1.2", + "glob": "^7.1.1" + }, + "engines": { + "node": ">=0.2.5" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz", + "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "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": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha512-duS7VP5pvfsNLDvL1O4VOEbw37AI3A4ZUQYemvDlnpGrNu9tprR7BYWpDYwC0Xia0Zxz5ZupdiIrUp0GH1aXfg==", + "dev": true, + "dependencies": { + "date-now": "^0.1.4" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/core-js-pure": { + "version": "3.33.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.33.3.tgz", + "integrity": "sha512-taJ00IDOP+XYQEA2dAe4ESkmHt1fL8wzYDo3mRWQey8uO9UojlBFMneA65kMyxfYP7106c6LzWaq7/haDT6BCQ==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "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==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", + "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", + "dev": true, + "dependencies": { + "rrweb-cssom": "^0.6.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/cypress": { + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.0.tgz", + "integrity": "sha512-quIsnFmtj4dBUEJYU4OH0H12bABJpSujvWexC24Ju1gTlKMJbeT6tTO0vh7WNfiBPPjoIXLN+OUqVtiKFs6SGw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@cypress/request": "^3.0.0", + "@cypress/xvfb": "^1.2.4", + "@types/node": "^18.17.5", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.6.0", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^6.2.1", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.4", + "enquirer": "^2.3.6", + "eventemitter2": "6.4.7", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.0", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.8", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "process": "^0.11.10", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.5.3", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "bin": { + "cypress": "bin/cypress" + }, + "engines": { + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + } + }, + "node_modules/cypress-file-upload": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz", + "integrity": "sha512-+8VzNabRk3zG6x8f8BWArF/xA/W0VK4IZNx3MV0jFWrJS/qKn8eHfa5nU73P9fOQAgwHFJx7zjg4lwOnljMO8g==", + "dev": true, + "engines": { + "node": ">=8.2.1" + }, + "peerDependencies": { + "cypress": ">3.0.0" + } + }, + "node_modules/cypress-plugin-api": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/cypress-plugin-api/-/cypress-plugin-api-2.11.1.tgz", + "integrity": "sha512-62Fc5H59Web01UrcbEsgfhp0pDN7xmHtkXYqTGmwD4NiHz1DN+9ZSxjxVFAUCBY1Q+Ns2E3nTOvDZIl8wdeNDQ==", + "dev": true, + "dependencies": { + "highlight.js": "11.4.0", + "prismjs": "^1.29.0", + "set-cookie-parser": "^2.5.1", + "vue": "^3.2.41" + }, + "peerDependencies": { + "cypress": ">=3" + } + }, + "node_modules/cypress/node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", + "dev": true + }, + "node_modules/cypress/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", + "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha512-AsElvov3LoNB7tf5k37H2jYSB+ZZPMT5sG2QjJCcdlV5chIv6htBUBUui2IKRjgtKAKtCBN7Zbwa+MtwLjSeNw==", + "dev": true + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "dev": true + }, + "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/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "dev": true + }, + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-browser/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/default-browser/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dnd-core": { + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-11.1.3.tgz", + "integrity": "sha512-QugF55dNW+h+vzxVJ/LSJeTeUw9MCJ2cllhmVThVPEtF16ooBkxj0WBE5RB+AceFxMFo1rO6bJKXtqKl+JNnyA==", + "dependencies": { + "@react-dnd/asap": "^4.0.0", + "@react-dnd/invariant": "^2.0.0", + "redux": "^4.0.4" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true + }, + "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": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "dev": true, + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.590", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.590.tgz", + "integrity": "sha512-hohItzsQcG7/FBsviCYMtQwUSWvVF7NVqPOnJCErWsAshsP/CR2LAXdmq276RbESNdhxiAq5/vRo1g2pxGXVww==" + }, + "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==", + "dev": true + }, + "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/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "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/es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", + "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "dev": true, + "dependencies": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.0.1" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "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/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/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-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": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", + "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.54.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "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.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "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-compat-utils": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", + "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", + "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" + } + }, + "node_modules/eslint-config-standard-with-typescript": { + "version": "40.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-40.0.0.tgz", + "integrity": "sha512-GXUJcwIXiTQaS3H4etv8a1lejVVdZYaxZNz3g7vt6GoJosQqMTurbmSC4FVGyHiGT/d1TjFr3+47A3xsHhsG+Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/parser": "^6.4.0", + "eslint-config-standard": "17.1.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^6.4.0", + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0", + "typescript": "*" + } + }, + "node_modules/eslint-import-resolver-alias": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-alias/-/eslint-import-resolver-alias-1.1.2.tgz", + "integrity": "sha512-WdviM1Eu834zsfjHtcGHtGfcu+F30Od3V7I9Fi57uhBEwPkjDcii7/yW8jAT+gOhn4P/vOxxNAXbFAKsrrc15w==", + "dev": true, + "engines": { + "node": ">= 4" + }, + "peerDependencies": { + "eslint-plugin-import": ">=1.4.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", + "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "enhanced-resolve": "^5.12.0", + "eslint-module-utils": "^2.7.4", + "fast-glob": "^3.3.1", + "get-tsconfig": "^4.5.0", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-cypress": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.1.tgz", + "integrity": "sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==", + "dev": true, + "dependencies": { + "globals": "^13.20.0" + }, + "peerDependencies": { + "eslint": ">= 3.2.1" + } + }, + "node_modules/eslint-plugin-cypress/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-cypress/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/eslint-plugin-es-x": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.4.0.tgz", + "integrity": "sha512-WJa3RhYzBtl8I37ebY9p76s61UhZyi4KaFOnX2A5r32RPazkXj5yoT6PGnD02dhwzEUj0KwsUdqfKDd/OuvGsw==", + "dev": true, + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.6.0", + "eslint-compat-utils": "^0.1.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-html": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-7.1.0.tgz", + "integrity": "sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==", + "dev": true, + "dependencies": { + "htmlparser2": "^8.0.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-n": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.3.1.tgz", + "integrity": "sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==", + "dev": true, + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "builtins": "^5.0.1", + "eslint-plugin-es-x": "^7.1.0", + "get-tsconfig": "^4.7.0", + "ignore": "^5.2.4", + "is-builtin-module": "^3.2.1", + "is-core-module": "^2.12.1", + "minimatch": "^3.1.2", + "resolve": "^1.22.2", + "semver": "^7.5.3" + }, + "engines": { + "node": ">=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz", + "integrity": "sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.5" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "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/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-tsdoc": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.2.17.tgz", + "integrity": "sha512-xRmVi7Zx44lOBuYqG8vzTXuL6IdGOeF9nHX17bjJ8+VE6fsxpdGem0/SBTmAwgYMKYB1WBkqRJVQ+n8GK041pA==", + "dev": true, + "dependencies": { + "@microsoft/tsdoc": "0.14.2", + "@microsoft/tsdoc-config": "0.16.2" + } + }, + "node_modules/eslint-plugin-yaml": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-yaml/-/eslint-plugin-yaml-0.5.0.tgz", + "integrity": "sha512-Z6km4HEiRptSuvzc96nXBND1Vlg57b7pzRmIJOgb9+3PAE+XpaBaiMx+Dg+3Y15tSrEMKCIZ9WoZMwkwUbPI8A==", + "dev": true, + "dependencies": { + "js-yaml": "^4.1.0", + "jshint": "^2.13.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "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/eventemitter2": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", + "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", + "dev": true + }, + "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/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.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==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fflate": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.1.tgz", + "integrity": "sha512-/exOvEuc+/iaUm105QIiOt4LpBdMTWsXxqR0HDF35vx3fmaKzw7354gTilCh5rkzEt8WYyG//ku3h3nRmd7CHQ==", + "dev": true + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.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==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "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.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "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==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "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-tsconfig": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "dependencies": { + "async": "^3.2.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "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==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "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==", + "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==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "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/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==" + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.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==", + "dev": true, + "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.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/headers-polyfill": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.2.tgz", + "integrity": "sha512-EWGTfnTqAO2L/j5HZgoM/3z82L7necsJ0pO9Tp0X1wil3PDLrkypTBRgVO2ExehEEvUycejZD3FuRaXpZZc3kw==", + "dev": true + }, + "node_modules/highlight.js": { + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.4.0.tgz", + "integrity": "sha512-nawlpCBCSASs7EdvZOYOYVkJpGmAOKMYZgZtUqSRqodZE0GRVcFKwo1RcpeOemqh9hyttTdd5wDBwHkuSyUfnA==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/history": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", + "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.7.6" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/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/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "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/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "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/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "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==", + "dev": true + }, + "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/inquirer": { + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/inquirer/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "dev": true, + "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-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "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": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "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==", + "dev": true, + "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-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "peer": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "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==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "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": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-node-process": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", + "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "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": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "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==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-wsl/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, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "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-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true + }, + "node_modules/js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "node_modules/jsdom": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz", + "integrity": "sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "cssstyle": "^3.0.0", + "data-urls": "^4.0.0", + "decimal.js": "^10.4.3", + "domexception": "^4.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.4", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.1", + "ws": "^8.13.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=16" + }, + "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/jshint": { + "version": "2.13.6", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.13.6.tgz", + "integrity": "sha512-IVdB4G0NTTeQZrBoM8C5JFVLjV2KtZ9APgybDA1MK73xb09qFs0jCXyQLnCOp1cSZZZbvhq/6mfXHUTaDkffuQ==", + "dev": true, + "dependencies": { + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "~4.17.21", + "minimatch": "~3.0.2", + "strip-json-comments": "1.0.x" + }, + "bin": { + "jshint": "bin/jshint" + } + }, + "node_modules/jshint/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==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/jshint/node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/jshint/node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/jshint/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "node_modules/jshint/node_modules/domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha512-q9bUwjfp7Eif8jWxxxPSykdRZAb6GkguBGSgvvCrhI9wB71W2K/Kvv4E61CF/mcCfnVJDeDWx/Vb/uAqbDj6UQ==", + "dev": true, + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/jshint/node_modules/domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/jshint/node_modules/entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha512-LbLqfXgJMmy81t+7c14mnulFHJ170cM6E+0vMXR9k/ZiZwgX8i5pNgjTCX3SO4VeUsFLV+8InixoretwU+MjBQ==", + "dev": true + }, + "node_modules/jshint/node_modules/htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha512-hBxEg3CYXe+rPIua8ETe7tmG3XDn9B0edOE/e9wH2nLczxzgdu0m0aNHY+5wFZiviLWLdANPJTssa92dMcXQ5Q==", + "dev": true, + "dependencies": { + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" + } + }, + "node_modules/jshint/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "node_modules/jshint/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jshint/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/jshint/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + }, + "node_modules/jshint/node_modules/strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha512-AOPG8EBc5wAikaG1/7uFCNFJwnKOuQwFTpYBdTW6OvWHeZBQBrAA/amefHGrEiOnCPcLFZK6FUPtWVKpQVIRgg==", + "dev": true, + "bin": { + "strip-json-comments": "cli.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "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": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", + "dev": true, + "engines": { + "node": "> 0.8" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "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==" + }, + "node_modules/listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", + "dev": true, + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/lodash.assignwith": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", + "integrity": "sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g==" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.find": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz", + "integrity": "sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg==" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "node_modules/lodash.isundefined": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", + "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "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.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.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/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==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mlly": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz", + "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", + "dev": true, + "dependencies": { + "acorn": "^8.10.0", + "pathe": "^1.1.1", + "pkg-types": "^1.0.3", + "ufo": "^1.3.0" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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/msw": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/msw/-/msw-2.0.8.tgz", + "integrity": "sha512-/5nQCotVka62lvubQ3tMfUS3TukyeBwvWyvAthcXvDlXGhkA/85HlEwZyFlJ3ZsPW45Ty+ao0S4oFvuM12R/kA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@bundled-es-modules/cookie": "^2.0.0", + "@bundled-es-modules/js-levenshtein": "^2.0.1", + "@bundled-es-modules/statuses": "^1.0.1", + "@mswjs/cookies": "^1.1.0", + "@mswjs/interceptors": "^0.25.11", + "@open-draft/until": "^2.1.0", + "@types/cookie": "^0.4.1", + "@types/js-levenshtein": "^1.1.1", + "@types/statuses": "^2.0.1", + "chalk": "^4.1.2", + "chokidar": "^3.4.2", + "graphql": "^16.8.1", + "headers-polyfill": "^4.0.1", + "inquirer": "^8.2.0", + "is-node-process": "^1.2.0", + "js-levenshtein": "^1.1.6", + "outvariant": "^1.4.0", + "path-to-regexp": "^6.2.0", + "strict-event-emitter": "^0.5.0", + "type-fest": "^2.19.0", + "yargs": "^17.3.1" + }, + "bin": { + "msw": "cli/index.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mswjs" + }, + "peerDependencies": { + "typescript": ">= 4.7.x <= 5.2.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/msw/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mui-datatables": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mui-datatables/-/mui-datatables-4.3.0.tgz", + "integrity": "sha512-LFliQwNnnxW03IO+V3q/ORxZsOHkzl53iGogLbjUJzme47hNEN106dM0ie8oMSc0heYJY0J07oZmKm7Xn3X7IQ==", + "dependencies": { + "@babel/runtime-corejs3": "^7.12.1", + "@emotion/cache": "^11.7.1", + "clsx": "^1.1.1", + "lodash.assignwith": "^4.2.0", + "lodash.clonedeep": "^4.5.0", + "lodash.debounce": "^4.0.8", + "lodash.find": "^4.6.0", + "lodash.get": "^4.4.2", + "lodash.isequal": "^4.5.0", + "lodash.isundefined": "^3.0.1", + "lodash.memoize": "^4.1.2", + "lodash.merge": "^4.6.2", + "prop-types": "^15.7.2", + "react-dnd": "^11.1.3", + "react-dnd-html5-backend": "^11.1.3", + "react-sortable-tree-patch-react-17": "^2.9.0", + "react-to-print": "^2.8.0", + "tss-react": "^3.6.0" + }, + "peerDependencies": { + "@emotion/react": "^11.10.5", + "@mui/icons-material": "^5.11.0", + "@mui/material": "^5.11.0", + "react": "^16.8.0 || ^17.0.2 || ^18.2.0", + "react-dom": "^16.8.0 || ^17.0.2 || ^18.2.0" + } + }, + "node_modules/mui-datatables/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "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": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + }, + "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/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/nwsapi": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.hasown": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "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/open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "dev": true, + "dependencies": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", + "dev": true + }, + "node_modules/outvariant": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.0.tgz", + "integrity": "sha512-AlWY719RF02ujitly7Kk/0QlV+pXGFDHrHf9O2OKqyqgBieaPOIeuSkL8sRK6j2WK+/ZAURq2kZsY0d8JapUiw==", + "dev": true + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "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": "6.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", + "dev": true + }, + "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/pathe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", + "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "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==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-types": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", + "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.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==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/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/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "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/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-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "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.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "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/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/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-display-name": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/react-display-name/-/react-display-name-0.2.5.tgz", + "integrity": "sha512-I+vcaK9t4+kypiSgaiVWAipqHRXYmZIuAiS8vzFvXHHXVigg/sMKwlRgLy6LH2i3rmP+0Vzfl5lFsFRwF1r3pg==" + }, + "node_modules/react-dnd": { + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-11.1.3.tgz", + "integrity": "sha512-8rtzzT8iwHgdSC89VktwhqdKKtfXaAyC4wiqp0SywpHG12TTLvfOoL6xNEIUWXwIEWu+CFfDn4GZJyynCEuHIQ==", + "dependencies": { + "@react-dnd/shallowequal": "^2.0.0", + "@types/hoist-non-react-statics": "^3.3.1", + "dnd-core": "^11.1.3", + "hoist-non-react-statics": "^3.3.0" + }, + "peerDependencies": { + "react": ">= 16.9.0", + "react-dom": ">= 16.9.0" + } + }, + "node_modules/react-dnd-html5-backend": { + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-11.1.3.tgz", + "integrity": "sha512-/1FjNlJbW/ivkUxlxQd7o3trA5DE33QiRZgxent3zKme8DwF4Nbw3OFVhTRFGaYhHFNL1rZt6Rdj1D78BjnNLw==", + "dependencies": { + "dnd-core": "^11.1.3" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "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-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.19.0.tgz", + "integrity": "sha512-0W63PKCZ7+OuQd7Tm+RbkI8kCLmn4GPjDbX61tWljPxWgqTKlEpeQUwPkT1DRjYhF8KSihK0hQpmhU4uxVMcdw==", + "dependencies": { + "@remix-run/router": "1.12.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.19.0.tgz", + "integrity": "sha512-N6dWlcgL2w0U5HZUUqU2wlmOrSb3ighJmtQ438SWbhB1yuLTXQ8yyTBMK3BSvVjp7gBtKurT554nCtMOgxCZmQ==", + "dependencies": { + "@remix-run/router": "1.12.0", + "react-router": "6.19.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-sortable-tree-patch-react-17": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-sortable-tree-patch-react-17/-/react-sortable-tree-patch-react-17-2.9.0.tgz", + "integrity": "sha512-Ngtdbf78OfjqCxLj7+N+K4zM9d1mQ/tfnUsOfICFDzNa5JHg6AjixAj69ijvz0ykEiA9lYop+0Fm4KCOqCdlKA==", + "dependencies": { + "lodash.isequal": "^4.5.0", + "prop-types": "^15.6.1", + "react": "^17.0.0", + "react-dnd": "^11.1.3", + "react-dnd-html5-backend": "^11.1.3", + "react-dnd-scrollzone-patch-react-17": "^1.0.2", + "react-dom": "^17.0.0", + "react-lifecycles-compat": "^3.0.4", + "react-virtualized": "^9.21.2" + }, + "peerDependencies": { + "react": "^17.0.0", + "react-dnd": "^11.1.3", + "react-dom": "^17.0.0" + } + }, + "node_modules/react-sortable-tree-patch-react-17/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-sortable-tree-patch-react-17/node_modules/react-dnd-scrollzone-patch-react-17": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/react-dnd-scrollzone-patch-react-17/-/react-dnd-scrollzone-patch-react-17-1.0.2.tgz", + "integrity": "sha512-Wfhyc/Y/Veim29REBYm8nMmtDB5IwSmPPhXIuabBgsEa1MrVsuOwK9+7LmuP+mGbDOEP/S6G8+5XvDqPlRFK2g==", + "dependencies": { + "hoist-non-react-statics": "^3.1.0", + "lodash.throttle": "^4.0.1", + "prop-types": "^15.5.9", + "raf": "^3.2.0", + "react-display-name": "^0.2.0" + }, + "peerDependencies": { + "react": "^17.0.1", + "react-dnd": "^11.1.3", + "react-dom": "^17.0.1" + } + }, + "node_modules/react-sortable-tree-patch-react-17/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-sortable-tree-patch-react-17/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/react-to-print": { + "version": "2.14.15", + "resolved": "https://registry.npmjs.org/react-to-print/-/react-to-print-2.14.15.tgz", + "integrity": "sha512-SKnwOzU2cJ8eaAkoJO7+gNhvfEDmm+Y34IdcHsjtHioUevUPhprqbVtvNJlZ2JkGJ8ExK2QNWM9pXECTDR5D8w==", + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "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/react-virtualized": { + "version": "9.22.5", + "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.22.5.tgz", + "integrity": "sha512-YqQMRzlVANBv1L/7r63OHa2b0ZsAaDp1UhVNEdUaXI8A5u6hTpA5NYtUueLH2rFuY/27mTGIBl7ZhqFKzw18YQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "clsx": "^1.0.4", + "dom-helpers": "^5.1.3", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0", + "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-virtualized/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", + "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", + "dev": true, + "dependencies": { + "throttleit": "^1.0.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "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": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "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-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/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "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/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "dev": true + }, + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/run-applescript/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "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/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/set-cookie-parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", + "dev": true + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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/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/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "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/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sirv": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", + "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "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/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "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/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.5.0.tgz", + "integrity": "sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==", + "dev": true + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/strict-event-emitter": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", + "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==", + "dev": true + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "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==", + "dev": true, + "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.matchall": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", + "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "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==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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-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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", + "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", + "dev": true, + "dependencies": { + "acorn": "^8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/synckit": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", + "dev": true, + "dependencies": { + "@pkgr/utils": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/throttleit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", + "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/tinybench": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz", + "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==", + "dev": true + }, + "node_modules/tinypool": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.7.0.tgz", + "integrity": "sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.0.tgz", + "integrity": "sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "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==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dev": true, + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tsconfck": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-2.1.2.tgz", + "integrity": "sha512-ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg==", + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^14.13.1 || ^16 || >=18" + }, + "peerDependencies": { + "typescript": "^4.3.5 || ^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/tss-react": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/tss-react/-/tss-react-3.7.1.tgz", + "integrity": "sha512-dfWUoxBlKZfIG9UC1A2h02OmcE/Ni0itCmmZu94E9g+KyBhKMHKcsKvUm0bNlRqTmYjXiCgPJDmj5fyc8CSrLg==", + "dependencies": { + "@emotion/cache": "*", + "@emotion/serialize": "*", + "@emotion/utils": "*" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/server": "^11.4.0", + "react": "^16.8.0 || ^17.0.2 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/server": { + "optional": true + } + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", + "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", + "dev": true + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "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/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "devOptional": true + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "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==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", + "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vite": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", + "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.34.6.tgz", + "integrity": "sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "mlly": "^1.4.0", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": ">=v14.18.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-tsconfig-paths": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.1.tgz", + "integrity": "sha512-GNUI6ZgPqT3oervkvzU+qtys83+75N/OuDaQl7HmOqFTb0pjZsuARrRipsyJhJ3enqV8beI1xhGbToR4o78nSQ==", + "dependencies": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^2.1.0" + }, + "peerDependencies": { + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "0.34.6", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.34.6.tgz", + "integrity": "sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==", + "dev": true, + "dependencies": { + "@types/chai": "^4.3.5", + "@types/chai-subset": "^1.3.3", + "@types/node": "*", + "@vitest/expect": "0.34.6", + "@vitest/runner": "0.34.6", + "@vitest/snapshot": "0.34.6", + "@vitest/spy": "0.34.6", + "@vitest/utils": "0.34.6", + "acorn": "^8.9.0", + "acorn-walk": "^8.2.0", + "cac": "^6.7.14", + "chai": "^4.3.10", + "debug": "^4.3.4", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.1", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.3.3", + "strip-literal": "^1.0.1", + "tinybench": "^2.5.0", + "tinypool": "^0.7.0", + "vite": "^3.1.0 || ^4.0.0 || ^5.0.0-0", + "vite-node": "0.34.6", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": ">=v14.18.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@vitest/browser": "*", + "@vitest/ui": "*", + "happy-dom": "*", + "jsdom": "*", + "playwright": "*", + "safaridriver": "*", + "webdriverio": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + }, + "playwright": { + "optional": true + }, + "safaridriver": { + "optional": true + }, + "webdriverio": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.8.tgz", + "integrity": "sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.3.8", + "@vue/compiler-sfc": "3.3.8", + "@vue/runtime-dom": "3.3.8", + "@vue/server-renderer": "3.3.8", + "@vue/shared": "3.3.8" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dev": true, + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", + "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", + "dev": true, + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "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/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "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-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dev": true, + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "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/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "dev": true, + "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/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "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": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "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.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..dd41123 --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,66 @@ +{ + "name": "quickstart-openshift-react-frontend", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite --host", + "clean": "rimraf ./node_modules/.vite", + "build:analyze": "vite build --mode analyze", + "build:clean": "rimraf dist", + "preview": "vite preview", + "test:unit": "vitest --mode test", + "test:cov": "vitest run --mode test --coverage", + "build": "vite build" + }, + "dependencies": { + "@emotion/react": "^11.11.0", + "@emotion/styled": "^11.11.0", + "@mui/icons-material": "^5.11.16", + "@mui/material": "^5.13.1", + "@vitejs/plugin-react": "^4.0.0", + "axios": "^1.4.0", + "mui-datatables": "^4.3.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router": "^6.12.1", + "react-router-dom": "^6.12.1", + "vite": "^4.4.11", + "vite-tsconfig-paths": "^4.2.0" + }, + "devDependencies": { + "@faker-js/faker": "^8.0.2", + "@testing-library/cypress": "^10.0.0", + "@testing-library/jest-dom": "^6.0.0", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.4.3", + "@types/mui-datatables": "^4.3.5", + "@types/react": "^18.2.6", + "@types/react-dom": "^18.2.4", + "@vitest/coverage-v8": "^0.34.0", + "@vitest/ui": "^0.34.6", + "cypress": "^13.0.0", + "cypress-file-upload": "^5.0.8", + "cypress-plugin-api": "^2.11.1", + "eslint": "^8.41.0", + "eslint-config-prettier": "^9.0.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-import-resolver-alias": "^1.1.2", + "eslint-import-resolver-typescript": "^3.5.5", + "eslint-plugin-cypress": "^2.13.3", + "eslint-plugin-html": "^7.1.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-react": "^7.32.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-tsdoc": "^0.2.17", + "eslint-plugin-yaml": "^0.5.0", + "history": "^5.3.0", + "jsdom": "^22.1.0", + "msw": "^2.0.1", + "prettier": "^3.0.0", + "typescript": "^5.1.3", + "vitest": "^0.34.6" + } +} diff --git a/frontend/public/favicon.ico b/frontend/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..20742f9f5f94d56a78fe2b68886b42c0f69016fe GIT binary patch literal 5193 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 Q+4!>$Yi?&&YT|wTUm;<%I{*Lx literal 0 HcmV?d00001 diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx new file mode 100644 index 0000000..ba32ec2 --- /dev/null +++ b/frontend/src/App.tsx @@ -0,0 +1,34 @@ +import Box from '@mui/material/Box' +import Header from '@/components/Header' +import Footer from '@/components/Footer' +import AppRoutes from '@/routes' +import { BrowserRouter } from 'react-router-dom' + +const styles = { + container: { + display: 'flex', + flexDirection: 'column', + minHeight: '100vh', + }, + content: { + flexGrow: 1, + marginTop: '5em', + marginRight: '1em', + marginLeft: '1em', + marginBottom: '5em', + height: '100%', + }, +} +export default function App() { + return ( + +
+ + + + + +