diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index f3d5c415e..f1297eb22 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -7,6 +7,8 @@ assignees: '' --- +> **Note:** Bug reports that are clearly AI-generated will not be accepted and will be closed immediately. Please write your bug report in your own words. + **Describe the bug** A clear and concise description of what the bug is. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 11fc491ef..f255f912e 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -7,6 +7,8 @@ assignees: '' --- +> **Note:** Feature requests that are clearly AI-generated will not be accepted and will be closed immediately. Please write your feature request in your own words. + **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 40a024b6e..0762fa54d 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -8,6 +8,8 @@ --- Delete everything below this line before submitting your PR --- +> **Note on AI-assisted contributions:** Contributions with the help of AI are permitted, but you are ultimately responsible for the quality of your submission and for ensuring it follows our contributing guidelines. **The PR description must be written in your own words and be clear and concise**. Please ensure you remove any superfluous code comments introduced by AI tools before submitting. PRs that clearly violate this rule will be closed without further review. + ### PR title format The PR title must follow the following pattern: @@ -22,6 +24,7 @@ Where `TYPE` is: Where `PKG` is: +- `auth`: For changes to the Nhost Auth service - `ci`: For general changes to the build and/or CI/CD pipeline - `cli`: For changes to the Nhost CLI - `codegen`: For changes to the code generator @@ -29,10 +32,11 @@ Where `PKG` is: - `deps`: For changes to dependencies - `docs`: For changes to the documentation - `examples`: For changes to the examples +- `internal/lib`: For changes to Nhost's common libraries (internal) - `mintlify-openapi`: For changes to the Mintlify OpenAPI tool - `nhost-js`: For changes to the Nhost JavaScript SDK - `nixops`: For changes to the NixOps -- `storage`: For changes to the Nhost Storage +- `storage`: For changes to the Nhost Storage service Where `SUMMARY` is a short description of what the PR does. diff --git a/.github/actions/validate-pr-title/action.yaml b/.github/actions/validate-pr-title/action.yaml index 61c0fa4bc..049fba2e3 100644 --- a/.github/actions/validate-pr-title/action.yaml +++ b/.github/actions/validate-pr-title/action.yaml @@ -17,7 +17,7 @@ runs: # Define valid types and packages VALID_TYPES="feat|fix|chore" - VALID_PKGS="ci|cli|codegen|dashboard|deps|docs|examples|mintlify-openapi|nhost-js|nixops|storage" + VALID_PKGS="auth|ci|cli|codegen|dashboard|deps|docs|examples|internal\/lib|mintlify-openapi|nhost-js|nixops|storage" # Check if title matches the pattern TYPE(PKG): SUMMARY if [[ ! "$PR_TITLE" =~ ^(${VALID_TYPES})\((${VALID_PKGS})\):\ .+ ]]; then @@ -31,11 +31,11 @@ runs: echo " - chore: mark this pull request as a maintenance item" echo "" echo "Valid PKGs:" - echo " - ci, cli, codegen, dashboard, deps, docs, examples," + echo " - auth, ci, cli, codegen, dashboard, deps, docs, examples," echo " - mintlify-openapi, nhost-js, nixops, storage" echo "" echo "Example: feat(cli): add new command for database migrations" exit 1 fi - echo "βœ… PR title is valid!" \ No newline at end of file + echo "βœ… PR title is valid!" diff --git a/.github/workflows/auth_checks.yaml b/.github/workflows/auth_checks.yaml new file mode 100644 index 000000000..f41981c9b --- /dev/null +++ b/.github/workflows/auth_checks.yaml @@ -0,0 +1,84 @@ +--- +name: "auth: check and build" +on: + pull_request_target: + paths: + - '.github/workflows/auth_checks.yaml' + - '.github/workflows/wf_check.yaml' + - '.github/workflows/wf_build_artifacts.yaml' + + # common build + - 'flake.nix' + - 'flake.lock' + - 'nixops/**' + - 'build/**' + + # common go + - '.golangci.yaml' + - 'go.mod' + - 'go.sum' + - 'internal/lib/**' + - 'vendor/**' + + # auth + - 'services/auth/**' + push: + branches: + - main + +concurrency: + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || format('push-{0}', github.sha) }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + +jobs: + check-permissions: + runs-on: ubuntu-latest + steps: + - run: | + echo "github.event_name: ${{ github.event_name }}" + echo "github.event.pull_request.author_association: ${{ github.event.pull_request.author_association }}" + - name: "This task will run and fail if user has no permissions and label safe_to_test isn't present" + if: "github.event_name == 'pull_request_target' && ! ( contains(github.event.pull_request.labels.*.name, 'safe_to_test') || contains(fromJson('[\"OWNER\", \"MEMBER\", \"COLLABORATOR\"]'), github.event.pull_request.author_association) )" + run: | + exit 1 + + tests: + uses: ./.github/workflows/wf_check.yaml + needs: + - check-permissions + with: + NAME: auth + PATH: services/auth + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} + + secrets: + AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }} + NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }} + NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }} + NHOST_PAT: ${{ secrets.NHOST_PAT }} + + build_artifacts: + uses: ./.github/workflows/wf_build_artifacts.yaml + needs: + - check-permissions + with: + NAME: auth + PATH: services/auth + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} + VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds + DOCKER: true + secrets: + AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }} + NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }} + NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }} + + remove_label: + runs-on: ubuntu-latest + needs: + - check-permissions + steps: + - uses: actions-ecosystem/action-remove-labels@v1 + with: + labels: | + safe_to_test + if: contains(github.event.pull_request.labels.*.name, 'safe_to_test') diff --git a/.github/workflows/auth_wf_release.yaml b/.github/workflows/auth_wf_release.yaml new file mode 100644 index 000000000..652318882 --- /dev/null +++ b/.github/workflows/auth_wf_release.yaml @@ -0,0 +1,60 @@ +--- +name: "auth: release" +on: + workflow_call: + inputs: + GIT_REF: + required: true + type: string + VERSION: + required: true + type: string + secrets: + AWS_ACCOUNT_ID: + required: true + NIX_CACHE_PUB_KEY: + required: true + NIX_CACHE_PRIV_KEY: + required: true + DOCKER_USERNAME: + required: true + DOCKER_PASSWORD: + required: true + +jobs: + build_artifacts: + uses: ./.github/workflows/wf_build_artifacts.yaml + with: + NAME: auth + PATH: services/auth + GIT_REF: ${{ inputs.GIT_REF }} + VERSION: ${{ inputs.VERSION }} + DOCKER: true + secrets: + AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }} + NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }} + NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }} + + push-docker-hub: + uses: ./.github/workflows/wf_docker_push_image.yaml + needs: + - build_artifacts + with: + NAME: auth + PATH: services/auth + VERSION: ${{ inputs.VERSION }} + secrets: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + + push-docker-ecr: + uses: ./.github/workflows/wf_docker_push_image_ecr.yaml + needs: + - build_artifacts + with: + NAME: auth + PATH: services/auth + VERSION: ${{ inputs.VERSION }} + secrets: + AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }} + CONTAINER_REGISTRY: ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.eu-central-1.amazonaws.com diff --git a/.github/workflows/ci_release.yaml b/.github/workflows/ci_release.yaml index fdd721f37..e2a250da3 100644 --- a/.github/workflows/ci_release.yaml +++ b/.github/workflows/ci_release.yaml @@ -33,6 +33,20 @@ jobs: echo "version=$VERSION" >> $GITHUB_OUTPUT echo "Extracted project: $PROJECT, version: $VERSION" + auth: + needs: extract-project + if: needs.extract-project.outputs.project == 'auth' + uses: ./.github/workflows/auth_wf_release.yaml + with: + GIT_REF: ${{ github.sha }} + VERSION: ${{ needs.extract-project.outputs.version }} + secrets: + AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }} + NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }} + NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }} + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + cli: needs: extract-project if: needs.extract-project.outputs.project == 'cli' diff --git a/.github/workflows/ci_update_changelog.yaml b/.github/workflows/ci_update_changelog.yaml index 8cff57391..1d74141c5 100644 --- a/.github/workflows/ci_update_changelog.yaml +++ b/.github/workflows/ci_update_changelog.yaml @@ -13,7 +13,7 @@ jobs: strategy: matrix: - project: [cli, dashboard, packages/nhost-js, services/storage] + project: [cli, dashboard, packages/nhost-js, services/auth, services/storage] permissions: id-token: write @@ -40,7 +40,7 @@ jobs: cd ${{ matrix.project }} TAG_NAME=$(make release-tag-name) VERSION=$(nix develop .\#cliff -c make changelog-next-version) - if git tag | grep -q "$TAG_NAME@$VERSION"; then + if git tag | grep -qx "$TAG_NAME@$VERSION"; then echo "Tag $TAG_NAME@$VERSION already exists, skipping release preparation" else echo "Tag $TAG_NAME@$VERSION does not exist, proceeding with release preparation" diff --git a/.github/workflows/cli_checks.yaml b/.github/workflows/cli_checks.yaml index cde3ee269..df7945e76 100644 --- a/.github/workflows/cli_checks.yaml +++ b/.github/workflows/cli_checks.yaml @@ -1,8 +1,7 @@ --- name: "cli: check and build" on: - # pull_request_target: - pull_request: + pull_request_target: paths: - '.github/workflows/cli_checks.yaml' - '.github/workflows/wf_check.yaml' @@ -50,7 +49,7 @@ jobs: with: NAME: cli PATH: cli - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} secrets: AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }} @@ -65,7 +64,7 @@ jobs: with: NAME: cli PATH: cli - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds DOCKER: true secrets: @@ -81,7 +80,7 @@ jobs: with: NAME: cli PATH: cli - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} secrets: AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }} diff --git a/.github/workflows/cli_wf_test_new_project.yaml b/.github/workflows/cli_wf_test_new_project.yaml index e1977b327..9d1d8fb18 100644 --- a/.github/workflows/cli_wf_test_new_project.yaml +++ b/.github/workflows/cli_wf_test_new_project.yaml @@ -63,7 +63,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: "Get artifacts" - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v6 with: path: ~/artifacts diff --git a/.github/workflows/codegen_checks.yaml b/.github/workflows/codegen_checks.yaml index 18b2dea75..1a48d34ef 100644 --- a/.github/workflows/codegen_checks.yaml +++ b/.github/workflows/codegen_checks.yaml @@ -1,8 +1,7 @@ --- name: "codegen: check and build" on: - # pull_request_target: - pull_request: + pull_request_target: paths: - '.github/workflows/wf_check.yaml' - '.github/workflows/codegen_checks.yaml' @@ -48,7 +47,7 @@ jobs: with: NAME: codegen PATH: tools/codegen - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} secrets: AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }} @@ -62,7 +61,7 @@ jobs: with: NAME: codegen PATH: tools/codegen - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds DOCKER: false secrets: diff --git a/.github/workflows/dashboard_checks.yaml b/.github/workflows/dashboard_checks.yaml index c6410f7df..ca5dbb881 100644 --- a/.github/workflows/dashboard_checks.yaml +++ b/.github/workflows/dashboard_checks.yaml @@ -1,7 +1,7 @@ --- name: "dashboard: check and build" on: - pull_request: + pull_request_target: paths: - '.github/workflows/wf_build_artifacts.yaml' - '.github/workflows/wf_check.yaml' @@ -54,7 +54,7 @@ jobs: - check-permissions with: NAME: dashboard - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} ENVIRONMENT: preview secrets: AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }} @@ -73,7 +73,7 @@ jobs: with: NAME: dashboard PATH: dashboard - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds DOCKER: true OS_MATRIX: '["blacksmith-2vcpu-ubuntu-2404"]' @@ -91,7 +91,7 @@ jobs: with: NAME: dashboard PATH: dashboard - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} secrets: AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }} NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }} @@ -107,7 +107,7 @@ jobs: with: NAME: dashboard PATH: dashboard - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} NHOST_TEST_DASHBOARD_URL: ${{ needs.deploy-vercel.outputs.preview-url }} NHOST_TEST_PROJECT_NAME: ${{ vars.NHOST_TEST_PROJECT_NAME }} NHOST_TEST_ORGANIZATION_NAME: ${{ vars.NHOST_TEST_ORGANIZATION_NAME }} @@ -126,8 +126,10 @@ jobs: NHOST_TEST_USER_EMAIL: ${{ secrets.NHOST_TEST_USER_EMAIL }} NHOST_TEST_USER_PASSWORD: ${{ secrets.NHOST_TEST_USER_PASSWORD }} NHOST_TEST_PROJECT_ADMIN_SECRET: ${{ secrets.NHOST_TEST_PROJECT_ADMIN_SECRET }} - NHOST_TEST_FREE_USER_EMAILS: ${{ secrets.NHOST_TEST_FREE_USER_EMAILS }} + NHOST_TEST_ONBOARDING_USER: ${{ secrets.NHOST_TEST_ONBOARDING_USER }} PLAYWRIGHT_REPORT_ENCRYPTION_KEY: ${{ secrets.PLAYWRIGHT_REPORT_ENCRYPTION_KEY }} + NHOST_TEST_STAGING_SUBDOMAIN: ${{ secrets.NHOST_TEST_STAGING_SUBDOMAIN }} + NHOST_TEST_STAGING_REGION: ${{ secrets.NHOST_TEST_STAGING_REGION }} remove_label: runs-on: ubuntu-latest diff --git a/.github/workflows/dashboard_wf_e2e_staging.yaml b/.github/workflows/dashboard_wf_e2e_staging.yaml index 3f5f16166..f3f27522d 100644 --- a/.github/workflows/dashboard_wf_e2e_staging.yaml +++ b/.github/workflows/dashboard_wf_e2e_staging.yaml @@ -52,12 +52,16 @@ on: required: true NHOST_TEST_USER_PASSWORD: required: true + NHOST_TEST_ONBOARDING_USER: + required: true NHOST_TEST_PROJECT_ADMIN_SECRET: required: true - NHOST_TEST_FREE_USER_EMAILS: - required: true PLAYWRIGHT_REPORT_ENCRYPTION_KEY: required: true + NHOST_TEST_STAGING_SUBDOMAIN: + required: true + NHOST_TEST_STAGING_REGION: + required: true concurrency: group: dashboard-e2e-staging @@ -77,7 +81,10 @@ env: NHOST_TEST_USER_EMAIL: ${{ secrets.NHOST_TEST_USER_EMAIL }} NHOST_TEST_USER_PASSWORD: ${{ secrets.NHOST_TEST_USER_PASSWORD }} NHOST_TEST_PROJECT_ADMIN_SECRET: ${{ secrets.NHOST_TEST_PROJECT_ADMIN_SECRET }} - NHOST_TEST_FREE_USER_EMAILS: ${{ secrets.NHOST_TEST_FREE_USER_EMAILS }} + NHOST_TEST_ONBOARDING_USER: ${{ secrets.NHOST_TEST_ONBOARDING_USER }} + NHOST_TEST_STAGING_SUBDOMAIN: ${{ secrets.NHOST_TEST_STAGING_SUBDOMAIN }} + NHOST_TEST_STAGING_REGION: ${{ secrets.NHOST_TEST_STAGING_REGION }} + jobs: tests: @@ -141,7 +148,7 @@ jobs: rm playwright-report.tar.gz - name: Upload encrypted Playwright report - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 if: failure() with: name: encrypted-playwright-report-${{ github.run_id }} diff --git a/.github/workflows/dashboard_wf_release.yaml b/.github/workflows/dashboard_wf_release.yaml index af936ff1d..127973cad 100644 --- a/.github/workflows/dashboard_wf_release.yaml +++ b/.github/workflows/dashboard_wf_release.yaml @@ -88,6 +88,7 @@ jobs: - name: Bump version in source code run: | find cli -type f -exec sed -i 's/"nhost\/dashboard:[^"]*"/"nhost\/dashboard:${{ inputs.VERSION }}"/g' {} + + sed -i 's/nhost\/dashboard:[^)]*/nhost\/dashboard:${{ inputs.VERSION }}/g' docs/reference/cli/commands.mdx - name: "Create Pull Request" uses: peter-evans/create-pull-request@v7 diff --git a/.github/workflows/docs_checks.yaml b/.github/workflows/docs_checks.yaml index da22af3d0..f7628c6a1 100644 --- a/.github/workflows/docs_checks.yaml +++ b/.github/workflows/docs_checks.yaml @@ -1,7 +1,7 @@ --- name: "docs: check and build" on: - pull_request: + pull_request_target: paths: - '.github/workflows/wf_check.yaml' - '.github/workflows/dashboard_checks.yaml' @@ -28,6 +28,10 @@ on: # nhost-js - packages/nhost-js/** + # apis + - 'services/auth/docs/openapi.yaml' + - 'services/storage/controller/openapi.yaml' + # cli - cli/** push: @@ -58,7 +62,7 @@ jobs: with: NAME: docs PATH: docs - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} secrets: AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }} NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }} diff --git a/.github/workflows/examples_demos_checks.yaml b/.github/workflows/examples_demos_checks.yaml index 7c32c5d7f..37a6a24d5 100644 --- a/.github/workflows/examples_demos_checks.yaml +++ b/.github/workflows/examples_demos_checks.yaml @@ -1,8 +1,7 @@ --- name: "examples/demos: check and build" on: - # pull_request_target: - pull_request: + pull_request_target: paths: - '.github/workflows/wf_check.yaml' - '.github/workflows/examples_demos_checks.yaml' @@ -64,7 +63,7 @@ jobs: with: NAME: demos PATH: examples/demos - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} secrets: AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }} @@ -78,7 +77,7 @@ jobs: with: NAME: demos PATH: examples/demos - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds DOCKER: false OS_MATRIX: '["blacksmith-2vcpu-ubuntu-2404"]' diff --git a/.github/workflows/examples_guides_checks.yaml b/.github/workflows/examples_guides_checks.yaml index ece457a8d..ee5ef683a 100644 --- a/.github/workflows/examples_guides_checks.yaml +++ b/.github/workflows/examples_guides_checks.yaml @@ -1,8 +1,7 @@ --- name: "examples/guides: check and build" on: - # pull_request_target: - pull_request: + pull_request_target: paths: - '.github/workflows/wf_check.yaml' - '.github/workflows/examples_guides_checks.yaml' @@ -64,7 +63,7 @@ jobs: with: NAME: guides PATH: examples/guides - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} secrets: AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }} @@ -78,7 +77,7 @@ jobs: with: NAME: guides PATH: examples/guides - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds DOCKER: false OS_MATRIX: '["blacksmith-2vcpu-ubuntu-2404"]' diff --git a/.github/workflows/examples_tutorials_checks.yaml b/.github/workflows/examples_tutorials_checks.yaml index 8590c5370..f34622482 100644 --- a/.github/workflows/examples_tutorials_checks.yaml +++ b/.github/workflows/examples_tutorials_checks.yaml @@ -1,8 +1,7 @@ --- name: "examples/tutorials: check and build" on: - # pull_request_target: - pull_request: + pull_request_target: paths: - '.github/workflows/wf_check.yaml' - '.github/workflows/examples_tutorials_checks.yaml' @@ -64,7 +63,7 @@ jobs: with: NAME: tutorials PATH: examples/tutorials - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} secrets: AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }} @@ -78,7 +77,7 @@ jobs: with: NAME: tutorials PATH: examples/tutorials - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds DOCKER: false OS_MATRIX: '["blacksmith-2vcpu-ubuntu-2404"]' diff --git a/.github/workflows/gen_ai_review.yaml b/.github/workflows/gen_ai_review.yaml index dfa86fab9..5da83fe8a 100644 --- a/.github/workflows/gen_ai_review.yaml +++ b/.github/workflows/gen_ai_review.yaml @@ -1,7 +1,7 @@ --- name: "gen: AI review" on: - pull_request: + pull_request_target: types: [opened, reopened, ready_for_review] issue_comment: jobs: @@ -16,11 +16,13 @@ jobs: steps: - name: PR Agent action step id: pragent - uses: Codium-ai/pr-agent@v0.30 + uses: Codium-ai/pr-agent@v0.31 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} OPENAI_KEY: ${{ secrets.OPENAI_API_KEY }} ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} config.model: ${{ vars.GEN_AI_MODEL }} config.model_turbo: $${{ vars.GEN_AI_MODEL_TURBO }} + config.max_model_tokens: 200000 + config.custom_model_max_tokens: 200000 ignore.glob: "['pnpm-lock.yaml','**/pnpm-lock.yaml', 'vendor/**','**/client_gen.go','**/models_gen.go','**/generated.go','**/*.gen.go']" diff --git a/.github/workflows/gen_codeql-analysis.yml b/.github/workflows/gen_codeql-analysis.yml index 6546d0a53..886e6d6e1 100644 --- a/.github/workflows/gen_codeql-analysis.yml +++ b/.github/workflows/gen_codeql-analysis.yml @@ -26,7 +26,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v3 + uses: github/codeql-action/init@v4 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -37,7 +37,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v3 + uses: github/codeql-action/autobuild@v4 # ℹ️ Command-line programs to run using the OS shell. # πŸ“š https://git.io/JvXDl @@ -51,4 +51,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 + uses: github/codeql-action/analyze@v4 diff --git a/.github/workflows/nhost-js_checks.yaml b/.github/workflows/nhost-js_checks.yaml index 7d0ffada6..590e5ddf5 100644 --- a/.github/workflows/nhost-js_checks.yaml +++ b/.github/workflows/nhost-js_checks.yaml @@ -1,8 +1,7 @@ --- name: "nhost-js: check and build" on: - # pull_request_target: - pull_request: + pull_request_target: paths: - '.github/workflows/wf_check.yaml' - '.github/workflows/nhost-js_checks.yaml' @@ -34,6 +33,10 @@ on: # nhost-js - 'packages/nhost-js/**' + + # apis + - 'services/auth/docs/openapi.yaml' + - 'services/storage/controller/openapi.yaml' push: branches: - main @@ -61,7 +64,7 @@ jobs: with: NAME: nhost-js PATH: packages/nhost-js - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} secrets: AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }} @@ -75,7 +78,7 @@ jobs: with: NAME: nhost-js PATH: packages/nhost-js - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds DOCKER: false secrets: diff --git a/.github/workflows/nixops_checks.yaml b/.github/workflows/nixops_checks.yaml index 92823aa6a..9f77fdcfe 100644 --- a/.github/workflows/nixops_checks.yaml +++ b/.github/workflows/nixops_checks.yaml @@ -1,8 +1,7 @@ --- name: "nixops: check and build" on: - # pull_request_target: - pull_request: + pull_request_target: paths: - '.github/workflows/wf_check.yaml' - '.github/workflows/nixops_checks.yaml' @@ -40,7 +39,7 @@ jobs: with: NAME: nixops PATH: nixops - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} secrets: AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }} @@ -54,9 +53,9 @@ jobs: with: NAME: nixops PATH: nixops - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds - DOCKER: false + DOCKER: true secrets: AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }} NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }} diff --git a/.github/workflows/nixops_wf_release.yaml b/.github/workflows/nixops_wf_release.yaml new file mode 100644 index 000000000..5e0817a55 --- /dev/null +++ b/.github/workflows/nixops_wf_release.yaml @@ -0,0 +1,35 @@ +--- +name: "nixops: release" +on: + push: + branches: + - main + paths: + - 'flake.lock' + - 'nixops/project.nix' + +jobs: + build_artifacts: + uses: ./.github/workflows/wf_build_artifacts.yaml + with: + NAME: nixops + PATH: nixops + GIT_REF: ${{ inputs.GIT_REF }} + VERSION: latest + DOCKER: true + secrets: + AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }} + NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }} + NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }} + + push-docker: + uses: ./.github/workflows/wf_docker_push_image.yaml + needs: + - build_artifacts + with: + NAME: nixops + PATH: nixops + VERSION: latest + secrets: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} diff --git a/.github/workflows/storage_checks.yaml b/.github/workflows/storage_checks.yaml index 75e4e99b4..213ee6477 100644 --- a/.github/workflows/storage_checks.yaml +++ b/.github/workflows/storage_checks.yaml @@ -1,8 +1,7 @@ --- name: "storage: check and build" on: - # pull_request_target: - pull_request: + pull_request_target: paths: - '.github/workflows/storage_checks.yaml' - '.github/workflows/wf_check.yaml' @@ -18,6 +17,7 @@ on: - '.golangci.yaml' - 'go.mod' - 'go.sum' + - 'internal/lib/**' - 'vendor/**' # storage @@ -49,7 +49,7 @@ jobs: with: NAME: storage PATH: services/storage - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} secrets: AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }} @@ -64,7 +64,7 @@ jobs: with: NAME: storage PATH: services/storage - GIT_REF: ${{ github.sha }} + GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds DOCKER: true secrets: diff --git a/.github/workflows/wf_build_artifacts.yaml b/.github/workflows/wf_build_artifacts.yaml index d90e445ab..e0e247700 100644 --- a/.github/workflows/wf_build_artifacts.yaml +++ b/.github/workflows/wf_build_artifacts.yaml @@ -85,7 +85,7 @@ jobs: zip -r result.zip result - name: "Push artifact to artifact repository" - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: ${{ inputs.NAME }}-artifact-${{ steps.vars.outputs.ARCH }}-${{ steps.vars.outputs.VERSION }} path: ${{ inputs.PATH }}/result.zip @@ -100,7 +100,7 @@ jobs: if: ${{ ( inputs.DOCKER ) }} - name: "Push docker image to artifact repository" - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: ${{ inputs.NAME }}-docker-image-${{ steps.vars.outputs.ARCH }}-${{ steps.vars.outputs.VERSION }} path: ${{ inputs.PATH }}/result diff --git a/.github/workflows/wf_docker_push_image.yaml b/.github/workflows/wf_docker_push_image.yaml index b79eb82b7..a966466f8 100644 --- a/.github/workflows/wf_docker_push_image.yaml +++ b/.github/workflows/wf_docker_push_image.yaml @@ -44,7 +44,7 @@ jobs: echo "VERSION=$(make get-version VER=${{ inputs.VERSION }})" >> $GITHUB_OUTPUT - name: "Get artifacts" - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v6 with: path: ~/artifacts diff --git a/.github/workflows/wf_docker_push_image_ecr.yaml b/.github/workflows/wf_docker_push_image_ecr.yaml index 8bc2865aa..fffa6da6c 100644 --- a/.github/workflows/wf_docker_push_image_ecr.yaml +++ b/.github/workflows/wf_docker_push_image_ecr.yaml @@ -55,7 +55,7 @@ jobs: echo "VERSION=$(make get-version VER=${{ inputs.VERSION }})" >> $GITHUB_OUTPUT - name: "Get artifacts" - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v6 with: path: ~/artifacts diff --git a/.golangci.yaml b/.golangci.yaml index 5f69e1a63..175ecefc1 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -7,6 +7,8 @@ linters: settings: funlen: lines: 65 + wsl_v5: + allow-whole-block: true disable: - canonicalheader - depguard @@ -30,6 +32,7 @@ linters: - linters: - funlen - ireturn + - goconst path: _test\.go - linters: - lll diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 59d1faff6..c94df892b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,6 +16,15 @@ Contributions are made to Nhost repos via Issues and Pull Requests (PRs). A few - We work hard to make sure issues are handled on time, but it could take a while to investigate the root cause depending on the impact. A friendly ping in the comment thread to the submitter or a contributor can help draw attention if your issue is blocking. - If you've never contributed before, see [the first-timer's guide](https://github.com/firstcontributions/first-contributions) for resources and tips on getting started. +### AI-Assisted Contributions + +We have specific policies regarding AI-assisted contributions: + +- **Issues**: Bug reports and feature requests that are clearly AI-generated will not be accepted and will be closed immediately. Please write your issues in your own words to ensure they are clear, specific, and contain the necessary context. +- **Pull Requests**: Contributions with the help of AI are permitted, but you are ultimately responsible for the quality of your submission and for ensuring it follows our contributing guidelines. The PR description must be written in your own words. Additionally, please remove any superfluous code comments introduced by AI tools before submitting. PRs that clearly violate this rule will be closed without further review. + +In all cases, contributors must ensure their submissions are thoughtful, well-tested, and meet the project's quality standards. + ### Issues Issues should be used to report problems with Nhost, request a new feature, or discuss potential changes before a PR is created. @@ -24,28 +33,20 @@ If you find an Issue that addresses the problem you're having, please add your r ### Pull Requests -Please have a look at our [developers guide](https://github.com/nhost/nhost/blob/main/DEVELOPERS.md) to start coding! - PRs to our libraries are always welcome and can be a quick way to get your fix or improvement slated for the next release. In general, PRs should: -- Only fix/add the functionality in question **OR** address wide-spread whitespace/style issues, not both. -- Add unit or integration tests for fixed or changed functionality (if a test suite exists). -- Address a single concern in the least number of changed lines as possible. -- Include documentation in the repo or on our [docs site](https://docs.nhost.io). -- Be accompanied by a complete Pull Request template (loaded automatically when a PR is created). +## Monorepo Structure -For changes that address core functionality or require breaking changes (e.g., a major release), it's best to open an Issue to discuss your proposal first. This is not required but can save time creating and reviewing changes. +This repository is a monorepo that contains multiple packages and applications. The structure is as follows: -In general, we follow the ["fork-and-pull" Git workflow](https://github.com/susam/gitpr) +- `cli` - The Nhost CLI +- `dashboard` - The Nhost Dashboard +- `docs` - Documentation +- `examples` - Various example projects +- `packages/nhost-js` - The Nhost JavaScript/TypeScript SDK +- `services/auth` - Nhost Authentication service +- `services/storage` - Nhost Storage service +- `tools/codegen` - Internal code generation tool to build the SDK +- `tools/mintlify-openapi` - Internal tool to generate reference documentation for Mintlify from an OpenAPI spec. -1. Fork the repository to your own Github account -2. Clone the project to your machine -3. Create a branch locally with a succinct but descriptive name. All changes should be part of a branch and submitted as a pull request - your branches should be prefixed with one of: - - `bug/` for bug fixes - - `feat/` for features - - `chore/` for configuration changes - - `docs/` for documentation changes -4. Commit changes to the branch -5. Following any formatting and testing guidelines specific to this repo -6. Push changes to your fork -7. Open a PR in our repository and follow the PR template to review the changes efficiently. +For details about those projects and how to contribure, please refer to their respective `README.md` and `CONTRIBUTING.md` files. diff --git a/DEVELOPERS.md b/DEVELOPERS.md deleted file mode 100644 index 27853051b..000000000 --- a/DEVELOPERS.md +++ /dev/null @@ -1,100 +0,0 @@ -# Developer Guide - -## Requirements - -### Node.js v20 or later - -### [pnpm](https://pnpm.io/) package manager - -The easiest way to install `pnpm` if it's not installed on your machine yet is to use `npm`: - -```sh -$ npm install -g pnpm -``` - -### [Nhost CLI](https://docs.nhost.io/platform/cli/local-development) - -- The CLI is primarily used for running the E2E tests -- Please refer to the [installation guide](https://docs.nhost.io/platform/cli/local-development) if you have not installed it yet - -## File Structure - -The repository is organized as a monorepo, with the following structure (only relevant folders are shown): - -``` -assets/ # Assets used in the README -config/ # Configuration files for the monorepo -dashboard/ # Dashboard -docs/ # Documentation website -examples/ # Example projects -packages/ # Core packages -integrations/ # These are packages that rely on the core packages -``` - -## Get started - -### Installation - -First, clone this repository: - -```sh -git clone https://github.com/nhost/nhost -``` - -Then, install the dependencies with `pnpm`: - -```sh -$ cd nhost -$ pnpm install -``` - -### Development - -Although package references are correctly updated on the fly for TypeScript, example projects and the dashboard won't see the changes because they are depending on the build output. To fix this, you can run packages in development mode. - -Running packages in development mode from the root folder is as simple as: - -```sh -$ pnpm dev -``` - -Our packages are linked together using [PNPM's workspace](https://pnpm.io/workspaces) feature. Next.js and Vite automatically detect changes in the dependencies and rebuild everything, so the changes will be reflected in the examples and the dashboard. - -**Note:** It's possible that Next.js or Vite throw an error when you run `pnpm dev`. Restarting the process should fix it. - -### Use Examples - -Examples are a great way to test your changes in practice. Make sure you've `pnpm dev` running in your terminal and then run an example. - -Let's follow the instructions to run [react-apollo example](https://github.com/nhost/nhost/blob/main/examples/react-apollo/README.md). - -## Edit Documentation - -The easier way to contribute to our documentation is to go to the `docs` folder and follow the [instructions to start local development](https://github.com/nhost/nhost/blob/main/docs/README.md): - -```sh -$ cd docs -# not necessary if you've already done this step somewhere in the repository -$ pnpm install -$ pnpm start -``` - -## Run Test Suites - -### Unit Tests - -You can run the unit tests with the following command from the repository root: - -```sh -$ pnpm test -``` - -### E2E Tests - -Each package that defines end-to-end tests embeds their own Nhost configuration, that will be automatically when running the tests. As a result, you must make sure you are not running the Nhost CLI before running the tests. - -You can run the e2e tests with the following command from the repository root: - -```sh -$ pnpm e2e -``` diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..65e49f3dd --- /dev/null +++ b/Makefile @@ -0,0 +1,16 @@ +.PHONY: envrc-install +envrc-install: ## Copy envrc.sample to all project folders + @for f in $$(find . -name "project.nix"); do \ + echo "Copying envrc.sample to $$(dirname $$f)/.envrc"; \ + cp ./envrc.sample $$(dirname $$f)/.envrc; \ + done + +.PHONY: nixops-container-env +nixops-container-env: ## Enter a NixOS container environment + docker run \ + -it \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v ./:/build \ + -w /build \ + nixops:0.0.0-dev \ + bash diff --git a/README.md b/README.md index a7c8ffc02..f1cc19dd0 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@   β€’   Blog   β€’   -Twitter +X   β€’   Discord   β€’   @@ -33,10 +33,10 @@ Nhost consists of open source software: - Database: [PostgreSQL](https://www.postgresql.org/) - Instant GraphQL API: [Hasura](https://hasura.io/) -- Authentication: [Hasura Auth](https://github.com/nhost/hasura-auth/) -- Storage: [Hasura Storage](https://github.com/nhost/hasura-storage) +- Authentication: [Auth](https://github.com/nhost/nhost/tree/main/services/auth) +- Storage: [Storage](https://github.com/nhost/nhost/tree/main/services/storage) - Serverless Functions: Node.js (JavaScript and TypeScript) -- [Nhost CLI](https://docs.nhost.io/platform/cli/local-development) for local development +- [Nhost CLI](https://github.com/nhost/nhost/tree/main/cli) for local development ## Architecture of Nhost @@ -107,7 +107,6 @@ Nhost is frontend agnostic, which means Nhost works with all frontend frameworks # Resources - Start developing locally with the [Nhost CLI](https://docs.nhost.io/platform/cli/local-development) - ## Nhost Clients - [JavaScript/TypeScript](https://docs.nhost.io/reference/javascript/nhost-js/main) diff --git a/audit-ci.jsonc b/audit-ci.jsonc index 11bfca844..d4421e2cc 100644 --- a/audit-ci.jsonc +++ b/audit-ci.jsonc @@ -2,5 +2,8 @@ // $schema provides code completion hints to IDEs. "$schema": "https://github.com/IBM/audit-ci/raw/main/docs/schema.json", "moderate": true, - "allowlist": ["vue-template-compiler", { "id": "CVE-2025-48068", "path": "next" }] + "allowlist": [ + "GHSA-9965-vmph-33xx", // https://github.com/advisories/GHSA-9965-vmph-33xx Update package once have a fix + "GHSA-7mvr-c777-76hp" // https://github.com/advisories/GHSA-7mvr-c777-76hp Update package once Nix side is also updated + ] } diff --git a/build/makefiles/general.makefile b/build/makefiles/general.makefile index 5a7f13edd..2d1f3003c 100644 --- a/build/makefiles/general.makefile +++ b/build/makefiles/general.makefile @@ -54,6 +54,11 @@ get-version: ## Return version @echo $(VERSION) +.PHONY: develop +develop: ## Start a nix develop shell + nix develop .\#$(NAME) + + .PHONY: _check-pre _check-pre: ## Pre-checks before running nix flake check @@ -105,6 +110,11 @@ build-docker-image: ## Build docker container for native architecture skopeo copy --insecure-policy dir:./result docker-daemon:$(NAME):$(VERSION) +.PHONY: build-docker-image-import-bare +build-docker-image-import-bare: + skopeo copy --insecure-policy dir:./result docker-daemon:$(NAME):$(VERSION) + + .PHONY: dev-env-up dev-env-up: _dev-env-build _dev-env-up ## Starts development environment diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 47aba39f8..4c4c32281 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,7 +1,85 @@ +## [cli@1.34.7] - 2025-11-13 + +### βš™οΈ Miscellaneous Tasks + +- *(cli)* Bump nhost/dashboard to 2.42.0 (#3693) + +## [cli@1.34.6] - 2025-11-13 + +### πŸ› Bug Fixes + +- *(cli)* Mcp: specify items type for arrays in tools (#3687) + + +### βš™οΈ Miscellaneous Tasks + +- *(cli)* Update bindings (#3689) + +## [cli@1.34.5] - 2025-11-06 + +### βš™οΈ Miscellaneous Tasks + +- *(nixops)* Bump go to 1.25.3 and nixpkgs due to CVEs (#3652) +- *(cli)* Udpate certs and schema (#3675) +- *(cli)* Bump nhost/dashboard to 2.41.0 (#3669) + # Changelog All notable changes to this project will be documented in this file. +## [cli@1.34.4] - 2025-10-28 + +### πŸ› Bug Fixes + +- *(cli)* Update NEXT_PUBLIC_NHOST_HASURA_MIGRATIONS_API_URL correctly (#3643) + +## [cli@1.34.3] - 2025-10-27 + +### βš™οΈ Miscellaneous Tasks + +- *(cli)* Update schema (#3622) +- *(cli)* Bump nhost/dashboard to 2.40.0 (#3629) + +## [cli@1.34.2] - 2025-10-20 + +### βš™οΈ Miscellaneous Tasks + +- *(cli)* Minor fix to download script when specifying version (#3602) +- *(cli)* Update schema (#3613) + +## [cli@1.34.1] - 2025-10-13 + +### πŸ› Bug Fixes + +- *(cli)* Remove references to mcp-nhost (#3575) +- *(cli)* Workaround os.Rename issues when src and dst are on different partitions (#3599) + + +### βš™οΈ Miscellaneous Tasks + +- *(auth)* Change some references to deprecated hasura-auth (#3584) +- *(docs)* Udpated README.md and CONTRIBUTING.md (#3587) + +## [cli@1.34.0] - 2025-10-09 + +### πŸš€ Features + +- *(cli)* Added mcp server functionality from mcp-nhost (#3550) +- *(cli)* Mcp: move configuration to .nhost folder and integrate cloud credentials (#3555) +- *(cli)* Mcp: added support for environment variables in the configuration (#3556) +- *(cli)* MCP refactor and documentation prior to official release (#3571) + + +### πŸ› Bug Fixes + +- *(dashboard)* Remove NODE_ENV from restricted env vars (#3573) + + +### βš™οΈ Miscellaneous Tasks + +- *(nixops)* Update nhost-cli (#3554) +- *(cli)* Bump nhost/dashboard to 2.38.4 (#3539) + ## [cli@1.33.0] - 2025-10-02 ### πŸš€ Features diff --git a/cli/CONTRIBUTING.md b/cli/CONTRIBUTING.md new file mode 100644 index 000000000..c7b859e97 --- /dev/null +++ b/cli/CONTRIBUTING.md @@ -0,0 +1,84 @@ +# Developer Guide + +## Requirements + +We use nix to manage the development environment, the build process and for running tests. + +### With Nix (Recommended) + +Run `nix develop \#cli` to get a complete development environment. + +### Without Nix + +Check `project.nix` (checkDeps, buildInputs, buildNativeInputs) for manual dependency installation. Alternatively, you can run `make nixops-container-env` in the root of the repository to enter a Docker container with nix and all dependencies pre-installed (note it is a large image). + +## Development Workflow + +### Running Tests + +**With Nix:** +```bash +make dev-env-up +make check +``` + +**Without Nix:** +```bash +# Start development environment +make dev-env-up + +# Lint Go code +golangci-lint run ./... + +# Run tests +go test -v ./... +``` + +### Formatting + +Format code before committing: +```bash +golines -w --base-formatter=gofumpt . +``` + +## Building + +### Local Build + +Build the project (output in `./result`): +```bash +make build +``` + +### Docker Image + +Build and import Docker image with skopeo: +```bash +make build-docker-image +``` + +If you run the command above inside the dockerized nixops-container-env and you get an error like: + +``` +FATA[0000] writing blob: io: read/write on closed pipe +``` + +then you need to run the following command outside of the container (needs skopeo installed on the host): + +```bash +cd cli +make build-docker-image-import-bare +``` + +### Multi-Platform Builds + +Build for multiple platforms (Darwin/Linux, ARM64/AMD64): +```bash +make build-multiplatform +``` + +This produces binaries for: +- darwin/arm64 +- darwin/amd64 +- linux/arm64 +- linux/amd64 diff --git a/cli/MCP.md b/cli/MCP.md deleted file mode 100644 index 18127a60d..000000000 --- a/cli/MCP.md +++ /dev/null @@ -1,199 +0,0 @@ -# nhost mcp - -A Model Context Protocol (MCP) server implementation for interacting with Nhost Cloud projects and services. - -## Overview - -MCP-Nhost is designed to provide a unified interface for managing Nhost projects through the Model Context Protocol. It enables seamless interaction with Nhost Cloud services, offering a robust set of tools for project management and configuration. - -## Available Tools - -The following tools are currently exposed through the MCP interface: - -1. **cloud-get-graphql-schema** - - Provides the GraphQL schema for the Nhost Cloud platform - - Gives access to queries and mutations available for cloud management - -2. **cloud-graphql-query** - - Executes GraphQL queries and mutations against the Nhost Cloud platform - - Enables project and organization management - - Allows querying and updating project configurations - - Mutations require enabling them when starting the server - -3. **local-get-graphql-schema** - - Retrieves the GraphQL schema for local Nhost development projects - - Provides access to project-specific queries and mutations - - Helps understand available operations for local development helping generating code - - Uses "user" role unless specified otherwise - -4. **local-graphql-query** - - Executes GraphQL queries against local Nhost development projects - - Enables testing and development of project-specific operations - - Supports both queries and mutations for local development - - Uses "user" role unless specified otherwise - -5. **local-config-server-get-schema** - - Retrieves the GraphQL schema for the local config server - - Helps understand available configuration options for local projects - -6. **local-config-server-query** - - Executes GraphQL queries against the local config server - - Enables querying and modifying local project configuration - - Changes require running 'nhost up' to take effect - -7. **local-get-management-graphql-schema** - - Retrieves the GraphQL management schema for local projects - - Useful for understanding how to manage Hasura metadata, migrations, and permissions - - Provides insight into available management operations before using the management tool - -8. **local-manage-graphql** - - Interacts with GraphQL's management endpoints for local projects - - Manages Hasura metadata, migrations, permissions, and remote schemas - - Creates and applies database migrations - - Handles data and schema changes through proper migration workflows - - Manages roles and permissions - -9. **project-get-graphql-schema** - - Retrieves the GraphQL schema for Nhost Cloud projects - - Provides access to project-specific queries and mutations - - Uses "user" role unless specified otherwise - -10. **project-graphql-query** - - Executes GraphQL queries against Nhost Cloud projects - - Enables interaction with live project data - - Supports both queries and mutations (need to be allowed) - - Uses "user" role unless specified otherwise - -11. **search** - - Searches Nhost's official documentation - - Provides information about Nhost features, APIs, and guides - - Helps find relevant documentation for implementing features or solving issues - - Returns links to detailed documentation pages - -## Screenshots and Examples - -You can find screenshots and examples of the current features and tools in the [screenshots](docs/mcp/screenshots.md) file. - -## Installing - -To install mcp-nhost, you can use the following command: - -```bash -sudo curl -L https://raw.githubusercontent.com/nhost/mcp-nhost/main/get.sh | bash -``` - -## Configuring - -After installing mcp-nhost, you will need to configure it. You can do this by running the command `mcp-nhost config` in your terminal. See [CONFIG.md](docs/mcp/CONFIG.md) for more details. - -## Configuring clients - -#### Cursor - -1. Go to "Cursor Settings" -2. Click on "MCP" -3. Click on "+ Add new global MCP server" -4. Add the following object inside `"mcpServers"`: - -```json - "mcp-nhost": { - "command": "/usr/local/bin/mcp-nhost", - "args": [ - "start", - ], - } -``` - -## CLI Usage - -For help on how to use the CLI, you can run: - -```bash -mcp-nhost --help -``` - -Or check [USAGE.md](docs/mcp/USAGE.md) for more details. - -## Troubleshooting - -If you run into issues using the MCP server you can try running the tools yourself. For example: - -``` -# cloud-get-graphql-schema -echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"cloud-get-graphql-schema","arguments":{}},"id":1}' | mcp-nhost start - -# cloud-graphql-query -echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"cloud-graphql-query","arguments":{"query":"{ apps { id subdomain name } }"}},"id":1}' | mcp-nhost start - -# local-get-graphql-schema -echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"local-get-graphql-schema","arguments":{"role":"user"}},"id":1}' | mcp-nhost start - -# local-graphql-query -echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"local-graphql-query","arguments":{"query":"{ users { id } }", "role":"admin"}},"id":1}' | mcp-nhost start - -# local-config-server-get-schema -echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"local-config-server-get-schema","arguments":{}},"id":1}' | mcp-nhost start - -# local-config-server-query -echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"local-config-server-query","arguments":{"query":"{ config(appID: \"00000000-0000-0000-0000-000000000000\", resolve: true) { postgres { version } } }"}},"id":1}' | mcp-nhost start - -# local-get-management-graphql-schema -echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"local-get-management-graphql-schema","arguments":{}},"id":1}' | mcp-nhost start - -# local-manage-graphql -echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"local-manage-graphql","arguments":{"body":"{\"type\":\"export_metadata\",\"args\":{}}","endpoint":"https://local.hasura.local.nhost.run/v1/metadata"}},"id":1}' | mcp-nhost start - -# project-get-graphql-schema - set projectSubdomain to your own project -echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"project-get-graphql-schema","arguments":{"projectSubdomain":"replaceMe", "role": "user"}},"id":1}' | mcp-nhost start - -# project-graphql-query - set projectSubdomain to your own project -echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"project-graphql-query","arguments":{"projectSubdomain":"replaceMe","query":"{ users { id } }", "role":"admin"}},"id":1}' | mcp-nhost start - -# search -echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"search","arguments":{"query":"how to enable magic links"}},"id":1}' | mcp-nhost start -``` - -## Roadmap - -- βœ… Cloud platform: Basic project and organization management -- βœ… Cloud projects: Configuration management -- βœ… Local projects: Configuration management -- βœ… Local projects: Graphql Schema awareness and query execution -- βœ… Cloud projects: Schema awareness and query execution -- βœ… Local projects: Create migrations -- βœ… Local projects: Manage permissions and relationships -- βœ… Documentation: integrate or document use of mintlify's mcp server -- βœ… Local projects: Auth and Storage schema awareness (maybe via mintlify?) -- βœ… Cloud projects: Auth and Storage schema awareness (maybe via mintlify?) -- πŸ”„ Local projects: Manage more metadata - -If you have any suggestions or feature requests, please feel free to open an issue for discussion. - -## Security and Privacy - -### Enhanced Protection Layer - -The MCP server is designed with security at its core, providing an additional protection layer beyond your existing GraphQL permissions. Key security features include: - -- **Authentication enforcement** for all requests -- **Permission and role respect** based on your existing authorization system and the credentials provided -- **Query/mutation filtering** to further restrict allowed operations - -### Granular Access Control - -One of the MCP server's key security advantages is the ability to specify exactly which operations can pass through, even for authenticated users: - -```toml -[[projects]] -subdomain = "my-blog" -region = "eu-central-1" -pat = "nhp_project_specific_pat" -allow_queries = ["getBlogs", "getCommends"] -allow_mutations = ["insertBlog", "insertComment"] -``` - -With the configuration above, an LLM will be able to only execute the queries and mutations above on behalf of a user even if the user has broader permissions in the Nhost project. - -## Contributing - -We welcome contributions to mcp-nhost! If you have suggestions, bug reports, or feature requests, please open an issue or submit a pull request. diff --git a/cli/README.md b/cli/README.md index ded1fccee..ecd02c606 100644 --- a/cli/README.md +++ b/cli/README.md @@ -51,11 +51,18 @@ nhost up nhost up --ui nhost ``` +## MCP Server + +The Nhost cli ships with an MCP server that lets you interact with your Nhost projects through AI assistants using the Model Context Protocol. It provides secure, controlled access to your GraphQL data, project configuration, and documentationβ€”with granular permissions that let you specify exactly which queries and mutations an LLM can execute. For development, it streamlines your workflow by enabling AI-assisted schema management, metadata changes, and migrations, while providing direct access to your GraphQL schema for intelligent query building. + +You can read more about the MCP server in the [MCP Server documentation](https://docs.nhost.io/platform/cli/mcp/overview). + ## Documentation - [Get started with Nhost CLI (longer version)](https://docs.nhost.io/platform/overview/get-started-with-nhost-cli) - [Nhost CLI](https://docs.nhost.io/platform/cli) - [Reference](https://docs.nhost.io/reference/cli) +- [MCP Server](https://docs.nhost.io/platform/cli/mcp/overview) ## Build from Source diff --git a/cli/clienv/wf_session.go b/cli/clienv/wf_session.go index dfc6fe36c..dfd5368e6 100644 --- a/cli/clienv/wf_session.go +++ b/cli/clienv/wf_session.go @@ -29,3 +29,12 @@ func (ce *CliEnv) LoadSession( return session, nil } + +func (ce *CliEnv) Credentials() (credentials.Credentials, error) { + var creds credentials.Credentials + if err := UnmarshalFile(ce.Path.AuthFile(), &creds, json.Unmarshal); err != nil { + return credentials.Credentials{}, err + } + + return creds, nil +} diff --git a/cli/cmd/dev/cloud.go b/cli/cmd/dev/cloud.go index a696a9e86..8f7f8088e 100644 --- a/cli/cmd/dev/cloud.go +++ b/cli/cmd/dev/cloud.go @@ -56,7 +56,7 @@ func CommandCloud() *cli.Command { &cli.StringFlag{ //nolint:exhaustruct Name: flagDashboardVersion, Usage: "Dashboard version to use", - Value: "nhost/dashboard:2.38.0", + Value: "nhost/dashboard:2.42.0", Sources: cli.EnvVars("NHOST_DASHBOARD_VERSION"), }, &cli.StringFlag{ //nolint:exhaustruct diff --git a/cli/cmd/dev/up.go b/cli/cmd/dev/up.go index 25e7a116b..d4326792c 100644 --- a/cli/cmd/dev/up.go +++ b/cli/cmd/dev/up.go @@ -111,7 +111,7 @@ func CommandUp() *cli.Command { //nolint:funlen &cli.StringFlag{ //nolint:exhaustruct Name: flagDashboardVersion, Usage: "Dashboard version to use", - Value: "nhost/dashboard:2.38.0", + Value: "nhost/dashboard:2.42.0", Sources: cli.EnvVars("NHOST_DASHBOARD_VERSION"), }, &cli.StringFlag{ //nolint:exhaustruct diff --git a/cli/cmd/mcp/config/config.go b/cli/cmd/mcp/config/config.go index 7b4d29f5b..7fce78344 100644 --- a/cli/cmd/mcp/config/config.go +++ b/cli/cmd/mcp/config/config.go @@ -12,8 +12,7 @@ import ( ) const ( - flagConfigFile = "config-file" - flagConfirm = "confirm" + flagConfirm = "confirm" ) func Command() *cli.Command { @@ -21,12 +20,6 @@ func Command() *cli.Command { Name: "config", Usage: "Generate and save configuration file", Flags: []cli.Flag{ - &cli.StringFlag{ //nolint:exhaustruct - Name: flagConfigFile, - Usage: "Configuration file path", - Value: config.GetConfigPath(), - Sources: cli.EnvVars("CONFIG_FILE"), - }, &cli.BoolFlag{ //nolint:exhaustruct Name: flagConfirm, Usage: "Skip confirmation prompt", @@ -36,16 +29,9 @@ func Command() *cli.Command { }, Commands: []*cli.Command{ { - Name: "dump", - Usage: "Dump the configuration to stdout for verification", - Flags: []cli.Flag{ - &cli.StringFlag{ //nolint:exhaustruct - Name: flagConfigFile, - Usage: "Path to the config file", - Value: config.GetConfigPath(), - Sources: cli.EnvVars("CONFIG_FILE"), - }, - }, + Name: "dump", + Usage: "Dump the configuration to stdout for verification", + Flags: []cli.Flag{}, Action: actionDump, }, }, @@ -70,7 +56,7 @@ func action(_ context.Context, cmd *cli.Command) error { fmt.Println(string(tomlData)) fmt.Println() - filePath := cmd.String(flagConfigFile) + filePath := config.GetConfigPath(cmd) fmt.Printf("Save configuration to %s?\n", filePath) fmt.Print("Proceed? (y/N): ") diff --git a/cli/cmd/mcp/config/dump.go b/cli/cmd/mcp/config/dump.go index ef2826fe1..2bf2fce6c 100644 --- a/cli/cmd/mcp/config/dump.go +++ b/cli/cmd/mcp/config/dump.go @@ -10,14 +10,14 @@ import ( ) func actionDump(_ context.Context, cmd *cli.Command) error { - configPath := cmd.String(flagConfigFile) + configPath := config.GetConfigPath(cmd) if configPath == "" { return cli.Exit("config file path is required", 1) } cfg, err := config.Load(configPath) if err != nil { - fmt.Println("Please, run `mcp-nhost config` to configure the service.") //nolint:forbidigo + fmt.Println("Please, run `nhost mcp config` to configure the service.") //nolint:forbidigo return cli.Exit("failed to load config file "+err.Error(), 1) } diff --git a/cli/cmd/mcp/mcp.go b/cli/cmd/mcp/mcp.go index 5f386d055..0312af06a 100644 --- a/cli/cmd/mcp/mcp.go +++ b/cli/cmd/mcp/mcp.go @@ -7,11 +7,23 @@ import ( "github.com/urfave/cli/v3" ) +const ( + flagConfigFile = "config-file" +) + func Command() *cli.Command { return &cli.Command{ //nolint:exhaustruct Name: "mcp", Aliases: []string{}, Usage: "Model Context Protocol (MCP) related commands", + Flags: []cli.Flag{ + &cli.StringFlag{ //nolint:exhaustruct + Name: flagConfigFile, + Usage: "Configuration file path. Defaults to $NHOST_DOT_NHOST_FOLDER/nhost-mcp.toml", + Value: "", + Sources: cli.EnvVars("NHOST_MCP_CONFIG_FILE"), + }, + }, Commands: []*cli.Command{ config.Command(), start.Command(), diff --git a/cli/cmd/mcp/mcp_test.go b/cli/cmd/mcp/mcp_test.go index 986d33cfe..6d8a846a2 100644 --- a/cli/cmd/mcp/mcp_test.go +++ b/cli/cmd/mcp/mcp_test.go @@ -13,26 +13,39 @@ import ( "github.com/mark3labs/mcp-go/mcp" nhostmcp "github.com/nhost/nhost/cli/cmd/mcp" "github.com/nhost/nhost/cli/cmd/mcp/start" + "github.com/nhost/nhost/cli/cmd/user" + "github.com/nhost/nhost/cli/mcp/resources" "github.com/nhost/nhost/cli/mcp/tools/cloud" "github.com/nhost/nhost/cli/mcp/tools/docs" - "github.com/nhost/nhost/cli/mcp/tools/local" "github.com/nhost/nhost/cli/mcp/tools/project" + "github.com/nhost/nhost/cli/mcp/tools/schemas" ) func ptr[T any](v T) *T { return &v } -func TestStart(t *testing.T) { //nolint:cyclop,maintidx - t.Parallel() - - cmd := nhostmcp.Command() +func TestStart(t *testing.T) { //nolint:cyclop,maintidx,paralleltest + loginCmd := user.CommandLogin() + mcpCmd := nhostmcp.Command() buf := bytes.NewBuffer(nil) - cmd.Writer = buf + mcpCmd.Writer = buf go func() { - if err := cmd.Run( + t.Setenv("HOME", t.TempDir()) + + if err := loginCmd.Run( + context.Background(), + []string{ + "main", + "--pat=user-pat", + }, + ); err != nil { + panic(err) + } + + if err := mcpCmd.Run( context.Background(), []string{ "main", @@ -54,7 +67,7 @@ func TestStart(t *testing.T) { //nolint:cyclop,maintidx mcpClient := client.NewClient(transportClient) - if err := mcpClient.Start(context.Background()); err != nil { + if err := mcpClient.Start(t.Context()); err != nil { t.Fatalf("failed to start mcp client: %v", err) } defer mcpClient.Close() @@ -84,8 +97,14 @@ func TestStart(t *testing.T) { //nolint:cyclop,maintidx Experimental: nil, Logging: nil, Prompts: nil, - Resources: nil, - Sampling: nil, + Resources: &struct { + Subscribe bool "json:\"subscribe,omitempty\"" + ListChanged bool "json:\"listChanged,omitempty\"" + }{ + Subscribe: false, + ListChanged: false, + }, + Sampling: nil, Tools: &struct { ListChanged bool "json:\"listChanged,omitempty\"" }{ @@ -96,7 +115,23 @@ func TestStart(t *testing.T) { //nolint:cyclop,maintidx Name: "mcp", Version: "", }, - Instructions: start.ServerInstructions, + Instructions: start.ServerInstructions + ` + +Configured projects: +- local (local): Local development project running via the Nhost CLI +- asdasdasdasdasd (eu-central-1): Staging project for my awesome app +- qweqweqweqweqwe (us-east-1): Production project for my awesome app + +The following resources are available: + +- schema://nhost-cloud: Schema to interact with the Nhost Cloud. Projects are equivalent +to apps in the schema. IDs are typically uuids. +- schema://graphql-management: GraphQL's management schema for an Nhost project. +This tool is useful to properly understand how manage hasura metadata, migrations, +permissions, remote schemas, etc. +- schema://nhost.toml: Cuelang schema for the nhost.toml configuration file. Run nhost +config validate after making changes to your nhost.toml file to ensure it is valid. +`, Result: mcp.Result{ Meta: nil, }, @@ -118,22 +153,6 @@ func TestStart(t *testing.T) { //nolint:cyclop,maintidx //nolint:exhaustruct,lll &mcp.ListToolsResult{ Tools: []mcp.Tool{ - { - Name: "cloud-get-graphql-schema", - Description: cloud.ToolGetGraphqlSchemaInstructions, - InputSchema: mcp.ToolInputSchema{ - Type: "object", - Properties: nil, - Required: nil, - }, - Annotations: mcp.ToolAnnotation{ - Title: "Get GraphQL Schema for Nhost Cloud Platform", - ReadOnlyHint: ptr(true), - DestructiveHint: ptr(false), - IdempotentHint: ptr(true), - OpenWorldHint: ptr(true), - }, - }, { Name: "cloud-graphql-query", Description: cloud.ToolGraphqlQueryInstructions, @@ -160,24 +179,40 @@ func TestStart(t *testing.T) { //nolint:cyclop,maintidx }, }, { - Name: "local-config-server-get-schema", - Description: local.ToolConfigServerSchemaInstructions, + Name: "get-schema", + Description: schemas.ToolGetGraphqlSchemaInstructions, InputSchema: mcp.ToolInputSchema{ Type: "object", Properties: map[string]any{ - "includeMutations": map[string]any{ - "description": "include mutations in the schema", - "type": "boolean", + "role": map[string]any{ + "description": string("role to use when executing queries. Keep in mind the schema depends on the role so if you retrieved the schema for a different role previously retrieve it for this role beforehand as it might differ"), + "type": string("string"), }, - "includeQueries": map[string]any{ - "description": "include queries in the schema", - "type": "boolean", + "subdomain": map[string]any{ + "description": string("Project to get the GraphQL schema for. Required when service is `project`"), + "enum": []any{string("local"), string("asdasdasdasdasd"), string("qweqweqweqweqwe")}, + "type": string("string"), + }, + "mutations": map[string]any{ + "description": string("list of mutations to fetch"), + "type": string("array"), + "items": map[string]any{"type": string("string")}, + }, + "queries": map[string]any{ + "description": string("list of queries to fetch"), + "type": string("array"), + "items": map[string]any{"type": string("string")}, + }, + "summary": map[string]any{ + "default": bool(true), + "description": string("only return a summary of the schema"), + "type": string("boolean"), }, }, - Required: []string{"includeQueries", "includeMutations"}, + Required: []string{"role", "subdomain"}, }, Annotations: mcp.ToolAnnotation{ - Title: "Get GraphQL Schema for Nhost Config Server", + Title: "Get GraphQL/API schema for various services", ReadOnlyHint: ptr(true), DestructiveHint: ptr(false), IdempotentHint: ptr(true), @@ -185,109 +220,7 @@ func TestStart(t *testing.T) { //nolint:cyclop,maintidx }, }, { - Name: "local-config-server-query", - Description: local.ToolConfigServerQueryInstructions, - InputSchema: mcp.ToolInputSchema{ - Type: "object", - Properties: map[string]any{ - "query": map[string]any{ - "description": "graphql query to perform", - "type": "string", - }, - "variables": map[string]any{ - "description": "variables to use in the query", - "type": "string", - }, - }, - Required: []string{"query"}, - }, - Annotations: mcp.ToolAnnotation{ - Title: "Perform GraphQL Query on Nhost Config Server", - ReadOnlyHint: ptr(false), - DestructiveHint: ptr(true), - IdempotentHint: ptr(false), - OpenWorldHint: ptr(true), - }, - }, - { - Name: "local-get-graphql-schema", - Description: local.ToolGetGraphqlSchemaInstructions, - InputSchema: mcp.ToolInputSchema{ - Type: "object", - Properties: map[string]any{ - "role": map[string]any{ - "description": "role to use when executing queries. Default to user but make sure the user is aware", - "type": "string", - }, - }, - Required: []string{"role"}, - }, - Annotations: mcp.ToolAnnotation{ - Title: "Get GraphQL Schema for Nhost Development Project", - ReadOnlyHint: ptr(true), - DestructiveHint: ptr(false), - IdempotentHint: ptr(true), - OpenWorldHint: ptr(true), - }, - }, - { - Name: "local-graphql-query", - Description: local.ToolGraphqlQueryInstructions, - InputSchema: mcp.ToolInputSchema{ - Type: "object", - Properties: map[string]any{ - "query": map[string]any{ - "description": "graphql query to perform", - "type": "string", - }, - "role": map[string]any{ - "description": "role to use when executing queries. Default to user but make sure the user is aware. Keep in mind the schema depends on the role so if you retrieved the schema for a different role previously retrieve it for this role beforehand as it might differ", - "type": "string", - }, - "variables": map[string]any{ - "additionalProperties": true, - "description": "variables to use in the query", - "properties": map[string]any{}, - "type": "object", - }, - }, - Required: []string{"query", "role"}, - }, - Annotations: mcp.ToolAnnotation{ - Title: "Perform GraphQL Query on Nhost Development Project", - ReadOnlyHint: ptr(false), - DestructiveHint: ptr(true), - IdempotentHint: ptr(false), - OpenWorldHint: ptr(true), - }, - }, - { - Name: "project-get-graphql-schema", - Description: project.ToolGetGraphqlSchemaInstructions, - InputSchema: mcp.ToolInputSchema{ - Type: "object", - Properties: map[string]any{ - "projectSubdomain": map[string]any{ - "description": "Project to get the GraphQL schema for. Must be one of asdasdasdasdasd, qweqweqweqweqwe, otherwise you don't have access to it. You can use cloud-* tools to resolve subdomains and map them to names", - "type": "string", - }, - "role": map[string]any{ - "description": "role to use when executing queries. Default to user but make sure the user is aware", - "type": "string", - }, - }, - Required: []string{"role", "projectSubdomain"}, - }, - Annotations: mcp.ToolAnnotation{ - Title: "Get GraphQL Schema for Nhost Project running on Nhost Cloud", - ReadOnlyHint: ptr(true), - DestructiveHint: ptr(false), - IdempotentHint: ptr(true), - OpenWorldHint: ptr(true), - }, - }, - { - Name: "project-graphql-query", + Name: "graphql-query", Description: project.ToolGraphqlQueryInstructions, InputSchema: mcp.ToolInputSchema{ Type: "object", @@ -296,12 +229,17 @@ func TestStart(t *testing.T) { //nolint:cyclop,maintidx "description": "graphql query to perform", "type": "string", }, - "projectSubdomain": map[string]any{ - "description": "Project to get the GraphQL schema for. Must be one of asdasdasdasdasd, qweqweqweqweqwe, otherwise you don't have access to it. You can use cloud-* tools to resolve subdomains and map them to names", + "subdomain": map[string]any{ + "description": "Project to perform the GraphQL query against", "type": "string", + "enum": []any{ + string("local"), + string("asdasdasdasdasd"), + string("qweqweqweqweqwe"), + }, }, "role": map[string]any{ - "description": "role to use when executing queries. Default to user but make sure the user is aware. Keep in mind the schema depends on the role so if you retrieved the schema for a different role previously retrieve it for this role beforehand as it might differ", + "description": "role to use when executing queries. Keep in mind the schema depends on the role so if you retrieved the schema for a different role previously retrieve it for this role beforehand as it might differ", "type": "string", }, "userId": map[string]any{ @@ -313,7 +251,7 @@ func TestStart(t *testing.T) { //nolint:cyclop,maintidx "type": "string", }, }, - Required: []string{"query", "projectSubdomain", "role"}, + Required: []string{"query", "subdomain", "role"}, }, Annotations: mcp.ToolAnnotation{ Title: "Perform GraphQL Query on Nhost Project running on Nhost Cloud", @@ -324,36 +262,30 @@ func TestStart(t *testing.T) { //nolint:cyclop,maintidx }, }, { - Name: "local-get-management-graphql-schema", - Description: local.ToolGetGraphqlManagementSchemaInstructions, - InputSchema: mcp.ToolInputSchema{ - Type: "object", - Properties: nil, - }, - Annotations: mcp.ToolAnnotation{ - Title: "Get GraphQL's Management Schema for Nhost Development Project", - ReadOnlyHint: ptr(true), - IdempotentHint: ptr(true), - DestructiveHint: ptr(false), - OpenWorldHint: ptr(true), - }, - }, - { - Name: "local-manage-graphql", - Description: local.ToolManageGraphqlInstructions, + Name: "manage-graphql", + Description: project.ToolManageGraphqlInstructions, InputSchema: mcp.ToolInputSchema{ Type: "object", Properties: map[string]any{ "body": map[string]any{ - "description": string("The body for the HTTP request"), - "type": string("string"), + "description": "The body for the HTTP request", + "type": "string", }, - "endpoint": map[string]any{ - "description": string("The GraphQL management endpoint to query. Use https://local.hasura.local.nhost.run as base URL"), - "type": string("string"), + "path": map[string]any{ + "description": "The path for the HTTP request", + "type": "string", + }, + "subdomain": map[string]any{ + "description": "Project to perform the GraphQL management operation against", + "type": "string", + "enum": []any{ + string("local"), + string("asdasdasdasdasd"), + string("qweqweqweqweqwe"), + }, }, }, - Required: []string{"endpoint", "body"}, + Required: []string{"subdomain", "path", "body"}, }, Annotations: mcp.ToolAnnotation{ Title: "Manage GraphQL's Metadata on an Nhost Development Project", @@ -393,24 +325,60 @@ func TestStart(t *testing.T) { //nolint:cyclop,maintidx t.Errorf("ListToolsResult mismatch (-want +got):\n%s", diff) } - if res.Capabilities.Resources != nil { - resources, err := mcpClient.ListResources( - context.Background(), - mcp.ListResourcesRequest{}, //nolint:exhaustruct - ) - if err != nil { - t.Fatalf("failed to list resources: %v", err) - } + resourceList, err := mcpClient.ListResources( + context.Background(), + mcp.ListResourcesRequest{}, //nolint:exhaustruct + ) + if err != nil { + t.Fatalf("failed to list resources: %v", err) + } - if diff := cmp.Diff( - resources, - //nolint:exhaustruct - &mcp.ListResourcesResult{ - Resources: []mcp.Resource{}, + if diff := cmp.Diff( + resourceList, + //nolint:exhaustruct + &mcp.ListResourcesResult{ + Resources: []mcp.Resource{ + { + Annotated: mcp.Annotated{ + Annotations: &mcp.Annotations{ + Audience: []mcp.Role{"agent"}, + Priority: 9, + }, + }, + URI: "schema://graphql-management", + Name: "graphql-management", + Description: resources.GraphqlManagementDescription, + MIMEType: "text/plain", + }, + + { + Annotated: mcp.Annotated{ + Annotations: &mcp.Annotations{ + Audience: []mcp.Role{"agent"}, + Priority: 9, + }, + }, + URI: "schema://nhost-cloud", + Name: "nhost-cloud", + Description: resources.CloudDescription, + MIMEType: "text/plain", + }, + { + Annotated: mcp.Annotated{ + Annotations: &mcp.Annotations{ + Audience: []mcp.Role{"agent"}, + Priority: 9, + }, + }, + URI: "schema://nhost.toml", + Name: "nhost.toml", + Description: resources.NhostTomlResourceDescription, + MIMEType: "text/plain", + }, }, - ); diff != "" { - t.Errorf("ListResourcesResult mismatch (-want +got):\n%s", diff) - } + }, + ); diff != "" { + t.Errorf("ListResourcesResult mismatch (-want +got):\n%s", diff) } if res.Capabilities.Prompts != nil { diff --git a/cli/cmd/mcp/start/start.go b/cli/cmd/mcp/start/start.go index 0062e9967..9fa840a39 100644 --- a/cli/cmd/mcp/start/start.go +++ b/cli/cmd/mcp/start/start.go @@ -5,17 +5,18 @@ import ( "fmt" "github.com/mark3labs/mcp-go/server" + "github.com/nhost/nhost/cli/clienv" "github.com/nhost/nhost/cli/mcp/config" "github.com/nhost/nhost/cli/mcp/nhost/auth" + "github.com/nhost/nhost/cli/mcp/resources" "github.com/nhost/nhost/cli/mcp/tools/cloud" "github.com/nhost/nhost/cli/mcp/tools/docs" - "github.com/nhost/nhost/cli/mcp/tools/local" "github.com/nhost/nhost/cli/mcp/tools/project" + "github.com/nhost/nhost/cli/mcp/tools/schemas" "github.com/urfave/cli/v3" ) const ( - flagConfigFile = "config-file" flagNhostAuthURL = "nhost-auth-url" flagNhostGraphqlURL = "nhost-graphql-url" flagBind = "bind" @@ -25,22 +26,21 @@ const ( // this seems to be largely ignored by clients, or at least by cursor. // we also need to look into roots and resources as those might be helpful. ServerInstructions = ` - This is an MCP server to interact with Nhost Cloud and with projects running on it and - also with Nhost local development projects. +This is an MCP server to interact with the Nhost Cloud and with Nhost projects. - Important notes to anyone using this MCP server. Do not use this MCP server without - following these instructions: +Important notes to anyone using this MCP server. Do not use this MCP server without +following these instructions: - 1. Make sure you are clear on which environment the user wants to operate against. - 2. Before attempting to call any tool *-graphql-query, always get the schema using the - *-get-graphql-schema tool - 3. Apps and projects are the same and while users may talk about projects in the GraphQL - api those are referred as apps. - 4. IDs are always UUIDs so if you have anything else (like an app/project name) you may need - to first get the ID using the *-graphql-query tool. - 5. If you have an error querying the GraphQL API, please check the schema again. The schema may - have changed and the query you are using may be invalid. - ` +1. Make sure you are clear on which environment the user wants to operate against. +2. Before attempting to call any tool, always make sure you list resources, roots, and + resource templates to understand what is available. +3. Apps and projects are the same and while users may talk about projects in Nhost's GraphQL + api those are referred as apps. +4. If you have an error querying the GraphQL API, please check the schema again. The schema may + have changed and the query you are using may be invalid. +5. Always follow the instructions provided by each tool. If you need to deviate from these + instructions, please, confirm with the user before doing so. +` ) func Command() *cli.Command { @@ -48,12 +48,6 @@ func Command() *cli.Command { Name: "start", Usage: "Starts the MCP server", Flags: []cli.Flag{ - &cli.StringFlag{ //nolint:exhaustruct - Name: flagConfigFile, - Usage: "Path to the config file", - Value: config.GetConfigPath(), - Sources: cli.EnvVars("CONFIG_FILE"), - }, &cli.StringFlag{ //nolint:exhaustruct Name: flagNhostAuthURL, Usage: "Nhost auth URL", @@ -88,14 +82,25 @@ func action(ctx context.Context, cmd *cli.Command) error { return err } + ServerInstructions := ServerInstructions + ServerInstructions += "\n\n" + ServerInstructions += cfg.Projects.Instructions() + ServerInstructions += "\n" + ServerInstructions += resources.Instructions() + mcpServer := server.NewMCPServer( cmd.Root().Name, cmd.Root().Version, server.WithInstructions(ServerInstructions), ) + if err := resources.Register(cfg, mcpServer); err != nil { + return cli.Exit(fmt.Sprintf("failed to register resources: %s", err), 1) + } + if cfg.Cloud != nil { if err := registerCloud( + cmd, mcpServer, cfg, cmd.String(flagNhostAuthURL), @@ -105,18 +110,15 @@ func action(ctx context.Context, cmd *cli.Command) error { } } - if cfg.Local != nil { - if err := registerLocal(mcpServer, cfg); err != nil { - return cli.Exit(fmt.Sprintf("failed to register local tools: %s", err), 1) - } - } - if len(cfg.Projects) > 0 { if err := registerProjectTool(mcpServer, cfg); err != nil { return cli.Exit(fmt.Sprintf("failed to register project tools: %s", err), 1) } } + resources := schemas.NewTool(cfg) + resources.Register(mcpServer) + d, err := docs.NewTool(ctx) if err != nil { return cli.Exit(fmt.Sprintf("failed to initialize docs tools: %s", err), 1) @@ -128,14 +130,14 @@ func action(ctx context.Context, cmd *cli.Command) error { } func getConfig(cmd *cli.Command) (*config.Config, error) { - configPath := cmd.String(flagConfigFile) + configPath := config.GetConfigPath(cmd) if configPath == "" { return nil, cli.Exit("config file path is required", 1) } cfg, err := config.Load(configPath) if err != nil { - fmt.Println("Please, run `mcp-nhost config` to configure the service.") //nolint:forbidigo + fmt.Println("Please, run `nhost mcp config` to configure the service.") //nolint:forbidigo return nil, cli.Exit("failed to load config file "+err.Error(), 1) } @@ -143,14 +145,22 @@ func getConfig(cmd *cli.Command) (*config.Config, error) { } func registerCloud( + cmd *cli.Command, mcpServer *server.MCPServer, cfg *config.Config, authURL string, graphqlURL string, ) error { + ce := clienv.FromCLI(cmd) + + creds, err := ce.Credentials() + if err != nil { + return fmt.Errorf("failed to load credentials: %w", err) + } + interceptor, err := auth.WithPAT( authURL, - cfg.Cloud.PAT, + creds.PersonalAccessToken, ) if err != nil { return fmt.Errorf("failed to create PAT interceptor: %w", err) @@ -167,33 +177,11 @@ func registerCloud( return nil } -func registerLocal( - mcpServer *server.MCPServer, - cfg *config.Config, -) error { - interceptor := auth.WithAdminSecret(cfg.Local.AdminSecret) - - localTool := local.NewTool( - *cfg.Local.GraphqlURL, - *cfg.Local.ConfigServerURL, - interceptor, - ) - if err := localTool.Register(mcpServer); err != nil { - return fmt.Errorf("failed to register tools: %w", err) - } - - return nil -} - func registerProjectTool( mcpServer *server.MCPServer, cfg *config.Config, ) error { - projectTool, err := project.NewTool(cfg.Projects) - if err != nil { - return fmt.Errorf("failed to initialize tool: %w", err) - } - + projectTool := project.NewTool(cfg) if err := projectTool.Register(mcpServer); err != nil { return fmt.Errorf("failed to register tool: %w", err) } diff --git a/cli/cmd/mcp/testdata/sample.toml b/cli/cmd/mcp/testdata/sample.toml index 4fa7b8577..0b931c67d 100644 --- a/cli/cmd/mcp/testdata/sample.toml +++ b/cli/cmd/mcp/testdata/sample.toml @@ -1,13 +1,20 @@ [cloud] -pat = 'your-personal-access-token' enable_mutations = true -[local] +[[projects]] +subdomain = 'local' +region = 'local' +description = 'Local development project running via the Nhost CLI' admin_secret = 'nhost-admin-secret' +manage_metadata = true +allow_queries = ['*'] +allow_mutations = ['*'] [[projects]] subdomain = 'asdasdasdasdasd' region = 'eu-central-1' +description = 'Staging project for my awesome app' +manage_metadata = false admin_secret = 'your-admin-secret-1' allow_queries = ['*'] allow_mutations = ['*'] @@ -15,6 +22,8 @@ allow_mutations = ['*'] [[projects]] subdomain = 'qweqweqweqweqwe' region = 'us-east-1' +description = 'Production project for my awesome app' +manage_metadata = false pat = 'pat-for-qweqweqweqweqwe' allow_queries = ['getComments'] allow_mutations = ['insertComment', 'updateComment', 'deleteComment'] diff --git a/cli/cmd/project/init.go b/cli/cmd/project/init.go index 3e36a26b9..c19d67b2a 100644 --- a/cli/cmd/project/init.go +++ b/cli/cmd/project/init.go @@ -131,7 +131,7 @@ func initInit( getclient := &getter.Client{} //nolint:exhaustruct if _, err := getclient.Get(ctx, &getter.Request{ //nolint:exhaustruct - Src: "git::https://github.com/nhost/hasura-auth.git//email-templates", + Src: "git::https://github.com/nhost/nhost.git//services/auth/email-templates", Dst: "nhost/emails", DisableSymlinks: true, }); err != nil { diff --git a/cli/cmd/software/upgrade.go b/cli/cmd/software/upgrade.go index 143d67895..39d5b1923 100644 --- a/cli/cmd/software/upgrade.go +++ b/cli/cmd/software/upgrade.go @@ -2,10 +2,13 @@ package software import ( "context" + "errors" "fmt" + "io" "os" "runtime" "strings" + "syscall" "github.com/nhost/nhost/cli/clienv" "github.com/nhost/nhost/cli/software" @@ -92,8 +95,8 @@ func install(cmd *cli.Command, ce *clienv.CliEnv, tmpFile string) error { ce.Infoln("Copying to %s...", curBin) - if err := os.Rename(tmpFile, curBin); err != nil { - return fmt.Errorf("failed to rename %s to %s: %w", tmpFile, curBin, err) + if err := moveOrCopyFile(tmpFile, curBin); err != nil { + return fmt.Errorf("failed to move %s to %s: %w", tmpFile, curBin, err) } ce.Infoln("Setting permissions...") @@ -104,3 +107,55 @@ func install(cmd *cli.Command, ce *clienv.CliEnv, tmpFile string) error { return nil } + +func moveOrCopyFile(src, dst string) error { + if err := os.Rename(src, dst); err != nil { + var linkErr *os.LinkError + // this happens when moving across different filesystems + if errors.As(err, &linkErr) && errors.Is(linkErr.Err, syscall.EXDEV) { + if err := hardMove(src, dst); err != nil { + return fmt.Errorf("failed to hard move: %w", err) + } + + return nil + } + + return fmt.Errorf("failed to rename: %w", err) + } + + return nil +} + +func hardMove(src, dst string) error { + srcFile, err := os.Open(src) + if err != nil { + return fmt.Errorf("failed to open source file: %w", err) + } + defer srcFile.Close() + + dstFile, err := os.Create(dst) + if err != nil { + return fmt.Errorf("failed to create destination file: %w", err) + } + defer dstFile.Close() + + if _, err := io.Copy(dstFile, srcFile); err != nil { + return fmt.Errorf("failed to copy file contents: %w", err) + } + + fi, err := os.Stat(src) + if err != nil { + return fmt.Errorf("failed to stat source file: %w", err) + } + + err = os.Chmod(dst, fi.Mode()) + if err != nil { + return fmt.Errorf("failed to set file permissions: %w", err) + } + + if err := os.Remove(src); err != nil { + return fmt.Errorf("failed to remove source file: %w", err) + } + + return nil +} diff --git a/cli/dockercompose/auth.go b/cli/dockercompose/auth.go index 78a452126..65c6de270 100644 --- a/cli/dockercompose/auth.go +++ b/cli/dockercompose/auth.go @@ -47,7 +47,7 @@ func auth( //nolint:funlen &model.ConfigSmtp{ User: "user", Password: "password", - Sender: "hasura-auth@example.com", + Sender: "auth@example.com", Host: "mailhog", Port: 1025, //nolint:mnd Secure: false, @@ -56,6 +56,7 @@ func auth( //nolint:funlen false, false, "00000000-0000-0000-0000-000000000000", + "5181f67e2844e4b60d571fa346cac9c37fc00d1ff519212eae6cead138e639ba", ) if err != nil { return nil, fmt.Errorf("failed to get hasura env vars: %w", err) diff --git a/cli/dockercompose/auth_test.go b/cli/dockercompose/auth_test.go index 815ef5575..c1d1d3310 100644 --- a/cli/dockercompose/auth_test.go +++ b/cli/dockercompose/auth_test.go @@ -33,6 +33,7 @@ func expectedAuth() *Service { "AUTH_DISABLE_SIGNUP": "false", "AUTH_EMAIL_PASSWORDLESS_ENABLED": "true", "AUTH_EMAIL_SIGNIN_EMAIL_VERIFIED_REQUIRED": "true", + "AUTH_ENCRYPTION_KEY": "5181f67e2844e4b60d571fa346cac9c37fc00d1ff519212eae6cead138e639ba", "AUTH_GRAVATAR_DEFAULT": "gravatarDefault", "AUTH_GRAVATAR_ENABLED": "true", "AUTH_GRAVATAR_RATING": "gravatarRating", @@ -52,6 +53,7 @@ func expectedAuth() *Service { "AUTH_PROVIDER_APPLE_ENABLED": "true", "AUTH_PROVIDER_APPLE_KEY_ID": "appleKeyId", "AUTH_PROVIDER_APPLE_PRIVATE_KEY": "applePrivateKey", + "AUTH_PROVIDER_APPLE_SCOPE": "", "AUTH_PROVIDER_APPLE_TEAM_ID": "appleTeamId", "AUTH_PROVIDER_AZUREAD_CLIENT_ID": "azureadClientId", "AUTH_PROVIDER_AZUREAD_CLIENT_SECRET": "azureadClientSecret", @@ -74,9 +76,12 @@ func expectedAuth() *Service { "AUTH_PROVIDER_FACEBOOK_CLIENT_SECRET": "facebookClientSecret", "AUTH_PROVIDER_FACEBOOK_ENABLED": "true", "AUTH_PROVIDER_FACEBOOK_SCOPE": "email", + "AUTH_PROVIDER_GITHUB_AUDIENCE": "audience", "AUTH_PROVIDER_GITHUB_CLIENT_ID": "githubClientId", "AUTH_PROVIDER_GITHUB_CLIENT_SECRET": "githubClientSecret", "AUTH_PROVIDER_GITHUB_ENABLED": "true", + "AUTH_PROVIDER_GITHUB_SCOPE": "user:email", + "AUTH_PROVIDER_GITLAB_AUDIENCE": "audience", "AUTH_PROVIDER_GITLAB_CLIENT_ID": "gitlabClientId", "AUTH_PROVIDER_GITLAB_CLIENT_SECRET": "gitlabClientSecret", "AUTH_PROVIDER_GITLAB_ENABLED": "true", @@ -96,6 +101,7 @@ func expectedAuth() *Service { "AUTH_PROVIDER_SPOTIFY_CLIENT_SECRET": "spotifyClientSecret", "AUTH_PROVIDER_SPOTIFY_ENABLED": "true", "AUTH_PROVIDER_SPOTIFY_SCOPE": "user-read-email", + "AUTH_PROVIDER_STRAVA_AUDIENCE": "audience", "AUTH_PROVIDER_STRAVA_CLIENT_ID": "stravaClientId", "AUTH_PROVIDER_STRAVA_CLIENT_SECRET": "stravaClientSecret", "AUTH_PROVIDER_STRAVA_ENABLED": "true", @@ -143,7 +149,7 @@ func expectedAuth() *Service { "AUTH_SMTP_PASS": "password", "AUTH_SMTP_PORT": "1025", "AUTH_SMTP_SECURE": "false", - "AUTH_SMTP_SENDER": "hasura-auth@example.com", + "AUTH_SMTP_SENDER": "auth@example.com", "AUTH_SMTP_USER": "user", "AUTH_USER_DEFAULT_ALLOWED_ROLES": "user,admin", "AUTH_USER_DEFAULT_ROLE": "user", diff --git a/cli/dockercompose/compose.go b/cli/dockercompose/compose.go index 8b25fcc35..f9174b416 100644 --- a/cli/dockercompose/compose.go +++ b/cli/dockercompose/compose.go @@ -344,7 +344,7 @@ func dashboard( subdomain, "hasura", httpPort, useTLS, ) + "/console", "NEXT_PUBLIC_NHOST_HASURA_MIGRATIONS_API_URL": URL( - subdomain, "hasura", httpPort, useTLS), + subdomain, "hasura", httpPort, useTLS) + "/apis/migrate", "NEXT_PUBLIC_NHOST_STORAGE_URL": URL( subdomain, "storage", httpPort, useTLS) + "/v1", }, @@ -459,7 +459,7 @@ func mailhog(subdomain, volumeName string, useTLS bool) *Service { "SMTP_PASS": "password", "SMTP_PORT": "1025", "SMTP_SECURE": "false", - "SMTP_SENDER": "hasura-auth@example.com", + "SMTP_SENDER": "auth@example.com", "SMTP_USER": "user", }, ExtraHosts: extraHosts(subdomain), diff --git a/cli/docs/mcp/CONFIG.md b/cli/docs/mcp/CONFIG.md deleted file mode 100644 index 59f5727cd..000000000 --- a/cli/docs/mcp/CONFIG.md +++ /dev/null @@ -1,80 +0,0 @@ -# Configuration - -This document describes all available configuration options for the Nhost MCP tool. The configuration file uses TOML format. - -## TOML - -```toml -# Cloud configuration for managing Nhost Cloud projects and organizations -# Remove section to disable this access -[cloud] -# Personal Access Token (PAT) for Nhost Cloud API authentication -# Get one at: https://app.nhost.io/account -pat = "your-pat-here" - -# Enable mutations on Nhost Cloud configurations -# When false, only queries are allowed -enable_mutations = true - -# Local configuration for interacting with Nhost CLI projects -# Remove section to disable access -[local] -# Admin secret for local project authentication -admin_secret = "your-admin-secret" - -# Optional: Custom config server URL -# Default: https://local.dashboard.local.nhost.run/v1/configserver/graphql -config_server_url = "your-custom-url" - -# Optional: Custom GraphQL URL -# Default: https://local.graphql.local.nhost.run/v1 -graphql_url = "your-custom-url" - -# Project-specific configurations -[[projects]] -# Project subdomain (required) -subdomain = "your-project-subdomain" - -# Project region (required) -region = "your-project-region" - -# Authentication: Use either admin_secret or pat -# Admin secret for project access -admin_secret = "your-project-admin-secret" -# OR -# Project-specific PAT -pat = "your-project-pat" - -# List of allowed GraphQL queries -# Use ["*"] to allow all queries, [] to disable all -allow_queries = ["*"] - -# List of allowed GraphQL mutations -# Use ["*"] to allow all mutations, [] to disable all -# Only effective if mutations are enabled for the project -allow_mutations = ["*"] -``` -## Example Configuration - -```toml -[cloud] -pat = "1234567890abcdef" -enable_mutations = true - -[local] -admin_secret = "nhost-admin-secret" - -[[projects]] -subdomain = "my-app" -region = "eu-central-1" -admin_secret = "project-admin-secret" -allow_queries = ["*"] -allow_mutations = ["createUser", "updateUser"] - -[[projects]] -subdomain = "another-app" -region = "us-east-1" -pat = "nhp_project_specific_pat" -allow_queries = ["getUsers", "getPosts"] -allow_mutations = [] -``` \ No newline at end of file diff --git a/cli/docs/mcp/USAGE.md b/cli/docs/mcp/USAGE.md deleted file mode 100644 index c238d8fcf..000000000 --- a/cli/docs/mcp/USAGE.md +++ /dev/null @@ -1,96 +0,0 @@ -# NAME - -nhost-mcp - Nhost's Model Context Protocol (MCP) server - -# SYNOPSIS - -nhost-mcp - -``` -[--help|-h] -[--version|-v] -``` - -**Usage**: - -``` -nhost-mcp [GLOBAL OPTIONS] [command [COMMAND OPTIONS]] [ARGUMENTS...] -``` - -# GLOBAL OPTIONS - -**--help, -h**: show help - -**--version, -v**: print the version - - -# COMMANDS - -## docs - -Generate markdown documentation for the CLI - -**--help, -h**: show help - -### help, h - -Shows a list of commands or help for one command - -## config - -Generate and save configuration file - -**--config-file**="": Configuration file path (default: /Users/dbarroso/.config/nhost/mcp-nhost.toml) - -**--confirm**: Skip confirmation prompt - -**--help, -h**: show help - -### help, h - -Shows a list of commands or help for one command - -## start - -Starts the MCP server - -**--bind**="": Bind address in the form :. If omitted use stdio - -**--config-file**="": Path to the config file (default: /Users/dbarroso/.config/nhost/mcp-nhost.toml) - -**--help, -h**: show help - -### help, h - -Shows a list of commands or help for one command - -## gen - -Generate GraphQL schema for Nhost Cloud - -**--help, -h**: show help - -**--nhost-pat**="": Personal Access Token - -**--with-mutations**: Include mutations in the generated schema - -### help, h - -Shows a list of commands or help for one command - -## upgrade - -Checks if there is a new version and upgrades it - -**--confirm**: Confirm the upgrade without prompting - -**--help, -h**: show help - -### help, h - -Shows a list of commands or help for one command - -## help, h - -Shows a list of commands or help for one command - diff --git a/cli/docs/mcp/screenshots.md b/cli/docs/mcp/screenshots.md deleted file mode 100644 index ab5932a72..000000000 --- a/cli/docs/mcp/screenshots.md +++ /dev/null @@ -1,49 +0,0 @@ -# Screenshots - -Listing cloud projects: - -listing cloud projects - -Changing cloud project's configuration: - -changing cloud project's configuration - -Querying cloud project's configuration: - -querying cloud project's configuration - -Querying local project's schema: - -querying local project's schema - -Generating code from local project's schema: - -generating code from local project's schema - -Resulting code: - -resulting code - -Querying local project's configuration: - -querying local project's configuration - -Modifying local project's configuration: - -modifying local project's configuration - -Querying cloud project's schema: - -project schema - -Querying cloud project's data: - -project data - -Managing cloud project's data: - -project mutation - -Analysing cloud project's data: - -project data analysis diff --git a/cli/docs/mcp/screenshots/101-cloud-projects.png b/cli/docs/mcp/screenshots/101-cloud-projects.png deleted file mode 100644 index a256ad9c1..000000000 Binary files a/cli/docs/mcp/screenshots/101-cloud-projects.png and /dev/null differ diff --git a/cli/docs/mcp/screenshots/102-cloud-project-config.png b/cli/docs/mcp/screenshots/102-cloud-project-config.png deleted file mode 100644 index ad071b8ab..000000000 Binary files a/cli/docs/mcp/screenshots/102-cloud-project-config.png and /dev/null differ diff --git a/cli/docs/mcp/screenshots/103-cloud-project-config2.png b/cli/docs/mcp/screenshots/103-cloud-project-config2.png deleted file mode 100644 index 1f4955307..000000000 Binary files a/cli/docs/mcp/screenshots/103-cloud-project-config2.png and /dev/null differ diff --git a/cli/docs/mcp/screenshots/201-local-schema.png b/cli/docs/mcp/screenshots/201-local-schema.png deleted file mode 100644 index 746faef22..000000000 Binary files a/cli/docs/mcp/screenshots/201-local-schema.png and /dev/null differ diff --git a/cli/docs/mcp/screenshots/202-local-code.png b/cli/docs/mcp/screenshots/202-local-code.png deleted file mode 100644 index 1471276d1..000000000 Binary files a/cli/docs/mcp/screenshots/202-local-code.png and /dev/null differ diff --git a/cli/docs/mcp/screenshots/203-result.png b/cli/docs/mcp/screenshots/203-result.png deleted file mode 100644 index acb4559c3..000000000 Binary files a/cli/docs/mcp/screenshots/203-result.png and /dev/null differ diff --git a/cli/docs/mcp/screenshots/204-local-config-query.png b/cli/docs/mcp/screenshots/204-local-config-query.png deleted file mode 100644 index 2af9fe3d1..000000000 Binary files a/cli/docs/mcp/screenshots/204-local-config-query.png and /dev/null differ diff --git a/cli/docs/mcp/screenshots/205-local-config-change.png b/cli/docs/mcp/screenshots/205-local-config-change.png deleted file mode 100644 index 7262ac0a0..000000000 Binary files a/cli/docs/mcp/screenshots/205-local-config-change.png and /dev/null differ diff --git a/cli/docs/mcp/screenshots/301-project-schema.png b/cli/docs/mcp/screenshots/301-project-schema.png deleted file mode 100644 index 5c26187a7..000000000 Binary files a/cli/docs/mcp/screenshots/301-project-schema.png and /dev/null differ diff --git a/cli/docs/mcp/screenshots/302-project-query.png b/cli/docs/mcp/screenshots/302-project-query.png deleted file mode 100644 index da76dac97..000000000 Binary files a/cli/docs/mcp/screenshots/302-project-query.png and /dev/null differ diff --git a/cli/docs/mcp/screenshots/303-project-mutation.png b/cli/docs/mcp/screenshots/303-project-mutation.png deleted file mode 100644 index 1ffa42756..000000000 Binary files a/cli/docs/mcp/screenshots/303-project-mutation.png and /dev/null differ diff --git a/cli/docs/mcp/screenshots/304-project-data-analysis.png b/cli/docs/mcp/screenshots/304-project-data-analysis.png deleted file mode 100644 index a1d49b9f8..000000000 Binary files a/cli/docs/mcp/screenshots/304-project-data-analysis.png and /dev/null differ diff --git a/cli/examples/myproject/nhost/nhost.toml b/cli/examples/myproject/nhost/nhost.toml index 3372ce75a..3d6946cec 100644 --- a/cli/examples/myproject/nhost/nhost.toml +++ b/cli/examples/myproject/nhost/nhost.toml @@ -3,6 +3,10 @@ name = 'GREET' value = 'Sayonara' +[[global.environment]] +name = 'NODE_ENV' +value = 'production' + [hasura] version = 'v2.46.0-ce' adminSecret = '{{ secrets.HASURA_GRAPHQL_ADMIN_SECRET }}' @@ -63,11 +67,6 @@ default = "00000000-0000-0000-0000-000000000000" expiresIn = 2592000 [auth.method] -[auth.method.anonymous] -enabled = false - -[auth.method.emailPasswordless] -enabled = false [auth.method.emailPassword] hibpEnabled = false @@ -139,46 +138,11 @@ version = '14.18-20250728-1' [postgres.resources.storage] capacity = 1 -[postgres.settings] -maxConnections = 100 -sharedBuffers = '256MB' -effectiveCacheSize = '768MB' -maintenanceWorkMem = '64MB' -checkpointCompletionTarget = 0.9 -walBuffers = '-1' -defaultStatisticsTarget = 100 -randomPageCost = 1.1 -effectiveIOConcurrency = 200 -workMem = '1310kB' -hugePages = 'off' -minWalSize = '80MB' -maxWalSize = '1GB' -maxWorkerProcesses = 8 -maxParallelWorkersPerGather = 2 -maxParallelWorkers = 8 -maxParallelMaintenanceWorkers = 2 - [provider] [storage] version = '0.7.1' -[ai] -version = '0.8.0' -webhookSecret = '{{ secrets.GRAPHITE_WEBHOOK_SECRET }}' - -[ai.resources] -[ai.resources.compute] -cpu = 125 -memory = 256 - -[ai.openai] -organization = '' -apiKey = '{{ secrets.OPENAI_API_KEY }}' - -[ai.autoEmbeddings] -synchPeriodMinutes = 5 - [observability] [observability.grafana] adminPassword = '{{ secrets.GRAFANA_ADMIN_PASSWORD }}' diff --git a/cli/get.sh b/cli/get.sh index 0275ba8c0..2af1b57c0 100755 --- a/cli/get.sh +++ b/cli/get.sh @@ -44,7 +44,7 @@ if [[ "$version" == "latest" ]]; then release=$(curl --silent https://api.github.com/repos/nhost/nhost/releases\?per_page=100 | grep tag_name | grep \"cli\@ | head -n 1 | sed 's/.*"tag_name": "\([^"]*\)".*/\1/') version=$( echo $release | sed 's/.*@//') else - release="cli@$release" + release="cli@$version" fi # check version exists diff --git a/cli/mcp/config/config.go b/cli/mcp/config/config.go index d9d7143a3..98461a354 100644 --- a/cli/mcp/config/config.go +++ b/cli/mcp/config/config.go @@ -1,58 +1,78 @@ package config import ( + "context" "errors" "fmt" + "net/http" "os" "path/filepath" + "strings" + "github.com/nhost/nhost/cli/clienv" + "github.com/nhost/nhost/cli/mcp/nhost/auth" "github.com/pelletier/go-toml/v2" + "github.com/urfave/cli/v3" ) -func ptr[T any](v T) *T { - return &v -} - const ( DefaultLocalConfigServerURL = "https://local.dashboard.local.nhost.run/v1/configserver/graphql" DefaultLocalGraphqlURL = "https://local.graphql.local.nhost.run/v1" ) +var ErrProjectNotConfigured = errors.New("project not configured") + type Config struct { // If configured allows managing the cloud. For instance, this allows you to configure // projects, list projects, organizations, and so on. Cloud *Cloud `json:"cloud,omitempty" toml:"cloud"` - // If configured allows working with a local project running via the CLI. This includes - // configuring it, working with the schema, migrations, etc. - Local *Local `json:"local,omitempty" toml:"local"` - - // Projects is a list of projects that you want to allow access to. This grants access to the - // GraphQL schema allowing it to inspect it and run allowed queries and mutations. - Projects []Project `json:"projects" toml:"projects"` + // Projects is a list of projects that you want to allow access to. This grants access + // to the GraphQL schema allowing it to inspect it and run allowed queries and mutations. + Projects ProjectList `json:"projects" toml:"projects"` } type Cloud struct { - // Personal Access Token to authenticate with the Nhost Cloud API. You can get one - // on the following URL: https://app.nhost.io/account - PAT string `json:"pat" toml:"pat"` - // If enabled you can run mutations against the Nhost Cloud to manipulate project's configurations // amongst other things. Queries are always allowed if this section is configured. EnableMutations bool `json:"enable_mutations" toml:"enable_mutations"` } -type Local struct { - // Admin secret to use when running against a local project. - AdminSecret string `json:"admin_secret" toml:"admin_secret"` +type ProjectList []Project - // GraphQL URL to use when running against a local project. - // Defaults to "https://local.dashboard.local.nhost.run/v1/configserver/graphql" - ConfigServerURL *string `json:"config_server_url,omitempty" toml:"config_server_url,omitempty"` +func (pl ProjectList) Get(subdomain string) (*Project, error) { + for _, p := range pl { + if p.Subdomain == subdomain { + return &p, nil + } + } - // GraphQL URL to use when running against a local project. - // Defaults to "https://local.graphql.local.nhost.run/v1" - GraphqlURL *string `json:"graphql_url,omitempty" toml:"graphql_url,omitempty"` + return nil, fmt.Errorf("%w: %s", ErrProjectNotConfigured, subdomain) +} + +func (pl ProjectList) Subdomains() []string { + subdomains := make([]string, 0, len(pl)) + + for _, p := range pl { + subdomains = append(subdomains, p.Subdomain) + } + + return subdomains +} + +func (pl ProjectList) Instructions() string { + if len(pl) == 0 { + return "No projects configured. Please, run `nhost mcp config` to configure your projects." + } + + var sb strings.Builder + sb.WriteString("Configured projects:\n") + + for _, p := range pl { + sb.WriteString(fmt.Sprintf("- %s (%s): %s\n", p.Subdomain, p.Region, p.Description)) + } + + return sb.String() } type Project struct { @@ -62,6 +82,9 @@ type Project struct { // Project's region Region string `json:"region" toml:"region"` + // Project's description + Description string `json:"description,omitempty" toml:"description,omitempty"` + // Admin secret to operate against the project. // Either admin secret or PAT is required. AdminSecret *string `json:"admin_secret,omitempty" toml:"admin_secret,omitempty"` @@ -70,6 +93,10 @@ type Project struct { // Either admin secret or PAT is required. PAT *string `json:"pat,omitempty" toml:"pat,omitempty"` + // If enabled, allows managing the project's metadata (tables, relationships, + // permissions, etc). + ManageMetadata bool `json:"manage_metadata,omitempty" toml:"manage_metadata,omitempty"` + // List of queries that are allowed to be executed against the project. // If empty, no queries are allowed. Use [*] to allow all queries. AllowQueries []string `json:"allow_queries" toml:"allow_queries"` @@ -78,30 +105,80 @@ type Project struct { // If empty, no mutations are allowed. Use [*] to allow all mutations. // Note that this is only used if the project is configured to allow mutations. AllowMutations []string `json:"allow_mutations" toml:"allow_mutations"` + + // GraphQL URL to use when running against the project. Defaults to constructed URL with + // the subdomain and region. + GraphqlURL string `json:"graphql_url,omitzero" toml:"graphql_url,omitzero"` + + // Auth URL to use when running against the project. Defaults to constructed URL with + // the subdomain and region. + AuthURL string `json:"auth_url,omitzero" toml:"auth_url,omitzero"` + + // Hasura's base URL. Defaults to constructed URL with the subdomain and region. + HasuraURL string `json:"hasura_url,omitzero" toml:"hasura_url,omitzero"` } -func GetConfigPath() string { - configHome := os.Getenv("XDG_CONFIG_HOME") - if configHome == "" { - homeDir, err := os.UserHomeDir() - if err != nil { - return "mcp-nhost.toml" - } - - configHome = filepath.Join(homeDir, ".config") +func (p *Project) GetAuthURL() string { + if p.AuthURL != "" { + return p.AuthURL } - return filepath.Join(configHome, "nhost", "mcp-nhost.toml") + return fmt.Sprintf("https://%s.auth.%s.nhost.run/v1", p.Subdomain, p.Region) +} + +func (p *Project) GetGraphqlURL() string { + if p.GraphqlURL != "" { + return p.GraphqlURL + } + + return fmt.Sprintf("https://%s.graphql.%s.nhost.run/v1", p.Subdomain, p.Region) +} + +func (p *Project) GetHasuraURL() string { + if p.HasuraURL != "" { + return p.HasuraURL + } + + return fmt.Sprintf("https://%s.hasura.%s.nhost.run", p.Subdomain, p.Region) +} + +func (p *Project) GetAuthInterceptor() (func(ctx context.Context, req *http.Request) error, error) { + if p.AdminSecret != nil { + return auth.WithAdminSecret(*p.AdminSecret), nil + } else if p.PAT != nil { + interceptor, err := auth.WithPAT(p.GetAuthURL(), *p.PAT) + if err != nil { + return nil, fmt.Errorf("failed to create PAT interceptor: %w", err) + } + + return interceptor, nil + } + + return func(_ context.Context, _ *http.Request) error { + return nil + }, nil +} + +func GetConfigPath(cmd *cli.Command) string { + configPath := cmd.String("config-file") + if configPath != "" { + return configPath + } + + ce := clienv.FromCLI(cmd) + + return filepath.Join(ce.Path.DotNhostFolder(), "mcp-nhost.toml") } func Load(path string) (*Config, error) { - f, err := os.OpenFile(path, os.O_RDONLY, 0o600) //nolint:mnd + content, err := os.ReadFile(path) if err != nil { - return nil, fmt.Errorf("failed to open config file: %w", err) + return nil, fmt.Errorf("failed to read config file: %w", err) } - defer f.Close() - decoder := toml.NewDecoder(f) + interpolated := interpolateEnv(string(content), os.Getenv) + + decoder := toml.NewDecoder(strings.NewReader(interpolated)) decoder.DisallowUnknownFields() var config Config @@ -120,15 +197,5 @@ func Load(path string) (*Config, error) { return nil, fmt.Errorf("failed to unmarshal config file: %w", err) } - if config.Local != nil { - if config.Local.GraphqlURL == nil { - config.Local.GraphqlURL = ptr(DefaultLocalGraphqlURL) - } - - if config.Local.ConfigServerURL == nil { - config.Local.ConfigServerURL = ptr(DefaultLocalConfigServerURL) - } - } - return &config, nil } diff --git a/cli/mcp/config/interpolate.go b/cli/mcp/config/interpolate.go new file mode 100644 index 000000000..b6830306c --- /dev/null +++ b/cli/mcp/config/interpolate.go @@ -0,0 +1,60 @@ +package config + +import "strings" + +// interpolateEnv replaces environment variables in the format $VAR. +// Supports escaping $ with $$ or \$. +func interpolateEnv(s string, getenv func(string) string) string { //nolint:cyclop + var result strings.Builder + result.Grow(len(s)) + + for i := 0; i < len(s); i++ { + switch { + case s[i] == '\\' && i+1 < len(s) && s[i+1] == '$': + // Handle \$ escape sequence + result.WriteByte('$') + + i++ // skip the $ + case s[i] == '$' && i+1 < len(s) && s[i+1] == '$': + // Handle $$ escape sequence + result.WriteByte('$') + + i++ // skip the second $ + case s[i] == '$': + // Start of variable substitution + i++ + if i >= len(s) { + result.WriteByte('$') + break + } + + // Extract variable name + start := i + for i < len(s) && (isAlphaNumUnderscore(s[i])) { + i++ + } + + if i == start { + // No valid variable name found + result.WriteByte('$') + + i-- + } else { + varName := s[start:i] + if value := getenv(varName); value != "" { + result.WriteString(value) + } + + i-- // Back up one because the loop will increment + } + default: + result.WriteByte(s[i]) + } + } + + return result.String() +} + +func isAlphaNumUnderscore(c byte) bool { + return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_' +} diff --git a/cli/mcp/config/interpolate_test.go b/cli/mcp/config/interpolate_test.go new file mode 100644 index 000000000..f4d537db3 --- /dev/null +++ b/cli/mcp/config/interpolate_test.go @@ -0,0 +1,256 @@ +package config //nolint:testpackage + +import ( + "os" + "testing" + + "github.com/google/go-cmp/cmp" +) + +func TestInterpolateEnv(t *testing.T) { + t.Parallel() + + tests := []struct { + name string + input string + envVars map[string]string + expected string + }{ + { + name: "simple variable substitution", + input: "admin_secret = \"$SECRET\"", + envVars: map[string]string{"SECRET": "mysecret"}, + expected: "admin_secret = \"mysecret\"", + }, + { + name: "multiple variables", + input: "$VAR1 and $VAR2", + envVars: map[string]string{"VAR1": "hello", "VAR2": "world"}, + expected: "hello and world", + }, + { + name: "variable with underscores", + input: "$MY_VAR_123", + envVars: map[string]string{"MY_VAR_123": "value"}, + expected: "value", + }, + { + name: "escaped with $$", + input: "price = $$100", + envVars: map[string]string{}, + expected: "price = $100", + }, + { + name: "escaped with backslash", + input: "price = \\$100", + envVars: map[string]string{}, + expected: "price = $100", + }, + { + name: "mix of escaped and variable", + input: "$$SECRET is $SECRET", + envVars: map[string]string{"SECRET": "hidden"}, + expected: "$SECRET is hidden", + }, + { + name: "undefined variable", + input: "value = $UNDEFINED", + envVars: map[string]string{}, + expected: "value = ", + }, + { + name: "variable at end", + input: "end$VAR", + envVars: map[string]string{"VAR": "value"}, + expected: "endvalue", + }, + { + name: "dollar sign alone at end", + input: "end$", + envVars: map[string]string{}, + expected: "end$", + }, + { + name: "dollar sign with non-alphanum", + input: "$ hello", + envVars: map[string]string{}, + expected: "$ hello", + }, + { + name: "no variables", + input: "plain text without variables", + envVars: map[string]string{}, + expected: "plain text without variables", + }, + { + name: "empty string", + input: "", + envVars: map[string]string{}, + expected: "", + }, + { + name: "multiple escapes in a row", + input: "$$$$", + envVars: map[string]string{}, + expected: "$$", + }, + { + name: "variable surrounded by text", + input: "prefix$VAR suffix", + envVars: map[string]string{"VAR": "middle"}, + expected: "prefixmiddle suffix", + }, + { + name: "backslash escape followed by variable", + input: "\\$100 costs $PRICE", + envVars: map[string]string{"PRICE": "$50"}, + expected: "$100 costs $50", + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + + // Create isolated getenv function + getenv := func(key string) string { + return tt.envVars[key] + } + + result := interpolateEnv(tt.input, getenv) + if result != tt.expected { + t.Errorf("interpolateEnv() = %q, want %q", result, tt.expected) + } + }) + } +} + +func TestInterpolateEnvRealWorld(t *testing.T) { + t.Parallel() + + envVars := map[string]string{ + "ADMIN_SECRET": "super-secret-key", + "SUBDOMAIN": "myapp", + } + getenv := func(key string) string { + return envVars[key] + } + + input := `[[projects]] +subdomain = "local" +region = "local" +admin_secret = "$ADMIN_SECRET" + +[[projects]] +subdomain = "$SUBDOMAIN" +admin_secret = "$ADMIN_SECRET" +# Price is $$100 +` + + expected := `[[projects]] +subdomain = "local" +region = "local" +admin_secret = "super-secret-key" + +[[projects]] +subdomain = "myapp" +admin_secret = "super-secret-key" +# Price is $100 +` + + result := interpolateEnv(input, getenv) + if result != expected { + t.Errorf("interpolateEnv() = %q, want %q", result, expected) + } +} + +func TestIsAlphaNumUnderscore(t *testing.T) { + t.Parallel() + + tests := []struct { + char byte + expected bool + }{ + {'a', true}, + {'z', true}, + {'A', true}, + {'Z', true}, + {'0', true}, + {'9', true}, + {'_', true}, + {'-', false}, + {'.', false}, + {'$', false}, + {' ', false}, + {'/', false}, + } + + for _, tt := range tests { + t.Run(string(tt.char), func(t *testing.T) { + t.Parallel() + + result := isAlphaNumUnderscore(tt.char) + if result != tt.expected { + t.Errorf("isAlphaNumUnderscore(%q) = %v, want %v", tt.char, result, tt.expected) + } + }) + } +} + +func ptr[T any](v T) *T { + return &v +} + +func TestLoadWithInterpolation(t *testing.T) { + // Create a temporary config file + content := `[[projects]] +admin_secret = "$TEST_ADMIN_SECRET" + +[[projects]] +subdomain = "myapp" +region = "us-east-1" +admin_secret = "$TEST_PROJECT_SECRET" +allow_queries = ["*"] +` + + tmpfile, err := os.CreateTemp(t.TempDir(), "config-*.toml") + if err != nil { + t.Fatal(err) + } + defer os.Remove(tmpfile.Name()) + + if _, err := tmpfile.WriteString(content); err != nil { + t.Fatal(err) + } + + if err := tmpfile.Close(); err != nil { + t.Fatal(err) + } + + // Set environment variables + t.Setenv("TEST_ADMIN_SECRET", "local-secret") + t.Setenv("TEST_PROJECT_SECRET", "project-secret") + + // Load config + cfg, err := Load(tmpfile.Name()) + if err != nil { + t.Fatalf("Load() error = %v", err) + } + + if diff := cmp.Diff(cfg, &Config{ + Cloud: nil, + Projects: ProjectList{ + { //nolint:exhaustruct + AdminSecret: ptr("local-secret"), + }, + { //nolint:exhaustruct + Subdomain: "myapp", + Region: "us-east-1", + AdminSecret: ptr("project-secret"), + AllowQueries: []string{"*"}, + }, + }, + }); diff != "" { + t.Errorf("diff = %s", diff) + } +} diff --git a/cli/mcp/config/wizard.go b/cli/mcp/config/wizard.go index 6d3a6db19..231680c3e 100644 --- a/cli/mcp/config/wizard.go +++ b/cli/mcp/config/wizard.go @@ -25,11 +25,14 @@ func RunWizard() (*Config, error) { projects := wizardProject(reader) + if localConfig != nil { + projects = append(projects, *localConfig) + } + fmt.Println() return &Config{ Cloud: cloudConfig, - Local: localConfig, Projects: projects, }, nil } @@ -41,13 +44,9 @@ func wizardCloud(reader *bufio.Reader) *Cloud { fmt.Println(" You can view and configure projects as you would in the dashboard.") if promptYesNo(reader, "Enable Nhost Cloud access?") { - pat := promptString( - reader, - "Enter Personal Access Token (from https://app.nhost.io/account):", - ) + fmt.Println(" Note: If you haven't already, run `nhost login` to authenticate.") return &Cloud{ - PAT: pat, EnableMutations: true, } } @@ -56,7 +55,7 @@ func wizardCloud(reader *bufio.Reader) *Cloud { } //nolint:forbidigo -func wizardLocal(reader *bufio.Reader) *Local { +func wizardLocal(reader *bufio.Reader) *Project { fmt.Println("2. Local Development Access") fmt.Println(" This allows LLMs to interact with your local Nhost environment,") fmt.Println(" including project configuration and GraphQL API access.") @@ -68,10 +67,18 @@ func wizardLocal(reader *bufio.Reader) *Local { adminSecret = "nhost-admin-secret" //nolint:gosec } - return &Local{ - AdminSecret: adminSecret, - ConfigServerURL: nil, - GraphqlURL: nil, + return &Project{ + Subdomain: "local", + Region: "local", + Description: "Local development project running via the Nhost CLI", + AdminSecret: &adminSecret, + PAT: nil, + ManageMetadata: true, + AllowQueries: []string{"*"}, + AllowMutations: []string{"*"}, + AuthURL: "", + GraphqlURL: "", + HasuraURL: "", } } @@ -95,16 +102,29 @@ func wizardProject(reader *bufio.Reader) []Project { if promptYesNo(reader, "Configure project access?") { for { project := Project{ + Description: "", Subdomain: "", Region: "", AdminSecret: nil, PAT: nil, + ManageMetadata: false, AllowQueries: []string{"*"}, AllowMutations: []string{"*"}, + GraphqlURL: "", + AuthURL: "", + HasuraURL: "", } project.Subdomain = promptString(reader, "Project subdomain:") project.Region = promptString(reader, "Project region:") + project.Description = promptString( + reader, + "Project description to provide additional information to LLMs:", + ) + project.ManageMetadata = promptYesNo( + reader, + "Allow managing metadata (tables, relationships, permissions, etc)?", + ) authType := promptChoice( reader, diff --git a/cli/mcp/graphql/parse.go b/cli/mcp/graphql/parse.go index f6bf3b2c5..b05c9ac95 100644 --- a/cli/mcp/graphql/parse.go +++ b/cli/mcp/graphql/parse.go @@ -1,6 +1,7 @@ package graphql import ( + "encoding/json" "fmt" "sort" "strings" @@ -30,7 +31,7 @@ func getTypeName(t Type) string { } // ParseSchema converts an introspection query result into a GraphQL SDL string. -func ParseSchema(response ResponseIntrospection, filter Filter) string { +func ParseSchema(response ResponseIntrospection, filter Filter) string { //nolint:cyclop availableTypes := make(map[string]Type) // Process all types in the schema @@ -58,6 +59,9 @@ func ParseSchema(response ResponseIntrospection, filter Filter) string { } neededMutations := make(map[string]Field) + if response.Data.Schema.MutationType == nil { + return render(neededQueries, neededMutations, neededTypes) + } for _, mutation := range response.Data.Schema.MutationType.Fields { if filter.AllowMutations == nil { @@ -83,6 +87,30 @@ func ParseSchema(response ResponseIntrospection, filter Filter) string { return render(neededQueries, neededMutations, neededTypes) } +func SummarizeSchema(response ResponseIntrospection) string { + summary := map[string][]string{ + "query": make([]string, len(response.Data.Schema.QueryType.Fields)), + } + + for i, query := range response.Data.Schema.QueryType.Fields { + summary["query"][i] = query.Name + } + + if response.Data.Schema.MutationType != nil { + summary["mutation"] = make([]string, len(response.Data.Schema.MutationType.Fields)) + for _, mutation := range response.Data.Schema.MutationType.Fields { + summary["mutation"] = append(summary["mutation"], mutation.Name) + } + } + + b, err := json.MarshalIndent(summary, "", " ") + if err != nil { + return fmt.Sprintf("failed to marshal summary: %v", err) + } + + return string(b) +} + func filterNestedArgs( args []InputValue, neededTypes map[string]Type, ) []InputValue { diff --git a/cli/mcp/graphql/query.go b/cli/mcp/graphql/query.go index 55ef6d8ff..db2553ecd 100644 --- a/cli/mcp/graphql/query.go +++ b/cli/mcp/graphql/query.go @@ -24,6 +24,10 @@ func checkAllowedOperation( selectionSet ast.SelectionSet, allowed []string, ) error { + if slices.Contains(allowed, "*") { + return nil + } + for _, v := range selectionSet { if v, ok := v.(*ast.Field); ok { if len(v.SelectionSet) > 0 && !slices.Contains(allowed, v.Name) { @@ -45,8 +49,8 @@ func CheckAllowedGraphqlQuery( //nolint:cyclop queryString string, ) error { if allowedQueries == nil && allowedMutations == nil { - // nil means unrestricted - return nil + // nil means nothing allowed + return fmt.Errorf("%w: %s", ErrQueryNotAllowed, queryString) } if len(allowedQueries) == 0 && len(allowedMutations) == 0 { diff --git a/cli/mcp/graphql/query_test.go b/cli/mcp/graphql/query_test.go index cb78344d1..a592b05e8 100644 --- a/cli/mcp/graphql/query_test.go +++ b/cli/mcp/graphql/query_test.go @@ -22,7 +22,21 @@ func TestCheckAllowedGraphqlQuery(t *testing.T) { query: `query { user(id: 1) { name } }`, allowedQueries: nil, allowedMutations: nil, - expectedError: nil, + expectedError: graphql.ErrQueryNotAllowed, + }, + { + name: "nil,", + query: `query { user(id: 1) { name } }`, + allowedQueries: nil, + allowedMutations: []string{"user"}, + expectedError: graphql.ErrQueryNotAllowed, + }, + { + name: ",nil", + query: `mutation { user(id: 1) { name } }`, + allowedQueries: []string{"user"}, + allowedMutations: nil, + expectedError: graphql.ErrQueryNotAllowed, }, { name: "no query allowed", diff --git a/cli/mcp/nhost/auth/auth.gen.go b/cli/mcp/nhost/auth/auth.gen.go index e09ef0f4c..c15414907 100644 --- a/cli/mcp/nhost/auth/auth.gen.go +++ b/cli/mcp/nhost/auth/auth.gen.go @@ -1,6 +1,6 @@ // Package auth provides primitives to interact with the openapi HTTP API. // -// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version 2.4.1 DO NOT EDIT. +// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version 2.5.0 DO NOT EDIT. package auth import ( diff --git a/cli/mcp/nhost/graphql/graphql.gen.go b/cli/mcp/nhost/graphql/graphql.gen.go index 4caa93db7..47218e2bf 100644 --- a/cli/mcp/nhost/graphql/graphql.gen.go +++ b/cli/mcp/nhost/graphql/graphql.gen.go @@ -1,6 +1,6 @@ // Package graphql provides primitives to interact with the openapi HTTP API. // -// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version 2.4.1 DO NOT EDIT. +// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version 2.5.0 DO NOT EDIT. package graphql import ( diff --git a/cli/mcp/resources/cloud.go b/cli/mcp/resources/cloud.go new file mode 100644 index 000000000..01c92445d --- /dev/null +++ b/cli/mcp/resources/cloud.go @@ -0,0 +1,69 @@ +package resources + +import ( + "context" + _ "embed" + + "github.com/mark3labs/mcp-go/mcp" + "github.com/mark3labs/mcp-go/server" + "github.com/nhost/nhost/cli/mcp/config" +) + +//go:embed cloud_schema.graphql +var schemaGraphql string + +//go:embed cloud_schema-with-mutations.graphql +var schemaGraphqlWithMutations string + +const ( + CloudResourceURI = "schema://nhost-cloud" + CloudDescription = `Schema to interact with the Nhost Cloud. Projects are equivalent +to apps in the schema. IDs are typically uuids.` +) + +type Cloud struct { + schema string +} + +func NewCloud(cfg *config.Config) *Cloud { + schema := schemaGraphql + if cfg.Cloud.EnableMutations { + schema = schemaGraphqlWithMutations + } + + return &Cloud{ + schema: schema, + } +} + +func (t *Cloud) Register(server *server.MCPServer) { + server.AddResource( + mcp.Resource{ + URI: CloudResourceURI, + Name: "nhost-cloud", + Annotated: mcp.Annotated{ + Annotations: &mcp.Annotations{ + Audience: []mcp.Role{"agent"}, + Priority: 9.0, //nolint:mnd + }, + }, + Description: CloudDescription, + MIMEType: "text/plain", + Meta: nil, + }, + t.handle, + ) +} + +func (t *Cloud) handle( + _ context.Context, request mcp.ReadResourceRequest, +) ([]mcp.ResourceContents, error) { + return []mcp.ResourceContents{ + mcp.TextResourceContents{ + URI: request.Params.URI, + MIMEType: "text/plain", + Text: t.schema, + Meta: nil, + }, + }, nil +} diff --git a/cli/mcp/tools/cloud/schema-with-mutations.graphql b/cli/mcp/resources/cloud_schema-with-mutations.graphql similarity index 100% rename from cli/mcp/tools/cloud/schema-with-mutations.graphql rename to cli/mcp/resources/cloud_schema-with-mutations.graphql diff --git a/cli/mcp/tools/cloud/schema.graphql b/cli/mcp/resources/cloud_schema.graphql similarity index 100% rename from cli/mcp/tools/cloud/schema.graphql rename to cli/mcp/resources/cloud_schema.graphql diff --git a/cli/mcp/resources/graphql_management_schema.go b/cli/mcp/resources/graphql_management_schema.go new file mode 100644 index 000000000..dd690a763 --- /dev/null +++ b/cli/mcp/resources/graphql_management_schema.go @@ -0,0 +1,54 @@ +package resources + +import ( + "context" + + "github.com/mark3labs/mcp-go/mcp" + "github.com/mark3labs/mcp-go/server" + "github.com/nhost/nhost/cli/mcp/nhost/graphql" +) + +const ( + GraphqlManagementResourceURI = "schema://graphql-management" + GraphqlManagementDescription = `GraphQL's management schema for an Nhost project. +This tool is useful to properly understand how manage hasura metadata, migrations, +permissions, remote schemas, etc.` +) + +type GraphqlManagement struct{} + +func NewGraphqlManagement() *GraphqlManagement { + return &GraphqlManagement{} +} + +func (t *GraphqlManagement) Register(server *server.MCPServer) { + server.AddResource( + mcp.Resource{ + URI: GraphqlManagementResourceURI, + Name: "graphql-management", + Annotated: mcp.Annotated{ + Annotations: &mcp.Annotations{ + Audience: []mcp.Role{"agent"}, + Priority: 9.0, //nolint:mnd + }, + }, + Description: GraphqlManagementDescription, + MIMEType: "text/plain", + Meta: nil, + }, + t.handle, + ) +} + +func (t *GraphqlManagement) handle( + _ context.Context, request mcp.ReadResourceRequest, +) ([]mcp.ResourceContents, error) { + return []mcp.ResourceContents{ + mcp.TextResourceContents{ + URI: request.Params.URI, + MIMEType: "text/plain", + Text: graphql.Schema, + Meta: nil, + }, + }, nil +} diff --git a/cli/mcp/resources/nhost_toml.go b/cli/mcp/resources/nhost_toml.go new file mode 100644 index 000000000..c832803c1 --- /dev/null +++ b/cli/mcp/resources/nhost_toml.go @@ -0,0 +1,57 @@ +package resources + +import ( + "context" + _ "embed" + + "github.com/mark3labs/mcp-go/mcp" + "github.com/mark3labs/mcp-go/server" +) + +//go:embed nhost_toml_schema.cue +var schemaNhostToml string + +const ( + NhostTomlResourceURI = "schema://nhost.toml" + NhostTomlResourceDescription = `Cuelang schema for the nhost.toml configuration file. Run nhost +config validate after making changes to your nhost.toml file to ensure it is valid.` +) + +type NhostToml struct{} + +func NewNhostToml() *NhostToml { + return &NhostToml{} +} + +func (t *NhostToml) Register(server *server.MCPServer) { + server.AddResource( + mcp.Resource{ + URI: NhostTomlResourceURI, + Name: "nhost.toml", + Annotated: mcp.Annotated{ + Annotations: &mcp.Annotations{ + Audience: []mcp.Role{"agent"}, + Priority: 9.0, //nolint:mnd + }, + }, + Description: NhostTomlResourceDescription, + MIMEType: "text/plain", + Meta: nil, + }, + t.handle, + ) +} + +//go:generate cp ../../../vendor/github.com/nhost/be/services/mimir/schema/schema.cue nhost_toml_schema.cue +func (t *NhostToml) handle( + _ context.Context, request mcp.ReadResourceRequest, +) ([]mcp.ResourceContents, error) { + return []mcp.ResourceContents{ + mcp.TextResourceContents{ + URI: request.Params.URI, + MIMEType: "text/plain", + Text: schemaNhostToml, + Meta: nil, + }, + }, nil +} diff --git a/cli/mcp/resources/nhost_toml_schema.cue b/cli/mcp/resources/nhost_toml_schema.cue new file mode 100644 index 000000000..e751881b6 --- /dev/null +++ b/cli/mcp/resources/nhost_toml_schema.cue @@ -0,0 +1,812 @@ +package schema + +import ( + "list" + "math" + "net" + "strings" + "time" +) + +// main entrypoint to the configuration +#Config: { + // Global configuration that applies to all services + global: #Global + + // Configuration for hasura + hasura: #Hasura + + // Advanced configuration for GraphQL + graphql?: #Graphql + + // Configuration for functions service + functions: #Functions + + // Configuration for auth service + auth: #Auth + + // Configuration for postgres service + postgres: #Postgres + + // Configuration for third party providers like SMTP, SMS, etc. + provider: #Provider + + // Configuration for storage service + storage: #Storage + + // Configuration for graphite service + ai?: #AI + + // Configuration for observability service + observability: #Observability + + _totalResourcesCPU: ( + hasura.resources.replicas*hasura.resources.compute.cpu + + auth.resources.replicas*auth.resources.compute.cpu + + storage.resources.replicas*storage.resources.compute.cpu + + postgres.resources.compute.cpu) @cuegraph(skip) + + _totalResourcesMemory: ( + hasura.resources.replicas*hasura.resources.compute.memory + + auth.resources.replicas*auth.resources.compute.memory + + storage.resources.replicas*storage.resources.compute.memory + + postgres.resources.compute.memory) @cuegraph(skip) + + _validateResourcesTotalCpuMemoryRatioMustBe1For2: ( + _totalResourcesCPU*2.048 & _totalResourcesMemory*1.0) @cuegraph(skip) + + _validateResourcesTotalCpuMin1000: ( + hasura.resources.compute.cpu+ + auth.resources.compute.cpu+ + storage.resources.compute.cpu+ + postgres.resources.compute.cpu) >= 1000 & true @cuegraph(skip) + + _validateAllResourcesAreSetOrNot: ( + ((hasura.resources.compute != _|_) == (auth.resources.compute != _|_)) && + ((auth.resources.compute != _|_) == (storage.resources.compute != _|_)) && + ((storage.resources.compute != _|_) == (postgres.resources.compute != _|_))) & true @cuegraph(skip) + + _validateNetworkingMustBeNullOrNotSet: !storage.resources.networking | storage.resources.networking == null @cuegraph(skip) + + _isProviderSMTPSet: provider.smtp != _|_ @cuegraph(skip) + _isAuthRateLimitEmailsDefault: auth.rateLimit.emails.limit == 10 && auth.rateLimit.emails.interval == "1h" @cuegraph(skip) + _validateAuthRateLimitEmailsIsDefaultOrSMTPSettingsSet: (_isProviderSMTPSet | _isAuthRateLimitEmailsDefault) & true @cuegraph(skip) +} + +// Global configuration that applies to all services +#Global: { + // User-defined environment variables that are spread over all services + environment: [...#GlobalEnvironmentVariable] | *[] +} + +#GlobalEnvironmentVariable: { + // Name of the environment variable + name: =~"(?i)^[a-z_]{1,}[a-z0-9_]*" & !~"(?i)^NHOST_" & !~"(?i)^HASURA_" + // Value of the environment variable + value: string +} + +#Graphql: { + security: #GraphqlSecurity +} + +#GraphqlSecurity: { + forbidAminSecret: bool | *false + maxDepthQueries: uint | *0 // 0 disables the check +} + +#Networking: { + ingresses: [#Ingress] | *[] +} + +#Ingress: { + fqdn: [string & net.FQDN & strings.MinRunes(1) & strings.MaxRunes(63)] + + tls?: { + clientCA?: string + } +} + +#Autoscaler: { + maxReplicas: uint8 & >=2 & <=100 +} + +// Resource configuration for a service +#Resources: { + compute?: #ResourcesCompute + + // Number of replicas for a service + replicas: uint8 & >=1 & <=10 | *1 + autoscaler?: #Autoscaler + + _validateReplicasMustBeSmallerThanMaxReplicas: (replicas <= autoscaler.maxReplicas) & true @cuegraph(skip) + + _validateMultipleReplicasNeedsCompute: ( + replicas == 1 && autoscaler == _|_ | + compute != _|_) & true @cuegraph(skip) + _validateMultipleReplicasRatioMustBe1For2: ( + replicas == 1 && autoscaler == _|_ | + (compute.cpu*2.048 == compute.memory)) & true @cuegraph(skip) + + networking?: #Networking | null +} + +#ResourcesCompute: { + // milicpus, 1000 milicpus = 1 cpu + cpu: uint32 & >=250 & <=30000 + // MiB: 128MiB to 30GiB + memory: uint32 & >=128 & <=62464 + + // validate CPU steps of 250 milicpus + _validateCPUSteps250: (mod(cpu, 250) == 0) & true @cuegraph(skip) + + // validate memory steps of 128 MiB + _validateMemorySteps128: (mod(memory, 128) == 0) & true @cuegraph(skip) +} + +// Configuration for hasura service +#Hasura: { + // Version of hasura, you can see available versions in the URL below: + // https://hub.docker.com/r/hasura/graphql-engine/tags + version: string | *"v2.48.5-ce" + + // JWT Secrets configuration + jwtSecrets: [#JWTSecret] + + // Admin secret + adminSecret: string + + // Webhook secret + webhookSecret: string + + // Configuration for hasura services + // Reference: https://hasura.io/docs/latest/deployment/graphql-engine-flags/reference/ + settings: { + // HASURA_GRAPHQL_CORS_DOMAIN + corsDomain: [...#Url] | *["*"] + // HASURA_GRAPHQL_DEV_MODE + devMode: bool | *true + // HASURA_GRAPHQL_ENABLE_ALLOWLIST + enableAllowList: bool | *false + // HASURA_GRAPHQL_ENABLE_CONSOLE + enableConsole: bool | *true + // HASURA_GRAPHQL_ENABLE_REMOTE_SCHEMA_PERMISSIONS + enableRemoteSchemaPermissions: bool | *false + // HASURA_GRAPHQL_ENABLED_APIS + enabledAPIs: [...#HasuraAPIs] | *["metadata", "graphql", "pgdump", "config"] + + // HASURA_GRAPHQL_INFER_FUNCTION_PERMISSIONS + inferFunctionPermissions: bool | *true + + // HASURA_GRAPHQL_LIVE_QUERIES_MULTIPLEXED_REFETCH_INTERVAL + liveQueriesMultiplexedRefetchInterval: uint32 | *1000 + + // HASURA_GRAPHQL_STRINGIFY_NUMERIC_TYPES + stringifyNumericTypes: bool | *false + } + + authHook?: { + // HASURA_GRAPHQL_AUTH_HOOK + url: string + + // HASURA_GRAPHQL_AUTH_HOOK_MODE + mode: "GET" | *"POST" + + // HASURA_GRAPHQL_AUTH_HOOK_SEND_REQUEST_BODY + sendRequestBody: bool | *true + } + + logs: { + // HASURA_GRAPHQL_LOG_LEVEL + level: "debug" | "info" | "error" | *"warn" + } + + events: { + // HASURA_GRAPHQL_EVENTS_HTTP_POOL_SIZE + httpPoolSize: uint32 & >=1 & <=100 | *100 + } + + // Resources for the service + resources?: #Resources + + rateLimit?: #RateLimit +} + +// APIs for hasura +#HasuraAPIs: "metadata" | "graphql" | "pgdump" | "config" + +// Configuration for storage service +#Storage: { + // Version of storage service, you can see available versions in the URL below: + // https://hub.docker.com/r/nhost/hasura-storage/tags + // + // Releases: + // + // https://github.com/nhost/hasura-storage/releases + version: string | *"0.9.1" + + // Networking (custom domains at the moment) are not allowed as we need to do further + // configurations in the CDN. We will enable it again in the future. + resources?: #Resources & {networking?: null} + + antivirus?: { + server: "tcp://run-clamav:3310" + } + + rateLimit?: #RateLimit +} + +// Configuration for functions service +#Functions: { + node: { + version: 20 | *22 + } + + resources?: { + networking?: #Networking + } + + rateLimit?: #RateLimit +} + +// Configuration for postgres service +#Postgres: { + // Version of postgres, you can see available versions in the URL below: + // https://hub.docker.com/r/nhost/postgres/tags + version: string | *"14.18-20250728-1" + + // Resources for the service + resources: { + compute?: #ResourcesCompute + storage: { + capacity: uint32 & >=1 & <=1000 // GiB + } + + replicas?: 1 + + enablePublicAccess?: bool | *false + } + + settings?: { + jit: "off" | "on" | *"on" + maxConnections: int32 | *100 + sharedBuffers: string | *"128MB" + effectiveCacheSize: string | *"4GB" + maintenanceWorkMem: string | *"64MB" + checkpointCompletionTarget: number | *0.9 + walBuffers: string | *"-1" + defaultStatisticsTarget: int32 | *100 + randomPageCost: number | *4.0 + effectiveIOConcurrency: int32 | *1 + workMem: string | *"4MB" + hugePages: string | *"try" + minWalSize: string | *"80MB" + maxWalSize: string | *"1GB" + maxWorkerProcesses: int32 | *8 + maxParallelWorkersPerGather: int32 | *2 + maxParallelWorkers: int32 | *8 + maxParallelMaintenanceWorkers: int32 | *2 + walLevel: string | *"replica" + maxWalSenders: int32 | *10 + maxReplicationSlots: int32 | *10 + archiveTimeout: int32 & >=300 & <=1073741823 | *300 + trackIoTiming: "on" | *"off" + + // if pitr is on we need walLevel to set to replica or logical + _validateWalLevelIsLogicalOrReplicaIfPitrIsEnabled: ( pitr == _|_ | walLevel == "replica" | walLevel == "logical") & true @cuegraph(skip) + } + + pitr?: { + retention: uint8 & 7 + } +} + +// Configuration for auth service +// You can find more information about the configuration here: +// https://github.com/nhost/hasura-auth/blob/main/docs/environment-variables.md +#Auth: { + // Version of auth, you can see available versions in the URL below: + // https://hub.docker.com/r/nhost/hasura-auth/tags + // + // Releases: + // + // https://github.com/nhost/hasura-auth/releases + version: string | *"0.43.0" + + // Resources for the service + resources?: #Resources + + elevatedPrivileges: { + mode: "recommended" | "required" | *"disabled" + } + + redirections: { + // AUTH_CLIENT_URL + clientUrl: #Url | *"http://localhost:3000" + // AUTH_ACCESS_CONTROL_ALLOWED_REDIRECT_URLS + allowedUrls: [...string] + } + + signUp: { + // Inverse of AUTH_DISABLE_SIGNUP + enabled: bool | *true + + // AUTH_DISABLE_NEW_USERS + disableNewUsers: bool | *false + + turnstile?: { + secretKey: string + } + } + + user: { + roles: { + // AUTH_USER_DEFAULT_ROLE + default: #UserRole | *"user" + // AUTH_USER_DEFAULT_ALLOWED_ROLES + allowed: [...#UserRole] | *[default, "me"] + } + locale: { + // AUTH_LOCALE_DEFAULT + default: #Locale | *"en" + // AUTH_LOCALE_ALLOWED_LOCALES + allowed: [...#Locale] | *[default] + } + + gravatar: { + // AUTH_GRAVATAR_ENABLED + enabled: bool | *true + // AUTH_GRAVATAR_DEFAULT + default: "404" | "mp" | "identicon" | "monsterid" | "wavatar" | "retro" | "robohash" | *"blank" + // AUTH_GRAVATAR_RATING + rating: "pg" | "r" | "x" | *"g" + } + email: { + // AUTH_ACCESS_CONTROL_ALLOWED_EMAILS + allowed: [...#Email] + // AUTH_ACCESS_CONTROL_BLOCKED_EMAILS + blocked: [...#Email] + + } + emailDomains: { + // AUTH_ACCESS_CONTROL_ALLOWED_EMAIL_DOMAINS + allowed: [...string & net.FQDN] + // AUTH_ACCESS_CONTROL_BLOCKED_EMAIL_DOMAINS + blocked: [...string & net.FQDN] + } + } + + session: { + accessToken: { + // AUTH_ACCESS_TOKEN_EXPIRES_IN + expiresIn: uint32 | *900 + // AUTH_JWT_CUSTOM_CLAIMS + customClaims: [...{ + key: =~"[a-zA-Z_]{1,}[a-zA-Z0-9_]*" + value: string + default?: string + }] | *[] + } + + refreshToken: { + // AUTH_REFRESH_TOKEN_EXPIRES_IN + expiresIn: uint32 | *2592000 + } + + } + + method: { + anonymous: { + enabled: bool | *false + } + + emailPasswordless: { + enabled: bool | *false + } + + otp: { + email: { + enabled: bool | *false + } + } + + emailPassword: { + // Disabling email+password sign in is not implmented yet + // enabled: bool | *true + hibpEnabled: bool | *false + emailVerificationRequired: bool | *true + passwordMinLength: uint8 & >=3 | *9 + } + + smsPasswordless: { + enabled: bool | *false + } + + oauth: { + apple: { + enabled: bool | *false + if enabled { + clientId: string + keyId: string + teamId: string + privateKey: string + } + if !enabled { + clientId?: string + keyId?: string + teamId?: string + privateKey?: string + } + audience?: string + scope?: [...string] + } + azuread: { + #StandardOauthProvider + tenant: string | *"common" + } + bitbucket: #StandardOauthProvider + discord: #StandardOauthProviderWithScope + entraid: { + #StandardOauthProvider + tenant: string | *"common" + } + facebook: #StandardOauthProviderWithScope + github: #StandardOauthProviderWithScope + gitlab: #StandardOauthProviderWithScope + google: #StandardOauthProviderWithScope + linkedin: #StandardOauthProviderWithScope + spotify: #StandardOauthProviderWithScope + strava: #StandardOauthProviderWithScope + twitch: #StandardOauthProviderWithScope + twitter: { + enabled: bool | *false + if enabled { + consumerKey: string + consumerSecret: string + } + if !enabled { + consumerKey?: string + consumerSecret?: string + } + } + windowslive: #StandardOauthProviderWithScope + workos: { + #StandardOauthProvider + connection?: string + organization?: string + } + } + + webauthn: { + enabled: bool | *false + relyingParty?: { + id: string | *"" + name?: string + origins?: [...#Url] | *[redirections.clientUrl] + } + attestation: { + timeout: uint32 | *60000 + } + } + } + + totp: { + enabled: bool | *false + if enabled { + issuer: string + } + if !enabled { + issuer?: string + } + } + + misc: { + concealErrors: bool | *false + } + + rateLimit: #AuthRateLimit +} + +#RateLimit: { + limit: uint32 + interval: string & time.Duration +} + +#AuthRateLimit: { + emails: #RateLimit | *{limit: 10, interval: "1h"} + sms: #RateLimit | *{limit: 10, interval: "1h"} + bruteForce: #RateLimit | *{limit: 10, interval: "5m"} + signups: #RateLimit | *{limit: 10, interval: "5m"} + global: #RateLimit | *{limit: 100, interval: "1m"} +} + +#StandardOauthProvider: { + enabled: bool | *false + if enabled { + clientId: string + clientSecret: string + } + if !enabled { + clientId?: string + clientSecret?: string + } +} + +#StandardOauthProviderWithScope: { + enabled: bool | *false + if enabled { + clientId: string + clientSecret: string + } + if !enabled { + clientId?: string + clientSecret?: string + } + audience?: string + scope?: [...string] +} + +#Provider: { + smtp?: #Smtp + sms?: #Sms +} + +#Smtp: { + user: string + password: string + sender: string + host: string & net.FQDN | net.IP + port: #Port + secure: bool + method: "LOGIN" | "CRAM-MD5" | "PLAIN" +} + +#Sms: { + provider: "twilio" + accountSid: string + authToken: string + messagingServiceId: string +} + +#UserRole: string +#Url: string +#Port: uint16 +#Email: =~"^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$" +#Locale: string & strings.MinRunes(2) & strings.MaxRunes(2) + +// See https://hasura.io/docs/latest/auth/authentication/jwt/ +#JWTSecret: + ({ + type: "HS384" | "HS512" | *"HS256" + key: string + } | + { + type: "RS256" | "RS384" | "RS512" + key: string + signingKey?: string + kid?: string + } | + { + jwk_url: #Url | *null + }) & + { + claims_format?: "stringified_json" | *"json" + audience?: string + issuer?: string + allowed_skew?: uint32 + header?: string + } & { + claims_map?: [...#ClaimMap] + + } & + ({ + claims_namespace: string | *"https://hasura.io/jwt/claims" + } | + { + claims_namespace_path: string + } | *{}) + +#ClaimMap: { + claim: string + { + value: string + } | { + path: string + default?: string + } +} & {} + +#SystemConfig: { + auth: { + email: { + templates: { + s3Key?: string + } + } + } + + graphql: { + // manually enable graphi on a per-service basis + // by default it follows the plan + featureAdvancedGraphql: bool | *false + } + + postgres: { + enabled: bool | *true + majorVersion: "14" | "15" | "16" | "17" | *"14" + if enabled { + database: string + } + if !enabled { + database?: string + } + connectionString: { + backup: string + hasura: string + auth: string + storage: string + } + + disk?: { + iops: uint32 | *3000 + tput: uint32 | *125 + } + + encryptColumnKey?: string & =~"^[0-9a-fA-F]{64}$" // 32 bytes hex-encoded key + oldEncryptColumnKey?: string & =~"^[0-9a-fA-F]{64}$" // for key rotation + } + + persistentVolumesEncrypted: bool | *false +} + +#AI: { + version: string | *"0.8.0" + resources: { + compute: #ComputeResources + } + + openai: { + organization?: string + apiKey: string + } + + autoEmbeddings: { + synchPeriodMinutes: uint32 | *5 + } + + webhookSecret: string +} + +#Observability: { + grafana: #Grafana +} + +#Grafana: { + adminPassword: string + + smtp?: { + host: string & net.FQDN | net.IP + port: #Port + sender: string + user: string + password: string + } + + alerting: { + enabled: bool | *false + } + + contacts: { + emails?: [...string] + pagerduty?: [...{ + integrationKey: string + severity: string + class: string + component: string + group: string + }] + discord?: [...{ + url: string + avatarUrl: string + }] + slack?: [...{ + recipient: string + token: string + username: string + iconEmoji: string + iconURL: string + mentionUsers: [...string] + mentionGroups: [...string] + mentionChannel: string + url: string + endpointURL: string + }] + webhook?: [...{ + url: string + httpMethod: string + username: string + password: string + authorizationScheme: string + authorizationCredentials: string + maxAlerts: int + }] + + } +} + +#RunServicePort: { + port: #Port + type: "http" | "grpc" | "tcp" | "udp" + publish: bool | *false + ingresses: [#Ingress] | *[] + _publish_supported_only_over_http: ( + publish == false || type == "http" || type == "grpc" ) & true @cuegraph(skip) + + rateLimit?: #RateLimit +} + +#RunServiceName: =~"^[a-z]([-a-z0-9]*[a-z0-9])?$" & strings.MinRunes(1) & strings.MaxRunes(30) + +// Resource configuration for a service +#ComputeResources: { + // milicpus, 1000 milicpus = 1 cpu + cpu: uint32 & >=62 & <=14000 + // MiB: 128MiB to 30GiB + memory: uint32 & >=128 & <=28720 + + // validate memory steps of 128 MiB + _validateMemorySteps128: (mod(memory, 128) == 0) & true @cuegraph(skip) +} + +// Resource configuration for a service +#RunServiceResources: { + compute: #ComputeResources + + storage: [...{ + name: #RunServiceName // name of the volume, changing it will cause data loss + capacity: uint32 & >=1 & <=1000 // GiB + path: string + }] | *[] + _storage_name_must_be_unique: list.UniqueItems([for s in storage {s.name}]) & true @cuegraph(skip) + _storage_path_must_be_unique: list.UniqueItems([for s in storage {s.path}]) & true @cuegraph(skip) + + // Number of replicas for a service + replicas: uint8 & <=10 + + autoscaler?: #Autoscaler + + _validateReplicasMustBeSmallerThanMaxReplicas: (replicas <= autoscaler.maxReplicas) & true @cuegraph(skip) + + _replcas_cant_be_greater_than_1_when_using_storage: (len(storage) == 0 | (len(storage) > 0 & replicas <= 1 && autoscaler == _|_)) & true @cuegraph(skip) + + _validate_cpu_memory_ratio_must_be_1_for_2: (math.Abs(compute.memory-compute.cpu*2.048) <= 1.024) & true @cuegraph(skip) +} + +#RunServiceImage: { + image: string + // content of "auths", i.e., { "auths": $THIS } + pullCredentials?: string +} + +#HealthCheck: { + port: #Port + initialDelaySeconds: int | *30 + probePeriodSeconds: int | *60 +} + +#EnvironmentVariable: { + // Name of the environment variable + name: =~"(?i)^[a-z_]{1,}[a-z0-9_]*" + // Value of the environment variable + value: string +} + +#RunServiceConfig: { + name: #RunServiceName + image: #RunServiceImage + command: [...string] + environment: [...#EnvironmentVariable] | *[] + ports?: [...#RunServicePort] | *[] + resources: #RunServiceResources + healthCheck?: #HealthCheck +} diff --git a/cli/mcp/resources/resources.go b/cli/mcp/resources/resources.go new file mode 100644 index 000000000..1d6739df7 --- /dev/null +++ b/cli/mcp/resources/resources.go @@ -0,0 +1,40 @@ +package resources + +import ( + "fmt" + + "github.com/mark3labs/mcp-go/server" + "github.com/nhost/nhost/cli/mcp/config" +) + +func Instructions() string { + return "The following resources are available:\n\n" + + fmt.Sprintf("- %s: %s\n", CloudResourceURI, CloudDescription) + + fmt.Sprintf("- %s: %s\n", GraphqlManagementResourceURI, GraphqlManagementDescription) + + fmt.Sprintf("- %s: %s\n", NhostTomlResourceURI, NhostTomlResourceDescription) +} + +func Register(cfg *config.Config, server *server.MCPServer) error { + nt := NewNhostToml() + nt.Register(server) + + if cfg.Cloud != nil { + ct := NewCloud(cfg) + ct.Register(server) + } + + enableGraphlManagement := false + for _, project := range cfg.Projects { + if project.ManageMetadata { + enableGraphlManagement = true + break + } + } + + if enableGraphlManagement { + gmt := NewGraphqlManagement() + gmt.Register(server) + } + + return nil +} diff --git a/cli/mcp/tools/cloud/cloud.go b/cli/mcp/tools/cloud/cloud.go index 07f83028b..0f2f6e643 100644 --- a/cli/mcp/tools/cloud/cloud.go +++ b/cli/mcp/tools/cloud/cloud.go @@ -2,18 +2,11 @@ package cloud import ( "context" - _ "embed" "net/http" "github.com/mark3labs/mcp-go/server" ) -//go:embed schema.graphql -var schemaGraphql string - -//go:embed schema-with-mutations.graphql -var schemaGraphqlWithMutations string - type Tool struct { graphqlURL string withMutations bool @@ -33,7 +26,6 @@ func NewTool( } func (t *Tool) Register(mcpServer *server.MCPServer) error { - t.registerGetGraphqlSchema(mcpServer) t.registerGraphqlQuery(mcpServer) return nil diff --git a/cli/mcp/tools/cloud/get_schema.go b/cli/mcp/tools/cloud/get_schema.go deleted file mode 100644 index 44f8f61bc..000000000 --- a/cli/mcp/tools/cloud/get_schema.go +++ /dev/null @@ -1,42 +0,0 @@ -package cloud - -import ( - "context" - - "github.com/mark3labs/mcp-go/mcp" - "github.com/mark3labs/mcp-go/server" -) - -const ( - ToolGetGraphqlSchemaName = "cloud-get-graphql-schema" - //nolint:lll - ToolGetGraphqlSchemaInstructions = `Get GraphQL schema for the Nhost Cloud allowing operations on projects and organizations. Retrieve the schema before using the tool to understand the available queries and mutations. Projects are equivalent to apps in the schema. IDs are typically uuids` -) - -func (t *Tool) registerGetGraphqlSchema(mcpServer *server.MCPServer) { - schemaTool := mcp.NewTool( - ToolGetGraphqlSchemaName, - mcp.WithDescription(ToolGetGraphqlSchemaInstructions), - mcp.WithToolAnnotation( - mcp.ToolAnnotation{ - Title: "Get GraphQL Schema for Nhost Cloud Platform", - ReadOnlyHint: ptr(true), - DestructiveHint: ptr(false), - IdempotentHint: ptr(true), - OpenWorldHint: ptr(true), - }, - ), - ) - mcpServer.AddTool(schemaTool, t.handleGetGraphqlSchema) -} - -func (t *Tool) handleGetGraphqlSchema( - _ context.Context, _ mcp.CallToolRequest, -) (*mcp.CallToolResult, error) { - schema := schemaGraphql - if t.withMutations { - schema = schemaGraphqlWithMutations - } - - return mcp.NewToolResultStructured(schema, schema), nil -} diff --git a/cli/mcp/tools/cloud/query.go b/cli/mcp/tools/cloud/query.go index 15b559a9b..31f468f0f 100644 --- a/cli/mcp/tools/cloud/query.go +++ b/cli/mcp/tools/cloud/query.go @@ -12,7 +12,7 @@ import ( const ( ToolGraphqlQueryName = "cloud-graphql-query" //nolint:lll - ToolGraphqlQueryInstructions = `Execute a GraphQL query against the Nhost Cloud to perform operations on projects and organizations. It also allows configuring projects hosted on Nhost Cloud. Make sure you got the schema before attempting to execute any query. If you get an error while performing a query refresh the schema in case something has changed or you did something wrong. If you get an error indicating mutations are not allowed the user may have disabled them in the server, don't retry and ask the user they need to pass --with-cloud-mutations when starting mcp-nhost to enable them. Projects are apps.` + ToolGraphqlQueryInstructions = `Execute a GraphQL query against the Nhost Cloud to perform operations on projects and organizations. It also allows configuring projects hosted on Nhost Cloud. Make sure you got the schema before attempting to execute any query. If you get an error while performing a query refresh the schema in case something has changed or you did something wrong. If you get an error indicating mutations are not allowed the user may have disabled them in the server, don't retry and ask the user they need to pass --with-cloud-mutations when starting nhost's mcp to enable them. Projects are apps.` ) func ptr[T any](v T) *T { @@ -25,7 +25,6 @@ type GraphqlQueryRequest struct { } func (t *Tool) registerGraphqlQuery(mcpServer *server.MCPServer) { - t.registerGetGraphqlSchema(mcpServer) queryTool := mcp.NewTool( ToolGraphqlQueryName, mcp.WithDescription(ToolGraphqlQueryInstructions), @@ -60,7 +59,7 @@ func (t *Tool) handleGraphqlQuery( allowedMutations := []string{} if t.withMutations { - allowedMutations = nil + allowedMutations = []string{"*"} } var resp graphql.Response[any] @@ -70,7 +69,7 @@ func (t *Tool) handleGraphqlQuery( args.Query, args.Variables, &resp, - nil, + []string{"*"}, allowedMutations, t.interceptors..., ); err != nil { diff --git a/cli/mcp/tools/local/config_server_get_schema.go b/cli/mcp/tools/local/config_server_get_schema.go deleted file mode 100644 index 8bd739938..000000000 --- a/cli/mcp/tools/local/config_server_get_schema.go +++ /dev/null @@ -1,87 +0,0 @@ -package local - -import ( - "context" - - "github.com/mark3labs/mcp-go/mcp" - "github.com/mark3labs/mcp-go/server" - "github.com/nhost/nhost/cli/mcp/graphql" -) - -const ( - ToolConfigServerSchemaName = "local-config-server-get-schema" - //nolint:lll - ToolConfigServerSchemaInstructions = `Get GraphQL schema for the local config server. This tool is useful when the user is developing a project and wants help changing the project's settings.` -) - -func (t *Tool) registerGetConfigServerSchema(mcpServer *server.MCPServer) { - configServerSchemaTool := mcp.NewTool( - ToolConfigServerSchemaName, - mcp.WithDescription(ToolConfigServerSchemaInstructions), - mcp.WithToolAnnotation( - mcp.ToolAnnotation{ - Title: "Get GraphQL Schema for Nhost Config Server", - ReadOnlyHint: ptr(true), - DestructiveHint: ptr(false), - IdempotentHint: ptr(true), - OpenWorldHint: ptr(true), - }, - ), - mcp.WithBoolean( - "includeQueries", - mcp.Description("include queries in the schema"), - mcp.Required(), - ), - mcp.WithBoolean( - "includeMutations", - mcp.Description("include mutations in the schema"), - mcp.Required(), - ), - ) - mcpServer.AddTool( - configServerSchemaTool, - mcp.NewStructuredToolHandler(t.handleConfigGetServerSchema), - ) -} - -type ConfigServerGetSchemaRequest struct { - IncludeQueries bool `json:"includeQueries"` - IncludeMutations bool `json:"includeMutations"` -} - -func (t *Tool) handleConfigGetServerSchema( - ctx context.Context, _ mcp.CallToolRequest, args ConfigServerGetSchemaRequest, -) (*mcp.CallToolResult, error) { - var introspection graphql.ResponseIntrospection - if err := graphql.Query( - ctx, - t.configServerURL, - graphql.IntrospectionQuery, - nil, - &introspection, - nil, - nil, - t.interceptors..., - ); err != nil { - return mcp.NewToolResultErrorFromErr("failed to query GraphQL schema", err), nil - } - - var allowQueries, allowMutations []graphql.Queries - if !args.IncludeQueries { - allowQueries = []graphql.Queries{} - } - - if !args.IncludeMutations { - allowMutations = []graphql.Queries{} - } - - schema := graphql.ParseSchema( - introspection, - graphql.Filter{ - AllowQueries: allowQueries, - AllowMutations: allowMutations, - }, - ) - - return mcp.NewToolResultStructured(schema, schema), nil -} diff --git a/cli/mcp/tools/local/config_server_query.go b/cli/mcp/tools/local/config_server_query.go deleted file mode 100644 index d1c93df46..000000000 --- a/cli/mcp/tools/local/config_server_query.go +++ /dev/null @@ -1,79 +0,0 @@ -package local - -import ( - "context" - "encoding/json" - - "github.com/mark3labs/mcp-go/mcp" - "github.com/mark3labs/mcp-go/server" - "github.com/nhost/nhost/cli/mcp/graphql" -) - -const ( - ToolConfigServerQueryName = "local-config-server-query" - //nolint:lll - ToolConfigServerQueryInstructions = `Execute a GraphQL query against the local config server. This tool is useful to query and perform configuration changes on the local development project. Before using this tool, make sure to get the schema using the local-config-server-schema tool. To perform configuration changes this endpoint is all you need but to apply them you need to run 'nhost up' again. Ask the user for input when you need information about settings, for instance if the user asks to enable some oauth2 method and you need the client id or secret.` -) - -type ConfigServerQueryRequest struct { - Query string `json:"query"` - Variables map[string]any `json:"variables,omitempty"` -} - -func (t *Tool) registerConfigServerQuery(mcpServer *server.MCPServer) { - configServerQueryTool := mcp.NewTool( - ToolConfigServerQueryName, - mcp.WithDescription(ToolConfigServerQueryInstructions), - mcp.WithToolAnnotation( - mcp.ToolAnnotation{ - Title: "Perform GraphQL Query on Nhost Config Server", - ReadOnlyHint: ptr(false), - DestructiveHint: ptr(true), - IdempotentHint: ptr(false), - OpenWorldHint: ptr(true), - }, - ), - mcp.WithString( - "query", - mcp.Description("graphql query to perform"), - mcp.Required(), - ), - mcp.WithString( - "variables", - mcp.Description("variables to use in the query"), - ), - ) - mcpServer.AddTool( - configServerQueryTool, - mcp.NewStructuredToolHandler(t.handleConfigServerQuery), - ) -} - -func (t *Tool) handleConfigServerQuery( - ctx context.Context, _ mcp.CallToolRequest, args ConfigServerQueryRequest, -) (*mcp.CallToolResult, error) { - if args.Query == "" { - return mcp.NewToolResultError("query is required"), nil - } - - var resp graphql.Response[any] - if err := graphql.Query( - ctx, - t.configServerURL, - args.Query, - args.Variables, - &resp, - nil, - nil, - t.interceptors..., - ); err != nil { - return mcp.NewToolResultErrorFromErr("failed to query graphql endpoint", err), nil - } - - b, err := json.Marshal(resp) - if err != nil { - return mcp.NewToolResultErrorFromErr("error marshalling response", err), nil - } - - return mcp.NewToolResultStructured(resp, string(b)), nil -} diff --git a/cli/mcp/tools/local/get_graphql_management_schema.go b/cli/mcp/tools/local/get_graphql_management_schema.go deleted file mode 100644 index fbf95023d..000000000 --- a/cli/mcp/tools/local/get_graphql_management_schema.go +++ /dev/null @@ -1,42 +0,0 @@ -package local - -import ( - "context" - - "github.com/mark3labs/mcp-go/mcp" - "github.com/mark3labs/mcp-go/server" - "github.com/nhost/nhost/cli/mcp/nhost/graphql" -) - -const ( - ToolGetGraphqlManagementSchemaName = "local-get-management-graphql-schema" - ToolGetGraphqlManagementSchemaInstructions = ` - Get GraphQL's management schema for an Nhost development project running locally via the Nhost - CLI. This tool is useful to properly understand how manage hasura metadata, migrations, - permissions, remote schemas, etc. - - Use it before attempting to use ` + ToolManageGraphqlName -) - -func (t *Tool) registerGetGraphqlManagementSchema(mcpServer *server.MCPServer) { - schemaTool := mcp.NewTool( - ToolGetGraphqlManagementSchemaName, - mcp.WithDescription(ToolGetGraphqlManagementSchemaInstructions), - mcp.WithToolAnnotation( - mcp.ToolAnnotation{ - Title: "Get GraphQL's Management Schema for Nhost Development Project", - ReadOnlyHint: ptr(true), - DestructiveHint: ptr(false), - IdempotentHint: ptr(true), - OpenWorldHint: ptr(true), - }, - ), - ) - mcpServer.AddTool(schemaTool, t.handleGetGraphqlManagementSchema) -} - -func (t *Tool) handleGetGraphqlManagementSchema( - _ context.Context, _ mcp.CallToolRequest, -) (*mcp.CallToolResult, error) { - return mcp.NewToolResultText(graphql.Schema), nil -} diff --git a/cli/mcp/tools/local/get_schema.go b/cli/mcp/tools/local/get_schema.go deleted file mode 100644 index 8ef6fb8f8..000000000 --- a/cli/mcp/tools/local/get_schema.go +++ /dev/null @@ -1,81 +0,0 @@ -package local - -import ( - "context" - - "github.com/mark3labs/mcp-go/mcp" - "github.com/mark3labs/mcp-go/server" - "github.com/nhost/nhost/cli/mcp/graphql" - "github.com/nhost/nhost/cli/mcp/nhost/auth" -) - -const ( - ToolGetGraphqlSchemaName = "local-get-graphql-schema" - //nolint:lll - ToolGetGraphqlSchemaInstructions = `Get GraphQL schema for an Nhost development project running locally via the Nhost CLI. This tool is useful when the user is developing a project and wants help generating code to interact with their project's Graphql schema.` -) - -type GetGraphqlSchemaRequest struct { - Role string `json:"role"` -} - -func (t *Tool) registerGetGraphqlSchema(mcpServer *server.MCPServer) { - schemaTool := mcp.NewTool( - ToolGetGraphqlSchemaName, - mcp.WithDescription(ToolGetGraphqlSchemaInstructions), - mcp.WithToolAnnotation( - mcp.ToolAnnotation{ - Title: "Get GraphQL Schema for Nhost Development Project", - ReadOnlyHint: ptr(true), - DestructiveHint: ptr(false), - IdempotentHint: ptr(true), - OpenWorldHint: ptr(true), - }, - ), - mcp.WithString( - "role", - mcp.Description( - "role to use when executing queries. Default to user but make sure the user is aware", - ), - mcp.Required(), - ), - ) - mcpServer.AddTool(schemaTool, mcp.NewStructuredToolHandler(t.handleGetGraphqlSchema)) -} - -func (t *Tool) handleGetGraphqlSchema( - ctx context.Context, _ mcp.CallToolRequest, args GetGraphqlSchemaRequest, -) (*mcp.CallToolResult, error) { - if args.Role == "" { - return mcp.NewToolResultError("role is required"), nil - } - - interceptors := append( //nolint:gocritic - t.interceptors, - auth.WithRole(args.Role), - ) - - var introspection graphql.ResponseIntrospection - if err := graphql.Query( - ctx, - t.graphqlURL, - graphql.IntrospectionQuery, - nil, - &introspection, - nil, - nil, - interceptors..., - ); err != nil { - return mcp.NewToolResultErrorFromErr("failed to query GraphQL schema", err), nil - } - - schema := graphql.ParseSchema( - introspection, - graphql.Filter{ - AllowQueries: nil, - AllowMutations: nil, - }, - ) - - return mcp.NewToolResultText(schema), nil -} diff --git a/cli/mcp/tools/local/local.go b/cli/mcp/tools/local/local.go deleted file mode 100644 index 834b0f4f1..000000000 --- a/cli/mcp/tools/local/local.go +++ /dev/null @@ -1,37 +0,0 @@ -package local - -import ( - "context" - "net/http" - - "github.com/mark3labs/mcp-go/server" -) - -type Tool struct { - graphqlURL string - configServerURL string - interceptors []func(ctx context.Context, req *http.Request) error -} - -func NewTool( - graphqlURL string, - configServerURL string, - interceptors ...func(ctx context.Context, req *http.Request) error, -) *Tool { - return &Tool{ - graphqlURL: graphqlURL, - configServerURL: configServerURL, - interceptors: interceptors, - } -} - -func (t *Tool) Register(mcpServer *server.MCPServer) error { - t.registerGetGraphqlSchema(mcpServer) - t.registerGraphqlQuery(mcpServer) - t.registerGetConfigServerSchema(mcpServer) - t.registerConfigServerQuery(mcpServer) - t.registerGetGraphqlManagementSchema(mcpServer) - t.registerManageGraphql(mcpServer) - - return nil -} diff --git a/cli/mcp/tools/local/query.go b/cli/mcp/tools/local/query.go deleted file mode 100644 index e2faf3350..000000000 --- a/cli/mcp/tools/local/query.go +++ /dev/null @@ -1,99 +0,0 @@ -package local - -import ( - "context" - "encoding/json" - - "github.com/mark3labs/mcp-go/mcp" - "github.com/mark3labs/mcp-go/server" - "github.com/nhost/nhost/cli/mcp/graphql" - "github.com/nhost/nhost/cli/mcp/nhost/auth" -) - -const ( - ToolGraphqlQueryName = "local-graphql-query" - //nolint:lll - ToolGraphqlQueryInstructions = `Execute a GraphQL query against an Nhost development project running locally via the Nhost CLI. This tool is useful to test queries and mutations during development. If you run into issues executing queries, retrieve the schema using the local-get-graphql-schema tool in case the schema has changed.` -) - -func ptr[T any](v T) *T { - return &v -} - -type GraphqlQueryRequest struct { - Query string `json:"query"` - Variables map[string]any `json:"variables,omitempty"` - Role string `json:"role"` -} - -func (t *Tool) registerGraphqlQuery(mcpServer *server.MCPServer) { - queryTool := mcp.NewTool( - ToolGraphqlQueryName, - mcp.WithDescription(ToolGraphqlQueryInstructions), - mcp.WithToolAnnotation( - mcp.ToolAnnotation{ - Title: "Perform GraphQL Query on Nhost Development Project", - ReadOnlyHint: ptr(false), - DestructiveHint: ptr(true), - IdempotentHint: ptr(false), - OpenWorldHint: ptr(true), - }, - ), - mcp.WithString( - "query", - mcp.Description("graphql query to perform"), - mcp.Required(), - ), - mcp.WithObject( - "variables", - mcp.Description("variables to use in the query"), - mcp.AdditionalProperties(true), - ), - mcp.WithString( - "role", - mcp.Description( - "role to use when executing queries. Default to user but make sure the user is aware. Keep in mind the schema depends on the role so if you retrieved the schema for a different role previously retrieve it for this role beforehand as it might differ", //nolint:lll - ), - mcp.Required(), - ), - ) - mcpServer.AddTool(queryTool, mcp.NewStructuredToolHandler(t.handleGraphqlQuery)) -} - -func (t *Tool) handleGraphqlQuery( - ctx context.Context, _ mcp.CallToolRequest, args GraphqlQueryRequest, -) (*mcp.CallToolResult, error) { - if args.Query == "" { - return mcp.NewToolResultError("query is required"), nil - } - - if args.Role == "" { - return mcp.NewToolResultError("role is required"), nil - } - - interceptors := append( //nolint:gocritic - t.interceptors, - auth.WithRole(args.Role), - ) - - var resp graphql.Response[any] - if err := graphql.Query( - ctx, - t.graphqlURL, - args.Query, - args.Variables, - &resp, - nil, - nil, - interceptors..., - ); err != nil { - return mcp.NewToolResultErrorFromErr("failed to query graphql endpoint", err), nil - } - - b, err := json.Marshal(resp) - if err != nil { - return mcp.NewToolResultErrorFromErr("error marshalling response", err), nil - } - - return mcp.NewToolResultStructured(resp, string(b)), nil -} diff --git a/cli/mcp/tools/project/get_schema.go b/cli/mcp/tools/project/get_schema.go deleted file mode 100644 index 18b112c25..000000000 --- a/cli/mcp/tools/project/get_schema.go +++ /dev/null @@ -1,108 +0,0 @@ -package project - -import ( - "context" - "errors" - "fmt" - "net/http" - - "github.com/mark3labs/mcp-go/mcp" - "github.com/mark3labs/mcp-go/server" - "github.com/nhost/nhost/cli/mcp/graphql" - "github.com/nhost/nhost/cli/mcp/nhost/auth" -) - -const ( - ToolGetGraphqlSchemaName = "project-get-graphql-schema" - ToolGetGraphqlSchemaInstructions = `Get GraphQL schema for an Nhost project running in the Nhost Cloud.` -) - -var ( - ErrNotFound = errors.New("not found") - ErrInvalidRequestBody = errors.New("invalid request body") -) - -type GetGraphqlSchemaRequest struct { - Role string `json:"role"` - ProjectSubdomain string `json:"projectSubdomain"` -} - -func (t *Tool) registerGetGraphqlSchemaTool(mcpServer *server.MCPServer, projects string) { - schemaTool := mcp.NewTool( - ToolGetGraphqlSchemaName, - mcp.WithDescription(ToolGetGraphqlSchemaInstructions), - mcp.WithToolAnnotation( - mcp.ToolAnnotation{ - Title: "Get GraphQL Schema for Nhost Project running on Nhost Cloud", - ReadOnlyHint: ptr(true), - DestructiveHint: ptr(false), - IdempotentHint: ptr(true), - OpenWorldHint: ptr(true), - }, - ), - mcp.WithString( - "role", - mcp.Description( - "role to use when executing queries. Default to user but make sure the user is aware", - ), - mcp.Required(), - ), - mcp.WithString( - "projectSubdomain", - mcp.Description( - fmt.Sprintf( - "Project to get the GraphQL schema for. Must be one of %s, otherwise you don't have access to it. You can use cloud-* tools to resolve subdomains and map them to names", //nolint:lll - projects, - ), - ), - mcp.Required(), - ), - ) - mcpServer.AddTool(schemaTool, mcp.NewStructuredToolHandler(t.handleGetGraphqlSchema)) -} - -func (t *Tool) handleGetGraphqlSchema( - ctx context.Context, _ mcp.CallToolRequest, args GetGraphqlSchemaRequest, -) (*mcp.CallToolResult, error) { - if args.Role == "" { - return mcp.NewToolResultError("role is required"), nil - } - - if args.ProjectSubdomain == "" { - return mcp.NewToolResultError("projectSubdomain is required"), nil - } - - project, ok := t.projects[args.ProjectSubdomain] - if !ok { - return mcp.NewToolResultError("project not configured to be accessed by an LLM"), nil - } - - interceptors := []func(ctx context.Context, req *http.Request) error{ - project.authInterceptor, - auth.WithRole(args.Role), - } - - var introspection graphql.ResponseIntrospection - if err := graphql.Query( - ctx, - project.graphqlURL, - graphql.IntrospectionQuery, - nil, - &introspection, - nil, - nil, - interceptors..., - ); err != nil { - return mcp.NewToolResultErrorFromErr("failed to query GraphQL schema", err), nil - } - - schema := graphql.ParseSchema( - introspection, - graphql.Filter{ - AllowQueries: nil, - AllowMutations: nil, - }, - ) - - return mcp.NewToolResultStructured(schema, schema), nil -} diff --git a/cli/mcp/tools/local/manage_graphql.go b/cli/mcp/tools/project/manage_graphql.go similarity index 72% rename from cli/mcp/tools/local/manage_graphql.go rename to cli/mcp/tools/project/manage_graphql.go index 9779035a2..efc9fba60 100644 --- a/cli/mcp/tools/local/manage_graphql.go +++ b/cli/mcp/tools/project/manage_graphql.go @@ -1,4 +1,4 @@ -package local +package project import ( "context" @@ -10,22 +10,21 @@ import ( "github.com/mark3labs/mcp-go/mcp" "github.com/mark3labs/mcp-go/server" + "github.com/nhost/nhost/cli/mcp/nhost/auth" ) const ( - ToolManageGraphqlName = "local-manage-graphql" + ToolManageGraphqlName = "manage-graphql" ToolManageGraphqlInstructions = ` - Query GraphQL's management endpoints on an Nhost development project running locally via - the Nhost CLI. This tool is useful to manage hasura metadata, migrations, permissions, - remote schemas, database migrations, etc. It also allows to interact with the underlying - database directly. + Query GraphQL's management endpoints on an Nhost project running. This tool is useful to + manage hasura metadata, migrations, permissions, remote schemas, database migrations, + etc. It also allows to interact with the underlying database directly. - * Do not forget to use the base url in the endpoint. * Before using this tool always describe in natural languate what you are about to do. ## Metadata changes - * When changing metadata always use the /apis/migrate endpoint + * When changing metadata ALWAYS use the /apis/migrate endpoint * Always perform a bulk request to avoid having to perform multiple requests * The admin user always has full permissions to everything by default, no need to configure @@ -55,8 +54,9 @@ const ( ) type ManageGraphqlRequest struct { - Endpoint string `json:"endpoint"` - Body string `json:"body"` + Body string `json:"body"` + Subdomain string `json:"subdomain"` + Path string `json:"path"` } func (t *Tool) registerManageGraphql(mcpServer *server.MCPServer) { @@ -73,10 +73,14 @@ func (t *Tool) registerManageGraphql(mcpServer *server.MCPServer) { }, ), mcp.WithString( - "endpoint", - mcp.Description( - "The GraphQL management endpoint to query. Use https://local.hasura.local.nhost.run as base URL", - ), + "subdomain", + mcp.Description("Project to perform the GraphQL management operation against"), + mcp.Enum(t.cfg.Projects.Subdomains()...), + mcp.Required(), + ), + mcp.WithString( + "path", + mcp.Description("The path for the HTTP request"), mcp.Required(), ), mcp.WithString( @@ -137,20 +141,37 @@ func genericQuery( func (t *Tool) handleManageGraphql( ctx context.Context, _ mcp.CallToolRequest, args ManageGraphqlRequest, ) (*mcp.CallToolResult, error) { - if args.Endpoint == "" { - return mcp.NewToolResultError("endpoint is required"), nil - } - if args.Body == "" { return mcp.NewToolResultError("body is required"), nil } + if args.Subdomain == "" { + return mcp.NewToolResultError("projectSubdomain is required"), nil + } + + project, err := t.cfg.Projects.Get(args.Subdomain) + if err != nil { + return mcp.NewToolResultErrorFromErr("failed to get project configuration", err), nil + } + + if !project.ManageMetadata { + return mcp.NewToolResultError("project does not allow metadata management"), nil + } + + if project.AdminSecret == nil { + return mcp.NewToolResultError("project does not have an admin secret configured"), nil + } + headers := http.Header{} headers.Add("Content-Type", "application/json") headers.Add("Accept", "application/json") + interceptors := []func(ctx context.Context, req *http.Request) error{ + auth.WithAdminSecret(*project.AdminSecret), + } + response, err := genericQuery( - ctx, args.Endpoint, args.Body, http.MethodPost, headers, t.interceptors, + ctx, project.GetHasuraURL()+args.Path, args.Body, http.MethodPost, headers, interceptors, ) if err != nil { return mcp.NewToolResultErrorFromErr("failed to execute query", err), nil diff --git a/cli/mcp/tools/project/project.go b/cli/mcp/tools/project/project.go index 26db83106..4afc9005f 100644 --- a/cli/mcp/tools/project/project.go +++ b/cli/mcp/tools/project/project.go @@ -1,90 +1,25 @@ package project import ( - "context" - "fmt" - "net/http" - "slices" - "strings" - "github.com/mark3labs/mcp-go/server" "github.com/nhost/nhost/cli/mcp/config" - "github.com/nhost/nhost/cli/mcp/nhost/auth" ) -type Project struct { - subdomain string - graphqlURL string - authInterceptor func(ctx context.Context, req *http.Request) error - allowQueries []string - allowMutations []string -} - type Tool struct { - projects map[string]Project -} - -func allowedQueries(allowQueries []string) []string { - if len(allowQueries) == 1 && allowQueries[0] == "*" { - return nil - } - - return allowQueries + cfg *config.Config } func NewTool( - projList []config.Project, -) (*Tool, error) { - projects := make(map[string]Project) - - for _, proj := range projList { - authURL := fmt.Sprintf("https://%s.auth.%s.nhost.run/v1", proj.Subdomain, proj.Region) - graphqlURL := fmt.Sprintf("https://%s.graphql.%s.nhost.run/v1", proj.Subdomain, proj.Region) - - var interceptor func(ctx context.Context, req *http.Request) error - - switch { - case proj.AdminSecret != nil && *proj.AdminSecret != "": - interceptor = auth.WithAdminSecret(*proj.AdminSecret) - case proj.PAT != nil && *proj.PAT != "": - var err error - - interceptor, err = auth.WithPAT(authURL, *proj.PAT) - if err != nil { - return nil, - fmt.Errorf("failed to create PAT interceptor for %s: %w", proj.Subdomain, err) - } - default: - return nil, fmt.Errorf( //nolint:err113 - "project %s does not have a valid auth mechanism", proj.Subdomain) - } - - projects[proj.Subdomain] = Project{ - subdomain: proj.Subdomain, - graphqlURL: graphqlURL, - authInterceptor: interceptor, - allowQueries: allowedQueries(proj.AllowQueries), - allowMutations: allowedQueries(proj.AllowMutations), - } - } - + cfg *config.Config, +) *Tool { return &Tool{ - projects: projects, - }, nil + cfg: cfg, + } } func (t *Tool) Register(mcpServer *server.MCPServer) error { - projectNames := make([]string, 0, len(t.projects)) - for _, proj := range t.projects { - projectNames = append(projectNames, proj.subdomain) - } - - slices.Sort(projectNames) - - projectNamesStr := strings.Join(projectNames, ", ") - - t.registerGetGraphqlSchemaTool(mcpServer, projectNamesStr) - t.registerGraphqlQuery(mcpServer, projectNamesStr) + t.registerGraphqlQuery(mcpServer) + t.registerManageGraphql(mcpServer) return nil } diff --git a/cli/mcp/tools/project/query.go b/cli/mcp/tools/project/query.go index bbb8ce436..dea26efa0 100644 --- a/cli/mcp/tools/project/query.go +++ b/cli/mcp/tools/project/query.go @@ -3,7 +3,6 @@ package project import ( "context" "encoding/json" - "fmt" "net/http" "github.com/mark3labs/mcp-go/mcp" @@ -13,9 +12,9 @@ import ( ) const ( - ToolGraphqlQueryName = "project-graphql-query" + ToolGraphqlQueryName = "graphql-query" //nolint:lll - ToolGraphqlQueryInstructions = `Execute a GraphQL query against a Nhost project running in the Nhost Cloud. This tool is useful to query and mutate live data running on an online projec. If you run into issues executing queries, retrieve the schema using the project-get-graphql-schema tool in case the schema has changed. If you get an error indicating the query or mutation is not allowed the user may have disabled them in the server, don't retry and tell the user they need to enable them when starting mcp-nhost` + ToolGraphqlQueryInstructions = `Execute a GraphQL query against a Nhost project. This tool is useful to query and mutate data. If you run into issues executing queries, retrieve the schema again in case the schema has changed. If you get an error indicating the query or mutation is not allowed the user may have disabled them in the server, don't retry and tell the user they need to enable them when starting nhost's mcp` ) func ptr[T any](v T) *T { @@ -23,18 +22,18 @@ func ptr[T any](v T) *T { } type GraphqlQueryRequest struct { - Query string `json:"query"` - Variables map[string]any `json:"variables,omitempty"` - ProjectSubdomain string `json:"projectSubdomain"` - Role string `json:"role"` - UserID string `json:"userId,omitempty"` + Query string `json:"query"` + Variables map[string]any `json:"variables,omitempty"` + Subdomain string `json:"subdomain"` + Role string `json:"role"` + UserID string `json:"userId,omitempty"` } -func (t *Tool) registerGraphqlQuery(mcpServer *server.MCPServer, projects string) { +func (t *Tool) registerGraphqlQuery(mcpServer *server.MCPServer) { allowedMutations := false - for _, proj := range t.projects { - if proj.allowMutations == nil || len(proj.allowMutations) > 0 { + for _, proj := range t.cfg.Projects { + if proj.AllowMutations == nil || len(proj.AllowMutations) > 0 { allowedMutations = true break } @@ -62,19 +61,15 @@ func (t *Tool) registerGraphqlQuery(mcpServer *server.MCPServer, projects string mcp.Description("variables to use in the query"), ), mcp.WithString( - "projectSubdomain", - mcp.Description( - fmt.Sprintf( - "Project to get the GraphQL schema for. Must be one of %s, otherwise you don't have access to it. You can use cloud-* tools to resolve subdomains and map them to names", //nolint:lll - projects, - ), - ), + "subdomain", + mcp.Description("Project to perform the GraphQL query against"), + mcp.Enum(t.cfg.Projects.Subdomains()...), mcp.Required(), ), mcp.WithString( "role", mcp.Description( - "role to use when executing queries. Default to user but make sure the user is aware. Keep in mind the schema depends on the role so if you retrieved the schema for a different role previously retrieve it for this role beforehand as it might differ", //nolint:lll + "role to use when executing queries. Keep in mind the schema depends on the role so if you retrieved the schema for a different role previously retrieve it for this role beforehand as it might differ", //nolint:lll ), mcp.Required(), ), @@ -95,7 +90,7 @@ func (t *Tool) handleGraphqlQuery( return mcp.NewToolResultError("query is required"), nil } - if args.ProjectSubdomain == "" { + if args.Subdomain == "" { return mcp.NewToolResultError("projectSubdomain is required"), nil } @@ -103,15 +98,18 @@ func (t *Tool) handleGraphqlQuery( return mcp.NewToolResultError("role is required"), nil } - project, ok := t.projects[args.ProjectSubdomain] - if !ok { - return mcp.NewToolResultError( - "this project is not configured to be accessed by an LLM", - ), nil + project, err := t.cfg.Projects.Get(args.Subdomain) + if err != nil { + return mcp.NewToolResultErrorFromErr("failed to get project configuration", err), nil + } + + authInterceptor, err := project.GetAuthInterceptor() + if err != nil { + return mcp.NewToolResultErrorFromErr("failed to get auth interceptor", err), nil } interceptors := []func(ctx context.Context, req *http.Request) error{ - project.authInterceptor, + authInterceptor, auth.WithRole(args.Role), } @@ -122,12 +120,12 @@ func (t *Tool) handleGraphqlQuery( var resp graphql.Response[any] if err := graphql.Query( ctx, - project.graphqlURL, + project.GetGraphqlURL(), args.Query, args.Variables, &resp, - project.allowQueries, - project.allowMutations, + project.AllowQueries, + project.AllowMutations, interceptors..., ); err != nil { return mcp.NewToolResultErrorFromErr("failed to query graphql endpoint", err), nil diff --git a/cli/mcp/tools/schemas/project_schema.go b/cli/mcp/tools/schemas/project_schema.go new file mode 100644 index 000000000..391d7e6e2 --- /dev/null +++ b/cli/mcp/tools/schemas/project_schema.go @@ -0,0 +1,94 @@ +package schemas + +import ( + "context" + "errors" + "fmt" + "net/http" + + "github.com/nhost/nhost/cli/mcp/graphql" + "github.com/nhost/nhost/cli/mcp/nhost/auth" +) + +const ( + ToolGetGraphqlSchemaName = "project-get-graphql-schema" + ToolGetGraphqlSchemaInstructions = `Get GraphQL schema for an Nhost project running in the Nhost Cloud.` +) + +var ( + ErrNotFound = errors.New("not found") + ErrInvalidRequestBody = errors.New("invalid request body") +) + +type GetGraphqlSchemaRequest struct { + Role string `json:"role"` + ProjectSubdomain string `json:"projectSubdomain"` +} + +func toQueries(q []string) []graphql.Queries { + if q == nil { + return nil + } + + queries := make([]graphql.Queries, len(q)) + for i, v := range q { + queries[i] = graphql.Queries{ + Name: v, + DisableNesting: false, + } + } + + return queries +} + +func (t *Tool) handleProjectGraphqlSchema( + ctx context.Context, + role string, + subdomain string, + summary bool, + queries, mutations []string, +) (string, error) { + project, err := t.cfg.Projects.Get(subdomain) + if err != nil { + return "", fmt.Errorf("failed to get project by subdomain: %w", err) + } + + authInterceptor, err := project.GetAuthInterceptor() + if err != nil { + return "", fmt.Errorf("failed to get auth interceptor: %w", err) + } + + interceptors := []func(ctx context.Context, req *http.Request) error{ + authInterceptor, + auth.WithRole(role), + } + + var introspection graphql.ResponseIntrospection + if err := graphql.Query( + ctx, + project.GetGraphqlURL(), + graphql.IntrospectionQuery, + nil, + &introspection, + []string{"*"}, + nil, + interceptors..., + ); err != nil { + return "", fmt.Errorf("failed to query GraphQL schema: %w", err) + } + + var schema string + if summary { + schema = graphql.SummarizeSchema(introspection) + } else { + schema = graphql.ParseSchema( + introspection, + graphql.Filter{ + AllowQueries: toQueries(queries), + AllowMutations: toQueries(mutations), + }, + ) + } + + return schema, nil +} diff --git a/cli/mcp/tools/schemas/schemas.go b/cli/mcp/tools/schemas/schemas.go new file mode 100644 index 000000000..9338157b6 --- /dev/null +++ b/cli/mcp/tools/schemas/schemas.go @@ -0,0 +1,103 @@ +package schemas + +import ( + "context" + + "github.com/mark3labs/mcp-go/mcp" + "github.com/mark3labs/mcp-go/server" + "github.com/nhost/nhost/cli/mcp/config" +) + +const ( + ToolGetSchemaName = "get-schema" + ToolGetSchemaInstructions = ` +Get GraphQL/API schemas to interact with various services. Use the "service" parameter to +specify which schema you want. Supported services are: + +- project: Get GraphQL schema for an Nhost project. The "subdomain" + parameter is required to specify which project to get the schema for. The "role" + parameter can be passed to specify the role to use when fetching the schema (defaults + to admin). +` +) + +func ptr[T any](v T) *T { + return &v +} + +type Tool struct { + cfg *config.Config +} + +func NewTool(cfg *config.Config) *Tool { + return &Tool{cfg: cfg} +} + +func (t *Tool) Register(mcpServer *server.MCPServer) { + queryTool := mcp.NewTool( + ToolGetSchemaName, + mcp.WithDescription(ToolGetGraphqlSchemaInstructions), + mcp.WithToolAnnotation( + mcp.ToolAnnotation{ + Title: "Get GraphQL/API schema for various services", + ReadOnlyHint: ptr(true), + DestructiveHint: ptr(false), + IdempotentHint: ptr(true), + OpenWorldHint: ptr(true), + }, + ), + mcp.WithString( + "role", + mcp.Description( + "role to use when executing queries. Keep in mind the schema depends on the role so if you retrieved the schema for a different role previously retrieve it for this role beforehand as it might differ", //nolint:lll + ), + mcp.Required(), + ), + mcp.WithString( + "subdomain", + mcp.Description( + "Project to get the GraphQL schema for. Required when service is `project`", + ), + mcp.Enum(t.cfg.Projects.Subdomains()...), + mcp.Required(), + ), + mcp.WithBoolean( + "summary", + mcp.Description("only return a summary of the schema"), + mcp.DefaultBool(true), + ), + mcp.WithArray( + "queries", + mcp.WithStringItems(), + mcp.Description("list of queries to fetch"), + ), + mcp.WithArray( + "mutations", + mcp.WithStringItems(), + mcp.Description("list of mutations to fetch"), + ), + ) + + mcpServer.AddTool(queryTool, mcp.NewStructuredToolHandler(t.handle)) +} + +type HandleRequest struct { + Role string `json:"role,omitempty"` + Subdomain string `json:"subdomain,omitempty"` + Summary bool `json:"summary,omitempty"` + Queries []string `json:"queries,omitempty"` + Mutations []string `json:"mutations,omitempty"` +} + +func (t *Tool) handle( + ctx context.Context, _ mcp.CallToolRequest, args HandleRequest, +) (*mcp.CallToolResult, error) { + schema, err := t.handleProjectGraphqlSchema( + ctx, args.Role, args.Subdomain, args.Summary, args.Queries, args.Mutations, + ) + if err != nil { + return mcp.NewToolResultError(err.Error()), nil + } + + return mcp.NewToolResultText(schema), nil +} diff --git a/cli/nhostclient/graphql/models_gen.go b/cli/nhostclient/graphql/models_gen.go index 41c062249..f8ecc0c26 100644 --- a/cli/nhostclient/graphql/models_gen.go +++ b/cli/nhostclient/graphql/models_gen.go @@ -70,18 +70,28 @@ type ConfigAIUpdateInput struct { WebhookSecret *string `json:"webhookSecret,omitempty"` } +// Configuration for auth service +// You can find more information about the configuration here: +// https://github.com/nhost/hasura-auth/blob/main/docs/environment-variables.md type ConfigAuth struct { ElevatedPrivileges *ConfigAuthElevatedPrivileges `json:"elevatedPrivileges,omitempty"` Method *ConfigAuthMethod `json:"method,omitempty"` Misc *ConfigAuthMisc `json:"misc,omitempty"` RateLimit *ConfigAuthRateLimit `json:"rateLimit,omitempty"` Redirections *ConfigAuthRedirections `json:"redirections,omitempty"` - Resources *ConfigResources `json:"resources,omitempty"` - Session *ConfigAuthSession `json:"session,omitempty"` - SignUp *ConfigAuthSignUp `json:"signUp,omitempty"` - Totp *ConfigAuthTotp `json:"totp,omitempty"` - User *ConfigAuthUser `json:"user,omitempty"` - Version *string `json:"version,omitempty"` + // Resources for the service + Resources *ConfigResources `json:"resources,omitempty"` + Session *ConfigAuthSession `json:"session,omitempty"` + SignUp *ConfigAuthSignUp `json:"signUp,omitempty"` + Totp *ConfigAuthTotp `json:"totp,omitempty"` + User *ConfigAuthUser `json:"user,omitempty"` + // Version of auth, you can see available versions in the URL below: + // https://hub.docker.com/r/nhost/hasura-auth/tags + // + // Releases: + // + // https://github.com/nhost/hasura-auth/releases + Version *string `json:"version,omitempty"` } type ConfigAuthElevatedPrivileges struct { @@ -111,9 +121,11 @@ type ConfigAuthMethodAnonymousUpdateInput struct { } type ConfigAuthMethodEmailPassword struct { - EmailVerificationRequired *bool `json:"emailVerificationRequired,omitempty"` - HibpEnabled *bool `json:"hibpEnabled,omitempty"` - PasswordMinLength *uint32 `json:"passwordMinLength,omitempty"` + EmailVerificationRequired *bool `json:"emailVerificationRequired,omitempty"` + // Disabling email+password sign in is not implmented yet + // enabled: bool | *true + HibpEnabled *bool `json:"hibpEnabled,omitempty"` + PasswordMinLength *uint32 `json:"passwordMinLength,omitempty"` } type ConfigAuthMethodEmailPasswordUpdateInput struct { @@ -335,8 +347,10 @@ type ConfigAuthRateLimitUpdateInput struct { } type ConfigAuthRedirections struct { + // AUTH_ACCESS_CONTROL_ALLOWED_REDIRECT_URLS AllowedUrls []string `json:"allowedUrls,omitempty"` - ClientURL *string `json:"clientUrl,omitempty"` + // AUTH_CLIENT_URL + ClientURL *string `json:"clientUrl,omitempty"` } type ConfigAuthRedirectionsUpdateInput struct { @@ -350,8 +364,10 @@ type ConfigAuthSession struct { } type ConfigAuthSessionAccessToken struct { + // AUTH_JWT_CUSTOM_CLAIMS CustomClaims []*ConfigAuthsessionaccessTokenCustomClaims `json:"customClaims,omitempty"` - ExpiresIn *uint32 `json:"expiresIn,omitempty"` + // AUTH_ACCESS_TOKEN_EXPIRES_IN + ExpiresIn *uint32 `json:"expiresIn,omitempty"` } type ConfigAuthSessionAccessTokenUpdateInput struct { @@ -360,6 +376,7 @@ type ConfigAuthSessionAccessTokenUpdateInput struct { } type ConfigAuthSessionRefreshToken struct { + // AUTH_REFRESH_TOKEN_EXPIRES_IN ExpiresIn *uint32 `json:"expiresIn,omitempty"` } @@ -373,9 +390,11 @@ type ConfigAuthSessionUpdateInput struct { } type ConfigAuthSignUp struct { - DisableNewUsers *bool `json:"disableNewUsers,omitempty"` - Enabled *bool `json:"enabled,omitempty"` - Turnstile *ConfigAuthSignUpTurnstile `json:"turnstile,omitempty"` + // AUTH_DISABLE_NEW_USERS + DisableNewUsers *bool `json:"disableNewUsers,omitempty"` + // Inverse of AUTH_DISABLE_SIGNUP + Enabled *bool `json:"enabled,omitempty"` + Turnstile *ConfigAuthSignUpTurnstile `json:"turnstile,omitempty"` } type ConfigAuthSignUpTurnstile struct { @@ -425,12 +444,16 @@ type ConfigAuthUser struct { } type ConfigAuthUserEmail struct { + // AUTH_ACCESS_CONTROL_ALLOWED_EMAILS Allowed []string `json:"allowed,omitempty"` + // AUTH_ACCESS_CONTROL_BLOCKED_EMAILS Blocked []string `json:"blocked,omitempty"` } type ConfigAuthUserEmailDomains struct { + // AUTH_ACCESS_CONTROL_ALLOWED_EMAIL_DOMAINS Allowed []string `json:"allowed,omitempty"` + // AUTH_ACCESS_CONTROL_BLOCKED_EMAIL_DOMAINS Blocked []string `json:"blocked,omitempty"` } @@ -446,6 +469,7 @@ type ConfigAuthUserEmailUpdateInput struct { type ConfigAuthUserGravatar struct { Default *string `json:"default,omitempty"` + // AUTH_GRAVATAR_ENABLED Enabled *bool `json:"enabled,omitempty"` Rating *string `json:"rating,omitempty"` } @@ -457,8 +481,10 @@ type ConfigAuthUserGravatarUpdateInput struct { } type ConfigAuthUserLocale struct { + // AUTH_LOCALE_ALLOWED_LOCALES Allowed []string `json:"allowed,omitempty"` - Default *string `json:"default,omitempty"` + // AUTH_LOCALE_DEFAULT + Default *string `json:"default,omitempty"` } type ConfigAuthUserLocaleUpdateInput struct { @@ -467,8 +493,10 @@ type ConfigAuthUserLocaleUpdateInput struct { } type ConfigAuthUserRoles struct { + // AUTH_USER_DEFAULT_ALLOWED_ROLES Allowed []string `json:"allowed,omitempty"` - Default *string `json:"default,omitempty"` + // AUTH_USER_DEFAULT_ROLE + Default *string `json:"default,omitempty"` } type ConfigAuthUserRolesUpdateInput struct { @@ -484,6 +512,7 @@ type ConfigAuthUserUpdateInput struct { Roles *ConfigAuthUserRolesUpdateInput `json:"roles,omitempty"` } +// AUTH_JWT_CUSTOM_CLAIMS type ConfigAuthsessionaccessTokenCustomClaims struct { Default *string `json:"default,omitempty"` Key string `json:"key"` @@ -522,8 +551,11 @@ type ConfigClaimMapUpdateInput struct { Value *string `json:"value,omitempty"` } +// Resource configuration for a service type ConfigComputeResources struct { - CPU uint32 `json:"cpu"` + // milicpus, 1000 milicpus = 1 cpu + CPU uint32 `json:"cpu"` + // MiB: 128MiB to 30GiB Memory uint32 `json:"memory"` } @@ -537,17 +569,28 @@ type ConfigComputeResourcesUpdateInput struct { Memory *uint32 `json:"memory,omitempty"` } +// main entrypoint to the configuration type ConfigConfig struct { - Ai *ConfigAi `json:"ai,omitempty"` - Auth *ConfigAuth `json:"auth,omitempty"` - Functions *ConfigFunctions `json:"functions,omitempty"` - Global *ConfigGlobal `json:"global,omitempty"` - Graphql *ConfigGraphql `json:"graphql,omitempty"` - Hasura *ConfigHasura `json:"hasura"` + // Configuration for graphite service + Ai *ConfigAi `json:"ai,omitempty"` + // Configuration for auth service + Auth *ConfigAuth `json:"auth,omitempty"` + // Configuration for functions service + Functions *ConfigFunctions `json:"functions,omitempty"` + // Global configuration that applies to all services + Global *ConfigGlobal `json:"global,omitempty"` + // Advanced configuration for GraphQL + Graphql *ConfigGraphql `json:"graphql,omitempty"` + // Configuration for hasura + Hasura *ConfigHasura `json:"hasura"` + // Configuration for observability service Observability *ConfigObservability `json:"observability"` - Postgres *ConfigPostgres `json:"postgres"` - Provider *ConfigProvider `json:"provider,omitempty"` - Storage *ConfigStorage `json:"storage,omitempty"` + // Configuration for postgres service + Postgres *ConfigPostgres `json:"postgres"` + // Configuration for third party providers like SMTP, SMS, etc. + Provider *ConfigProvider `json:"provider,omitempty"` + // Configuration for storage service + Storage *ConfigStorage `json:"storage,omitempty"` } type ConfigConfigUpdateInput struct { @@ -564,7 +607,8 @@ type ConfigConfigUpdateInput struct { } type ConfigEnvironmentVariable struct { - Name string `json:"name"` + Name string `json:"name"` + // Value of the environment variable Value string `json:"value"` } @@ -578,6 +622,7 @@ type ConfigEnvironmentVariableUpdateInput struct { Value *string `json:"value,omitempty"` } +// Configuration for functions service type ConfigFunctions struct { Node *ConfigFunctionsNode `json:"node,omitempty"` RateLimit *ConfigRateLimit `json:"rateLimit,omitempty"` @@ -606,12 +651,15 @@ type ConfigFunctionsUpdateInput struct { Resources *ConfigFunctionsResourcesUpdateInput `json:"resources,omitempty"` } +// Global configuration that applies to all services type ConfigGlobal struct { + // User-defined environment variables that are spread over all services Environment []*ConfigGlobalEnvironmentVariable `json:"environment,omitempty"` } type ConfigGlobalEnvironmentVariable struct { - Name string `json:"name"` + Name string `json:"name"` + // Value of the environment variable Value string `json:"value"` } @@ -768,23 +816,34 @@ type ConfigGraphqlUpdateInput struct { Security *ConfigGraphqlSecurityUpdateInput `json:"security,omitempty"` } +// Configuration for hasura service type ConfigHasura struct { - AdminSecret string `json:"adminSecret"` - AuthHook *ConfigHasuraAuthHook `json:"authHook,omitempty"` - Events *ConfigHasuraEvents `json:"events,omitempty"` - JwtSecrets []*ConfigJWTSecret `json:"jwtSecrets,omitempty"` - Logs *ConfigHasuraLogs `json:"logs,omitempty"` - RateLimit *ConfigRateLimit `json:"rateLimit,omitempty"` - Resources *ConfigResources `json:"resources,omitempty"` - Settings *ConfigHasuraSettings `json:"settings,omitempty"` - Version *string `json:"version,omitempty"` - WebhookSecret string `json:"webhookSecret"` + // Admin secret + AdminSecret string `json:"adminSecret"` + AuthHook *ConfigHasuraAuthHook `json:"authHook,omitempty"` + Events *ConfigHasuraEvents `json:"events,omitempty"` + // JWT Secrets configuration + JwtSecrets []*ConfigJWTSecret `json:"jwtSecrets,omitempty"` + Logs *ConfigHasuraLogs `json:"logs,omitempty"` + RateLimit *ConfigRateLimit `json:"rateLimit,omitempty"` + // Resources for the service + Resources *ConfigResources `json:"resources,omitempty"` + // Configuration for hasura services + // Reference: https://hasura.io/docs/latest/deployment/graphql-engine-flags/reference/ + Settings *ConfigHasuraSettings `json:"settings,omitempty"` + // Version of hasura, you can see available versions in the URL below: + // https://hub.docker.com/r/hasura/graphql-engine/tags + Version *string `json:"version,omitempty"` + // Webhook secret + WebhookSecret string `json:"webhookSecret"` } type ConfigHasuraAuthHook struct { - Mode *string `json:"mode,omitempty"` - SendRequestBody *bool `json:"sendRequestBody,omitempty"` - URL string `json:"url"` + Mode *string `json:"mode,omitempty"` + // HASURA_GRAPHQL_AUTH_HOOK_SEND_REQUEST_BODY + SendRequestBody *bool `json:"sendRequestBody,omitempty"` + // HASURA_GRAPHQL_AUTH_HOOK + URL string `json:"url"` } type ConfigHasuraAuthHookUpdateInput struct { @@ -794,6 +853,7 @@ type ConfigHasuraAuthHookUpdateInput struct { } type ConfigHasuraEvents struct { + // HASURA_GRAPHQL_EVENTS_HTTP_POOL_SIZE HTTPPoolSize *uint32 `json:"httpPoolSize,omitempty"` } @@ -809,16 +869,27 @@ type ConfigHasuraLogsUpdateInput struct { Level *string `json:"level,omitempty"` } +// Configuration for hasura services +// Reference: https://hasura.io/docs/latest/deployment/graphql-engine-flags/reference/ type ConfigHasuraSettings struct { - CorsDomain []string `json:"corsDomain,omitempty"` - DevMode *bool `json:"devMode,omitempty"` - EnableAllowList *bool `json:"enableAllowList,omitempty"` - EnableConsole *bool `json:"enableConsole,omitempty"` - EnableRemoteSchemaPermissions *bool `json:"enableRemoteSchemaPermissions,omitempty"` - EnabledAPIs []string `json:"enabledAPIs,omitempty"` - InferFunctionPermissions *bool `json:"inferFunctionPermissions,omitempty"` - LiveQueriesMultiplexedRefetchInterval *uint32 `json:"liveQueriesMultiplexedRefetchInterval,omitempty"` - StringifyNumericTypes *bool `json:"stringifyNumericTypes,omitempty"` + // HASURA_GRAPHQL_CORS_DOMAIN + CorsDomain []string `json:"corsDomain,omitempty"` + // HASURA_GRAPHQL_DEV_MODE + DevMode *bool `json:"devMode,omitempty"` + // HASURA_GRAPHQL_ENABLE_ALLOWLIST + EnableAllowList *bool `json:"enableAllowList,omitempty"` + // HASURA_GRAPHQL_ENABLE_CONSOLE + EnableConsole *bool `json:"enableConsole,omitempty"` + // HASURA_GRAPHQL_ENABLE_REMOTE_SCHEMA_PERMISSIONS + EnableRemoteSchemaPermissions *bool `json:"enableRemoteSchemaPermissions,omitempty"` + // HASURA_GRAPHQL_ENABLED_APIS + EnabledAPIs []string `json:"enabledAPIs,omitempty"` + // HASURA_GRAPHQL_INFER_FUNCTION_PERMISSIONS + InferFunctionPermissions *bool `json:"inferFunctionPermissions,omitempty"` + // HASURA_GRAPHQL_LIVE_QUERIES_MULTIPLEXED_REFETCH_INTERVAL + LiveQueriesMultiplexedRefetchInterval *uint32 `json:"liveQueriesMultiplexedRefetchInterval,omitempty"` + // HASURA_GRAPHQL_STRINGIFY_NUMERIC_TYPES + StringifyNumericTypes *bool `json:"stringifyNumericTypes,omitempty"` } type ConfigHasuraSettingsUpdateInput struct { @@ -891,6 +962,7 @@ type ConfigIngressUpdateInput struct { TLS *ConfigIngressTLSUpdateInput `json:"tls,omitempty"` } +// See https://hasura.io/docs/latest/auth/authentication/jwt/ type ConfigJWTSecret struct { AllowedSkew *uint32 `json:"allowed_skew,omitempty"` Audience *string `json:"audience,omitempty"` @@ -939,11 +1011,15 @@ type ConfigObservabilityUpdateInput struct { Grafana *ConfigGrafanaUpdateInput `json:"grafana,omitempty"` } +// Configuration for postgres service type ConfigPostgres struct { - Pitr *ConfigPostgresPitr `json:"pitr,omitempty"` + Pitr *ConfigPostgresPitr `json:"pitr,omitempty"` + // Resources for the service Resources *ConfigPostgresResources `json:"resources"` Settings *ConfigPostgresSettings `json:"settings,omitempty"` - Version *string `json:"version,omitempty"` + // Version of postgres, you can see available versions in the URL below: + // https://hub.docker.com/r/nhost/postgres/tags + Version *string `json:"version,omitempty"` } type ConfigPostgresPitr struct { @@ -954,6 +1030,7 @@ type ConfigPostgresPitrUpdateInput struct { Retention *uint32 `json:"retention,omitempty"` } +// Resources for the service type ConfigPostgresResources struct { Compute *ConfigResourcesCompute `json:"compute,omitempty"` EnablePublicAccess *bool `json:"enablePublicAccess,omitempty"` @@ -1060,15 +1137,19 @@ type ConfigRateLimitUpdateInput struct { Limit *uint32 `json:"limit,omitempty"` } +// Resource configuration for a service type ConfigResources struct { Autoscaler *ConfigAutoscaler `json:"autoscaler,omitempty"` Compute *ConfigResourcesCompute `json:"compute,omitempty"` Networking *ConfigNetworking `json:"networking,omitempty"` - Replicas *uint32 `json:"replicas,omitempty"` + // Number of replicas for a service + Replicas *uint32 `json:"replicas,omitempty"` } type ConfigResourcesCompute struct { - CPU uint32 `json:"cpu"` + // milicpus, 1000 milicpus = 1 cpu + CPU uint32 `json:"cpu"` + // MiB: 128MiB to 30GiB Memory uint32 `json:"memory"` } @@ -1120,7 +1201,8 @@ type ConfigRunServiceConfigWithID struct { } type ConfigRunServiceImage struct { - Image string `json:"image"` + Image string `json:"image"` + // content of "auths", i.e., { "auths": $THIS } PullCredentials *string `json:"pullCredentials,omitempty"` } @@ -1158,11 +1240,13 @@ type ConfigRunServicePortUpdateInput struct { Type *string `json:"type,omitempty"` } +// Resource configuration for a service type ConfigRunServiceResources struct { - Autoscaler *ConfigAutoscaler `json:"autoscaler,omitempty"` - Compute *ConfigComputeResources `json:"compute"` - Replicas uint32 `json:"replicas"` - Storage []*ConfigRunServiceResourcesStorage `json:"storage,omitempty"` + Autoscaler *ConfigAutoscaler `json:"autoscaler,omitempty"` + Compute *ConfigComputeResources `json:"compute"` + // Number of replicas for a service + Replicas uint32 `json:"replicas"` + Storage []*ConfigRunServiceResourcesStorage `json:"storage,omitempty"` } type ConfigRunServiceResourcesInsertInput struct { @@ -1173,9 +1257,11 @@ type ConfigRunServiceResourcesInsertInput struct { } type ConfigRunServiceResourcesStorage struct { + // GiB Capacity uint32 `json:"capacity"` - Name string `json:"name"` - Path string `json:"path"` + // name of the volume, changing it will cause data loss + Name string `json:"name"` + Path string `json:"path"` } type ConfigRunServiceResourcesStorageInsertInput struct { @@ -1259,11 +1345,20 @@ type ConfigStandardOauthProviderWithScopeUpdateInput struct { Scope []string `json:"scope,omitempty"` } +// Configuration for storage service type ConfigStorage struct { Antivirus *ConfigStorageAntivirus `json:"antivirus,omitempty"` RateLimit *ConfigRateLimit `json:"rateLimit,omitempty"` - Resources *ConfigResources `json:"resources,omitempty"` - Version *string `json:"version,omitempty"` + // Networking (custom domains at the moment) are not allowed as we need to do further + // configurations in the CDN. We will enable it again in the future. + Resources *ConfigResources `json:"resources,omitempty"` + // Version of storage service, you can see available versions in the URL below: + // https://hub.docker.com/r/nhost/hasura-storage/tags + // + // Releases: + // + // https://github.com/nhost/hasura-storage/releases + Version *string `json:"version,omitempty"` } type ConfigStorageAntivirus struct { @@ -1301,6 +1396,8 @@ type ConfigSystemConfigAuthEmailTemplates struct { } type ConfigSystemConfigGraphql struct { + // manually enable graphi on a per-service basis + // by default it follows the plan FeatureAdvancedGraphql *bool `json:"featureAdvancedGraphql,omitempty"` } @@ -1718,7 +1815,8 @@ type Apps struct { AppStates []*AppStateHistory `json:"appStates"` AutomaticDeploys bool `json:"automaticDeploys"` // An array relationship - Backups []*Backups `json:"backups"` + Backups []*Backups `json:"backups"` + // main entrypoint to the configuration Config *ConfigConfig `json:"config,omitempty"` CreatedAt time.Time `json:"createdAt"` // An object relationship @@ -2149,6 +2247,14 @@ type AuthUserProvidersMinOrderBy struct { ProviderID *OrderBy `json:"providerId,omitempty"` } +// response of any mutation on the table "auth.user_providers" +type AuthUserProvidersMutationResponse struct { + // number of rows affected by the mutation + AffectedRows int64 `json:"affected_rows"` + // data from the rows affected by the mutation + Returning []*AuthUserProviders `json:"returning"` +} + // Ordering options when selecting data from "auth.user_providers". type AuthUserProvidersOrderBy struct { ID *OrderBy `json:"id,omitempty"` @@ -2725,6 +2831,7 @@ type Deployments struct { CommitSha string `json:"commitSHA"` CommitUserAvatarURL *string `json:"commitUserAvatarUrl,omitempty"` CommitUserName *string `json:"commitUserName,omitempty"` + CreatedAt time.Time `json:"createdAt"` DeploymentEndedAt *time.Time `json:"deploymentEndedAt,omitempty"` // An array relationship DeploymentLogs []*DeploymentLogs `json:"deploymentLogs"` @@ -2767,6 +2874,7 @@ type DeploymentsBoolExp struct { CommitSha *StringComparisonExp `json:"commitSHA,omitempty"` CommitUserAvatarURL *StringComparisonExp `json:"commitUserAvatarUrl,omitempty"` CommitUserName *StringComparisonExp `json:"commitUserName,omitempty"` + CreatedAt *TimestamptzComparisonExp `json:"createdAt,omitempty"` DeploymentEndedAt *TimestamptzComparisonExp `json:"deploymentEndedAt,omitempty"` DeploymentLogs *DeploymentLogsBoolExp `json:"deploymentLogs,omitempty"` DeploymentStartedAt *TimestamptzComparisonExp `json:"deploymentStartedAt,omitempty"` @@ -2801,6 +2909,7 @@ type DeploymentsMaxOrderBy struct { CommitSha *OrderBy `json:"commitSHA,omitempty"` CommitUserAvatarURL *OrderBy `json:"commitUserAvatarUrl,omitempty"` CommitUserName *OrderBy `json:"commitUserName,omitempty"` + CreatedAt *OrderBy `json:"createdAt,omitempty"` DeploymentEndedAt *OrderBy `json:"deploymentEndedAt,omitempty"` DeploymentStartedAt *OrderBy `json:"deploymentStartedAt,omitempty"` DeploymentStatus *OrderBy `json:"deploymentStatus,omitempty"` @@ -2823,6 +2932,7 @@ type DeploymentsMinOrderBy struct { CommitSha *OrderBy `json:"commitSHA,omitempty"` CommitUserAvatarURL *OrderBy `json:"commitUserAvatarUrl,omitempty"` CommitUserName *OrderBy `json:"commitUserName,omitempty"` + CreatedAt *OrderBy `json:"createdAt,omitempty"` DeploymentEndedAt *OrderBy `json:"deploymentEndedAt,omitempty"` DeploymentStartedAt *OrderBy `json:"deploymentStartedAt,omitempty"` DeploymentStatus *OrderBy `json:"deploymentStatus,omitempty"` @@ -2861,6 +2971,7 @@ type DeploymentsOrderBy struct { CommitSha *OrderBy `json:"commitSHA,omitempty"` CommitUserAvatarURL *OrderBy `json:"commitUserAvatarUrl,omitempty"` CommitUserName *OrderBy `json:"commitUserName,omitempty"` + CreatedAt *OrderBy `json:"createdAt,omitempty"` DeploymentEndedAt *OrderBy `json:"deploymentEndedAt,omitempty"` DeploymentLogsAggregate *DeploymentLogsAggregateOrderBy `json:"deploymentLogs_aggregate,omitempty"` DeploymentStartedAt *OrderBy `json:"deploymentStartedAt,omitempty"` @@ -2892,6 +3003,7 @@ type DeploymentsStreamCursorValueInput struct { CommitSha *string `json:"commitSHA,omitempty"` CommitUserAvatarURL *string `json:"commitUserAvatarUrl,omitempty"` CommitUserName *string `json:"commitUserName,omitempty"` + CreatedAt *time.Time `json:"createdAt,omitempty"` DeploymentEndedAt *time.Time `json:"deploymentEndedAt,omitempty"` DeploymentStartedAt *time.Time `json:"deploymentStartedAt,omitempty"` DeploymentStatus *string `json:"deploymentStatus,omitempty"` @@ -6885,6 +6997,8 @@ const ( // column name DeploymentsSelectColumnCommitUserName DeploymentsSelectColumn = "commitUserName" // column name + DeploymentsSelectColumnCreatedAt DeploymentsSelectColumn = "createdAt" + // column name DeploymentsSelectColumnDeploymentEndedAt DeploymentsSelectColumn = "deploymentEndedAt" // column name DeploymentsSelectColumnDeploymentStartedAt DeploymentsSelectColumn = "deploymentStartedAt" @@ -6918,6 +7032,7 @@ var AllDeploymentsSelectColumn = []DeploymentsSelectColumn{ DeploymentsSelectColumnCommitSha, DeploymentsSelectColumnCommitUserAvatarURL, DeploymentsSelectColumnCommitUserName, + DeploymentsSelectColumnCreatedAt, DeploymentsSelectColumnDeploymentEndedAt, DeploymentsSelectColumnDeploymentStartedAt, DeploymentsSelectColumnDeploymentStatus, @@ -6935,7 +7050,7 @@ var AllDeploymentsSelectColumn = []DeploymentsSelectColumn{ func (e DeploymentsSelectColumn) IsValid() bool { switch e { - case DeploymentsSelectColumnAppID, DeploymentsSelectColumnCommitMessage, DeploymentsSelectColumnCommitSha, DeploymentsSelectColumnCommitUserAvatarURL, DeploymentsSelectColumnCommitUserName, DeploymentsSelectColumnDeploymentEndedAt, DeploymentsSelectColumnDeploymentStartedAt, DeploymentsSelectColumnDeploymentStatus, DeploymentsSelectColumnFunctionsEndedAt, DeploymentsSelectColumnFunctionsStartedAt, DeploymentsSelectColumnFunctionsStatus, DeploymentsSelectColumnID, DeploymentsSelectColumnMetadataEndedAt, DeploymentsSelectColumnMetadataStartedAt, DeploymentsSelectColumnMetadataStatus, DeploymentsSelectColumnMigrationsEndedAt, DeploymentsSelectColumnMigrationsStartedAt, DeploymentsSelectColumnMigrationsStatus: + case DeploymentsSelectColumnAppID, DeploymentsSelectColumnCommitMessage, DeploymentsSelectColumnCommitSha, DeploymentsSelectColumnCommitUserAvatarURL, DeploymentsSelectColumnCommitUserName, DeploymentsSelectColumnCreatedAt, DeploymentsSelectColumnDeploymentEndedAt, DeploymentsSelectColumnDeploymentStartedAt, DeploymentsSelectColumnDeploymentStatus, DeploymentsSelectColumnFunctionsEndedAt, DeploymentsSelectColumnFunctionsStartedAt, DeploymentsSelectColumnFunctionsStatus, DeploymentsSelectColumnID, DeploymentsSelectColumnMetadataEndedAt, DeploymentsSelectColumnMetadataStartedAt, DeploymentsSelectColumnMetadataStatus, DeploymentsSelectColumnMigrationsEndedAt, DeploymentsSelectColumnMigrationsStartedAt, DeploymentsSelectColumnMigrationsStatus: return true } return false diff --git a/cli/project.nix b/cli/project.nix index bd9c7e877..de8cdf6a3 100644 --- a/cli/project.nix +++ b/cli/project.nix @@ -27,8 +27,9 @@ let "${submodule}/mcp/nhost/auth/openapi.yaml" "${submodule}/mcp/nhost/graphql/openapi.yaml" - "${submodule}/mcp/tools/cloud/schema.graphql" - "${submodule}/mcp/tools/cloud/schema-with-mutations.graphql" + "${submodule}/mcp/resources/cloud_schema.graphql" + "${submodule}/mcp/resources/cloud_schema-with-mutations.graphql" + "${submodule}/mcp/resources/nhost_toml_schema.cue" (inDirectory "${submodule}/cmd/mcp/testdata") (inDirectory "${submodule}/mcp/graphql/testdata") ]; diff --git a/cli/ssl/.ssl/local-fullchain.pem b/cli/ssl/.ssl/local-fullchain.pem index 5a1077f23..20d6117f8 100644 --- a/cli/ssl/.ssl/local-fullchain.pem +++ b/cli/ssl/.ssl/local-fullchain.pem @@ -1,27 +1,27 @@ -----BEGIN CERTIFICATE----- -MIIERDCCA8mgAwIBAgISBmRex3kpZ4Mz1/1kq05iqja/MAoGCCqGSM49BAMDMDIx +MIIERTCCA8ugAwIBAgISBWD/E+b14mP5jv4DGWRVYv8fMAoGCCqGSM49BAMDMDIx CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF -ODAeFw0yNTEwMDIxMDUxNDBaFw0yNTEyMzExMDUxMzlaMB8xHTAbBgNVBAMTFGxv -Y2FsLmF1dGgubmhvc3QucnVuMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE2cVM -ojf8iXZGLneNfnke5LMJIxyTEeGbNOfCv4SOR4K/N4OkpvkUVbH2bRvX99uE9jaK -515Y48PzPA/4+W1zTKOCAtAwggLMMA4GA1UdDwEB/wQEAwIHgDAdBgNVHSUEFjAU -BggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUQqan -raZoU5klAxsgkEVEMIkxmMQwHwYDVR0jBBgwFoAUjw0TovYuftFQbDMYOF1ZjiNy +ODAeFw0yNTExMDYxMDUxMTBaFw0yNjAyMDQxMDUxMDlaMB8xHTAbBgNVBAMTFGxv +Y2FsLmF1dGgubmhvc3QucnVuMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEOah5 +ZLuUQp3pdMBxBWnT6E6/amW9LerKKEEdy3Nc8iAwG9LlnPH0z3m7a9wgEhpFEdlL +Rr+qO+NhSRnv6+UF5KOCAtIwggLOMA4GA1UdDwEB/wQEAwIHgDAdBgNVHSUEFjAU +BggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUGyb1 +TVK/0vf3uHO4x3R094aG2rEwHwYDVR0jBBgwFoAUjw0TovYuftFQbDMYOF1ZjiNy kcowMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzAChhZodHRwOi8vZTguaS5sZW5j ci5vcmcvMIHOBgNVHREEgcYwgcOCFGxvY2FsLmF1dGgubmhvc3QucnVughlsb2Nh bC5kYXNoYm9hcmQubmhvc3QucnVughJsb2NhbC5kYi5uaG9zdC5ydW6CGWxvY2Fs LmZ1bmN0aW9ucy5uaG9zdC5ydW6CF2xvY2FsLmdyYXBocWwubmhvc3QucnVughZs b2NhbC5oYXN1cmEubmhvc3QucnVughdsb2NhbC5tYWlsaG9nLm5ob3N0LnJ1boIX bG9jYWwuc3RvcmFnZS5uaG9zdC5ydW4wEwYDVR0gBAwwCjAIBgZngQwBAgEwLQYD -VR0fBCYwJDAioCCgHoYcaHR0cDovL2U4LmMubGVuY3Iub3JnLzY0LmNybDCCAQIG -CisGAQQB1nkCBAIEgfMEgfAA7gB1AO08S9boBsKkogBX28sk4jgB31Ev7cSGxXAP -IN23Pj/gAAABmaTCI4YAAAQDAEYwRAIgXLRFL1EAXfvN6kd5m6udqlxfz4+5B6rq -Cdhp/ZwDAZ8CIFYvalTkl5NEBEMD3vpPvrj8s1Yy2xsropEh/AvpavvLAHUAGYbU -xyiqb/66A294Kk0BkarOLXIxD67OXXBBLSVMx9QAAAGZpMIjhwAABAMARjBEAiBk -H1vqU9HNuBcf4UYL/xZ42BeUAARHStiFaIZtnR1kEgIgbIJ0CGqIpxmWuwCunl9p -ar+rGLdQrCk9BZXq/VjPPAAwCgYIKoZIzj0EAwMDaQAwZgIxAKvk5a2zQsv7JLNj -NO1ly+DI8qiy5nf4HQrOrHOjtmx5RUu0HSO9P0J0u069qAqXMgIxAMLdME9JUo2c -TJo3pwWv5MRyg/MkOJ4ImKdDJXfIZNkEIUyP3vwTqImvZe07gJDsYg== +VR0fBCYwJDAioCCgHoYcaHR0cDovL2U4LmMubGVuY3Iub3JnLzMyLmNybDCCAQQG +CisGAQQB1nkCBAIEgfUEgfIA8AB2ABmG1Mcoqm/+ugNveCpNAZGqzi1yMQ+uzl1w +QS0lTMfUAAABmlkAQokAAAQDAEcwRQIgWDtSxJfM2xcjvScVHOkn8bipzBhNhTnm +B89TDh1/4XUCIQDe08W33PCx2D+akCdW9U9mZKQpIW6deLZSI3ZWpSNKMAB2AA5X +lLzzrqk+MxssmQez95Dfm8I9cTIl3SGpJaxhxU4hAAABmlkAQn8AAAQDAEcwRQIg +KnojmNTpNk1OFTQI0EnlPa2bpwqmUgmUCLeqE6SWfgoCIQCrhZbxYPHbGLF/HpRq +vCTcOh24SRCuxlkqtaowbbfmKjAKBggqhkjOPQQDAwNoADBlAjEArstFIC+KAsfQ +nLhtqsaNzkhftN5adDyr2CoE0WUPF1sLDi+xDnDO+JgIPL0YKAFNAjATJ4omhpc+ +I6/kWcef2RyO9YCGQQE9pdez5CYKb9o8YAntDSHM3b5nXXj3AX/USdQ= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEVjCCAj6gAwIBAgIQY5WTY8JOcIJxWRi/w9ftVjANBgkqhkiG9w0BAQsFADBP diff --git a/cli/ssl/.ssl/local-privkey.pem b/cli/ssl/.ssl/local-privkey.pem index bc44190a0..6e24f8902 100644 --- a/cli/ssl/.ssl/local-privkey.pem +++ b/cli/ssl/.ssl/local-privkey.pem @@ -1,5 +1,5 @@ -----BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgfJZOkvawA0vBMw9W -ph8i1Z+SJQrFscPbqSYpxngzEDahRANCAATZxUyiN/yJdkYud41+eR7kswkjHJMR -4Zs058K/hI5Hgr83g6Sm+RRVsfZtG9f324T2NornXljjw/M8D/j5bXNM +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgInXN4JRnXNTjx7rM +avurZrN1EV1iebQeNUlMlFp7VJ+hRANCAAQ5qHlku5RCnel0wHEFadPoTr9qZb0t +6sooQR3Lc1zyIDAb0uWc8fTPebtr3CASGkUR2UtGv6o742FJGe/r5QXk -----END PRIVATE KEY----- diff --git a/cli/ssl/.ssl/sub-fullchain.pem b/cli/ssl/.ssl/sub-fullchain.pem index cba65d045..0b0239912 100644 --- a/cli/ssl/.ssl/sub-fullchain.pem +++ b/cli/ssl/.ssl/sub-fullchain.pem @@ -1,52 +1,52 @@ -----BEGIN CERTIFICATE----- -MIIEWDCCA96gAwIBAgISBbvrSsjDQm4zevwwjxFGmeTMMAoGCCqGSM49BAMDMDIx +MIIEVzCCA92gAwIBAgISBm54VdkoqD8s8efq7ceHaTihMAoGCCqGSM49BAMDMDIx CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF -NzAeFw0yNTEwMDIxMDUyNTdaFw0yNTEyMzExMDUyNTZaMCExHzAdBgNVBAMMFiou -YXV0aC5sb2NhbC5uaG9zdC5ydW4wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATG -x0o7t0pSrOoFc+pljtqJVxgaSW+w9D9C2WdysMeSKKOU+0MzaM4ynLUhETOpBs8E -612mdcoeak+G1Emj6UVwo4IC4zCCAt8wDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQW -MBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQ+ -lVsLiXSRLAECs9OgkCEBS7jMmzAfBgNVHSMEGDAWgBSuSJ7chx1EoG/aouVgdAR4 -wpwAgDAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAKGFmh0dHA6Ly9lNy5pLmxl +ODAeFw0yNTExMDYxMDUyMjBaFw0yNjAyMDQxMDUyMTlaMCExHzAdBgNVBAMMFiou +YXV0aC5sb2NhbC5uaG9zdC5ydW4wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASI +rTkZOM4ip42DCyDADXGc7oV3+OkimyTM3st2RIZWG28rFRwH0LebJV2cduq1Hdtl +VxIEr+RhvyIL7gllueXUo4IC4jCCAt4wDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQW +MBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTw +bM86O381+aljU3oTUvwhZ90PCDAfBgNVHSMEGDAWgBSPDROi9i5+0VBsMxg4XVmO +I3KRyjAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAKGFmh0dHA6Ly9lOC5pLmxl bmNyLm9yZy8wgd4GA1UdEQSB1jCB04IWKi5hdXRoLmxvY2FsLm5ob3N0LnJ1boIb Ki5kYXNoYm9hcmQubG9jYWwubmhvc3QucnVughQqLmRiLmxvY2FsLm5ob3N0LnJ1 boIbKi5mdW5jdGlvbnMubG9jYWwubmhvc3QucnVughkqLmdyYXBocWwubG9jYWwu bmhvc3QucnVughgqLmhhc3VyYS5sb2NhbC5uaG9zdC5ydW6CGSoubWFpbGhvZy5s b2NhbC5uaG9zdC5ydW6CGSouc3RvcmFnZS5sb2NhbC5uaG9zdC5ydW4wEwYDVR0g -BAwwCjAIBgZngQwBAgEwLQYDVR0fBCYwJDAioCCgHoYcaHR0cDovL2U3LmMubGVu -Y3Iub3JnLzc3LmNybDCCAQUGCisGAQQB1nkCBAIEgfYEgfMA8QB2AN3cyjSV1+EW -BeeVMvrHn/g9HFDf2wA6FBJ2Ciysu8gqAAABmaTDUHkAAAQDAEcwRQIgWudJ8XKA -BT5jq5Tl0xQLNb953pBi22Tb0TIWk+RSqHgCIQDsTrLVMFaQTV7EFCY1tFhi5qae -SCpEwwdFcnom/nz6EAB3AO08S9boBsKkogBX28sk4jgB31Ev7cSGxXAPIN23Pj/g -AAABmaTDWAsAAAQDAEgwRgIhALxIgIiutEwgNcGw7/cAdjFqUugct4HlZezIOLLP -rg69AiEA8YCaK41rJDYztEKUIJEq2J2ktSqGYcl9gNKC+SiR4acwCgYIKoZIzj0E -AwMDaAAwZQIwVG9yOiMRfKFFyFj1R8X/5U67QD84OhZ0oM0SZsVhezLedG5b8eFf -/cWraREi8xbFAjEA/6RXweGzl08F7EtqBDoiqitScI2rbwGtP6s/evL0zXTABZD2 -ih7AGxjtg80IqIRe +BAwwCjAIBgZngQwBAgEwLQYDVR0fBCYwJDAioCCgHoYcaHR0cDovL2U4LmMubGVu +Y3Iub3JnLzM0LmNybDCCAQQGCisGAQQB1nkCBAIEgfUEgfIA8AB2AEmcm2neHXzs +/DbezYdkprhbrwqHgBnRVVL76esp3fjDAAABmlkBVgkAAAQDAEcwRQIhANH6Ml3u +IM4nAzwAIjIjBjn8EWbn1ZHfgwO+rlSo5rzpAiATPKE8Mx5LK1IayG5VCK1eCDyc +rzt1HNbP9WSrpuHx+gB2ABmG1Mcoqm/+ugNveCpNAZGqzi1yMQ+uzl1wQS0lTMfU +AAABmlkBVgcAAAQDAEcwRQIgIT/DhsIj9Aw7qf/2lknJCr907dEqC3/+QN3zlcOj +iKoCIQCTguinYjJPZwU2dblaRQ2q7MTCMT2ZENExltxwYG3GzjAKBggqhkjOPQQD +AwNoADBlAjEA5nFoNrLyeC079YpRvdah/HZIA/lUBh+LOo/NcEBD3aTGs2z8hU8z +H4vMy3OnfQ9TAjBxigm7zE5/3CAcGoSOr/P0TL52nh+lO4SUVxcbKgYB8A2yo6o/ +kUkG7PiRB0uUpNw= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIEVzCCAj+gAwIBAgIRAKp18eYrjwoiCWbTi7/UuqEwDQYJKoZIhvcNAQELBQAw -TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh -cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjQwMzEzMDAwMDAw -WhcNMjcwMzEyMjM1OTU5WjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg -RW5jcnlwdDELMAkGA1UEAxMCRTcwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARB6AST -CFh/vjcwDMCgQer+VtqEkz7JANurZxLP+U9TCeioL6sp5Z8VRvRbYk4P1INBmbef -QHJFHCxcSjKmwtvGBWpl/9ra8HW0QDsUaJW2qOJqceJ0ZVFT3hbUHifBM/2jgfgw -gfUwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcD -ATASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSuSJ7chx1EoG/aouVgdAR4 -wpwAgDAfBgNVHSMEGDAWgBR5tFnme7bl5AFzgAiIyBpY9umbbjAyBggrBgEFBQcB -AQQmMCQwIgYIKwYBBQUHMAKGFmh0dHA6Ly94MS5pLmxlbmNyLm9yZy8wEwYDVR0g -BAwwCjAIBgZngQwBAgEwJwYDVR0fBCAwHjAcoBqgGIYWaHR0cDovL3gxLmMubGVu -Y3Iub3JnLzANBgkqhkiG9w0BAQsFAAOCAgEAjx66fDdLk5ywFn3CzA1w1qfylHUD -aEf0QZpXcJseddJGSfbUUOvbNR9N/QQ16K1lXl4VFyhmGXDT5Kdfcr0RvIIVrNxF -h4lqHtRRCP6RBRstqbZ2zURgqakn/Xip0iaQL0IdfHBZr396FgknniRYFckKORPG -yM3QKnd66gtMst8I5nkRQlAg/Jb+Gc3egIvuGKWboE1G89NTsN9LTDD3PLj0dUMr -OIuqVjLB8pEC6yk9enrlrqjXQgkLEYhXzq7dLafv5Vkig6Gl0nuuqjqfp0Q1bi1o -yVNAlXe6aUXw92CcghC9bNsKEO1+M52YY5+ofIXlS/SEQbvVYYBLZ5yeiglV6t3S -M6H+vTG0aP9YHzLn/KVOHzGQfXDP7qM5tkf+7diZe7o2fw6O7IvN6fsQXEQQj8TJ -UXJxv2/uJhcuy/tSDgXwHM8Uk34WNbRT7zGTGkQRX0gsbjAea/jYAoWv0ZvQRwpq -Pe79D/i7Cep8qWnA+7AE/3B3S/3dEEYmc0lpe1366A/6GEgk3ktr9PEoQrLChs6I -tu3wnNLB2euC8IKGLQFpGtOO/2/hiAKjyajaBP25w1jF0Wl8Bbqne3uZ2q1GyPFJ -YRmT7/OXpmOH/FVLtwS+8ng1cAmpCujPwteJZNcDG0sF2n/sc0+SQf49fdyUK0ty -+VUwFj9tmWxyR/M= +MIIEVjCCAj6gAwIBAgIQY5WTY8JOcIJxWRi/w9ftVjANBgkqhkiG9w0BAQsFADBP +MQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFy +Y2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMTAeFw0yNDAzMTMwMDAwMDBa +Fw0yNzAzMTIyMzU5NTlaMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBF +bmNyeXB0MQswCQYDVQQDEwJFODB2MBAGByqGSM49AgEGBSuBBAAiA2IABNFl8l7c +S7QMApzSsvru6WyrOq44ofTUOTIzxULUzDMMNMchIJBwXOhiLxxxs0LXeb5GDcHb +R6EToMffgSZjO9SNHfY9gjMy9vQr5/WWOrQTZxh7az6NSNnq3u2ubT6HTKOB+DCB +9TAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMB +MBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFI8NE6L2Ln7RUGwzGDhdWY4j +cpHKMB8GA1UdIwQYMBaAFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEB +BCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzATBgNVHSAE +DDAKMAgGBmeBDAECATAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veDEuYy5sZW5j +ci5vcmcvMA0GCSqGSIb3DQEBCwUAA4ICAQBnE0hGINKsCYWi0Xx1ygxD5qihEjZ0 +RI3tTZz1wuATH3ZwYPIp97kWEayanD1j0cDhIYzy4CkDo2jB8D5t0a6zZWzlr98d +AQFNh8uKJkIHdLShy+nUyeZxc5bNeMp1Lu0gSzE4McqfmNMvIpeiwWSYO9w82Ob8 +otvXcO2JUYi3svHIWRm3+707DUbL51XMcY2iZdlCq4Wa9nbuk3WTU4gr6LY8MzVA +aDQG2+4U3eJ6qUF10bBnR1uuVyDYs9RhrwucRVnfuDj29CMLTsplM5f5wSV5hUpm +Uwp/vV7M4w4aGunt74koX71n4EdagCsL/Yk5+mAQU0+tue0JOfAV/R6t1k+Xk9s2 +HMQFeoxppfzAVC04FdG9M+AC2JWxmFSt6BCuh3CEey3fE52Qrj9YM75rtvIjsm/1 +Hl+u//Wqxnu1ZQ4jpa+VpuZiGOlWrqSP9eogdOhCGisnyewWJwRQOqK16wiGyZeR +xs/Bekw65vwSIaVkBruPiTfMOo0Zh4gVa8/qJgMbJbyrwwG97z/PRgmLKCDl8z3d +tA0Z7qq7fta0Gl24uyuB05dqI5J1LvAzKuWdIjT1tP8qCoxSE/xpix8hX2dt3h+/ +jujUgFPFZ0EVZ0xSyBNRF3MboGZnYXFUxpNjTWPKpagDHJQmqrAcDmWJnMsFY3jS +u1igv3OefnWjSQ== -----END CERTIFICATE----- diff --git a/cli/ssl/.ssl/sub-privkey.pem b/cli/ssl/.ssl/sub-privkey.pem index 68ae61a09..8aef383ec 100644 --- a/cli/ssl/.ssl/sub-privkey.pem +++ b/cli/ssl/.ssl/sub-privkey.pem @@ -1,5 +1,5 @@ -----BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgrfNUSjLV/7j7LSBf -zL/hvGEuv+uvf3/aimqjecO7vcShRANCAATGx0o7t0pSrOoFc+pljtqJVxgaSW+w -9D9C2WdysMeSKKOU+0MzaM4ynLUhETOpBs8E612mdcoeak+G1Emj6UVw +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgcrhROXQT85e+S8h8 +RE3Z7TPo3+WA2RmzJsXJbXkbi5qhRANCAASIrTkZOM4ip42DCyDADXGc7oV3+Oki +myTM3st2RIZWG28rFRwH0LebJV2cduq1HdtlVxIEr+RhvyIL7gllueXU -----END PRIVATE KEY----- diff --git a/dashboard/.env.example b/dashboard/.env.example index d32a65cad..b55b0f521 100644 --- a/dashboard/.env.example +++ b/dashboard/.env.example @@ -3,12 +3,13 @@ NEXT_PUBLIC_ENV=dev NEXT_PUBLIC_NHOST_PLATFORM=false # Environment Variables for Self Hosting and Local Development -NEXT_PUBLIC_NHOST_AUTH_URL=https://local.auth.nhost.local.run/v1 +NEXT_PUBLIC_NHOST_AUTH_URL=https://local.auth.local.nhost.run/v1 +NEXT_PUBLIC_NHOST_CONFIGSERVER_URL=https://local.dashboard.local.nhost.run/v1/configserver/graphql NEXT_PUBLIC_NHOST_FUNCTIONS_URL=https://local.functions.local.nhost.run/v1 NEXT_PUBLIC_NHOST_GRAPHQL_URL=https://local.graphql.local.nhost.run/v1 NEXT_PUBLIC_NHOST_STORAGE_URL=https://local.storage.local.nhost.run/v1 -NEXT_PUBLIC_NHOST_HASURA_CONSOLE_URL=https://local.hasura.local.nhost.run -NEXT_PUBLIC_NHOST_HASURA_MIGRATIONS_API_URL=https://local.hasura.local.nhost.run/v1/migrations +NEXT_PUBLIC_NHOST_HASURA_CONSOLE_URL=https://local.hasura.local.nhost.run/console +NEXT_PUBLIC_NHOST_HASURA_MIGRATIONS_API_URL=https://local.hasura.local.nhost.run/apis/migrate NEXT_PUBLIC_NHOST_HASURA_API_URL=https://local.hasura.local.nhost.run # Environment Variables when running the Nhost Dashboard against the Nhost Backend @@ -18,13 +19,13 @@ NEXT_PUBLIC_ANALYTICS_WRITE_KEY= NEXT_PUBLIC_SEGMENT_CDN_URL= NEXT_PUBLIC_NHOST_BRAGI_WEBSOCKET= -NEXT_PUBLIC_ZENDESK_URL= -NEXT_PUBLIC_ZENDESK_API_KEY= -NEXT_PUBLIC_ZENDESK_USER_EMAIL= +NEXT_ZENDESK_URL= +NEXT_ZENDESK_API_KEY= +NEXT_ZENDESK_USER_EMAIL= CODEGEN_GRAPHQL_URL=https://local.graphql.local.nhost.run/v1 CODEGEN_HASURA_ADMIN_SECRET=nhost-admin-secret NEXT_PUBLIC_TURNSTILE_SITE_KEY=FIXME -NEXT_PUBLIC_SOC2_REPORT_FILE_ID= \ No newline at end of file +NEXT_PUBLIC_SOC2_REPORT_FILE_ID= diff --git a/dashboard/.storybook/main.js b/dashboard/.storybook/main.js deleted file mode 100644 index 544a997a3..000000000 --- a/dashboard/.storybook/main.js +++ /dev/null @@ -1,47 +0,0 @@ -const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin'); - -module.exports = { - stories: ['../src/**/*.stories.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'], - addons: [ - '@storybook/addon-links', - '@storybook/addon-essentials', - '@storybook/addon-interactions', - 'storybook-addon-next-router', - { - /** - * Fix Storybook issue with PostCSS@8 - * @see https://github.com/storybookjs/storybook/issues/12668#issuecomment-773958085 - */ - name: '@storybook/addon-postcss', - options: { - postcssLoaderOptions: { - implementation: require('postcss'), - }, - }, - }, - ], - framework: '@storybook/react', - core: { - builder: '@storybook/builder-webpack5', - }, - features: { - emotionAlias: true, - }, - webpackFinal: async (config) => { - return { - ...config, - resolve: { - ...config?.resolve, - plugins: [ - ...(config?.resolve?.plugins || []), - new TsconfigPathsPlugin(), - ], - }, - }; - }, - env: (config) => ({ - ...config, - NEXT_PUBLIC_ENV: 'dev', - NEXT_PUBLIC_NHOST_PLATFORM: 'false', - }), -}; diff --git a/dashboard/.storybook/preview.js b/dashboard/.storybook/preview.js deleted file mode 100644 index 688ab1d2b..000000000 --- a/dashboard/.storybook/preview.js +++ /dev/null @@ -1,69 +0,0 @@ -import { NhostProvider } from '@/providers/nhost'; -import '@fontsource/inter'; -import '@fontsource/inter/500.css'; -import '@fontsource/inter/700.css'; -import { CssBaseline, ThemeProvider } from '@mui/material'; -import { createClient } from '@nhost/nhost-js-beta'; -import { NhostApolloProvider } from '@nhost/react-apollo'; -import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; -import { Buffer } from 'buffer'; -import { initialize, mswDecorator } from 'msw-storybook-addon'; -import { RouterContext } from 'next/dist/shared/lib/router-context'; -import { createTheme } from '../src/components/ui/v2/createTheme'; -import '../src/styles/globals.css'; - -global.Buffer = Buffer; - -initialize({ onUnhandledRequest: 'bypass' }); - -const queryClient = new QueryClient(); - -export const parameters = { - nextRouter: { - Provider: RouterContext.Provider, - isReady: true, - }, - actions: { argTypesRegex: '^on[A-Z].*' }, - controls: { - matchers: { - color: /(background|color)$/i, - date: /Date$/, - }, - }, -}; - -export const decorators = [ - (Story, context) => { - const isDarkMode = !context.globals?.backgrounds?.value - ?.toLowerCase() - ?.startsWith('#f'); - - return ( - - - - - ); - }, - (Story) => ( - - - - ), - (Story) => ( - - - - ), - (Story) => ( - - - - ), - mswDecorator, -]; diff --git a/dashboard/CHANGELOG.md b/dashboard/CHANGELOG.md index bb5adf4c5..13284ca2e 100644 --- a/dashboard/CHANGELOG.md +++ b/dashboard/CHANGELOG.md @@ -1,7 +1,73 @@ +## [@nhost/dashboard@2.42.0] - 2025-11-12 + +### πŸš€ Features + +- *(dashboard)* Datatable design improvements (#3657) + + +### βš™οΈ Miscellaneous Tasks + +- *(dashboard)* Remove v2 ui components from datatable (#3568) + +## [@nhost/dashboard@2.41.0] - 2025-11-04 + +### πŸš€ Features + +- *(auth)* Added endpoints to retrieve and refresh oauth2 providers' tokens (#3614) +- *(dashboard)* Get github repositories from github itself (#3640) + + +### πŸ› Bug Fixes + +- *(dashboard)* Update SQL editor to use correct hasura migrations API URL (#3645) + # Changelog All notable changes to this project will be documented in this file. +## [@nhost/dashboard@2.40.0] - 2025-10-27 + +### πŸš€ Features + +- *(dashboard)* Allow configuring CSP header (#3627) + + +### βš™οΈ Miscellaneous Tasks + +- *(dashboard)* Various improvements to support ticket page (#3630) + +## [@nhost/dashboard@2.39.0] - 2025-10-22 + +### πŸš€ Features + +- *(dashboard)* Move zendesk request to API route (#3628) + + +### πŸ› Bug Fixes + +- *(dashboard)* Fix flaky e2e tests (#3536) +- *(dashboard)* Run audit and lint in dashboard (#3578) + + +### βš™οΈ Miscellaneous Tasks + +- *(dashboard)* Cleanup e2e remote schemas test before run (#3581) + +## [@nhost/dashboard@2.38.4] - 2025-10-09 + +### πŸ› Bug Fixes + +- *(dashboard)* Remove NODE_ENV from restricted env vars (#3573) + +## [@nhost/dashboard@2.38.3] - 2025-10-07 + +### πŸ› Bug Fixes + +- *(dashboard)* Show paused banner in remote schemas/database page if project is paused (#3557) +- *(dashboard)* Show paused banner in Run page (#3564) +- *(dashboard)* Remote schema edit graphql customizations, default value for root field namespace is empty (#3565) +- *(dashboard)* Improve remote schema preview search (#3558) + ## [@nhost/dashboard@2.38.2] - 2025-09-30 ### πŸ› Bug Fixes diff --git a/dashboard/README.md b/dashboard/README.md index 91837e7aa..b75ae85e5 100644 --- a/dashboard/README.md +++ b/dashboard/README.md @@ -62,20 +62,6 @@ NEXT_PUBLIC_NHOST_HASURA_API_URL=https://local.hasura.local.nhost.run This will connect the Nhost Dashboard to your locally running Nhost backend. -### Storybook - -Components are documented using [Storybook](https://storybook.js.org/). To run Storybook, run the following command: - -```bash -pnpm storybook -``` - -By default, Storybook will run on port `6006`. You can change this by passing the `--port` flag: - -```bash -pnpm storybook --port 6007 -``` - ### General Environment Variables | Name | Description | @@ -96,6 +82,15 @@ pnpm storybook --port 6007 | `NEXT_PUBLIC_NHOST_HASURA_MIGRATIONS_API_URL` | The URL of Hasura's Migrations service. When working locally, point it to the Migrations service started by the CLI. | | `NEXT_PUBLIC_NHOST_HASURA_API_URL` | The URL of Hasura's Schema and Metadata API. When working locally, point it to the Schema and Metadata API started by the CLI. When self-hosting, point it to the self-hosted Schema and Metadata API. | +### Content Security Policy (CSP) Configuration + +The dashboard supports build-time CSP configuration to enable self-hosted deployments on custom domains. + +| Name | Description | +| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `CSP_MODE` | Controls CSP behavior. Options: `nhost` (default, uses Nhost Cloud CSP), `disabled` (no CSP headers), `custom` (use custom CSP via `CSP_HEADER`). For self-hosted deployments on custom domains, set to `disabled` or `custom`. | +| `CSP_HEADER` | Custom Content Security Policy header value. Only used when `CSP_MODE=custom`. Should be a complete CSP string (e.g., `default-src 'self'; script-src 'self' 'unsafe-eval'; ...`). | + ### Other Environment Variables | Name | Description | diff --git a/dashboard/e2e/database/create-table.test.ts b/dashboard/e2e/database/create-table.test.ts index 71c566017..6631cc9ba 100644 --- a/dashboard/e2e/database/create-table.test.ts +++ b/dashboard/e2e/database/create-table.test.ts @@ -102,11 +102,11 @@ test('should create a table with nullable columns', async ({ page.getByRole('link', { name: tableName, exact: true }), ).toBeVisible(); await page - .locator(`li:has-text("${tableName}") #table-management-menu button`) + .locator(`li:has-text("${tableName}") #table-management-menu-${tableName}`) .click(); await page.getByText('Edit Table').click(); - expect(page.locator('h2:has-text("Edit Table")')).toBeVisible(); - expect(page.locator('div[data-testid="id"]')).toBeVisible(); + await expect(page.locator('h2:has-text("Edit Table")')).toBeVisible(); + await expect(page.locator('div[data-testid="id"]')).toBeVisible(); }); test('should create a table with an identity column', async ({ @@ -143,16 +143,16 @@ test('should create a table with an identity column', async ({ page.getByRole('link', { name: tableName, exact: true }), ).toBeVisible(); await page - .locator(`li:has-text("${tableName}") #table-management-menu button`) + .locator(`li:has-text("${tableName}") #table-management-menu-${tableName}`) .click(); await page.getByText('Edit Table').click(); - expect(page.locator('h2:has-text("Edit Table")')).toBeVisible(); - expect( + await expect(page.locator('h2:has-text("Edit Table")')).toBeVisible(); + await expect( page.locator('button#identityColumnIndex :has-text("identity_column")'), ).toBeVisible(); - expect(page.locator('[id="columns.3.defaultValue"]')).toBeDisabled(); - expect(page.locator('[name="columns.3.isNullable"]')).toBeDisabled(); - expect(page.locator('[name="columns.3.isUnique"]')).toBeDisabled(); + await expect(page.locator('[id="columns.3.defaultValue"]')).toBeDisabled(); + await expect(page.locator('[name="columns.3.isNullable"]')).toBeDisabled(); + await expect(page.locator('[name="columns.3.isUnique"]')).toBeDisabled(); }); test('should create table with foreign key constraint', async ({ @@ -234,6 +234,46 @@ test('should create table with foreign key constraint', async ({ ).toBeVisible(); }); +test('should be able to create a table with a composite key', async ({ + authenticatedNhostPage: page, +}) => { + await page.getByRole('button', { name: /new table/i }).click(); + await expect(page.getByText(/create a new table/i)).toBeVisible(); + + const tableName = snakeCase(faker.lorem.words(3)); + + await prepareTable({ + page, + name: tableName, + primaryKeys: ['id', 'second_id'], + columns: [ + { name: 'id', type: 'uuid', defaultValue: 'gen_random_uuid()' }, + { name: 'second_id', type: 'uuid', defaultValue: 'gen_random_uuid()' }, + { name: 'name', type: 'text' }, + ], + }); + + await expect(page.locator('div[data-testid="id"]')).toBeVisible(); + await expect(page.locator('div[data-testid="second_id"]')).toBeVisible(); + + await page.getByRole('button', { name: /create/i }).click(); + + await page.waitForURL( + `/orgs/${TEST_ORGANIZATION_SLUG}/projects/${TEST_PROJECT_SUBDOMAIN}/database/browser/default/public/${tableName}`, + ); + + await expect( + page.getByRole('link', { name: tableName, exact: true }), + ).toBeVisible(); + + await page + .locator(`li:has-text("${tableName}") #table-management-menu-${tableName}`) + .click(); + await page.getByText('Edit Table').click(); + await expect(page.locator('div[data-testid="id"]')).toBeVisible(); + await expect(page.locator('div[data-testid="second_id"]')).toBeVisible(); +}); + test('should not be able to create a table with a name that already exists', async ({ authenticatedNhostPage: page, }) => { @@ -280,40 +320,3 @@ test('should not be able to create a table with a name that already exists', asy page.getByText(/error: a table with this name already exists/i), ).toBeVisible(); }); - -test('should be able to create a table with a composite key', async ({ - authenticatedNhostPage: page, -}) => { - await page.getByRole('button', { name: /new table/i }).click(); - await expect(page.getByText(/create a new table/i)).toBeVisible(); - - const tableName = snakeCase(faker.lorem.words(3)); - - await prepareTable({ - page, - name: tableName, - primaryKeys: ['id', 'second_id'], - columns: [ - { name: 'id', type: 'uuid', defaultValue: 'gen_random_uuid()' }, - { name: 'second_id', type: 'uuid', defaultValue: 'gen_random_uuid()' }, - { name: 'name', type: 'text' }, - ], - }); - - await page.getByRole('button', { name: /create/i }).click(); - - await page.waitForURL( - `/orgs/${TEST_ORGANIZATION_SLUG}/projects/${TEST_PROJECT_SUBDOMAIN}/database/browser/default/public/${tableName}`, - ); - - await expect( - page.getByRole('link', { name: tableName, exact: true }), - ).toBeVisible(); - - await page - .locator(`li:has-text("${tableName}") #table-management-menu button`) - .click(); - await page.getByText('Edit Table').click(); - expect(page.locator('div[data-testid="id"]')).toBeVisible(); - expect(page.locator('div[data-testid="second_id"]')).toBeVisible(); -}); diff --git a/dashboard/e2e/database/permissions-table.test.ts b/dashboard/e2e/database/permissions-table.test.ts index 87a98598e..81d6951b2 100644 --- a/dashboard/e2e/database/permissions-table.test.ts +++ b/dashboard/e2e/database/permissions-table.test.ts @@ -41,7 +41,7 @@ test('should create a table with role permissions to select row', async ({ // Press three horizontal dots more options button next to the table name await page - .locator(`li:has-text("${tableName}") #table-management-menu button`) + .locator(`li:has-text("${tableName}") #table-management-menu-${tableName}`) .click(); await page.getByRole('menuitem', { name: /edit permissions/i }).click(); @@ -89,7 +89,7 @@ test('should create a table with role permissions and a custom check to select r // Press three horizontal dots more options button next to the table name await page - .locator(`li:has-text("${tableName}") #table-management-menu button`) + .locator(`li:has-text("${tableName}") #table-management-menu-${tableName}`) .click(); await page.getByRole('menuitem', { name: /edit permissions/i }).click(); @@ -114,7 +114,7 @@ test('should create a table with role permissions and a custom check to select r await page.getByText('Select variable...', { exact: true }).click(); - const variableSelector = await page.locator('input[role="combobox"]'); + const variableSelector = page.locator('input[role="combobox"]'); await variableSelector.fill('X-Hasura-User-Id'); diff --git a/dashboard/e2e/env.ts b/dashboard/e2e/env.ts index c35a4423f..a3f3e0d5e 100644 --- a/dashboard/e2e/env.ts +++ b/dashboard/e2e/env.ts @@ -41,12 +41,13 @@ export const TEST_USER_PASSWORD = process.env.NHOST_TEST_USER_PASSWORD!; export const TEST_PERSONAL_ORG_SLUG = process.env.NHOST_TEST_PERSONAL_ORG_SLUG!; -const freeUserEmails = process.env.NHOST_TEST_FREE_USER_EMAILS!; - -export const TEST_FREE_USER_EMAILS: string[] = JSON.parse(freeUserEmails); +export const TEST_ONBOARDING_USER = process.env.NHOST_TEST_ONBOARDING_USER!; /** * Name of the remote schema serverless function to test against. */ export const TEST_PROJECT_REMOTE_SCHEMA_NAME = process.env.NHOST_TEST_PROJECT_REMOTE_SCHEMA_NAME!; + +export const TEST_STAGING_SUBDOMAIN = process.env.NHOST_TEST_STAGING_SUBDOMAIN!; +export const TEST_STAGING_REGION = process.env.NHOST_TEST_STAGING_REGION!; diff --git a/dashboard/e2e/onboarding/onboarding.test.ts b/dashboard/e2e/onboarding/onboarding.test.ts index 1bf6305b3..056febc2e 100644 --- a/dashboard/e2e/onboarding/onboarding.test.ts +++ b/dashboard/e2e/onboarding/onboarding.test.ts @@ -1,13 +1,10 @@ import { expect, test } from '@/e2e/fixtures/auth-hook'; import { + cleanupOnboardingTestIfNeeded, getCardExpiration, getOrgSlugFromUrl, - getProjectSlugFromUrl, gotoUrl, loginWithFreeUser, - setFreeUserStarterOrgSlug, - setNewProjectName, - setNewProjectSlug, } from '@/e2e/utils'; import { faker } from '@faker-js/faker'; import type { Page } from '@playwright/test'; @@ -15,13 +12,15 @@ import type { Page } from '@playwright/test'; let page: Page; test.beforeAll(async ({ browser }) => { + await cleanupOnboardingTestIfNeeded(); + page = await browser.newPage(); await loginWithFreeUser(page); }); test('user should be able to finish onboarding', async () => { await gotoUrl(page, `/onboarding`); - expect(page.getByText('Welcome to Nhost!')).toBeVisible(); + await expect(page.getByText('Welcome to Nhost!')).toBeVisible(); const organizationName = faker.lorem.words(3).slice(0, 32); await page.getByLabel('Organization Name').fill(organizationName); @@ -68,34 +67,28 @@ test('user should be able to finish onboarding', async () => { .getByTestId('hosted-payment-submit-button') .click({ force: true }); - expect( + await expect( page.getByText('Processing new organization request').first(), ).toBeVisible(); await page.waitForSelector( 'div:has-text("Organization created successfully. Redirecting...")', ); - expect(page.getByText('Create Your First Project')).toBeVisible(); + await expect(page.getByText('Create Your First Project')).toBeVisible(); const projectName = faker.lorem.words(3).slice(0, 32); await page.getByLabel('Project Name').fill(projectName); await page.getByText('Create Project', { exact: true }).click(); - expect(page.getByText('Creating your project...')).toBeVisible(); - expect(page.getByText('Project created successfully!')).toBeVisible(); + await expect(page.getByText('Creating your project...')).toBeVisible(); + await expect(page.getByText('Project created successfully!')).toBeVisible(); - expect(page.getByText('Internal info')).toBeVisible(); + await expect(page.getByText('Internal info')).toBeVisible(); await page.waitForSelector('h3:has-text("Project Health")', { timeout: 180000, }); - - const newProjectSlug = getProjectSlugFromUrl(page.url()); - setNewProjectSlug(newProjectSlug); - setNewProjectName(organizationName); - const newOrgSlug = getOrgSlugFromUrl(page.url()); - setFreeUserStarterOrgSlug(newOrgSlug); }); test('should delete the new organization', async () => { @@ -107,12 +100,12 @@ test('should delete the new organization', async () => { await page.getByRole('button', { name: 'Delete' }).click(); await page.waitForSelector('h2:has-text("Delete Organization")'); - expect(page.getByTestId('deleteOrgButton')).toBeDisabled(); + await expect(page.getByTestId('deleteOrgButton')).toBeDisabled(); await page.getByLabel("I'm sure I want to delete this Organization").click(); - expect(page.getByTestId('deleteOrgButton')).toBeDisabled(); + await expect(page.getByTestId('deleteOrgButton')).toBeDisabled(); await page.getByLabel('I understand this action cannot be undone').click(); - expect(page.getByTestId('deleteOrgButton')).not.toBeDisabled(); + await expect(page.getByTestId('deleteOrgButton')).not.toBeDisabled(); await page.getByTestId('deleteOrgButton').click(); @@ -145,7 +138,7 @@ test('should be able to upgrade an organization', async () => { await page.getByRole('link', { name: 'Billing' }).click(); await page.waitForSelector('h4:has-text("Subscription plan")'); - expect(page.getByText('Upgrade')).toBeEnabled(); + await expect(page.getByText('Upgrade')).toBeEnabled(); await page.getByText('Upgrade').click(); await page.waitForSelector('h2:has-text("Upgrade Organization")'); @@ -205,12 +198,12 @@ test('should be able to upgrade an organization', async () => { await page.getByRole('button', { name: 'Delete' }).click(); await page.waitForSelector('h2:has-text("Delete Organization")'); - expect(page.getByTestId('deleteOrgButton')).toBeDisabled(); + await expect(page.getByTestId('deleteOrgButton')).toBeDisabled(); await page.getByLabel("I'm sure I want to delete this Organization").click(); - expect(page.getByTestId('deleteOrgButton')).toBeDisabled(); + await expect(page.getByTestId('deleteOrgButton')).toBeDisabled(); await page.getByLabel('I understand this action cannot be undone').click(); - expect(page.getByTestId('deleteOrgButton')).not.toBeDisabled(); + await expect(page.getByTestId('deleteOrgButton')).not.toBeDisabled(); await page.getByTestId('deleteOrgButton').click(); diff --git a/dashboard/e2e/remote-schemas/create-remote-schema.test.ts b/dashboard/e2e/remote-schemas/create-remote-schema.test.ts index 4dc12d0d4..0d2b00a45 100644 --- a/dashboard/e2e/remote-schemas/create-remote-schema.test.ts +++ b/dashboard/e2e/remote-schemas/create-remote-schema.test.ts @@ -4,61 +4,64 @@ import { TEST_PROJECT_SUBDOMAIN, } from '@/e2e/env'; import { expect, test } from '@/e2e/fixtures/auth-hook'; +import { cleanupRemoteSchemaTestIfNeeded } from '@/e2e/utils'; import { faker } from '@faker-js/faker'; import { snakeCase } from 'snake-case'; const REMOTE_SCHEMA_TEST_URL = `https://${TEST_PROJECT_SUBDOMAIN}.functions.eu-central-1.staging.nhost.run/v1/${TEST_PROJECT_REMOTE_SCHEMA_NAME}`; -test.describe('Remote Schemas', () => { - test.beforeEach(async ({ authenticatedNhostPage: page }) => { - const remoteSchemasRoute = `/orgs/${TEST_ORGANIZATION_SLUG}/projects/${TEST_PROJECT_SUBDOMAIN}/graphql/remote-schemas`; - await page.goto(remoteSchemasRoute); - await page.waitForURL(remoteSchemasRoute); - }); - - test('should create and delete a remote schema from URL', async ({ - authenticatedNhostPage: page, - }) => { - await page.getByRole('button', { name: /add remote schema/i }).click(); - await expect(page.getByText(/create a new remote schema/i)).toBeVisible(); - - const schemaName = snakeCase(`e2e ${faker.lorem.words(2)}`); - - await page.getByPlaceholder(/remote schema name/i).fill(schemaName); - await page - .getByPlaceholder(/graphql-service\.example\.com/i) - .fill(REMOTE_SCHEMA_TEST_URL); - - await page.getByRole('button', { name: /create/i }).click(); - - await page.waitForSelector( - 'div:has-text("The remote schema has been created successfully.")', - ); - - const detailsUrl = `/orgs/${TEST_ORGANIZATION_SLUG}/projects/${TEST_PROJECT_SUBDOMAIN}/graphql/remote-schemas/${schemaName}`; - await page.waitForURL(detailsUrl); - - await expect( - page.getByRole('link', { name: schemaName, exact: true }), - ).toBeVisible(); - - const schemaLink = page.getByRole('link', { - name: schemaName, - exact: true, - }); - - await schemaLink.hover(); - await page - .getByRole('listitem') - .filter({ hasText: schemaName }) - .getByRole('button') - .click(); - - await page.getByRole('menuitem', { name: /delete remote schema/i }).click(); - await page.getByRole('button', { name: /^delete$/i }).click(); - - await expect( - page.getByRole('link', { name: schemaName, exact: true }), - ).toHaveCount(0); - }); +test.beforeAll(async () => { + await cleanupRemoteSchemaTestIfNeeded(); +}); + +test.beforeEach(async ({ authenticatedNhostPage: page }) => { + const remoteSchemasRoute = `/orgs/${TEST_ORGANIZATION_SLUG}/projects/${TEST_PROJECT_SUBDOMAIN}/graphql/remote-schemas`; + await page.goto(remoteSchemasRoute); + await page.waitForURL(remoteSchemasRoute); +}); + +test('should create and delete a remote schema from URL', async ({ + authenticatedNhostPage: page, +}) => { + await page.getByRole('button', { name: /add remote schema/i }).click(); + await expect(page.getByText(/create a new remote schema/i)).toBeVisible(); + + const schemaName = snakeCase(`e2e ${faker.lorem.words(2)}`); + + await page.getByPlaceholder(/remote schema name/i).fill(schemaName); + await page + .getByPlaceholder(/graphql-service\.example\.com/i) + .fill(REMOTE_SCHEMA_TEST_URL); + + await page.getByRole('button', { name: /create/i }).click(); + + await page.waitForSelector( + 'div:has-text("The remote schema has been created successfully.")', + ); + + const detailsUrl = `/orgs/${TEST_ORGANIZATION_SLUG}/projects/${TEST_PROJECT_SUBDOMAIN}/graphql/remote-schemas/${schemaName}`; + await page.waitForURL(detailsUrl); + + await expect( + page.getByRole('link', { name: schemaName, exact: true }), + ).toBeVisible(); + + const schemaLink = page.getByRole('link', { + name: schemaName, + exact: true, + }); + + await schemaLink.hover(); + await page + .getByRole('listitem') + .filter({ hasText: schemaName }) + .getByRole('button') + .click(); + + await page.getByRole('menuitem', { name: /delete remote schema/i }).click(); + await page.getByRole('button', { name: /^delete$/i }).click(); + + await expect( + page.getByRole('link', { name: schemaName, exact: true }), + ).toHaveCount(0); }); diff --git a/dashboard/e2e/utils.ts b/dashboard/e2e/utils.ts index 1a2952783..5a70487a3 100644 --- a/dashboard/e2e/utils.ts +++ b/dashboard/e2e/utils.ts @@ -1,9 +1,16 @@ +/* eslint-disable no-await-in-loop */ import { - TEST_FREE_USER_EMAILS, + TEST_ONBOARDING_USER, TEST_ORGANIZATION_SLUG, + TEST_PROJECT_ADMIN_SECRET, TEST_PROJECT_SUBDOMAIN, + TEST_STAGING_REGION, + TEST_STAGING_SUBDOMAIN, TEST_USER_PASSWORD, } from '@/e2e/env'; +import { expect } from '@/e2e/fixtures/auth-hook'; +import { isEmptyValue } from '@/lib/utils'; +import type { ExportMetadataResponse } from '@/utils/hasura-api/generated/schemas'; import { faker } from '@faker-js/faker'; import { type Page } from '@playwright/test'; import { add, format } from 'date-fns-v4'; @@ -125,12 +132,26 @@ export async function prepareTable({ ), ); await page.getByLabel('Primary Key').click(); - await Promise.all( - primaryKeys.map(async (primaryKey) => { - await page.getByRole('option', { name: primaryKey, exact: true }).click(); - }), - ); + + await page + .getByRole('option', { name: columns[0].name, exact: true }) + .waitFor({ timeout: 1000 }); + await expect( + page.getByRole('option', { name: columns[0].name, exact: true }), + ).toBeVisible(); + // eslint-disable-next-line no-restricted-syntax + for (const primaryKey of primaryKeys) { + await page.waitForTimeout(1000); + await page.getByRole('option', { name: primaryKey, exact: true }).click(); + await page + .locator(`div[data-testid="${primaryKey}"]`) + .waitFor({ timeout: 1000 }); + } await page.getByText('Create a New Table').click(); + await page.waitForTimeout(1000); + await expect( + page.getByRole('option', { name: columns[0].name, exact: true }), + ).not.toBeVisible(); } /** @@ -232,42 +253,6 @@ export async function gotoUrl(page: Page, url: string) { await page.waitForURL(url, { waitUntil: 'load' }); } -let newOrgSlug: string; - -export function getNewOrgSlug() { - return newOrgSlug; -} - -export function setNewOrgSlug(slug: string) { - newOrgSlug = slug; -} - -let freeUserStarterOrgSlug: string; - -export function getFreeUserStarterOrgSlug() { - return freeUserStarterOrgSlug; -} - -export function setFreeUserStarterOrgSlug(slug: string) { - freeUserStarterOrgSlug = slug; -} - -let newProjectSlug: string; - -export function getNewProjectSlug() { - return newProjectSlug; -} - -export function setNewProjectSlug(slug: string) { - newProjectSlug = slug; -} - -export function getProjectSlugFromUrl(url: string) { - const [, projectSlug] = url.split('/projects/'); - - return projectSlug; -} - export function getOrgSlugFromUrl(url: string) { const orgSlug = url.split('/orgs/')[1].split('/projects/')[0]; return orgSlug; @@ -278,33 +263,13 @@ export function getCardExpiration() { return format(now, 'MMyy'); } -let newProjectName: string; - -export function getNewProjectName() { - return newProjectName; -} - -export function setNewProjectName(name: string) { - newProjectName = name; -} - -function getRandomUserIndex(): number { - return Math.floor(Math.random() * TEST_FREE_USER_EMAILS.length); -} - export async function loginWithFreeUser(page: Page) { - const userIndex = getRandomUserIndex(); - - const freeUserEmail = TEST_FREE_USER_EMAILS[userIndex]; - - // eslint-disable-next-line no-console - console.log(`Selected userIndex: ${userIndex}`); await page.goto('/'); await page.waitForURL('/signin'); await page.getByRole('link', { name: /continue with email/i }).click(); await page.waitForURL('/signin/email'); - await page.getByLabel('Email').fill(freeUserEmail); + await page.getByLabel('Email').fill(TEST_ONBOARDING_USER); await page.getByLabel('Password').fill(TEST_USER_PASSWORD); await page.getByRole('button', { name: /sign in/i }).click(); @@ -319,3 +284,132 @@ export function toPascalCase(str: string, divider = ' ') { .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()) .join(''); } + +export async function cleanupOnboardingTestIfNeeded() { + const signinUrl = `https://${TEST_STAGING_SUBDOMAIN}.auth.${TEST_STAGING_REGION}.nhost.run/v1/signin/email-password`; + const graphqlUrl = `https://${TEST_STAGING_SUBDOMAIN}.graphql.${TEST_STAGING_REGION}.nhost.run/v1`; + + try { + const response = await fetch(signinUrl, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + email: TEST_ONBOARDING_USER, + password: TEST_USER_PASSWORD, + }), + }); + const data = await response.json(); + + const userId = data.session?.user?.id; + const accessToken = data.session?.accessToken; + const organizationPayload = { + query: ` + query { + organizations(where: { members: {userID: {_eq: "${userId}"}} }) { + id + } + }`, + }; + + const authHeader = `Bearer ${accessToken}`; + + const orgResponse = await fetch(graphqlUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: authHeader, + }, + body: JSON.stringify(organizationPayload), + }); + + const orgData = await orgResponse.json(); + + const organizations = orgData.data?.organizations; + + if (organizations && organizations.length > 0) { + // eslint-disable-next-line no-console + console.log('Cleaning up organization'); + await Promise.all( + organizations.map(({ id }) => + fetch(graphqlUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: authHeader, + }, + body: JSON.stringify({ + query: ` + mutation { + billingDeleteOrganization(organizationID: "${id}") + } + `, + }), + }), + ), + ); + } + } catch (error) { + // eslint-disable-next-line no-console + console.log(error); + throw error; + } +} + +export async function cleanupRemoteSchemaTestIfNeeded() { + try { + const response = await fetch( + `https://${TEST_PROJECT_SUBDOMAIN}.hasura.eu-central-1.staging.nhost.run/v1/metadata`, + { + method: 'POST', + headers: { + 'x-hasura-admin-secret': TEST_PROJECT_ADMIN_SECRET, + }, + body: JSON.stringify({ + type: 'export_metadata', + version: 2, + args: {}, + }), + }, + ); + const data = (await response.json()) as ExportMetadataResponse; + + const remoteSchemas = data.metadata?.remote_schemas; + + if (isEmptyValue(remoteSchemas)) { + return; + } + + const schemasToDelete = remoteSchemas!.filter((remoteSchema) => + /^e2e_\w+_\w+$/.test(remoteSchema.name), + ); + + await Promise.all( + schemasToDelete.map((remoteSchema) => + fetch( + `https://${TEST_PROJECT_SUBDOMAIN}.hasura.eu-central-1.staging.nhost.run/v1/metadata`, + { + method: 'POST', + headers: { + 'x-hasura-admin-secret': TEST_PROJECT_ADMIN_SECRET, + }, + body: JSON.stringify({ + args: [ + { + type: 'remove_remote_schema', + args: { + name: remoteSchema.name, + }, + }, + ], + source: 'default', + type: 'bulk', + }), + }, + ), + ), + ); + } catch (error) { + console.error(error); + throw error; + } +} diff --git a/dashboard/next.config.js b/dashboard/next.config.js index e6100b9e7..a9769d2bb 100644 --- a/dashboard/next.config.js +++ b/dashboard/next.config.js @@ -4,21 +4,31 @@ const withBundleAnalyzer = require('@next/bundle-analyzer')({ }); const { version } = require('./package.json'); -const cspHeader = ` - default-src 'self' *.nhost.run wss://*.nhost.run nhost.run wss://nhost.run; - script-src 'self' 'unsafe-eval' cdn.segment.com js.stripe.com challenges.cloudflare.com googletagmanager.com; - connect-src 'self' *.nhost.run wss://*.nhost.run nhost.run wss://nhost.run discord.com api.segment.io api.segment.com cdn.segment.com nhost.zendesk.com; - style-src 'self' 'unsafe-inline'; - img-src 'self' blob: data: github.com avatars.githubusercontent.com s.gravatar.com *.nhost.run nhost.run; - font-src 'self' data:; - object-src 'none'; - base-uri 'self'; - form-action 'self'; - frame-ancestors 'none'; - frame-src 'self' js.stripe.com challenges.cloudflare.com; - block-all-mixed-content; - upgrade-insecure-requests; -`; +function getCspHeader() { + switch (process.env.CSP_MODE) { + case 'disabled': + return null; + case 'custom': + return process.env.CSP_HEADER || null; + case 'nhost': + default: + return [ + "default-src 'self' *.nhost.run wss://*.nhost.run nhost.run wss://nhost.run", + "script-src 'self' 'unsafe-eval' cdn.segment.com js.stripe.com challenges.cloudflare.com googletagmanager.com", + "connect-src 'self' *.nhost.run wss://*.nhost.run nhost.run wss://nhost.run discord.com api.segment.io api.segment.com cdn.segment.com nhost.zendesk.com api.github.com", + "style-src 'self' 'unsafe-inline'", + "img-src 'self' blob: data: github.com avatars.githubusercontent.com s.gravatar.com *.nhost.run nhost.run", + "font-src 'self' data:", + "object-src 'none'", + "base-uri 'self'", + "form-action 'self'", + "frame-ancestors 'none'", + "frame-src 'self' js.stripe.com challenges.cloudflare.com", + "block-all-mixed-content", + "upgrade-insecure-requests", + ].join('; ') + ';'; + } +} module.exports = withBundleAnalyzer({ reactStrictMode: false, @@ -34,13 +44,19 @@ module.exports = withBundleAnalyzer({ dirs: ['src'], }, async headers() { + const cspHeader = getCspHeader(); + + if (!cspHeader) { + return []; // No CSP headers + } + return [ { - source: '/(.*)', + source: '/:path*', headers: [ { key: 'Content-Security-Policy', - value: cspHeader.replace(/\s+/g, ' ').trim(), + value: cspHeader, }, { key: 'X-Frame-Options', @@ -110,4 +126,4 @@ module.exports = withBundleAnalyzer({ }, ]; }, -}); +}); \ No newline at end of file diff --git a/dashboard/package.json b/dashboard/package.json index 9ef02bc2e..cb571d716 100644 --- a/dashboard/package.json +++ b/dashboard/package.json @@ -9,15 +9,15 @@ "analyze": "ANALYZE=true pnpm build --no-lint", "start": "next start", "lint": "next lint --max-warnings 0", - "test": "vitest --run", + "test": "pnpm lint && pnpm test:vitest", + "test:vitest": "vitest --run", "test:watch": "vitest", "generate": "echo 'This needs to be fixed.'", "codegen": "DOTENV_CONFIG_PATH=./.env.local graphql-codegen -r dotenv/config --config graphql.config.yaml --errors-only", "codegen-graphite": "graphql-codegen --config graphite.graphql.config.yaml --errors-only", "codegen-hasura-api": "orval --config src/utils/hasura-api/orval.config.ts", "format": "prettier --write \"src/**/*.{js,ts,tsx,jsx,json,md}\" --plugin-search-dir=.", - "storybook": "start-storybook -p 6006 -s public", - "build-storybook": "build-storybook", + "install-browsers": "pnpm playwright install && pnpm playwright install-deps", "e2e:tests": "pnpm playwright test --config=playwright.config.ts -x", "e2e": "pnpm e2e:tests --project=main", "e2e:local": "pnpm e2e:tests --project=local", @@ -38,6 +38,7 @@ "@graphiql/react": "^0.22.3", "@graphiql/toolkit": "^0.9.1", "@headlessui/react": "^1.7.18", + "@hello-pangea/dnd": "^18.0.1", "@heroicons/react": "^1.0.6", "@hookform/resolvers": "^3.9.0", "@iarna/toml": "^2.2.5", @@ -60,7 +61,7 @@ "@radix-ui/react-radio-group": "^1.2.0", "@radix-ui/react-select": "^2.1.2", "@radix-ui/react-separator": "^1.1.0", - "@radix-ui/react-slot": "^1.1.1", + "@radix-ui/react-slot": "^1.1.2", "@radix-ui/react-switch": "^1.2.6", "@radix-ui/react-tabs": "^1.1.3", "@radix-ui/react-tooltip": "^1.1.2", @@ -93,7 +94,7 @@ "just-kebab-case": "^4.2.0", "jwt-decode": "^4.0.0", "lodash.debounce": "^4.0.8", - "lucide-react": "^0.416.0", + "lucide-react": "^0.552.0", "next": "^14.2.31", "next-nprogress-bar": "^2.3.13", "next-seo": "^6.5.0", @@ -110,7 +111,6 @@ "react-hot-toast": "^2.4.1", "react-intersection-observer": "^9.8.1", "react-is": "18.2.0", - "react-loading-skeleton": "^2.2.0", "react-markdown": "^9.0.1", "react-merge-refs": "^3.0.2", "react-resizable-layout": "^0.7.2", @@ -135,21 +135,12 @@ "@babel/core": "^7.24.3", "@eslint/js": "9.26.0", "@faker-js/faker": "^7.6.0", - "@graphql-codegen/cli": "^5.0.2", + "@graphql-codegen/cli": "^6.0.0", "@graphql-codegen/typescript": "^3.0.4", "@graphql-codegen/typescript-operations": "^3.0.4", "@graphql-codegen/typescript-react-apollo": "^3.3.7", "@next/bundle-analyzer": "^12.3.4", "@playwright/test": "1.54.1", - "@storybook/addon-actions": "^6.5.16", - "@storybook/addon-essentials": "^6.5.16", - "@storybook/addon-interactions": "^6.5.16", - "@storybook/addon-links": "^6.5.16", - "@storybook/addon-postcss": "^2.0.0", - "@storybook/builder-webpack5": "^6.5.16", - "@storybook/manager-webpack5": "^6.5.16", - "@storybook/react": "^7.6.17", - "@storybook/testing-library": "^0.2.2", "@tailwindcss/typography": "^0.5.12", "@testing-library/dom": "^9.3.4", "@testing-library/jest-dom": "^5.17.0", @@ -159,7 +150,7 @@ "@types/bcryptjs": "^2.4.6", "@types/jest": "^29.5.12", "@types/lodash.debounce": "^4.0.9", - "@types/node": "^16.18.93", + "@types/node": "^20.14.8", "@types/pluralize": "^0.0.30", "@types/react": "18.2.73", "@types/react-dom": "^18.2.23", @@ -169,8 +160,8 @@ "@types/validator": "^13.11.9", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", - "@vitejs/plugin-react": "^4.2.1", - "@vitest/coverage-v8": "^0.32.4", + "@vitejs/plugin-react": "^4.7.0", + "@vitest/coverage-v8": "^3.2.4", "audit-ci": "^6.6.1", "autoprefixer": "^10.4.19", "babel-loader": "^8.3.0", @@ -194,24 +185,21 @@ "eslint-plugin-vue": "^9.26.0", "jsdom": "^22.1.0", "lint-staged": "^15.2.2", - "msw": "^1.3.5", - "msw-storybook-addon": "^1.10.0", + "msw": "^2.11.4", "node-fetch": "^3.3.2", "orval": "^7.11.2", "postcss": "^8.4.38", "prettier": "^3.4.2", "prettier-plugin-organize-imports": "^4.1.0", "prettier-plugin-tailwindcss": "^0.6.11", - "react-date-fns-hooks": "^0.9.4", "require-from-string": "^2.0.2", "snake-case": "^3.0.4", - "storybook-addon-next-router": "^4.0.2", "tailwindcss": "^3.4.12", "ts-node": "^10.9.2", "tsconfig-paths-webpack-plugin": "^4.1.0", - "vite": "^5.4.20", + "vite": "^5.4.21", "vite-tsconfig-paths": "^4.3.2", - "vitest": "^0.32.4" + "vitest": "^3.2.4" }, "browserslist": { "production": [ @@ -242,6 +230,9 @@ "@lezer/highlight": "^1.0.0" } } + }, + "overrides": { + "esbuild@<=0.24.2": ">=0.25.0" } } } diff --git a/dashboard/playwright.config.ts b/dashboard/playwright.config.ts index 8514179b3..927be05f5 100644 --- a/dashboard/playwright.config.ts +++ b/dashboard/playwright.config.ts @@ -6,14 +6,14 @@ dotenv.config({ path: path.resolve(__dirname, '.env.test') }); export default defineConfig({ testDir: './e2e', - maxFailures: 1, + maxFailures: process.env.CI ? 3 : 1, timeout: 120 * 1000, expect: { timeout: 10000, }, fullyParallel: false, forbidOnly: !!process.env.CI, - retries: 2, + retries: process.env.CI ? 2 : 0, workers: 1, reporter: 'html', use: { diff --git a/dashboard/pnpm-lock.yaml b/dashboard/pnpm-lock.yaml index 4b8a04913..ab2de7db9 100644 --- a/dashboard/pnpm-lock.yaml +++ b/dashboard/pnpm-lock.yaml @@ -4,6 +4,9 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + esbuild@<=0.24.2: '>=0.25.0' + packageExtensionsChecksum: sha256-gRFeykwiwMfEE6etcYx6N48XwVeKzxbqNveL7KTQgSQ= importers: @@ -45,13 +48,16 @@ importers: version: 5.1.0 '@graphiql/react': specifier: ^0.22.3 - version: 0.22.3(@codemirror/language@6.10.2)(@types/node@16.18.105)(@types/react-dom@18.3.0)(@types/react@18.2.73)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 0.22.3(@codemirror/language@6.10.2)(@types/node@20.14.8)(@types/react-dom@18.3.0)(@types/react@18.2.73)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@graphiql/toolkit': specifier: ^0.9.1 - version: 0.9.1(@types/node@16.18.105)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1) + version: 0.9.1(@types/node@20.14.8)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1) '@headlessui/react': specifier: ^1.7.18 version: 1.7.19(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@hello-pangea/dnd': + specifier: ^18.0.1 + version: 18.0.1(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@heroicons/react': specifier: ^1.0.6 version: 1.0.6(react@18.2.0) @@ -119,8 +125,8 @@ importers: specifier: ^1.1.0 version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-slot': - specifier: ^1.1.1 - version: 1.1.2(@types/react@18.2.73)(react@18.2.0) + specifier: ^1.1.2 + version: 1.2.3(@types/react@18.2.73)(react@18.2.0) '@radix-ui/react-switch': specifier: ^1.2.6 version: 1.2.6(@types/react-dom@18.3.0)(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -144,7 +150,7 @@ importers: version: 1.54.2 '@tailwindcss/forms': specifier: ^0.5.7 - version: 0.5.7(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@16.18.105)(typescript@5.8.3))) + version: 0.5.7(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@20.14.8)(typescript@5.8.3))) '@tanstack/react-query': specifier: ^4.36.1 version: 4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -165,7 +171,7 @@ importers: version: 4.22.1(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.26.4) '@uiw/react-codemirror': specifier: ^4.21.25 - version: 4.22.1(@babel/runtime@7.26.10)(@codemirror/autocomplete@6.16.2(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.26.4)(@lezer/common@1.2.1))(@codemirror/language@6.10.2)(@codemirror/lint@6.8.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.26.4)(codemirror@5.65.16)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 4.22.1(@babel/runtime@7.28.4)(@codemirror/autocomplete@6.16.2(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.26.4)(@lezer/common@1.2.1))(@codemirror/language@6.10.2)(@codemirror/lint@6.8.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.26.4)(codemirror@5.65.16)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) bcryptjs: specifier: ^2.4.3 version: 2.4.3 @@ -195,7 +201,7 @@ importers: version: 1.7.1 graphiql: specifier: ^3.3.1 - version: 3.3.1(@codemirror/language@6.10.2)(@types/node@16.18.105)(@types/react-dom@18.3.0)(@types/react@18.2.73)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 3.3.1(@codemirror/language@6.10.2)(@types/node@20.14.8)(@types/react-dom@18.3.0)(@types/react@18.2.73)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) graphql: specifier: 16.8.1 version: 16.8.1 @@ -218,8 +224,8 @@ importers: specifier: ^4.0.8 version: 4.0.8 lucide-react: - specifier: ^0.416.0 - version: 0.416.0(react@18.2.0) + specifier: ^0.552.0 + version: 0.552.0(react@18.2.0) next: specifier: ^14.2.31 version: 14.2.32(@babel/core@7.26.10)(@playwright/test@1.54.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -268,9 +274,6 @@ importers: react-is: specifier: 18.2.0 version: 18.2.0 - react-loading-skeleton: - specifier: ^2.2.0 - version: 2.2.0(react@18.2.0) react-markdown: specifier: ^9.0.1 version: 9.0.1(@types/react@18.2.73)(react@18.2.0) @@ -306,7 +309,7 @@ importers: version: 1.14.0 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@16.18.105)(typescript@5.8.3))) + version: 1.0.7(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@20.14.8)(typescript@5.8.3))) timezones-list: specifier: ^3.1.0 version: 3.1.0 @@ -339,8 +342,8 @@ importers: specifier: ^7.6.0 version: 7.6.0 '@graphql-codegen/cli': - specifier: ^5.0.2 - version: 5.0.2(@types/node@16.18.105)(encoding@0.1.13)(enquirer@2.4.1)(graphql@16.8.1)(typescript@5.8.3) + specifier: ^6.0.0 + version: 6.0.0(@types/node@20.14.8)(encoding@0.1.13)(graphql@16.8.1)(typescript@5.8.3) '@graphql-codegen/typescript': specifier: ^3.0.4 version: 3.0.4(encoding@0.1.13)(graphql@16.8.1) @@ -356,36 +359,9 @@ importers: '@playwright/test': specifier: 1.54.1 version: 1.54.1 - '@storybook/addon-actions': - specifier: ^6.5.16 - version: 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/addon-essentials': - specifier: ^6.5.16 - version: 6.5.16(@babel/core@7.26.10)(@storybook/builder-webpack5@6.5.16(esbuild@0.18.20)(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3))(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.97.1(esbuild@0.18.20)) - '@storybook/addon-interactions': - specifier: ^6.5.16 - version: 6.5.16(@types/react@18.2.73)(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) - '@storybook/addon-links': - specifier: ^6.5.16 - version: 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/addon-postcss': - specifier: ^2.0.0 - version: 2.0.0(webpack@5.97.1(esbuild@0.18.20)) - '@storybook/builder-webpack5': - specifier: ^6.5.16 - version: 6.5.16(esbuild@0.18.20)(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) - '@storybook/manager-webpack5': - specifier: ^6.5.16 - version: 6.5.16(encoding@0.1.13)(esbuild@0.18.20)(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) - '@storybook/react': - specifier: ^7.6.17 - version: 7.6.20(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) - '@storybook/testing-library': - specifier: ^0.2.2 - version: 0.2.2 '@tailwindcss/typography': specifier: ^0.5.12 - version: 0.5.13(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@16.18.105)(typescript@5.8.3))) + version: 0.5.13(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@20.14.8)(typescript@5.8.3))) '@testing-library/dom': specifier: ^9.3.4 version: 9.3.4 @@ -411,8 +387,8 @@ importers: specifier: ^4.0.9 version: 4.0.9 '@types/node': - specifier: ^16.18.93 - version: 16.18.105 + specifier: ^20.14.8 + version: 20.14.8 '@types/pluralize': specifier: ^0.0.30 version: 0.0.30 @@ -441,11 +417,11 @@ importers: specifier: ^6.21.0 version: 6.21.0(eslint@8.57.0)(typescript@5.8.3) '@vitejs/plugin-react': - specifier: ^4.2.1 - version: 4.3.1(vite@5.4.20(@types/node@16.18.105)(terser@5.37.0)) + specifier: ^4.7.0 + version: 4.7.0(vite@5.4.21(@types/node@20.14.8)(terser@5.44.0)) '@vitest/coverage-v8': - specifier: ^0.32.4 - version: 0.32.4(vitest@0.32.4(jsdom@22.1.0)(playwright@1.54.1)(terser@5.37.0)) + specifier: ^3.2.4 + version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.14.8)(jsdom@22.1.0)(msw@2.11.4(@types/node@20.14.8)(typescript@5.8.3))(terser@5.44.0)) audit-ci: specifier: ^6.6.1 version: 6.6.1 @@ -454,7 +430,7 @@ importers: version: 10.4.20(postcss@8.5.3) babel-loader: specifier: ^8.3.0 - version: 8.3.0(@babel/core@7.26.10)(webpack@5.97.1(esbuild@0.18.20)) + version: 8.3.0(@babel/core@7.26.10)(webpack@5.97.1) babel-plugin-transform-remove-console: specifier: ^6.9.4 version: 6.9.4 @@ -516,11 +492,8 @@ importers: specifier: ^15.2.2 version: 15.2.5 msw: - specifier: ^1.3.5 - version: 1.3.5(encoding@0.1.13)(typescript@5.8.3) - msw-storybook-addon: - specifier: ^1.10.0 - version: 1.10.0(msw@1.3.5(encoding@0.1.13)(typescript@5.8.3)) + specifier: ^2.11.4 + version: 2.11.4(@types/node@20.14.8)(typescript@5.8.3) node-fetch: specifier: ^3.3.2 version: 3.3.2 @@ -539,36 +512,30 @@ importers: prettier-plugin-tailwindcss: specifier: ^0.6.11 version: 0.6.11(prettier-plugin-organize-imports@4.1.0(prettier@3.4.2)(typescript@5.8.3))(prettier@3.4.2) - react-date-fns-hooks: - specifier: ^0.9.4 - version: 0.9.4(date-fns@2.30.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) require-from-string: specifier: ^2.0.2 version: 2.0.2 snake-case: specifier: ^3.0.4 version: 3.0.4 - storybook-addon-next-router: - specifier: ^4.0.2 - version: 4.0.2(@storybook/addon-actions@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@storybook/addons@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@storybook/client-api@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(next@14.2.32(@babel/core@7.26.10)(@playwright/test@1.54.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) tailwindcss: specifier: ^3.4.12 - version: 3.4.16(ts-node@10.9.2(@types/node@16.18.105)(typescript@5.8.3)) + version: 3.4.16(ts-node@10.9.2(@types/node@20.14.8)(typescript@5.8.3)) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@16.18.105)(typescript@5.8.3) + version: 10.9.2(@types/node@20.14.8)(typescript@5.8.3) tsconfig-paths-webpack-plugin: specifier: ^4.1.0 version: 4.2.0 vite: - specifier: ^5.4.20 - version: 5.4.20(@types/node@16.18.105)(terser@5.37.0) + specifier: ^5.4.21 + version: 5.4.21(@types/node@20.14.8)(terser@5.44.0) vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(typescript@5.8.3)(vite@5.4.20(@types/node@16.18.105)(terser@5.37.0)) + version: 4.3.2(typescript@5.8.3)(vite@5.4.21(@types/node@20.14.8)(terser@5.44.0)) vitest: - specifier: ^0.32.4 - version: 0.32.4(jsdom@22.1.0)(playwright@1.54.1)(terser@5.37.0) + specifier: ^3.2.4 + version: 3.2.4(@types/debug@4.1.12)(@types/node@20.14.8)(jsdom@22.1.0)(msw@2.11.4(@types/node@20.14.8)(typescript@5.8.3))(terser@5.44.0) packages: @@ -627,9 +594,11 @@ packages: peerDependencies: graphql: '*' - '@ardatan/sync-fetch@0.0.1': - resolution: {integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==} - engines: {node: '>=14'} + '@ardatan/relay-compiler@12.0.3': + resolution: {integrity: sha512-mBDFOGvAoVlWaWqs3hm1AciGHSQE1rqFc/liZTyYz/Oek9yZdT5H26pH2zAFuEiTiBVPPyMuqf5VjOFPI2DGsQ==} + hasBin: true + peerDependencies: + graphql: '*' '@asyncapi/specs@6.10.0': resolution: {integrity: sha512-vB5oKLsdrLUORIZ5BXortZTlVyGWWMC1Nud/0LtgxQ3Yn2738HigAD6EVqScvpPsDUI/bcLVsYEXN4dtXQHVng==} @@ -642,14 +611,14 @@ packages: resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} engines: {node: '>=6.9.0'} - '@babel/core@7.12.9': - resolution: {integrity: sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==} - engines: {node: '>=6.9.0'} - '@babel/core@7.26.10': resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} engines: {node: '>=6.9.0'} + '@babel/core@7.28.4': + resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} + engines: {node: '>=6.9.0'} + '@babel/eslint-parser@7.28.0': resolution: {integrity: sha512-N4ntErOlKvcbTt01rr5wj3y55xnIdx1ymrfIr8C2WnM1Y9glFgWaGDEULJIazOX3XM9NRzhfJ6zZnQ1sBNWU+w==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} @@ -685,11 +654,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-define-polyfill-provider@0.1.5': - resolution: {integrity: sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==} - peerDependencies: - '@babel/core': ^7.4.0-0 - '@babel/helper-define-polyfill-provider@0.6.5': resolution: {integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==} peerDependencies: @@ -725,13 +689,16 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.28.3': + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.24.7': resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.10.4': - resolution: {integrity: sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==} - '@babel/helper-plugin-utils@7.27.1': resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} @@ -780,11 +747,20 @@ packages: resolution: {integrity: sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.28.4': + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.28.3': resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.28.4': + resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7': resolution: {integrity: sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==} engines: {node: '>=6.9.0'} @@ -822,12 +798,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-proposal-export-default-from@7.24.7': - resolution: {integrity: sha512-CcmFwUJ3tKhLjPdt4NP+SHMshebytF8ZTYOv5ZDpkzq2sin80Wb5vJrGt8fhPrORQCfoSa0LAxC/DW+GAC5+Hw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6': resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} @@ -842,12 +812,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-proposal-object-rest-spread@7.12.1': - resolution: {integrity: sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-proposal-object-rest-spread@7.20.7': resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} @@ -909,12 +873,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-export-default-from@7.24.7': - resolution: {integrity: sha512-bTPz4/635WQ9WhwsyPdxUJDVpsi/X9BMmy/8Rf/UAlOO4jSql4CxUCjWI5PiM+jG+c4LVPTScoTw80geFj9+Bw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-export-namespace-from@7.8.3': resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: @@ -932,6 +890,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-assertions@7.27.1': + resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-attributes@7.24.7': resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==} engines: {node: '>=6.9.0'} @@ -948,11 +912,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.12.1': - resolution: {integrity: sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.25.9': resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} engines: {node: '>=6.9.0'} @@ -1253,14 +1212,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-self@7.24.7': - resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} + '@babel/plugin-transform-react-jsx-self@7.27.1': + resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.24.7': - resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} + '@babel/plugin-transform-react-jsx-source@7.27.1': + resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1378,12 +1337,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/register@7.24.6': - resolution: {integrity: sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/regjsgen@0.8.0': resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} @@ -1391,11 +1344,9 @@ packages: resolution: {integrity: sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.5.5': - resolution: {integrity: sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==} - - '@babel/runtime@7.7.2': - resolution: {integrity: sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw==} + '@babel/runtime@7.28.4': + resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} + engines: {node: '>=6.9.0'} '@babel/template@7.27.2': resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} @@ -1405,20 +1356,21 @@ packages: resolution: {integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.28.4': + resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} + engines: {node: '>=6.9.0'} + '@babel/types@7.28.2': resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} engines: {node: '>=6.9.0'} - '@base2/pretty-print-object@1.0.1': - resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} + '@babel/types@7.28.4': + resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} + engines: {node: '>=6.9.0'} - '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - - '@cnakazawa/watch@1.0.4': - resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} - engines: {node: '>=0.1.95'} - hasBin: true + '@bcoe/v8-coverage@1.0.2': + resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} + engines: {node: '>=18'} '@codemirror/autocomplete@6.16.2': resolution: {integrity: sha512-MjfDrHy0gHKlPWsvSsikhO1+BOh+eBHNgfH1OXs1+DAf30IonQldgMM3kxLDTG9ktE7kDLaA1j/l7KMPA4KNfw==} @@ -1437,6 +1389,9 @@ packages: '@codemirror/language@6.10.2': resolution: {integrity: sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==} + '@codemirror/language@6.11.3': + resolution: {integrity: sha512-9HBM2XnwDj7fnu0551HkGdrUrrqmYq/WC5iv6nbY2WdicXdGbhR/gfbZOH73Aqj4351alY1+aoG9rCNfiwS1RA==} + '@codemirror/legacy-modes@6.4.0': resolution: {integrity: sha512-5m/K+1A6gYR0e+h/dEde7LoGimMjRtWXZFg4Lo70cc8HzjSdHe3fLwjWMR0VRl5KFT1SxalSap7uMgPKF28wBA==} @@ -1497,51 +1452,12 @@ packages: moment: optional: true - '@design-systems/utils@2.12.0': - resolution: {integrity: sha512-Y/d2Zzr+JJfN6u1gbuBUb1ufBuLMJJRZQk+dRmw8GaTpqKx5uf7cGUYGTwN02dIb3I+Tf+cW8jcGBTRiFxdYFg==} - peerDependencies: - '@types/react': '*' - react: '>= 16.8.6' - react-dom: '>= 16.8.6' - - '@devtools-ds/object-inspector@1.2.1': - resolution: {integrity: sha512-nrAVVj4c4Iv9958oE4HA7Mk6T+4Mn/4xBRlFDeX4Ps6SMzsqO8bKhw/y6+bOfNyb/TYHmC0/pnPS68GDVZcg5Q==} - peerDependencies: - react: '>= 16.8.6' - - '@devtools-ds/object-parser@1.2.1': - resolution: {integrity: sha512-6qB+THhQfJqXyHn8wpJ1KFxXcbpLTlRyCVmkelhr0c1+MPLZcC+0XJxpVZ1AOEXPa6CWVZThBYSCvnYQEvfCqw==} - - '@devtools-ds/themes@1.2.1': - resolution: {integrity: sha512-4/KFsHnokGxUq8CSCchINcVBb6fQ74HtEfNtMuitGtGg3VCRV0kaVSOsz6wzShzhLEaVLd5coSRQKaZj7yx72w==} - peerDependencies: - react: '>= 16.8.6' - - '@devtools-ds/tree@1.2.1': - resolution: {integrity: sha512-2ZHG28oWJno0gD+20EoSJO0yffm6JS5r7YzYhGMkrnLGvcCRZuwXSxMmIshSPLIR0cjidiAfGCqsrigHIR4ZQA==} - peerDependencies: - react: '>= 16.8.6' - '@emotion/babel-plugin@11.11.0': resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} - '@emotion/cache@10.0.29': - resolution: {integrity: sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==} - '@emotion/cache@11.11.0': resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==} - '@emotion/core@10.3.1': - resolution: {integrity: sha512-447aUEjPIm0MnE6QYIaFz9VQOHSXf4Iu6EWOIqq11EAPqinkSZmfymPTmlOE3QjLv846lH4JVZBUOtwGbuQoww==} - peerDependencies: - react: '>=16.3.0' - - '@emotion/css@10.0.27': - resolution: {integrity: sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==} - - '@emotion/hash@0.8.0': - resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} - '@emotion/hash@0.9.1': resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} @@ -1566,9 +1482,6 @@ packages: '@types/react': optional: true - '@emotion/serialize@0.11.16': - resolution: {integrity: sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==} - '@emotion/serialize@1.1.4': resolution: {integrity: sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==} @@ -1580,9 +1493,6 @@ packages: '@emotion/css': optional: true - '@emotion/sheet@0.9.4': - resolution: {integrity: sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==} - '@emotion/sheet@1.2.2': resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} @@ -1596,12 +1506,6 @@ packages: '@types/react': optional: true - '@emotion/stylis@0.8.5': - resolution: {integrity: sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==} - - '@emotion/unitless@0.7.5': - resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} - '@emotion/unitless@0.8.1': resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} @@ -1610,23 +1514,23 @@ packages: peerDependencies: react: '>=16.8.0' - '@emotion/utils@0.11.3': - resolution: {integrity: sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==} - '@emotion/utils@1.2.1': resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==} - '@emotion/weak-memoize@0.2.5': - resolution: {integrity: sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==} - '@emotion/weak-memoize@0.3.1': resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] + '@envelop/core@5.3.2': + resolution: {integrity: sha512-06Mu7fmyKzk09P2i2kHpGfItqLLgCq7uO5/nX4fc/iHMplWPNuAx4iYR+WXUQoFHDnP6EUbceQNQ5iyeMz9f3g==} + engines: {node: '>=18.0.0'} + + '@envelop/instrumentation@1.0.0': + resolution: {integrity: sha512-cxgkB66RQB95H3X27jlnxCRNTmPuSTgmBAq6/4n2Dtv4hsk4yz8FadA1ggmd0uZzvKqWD6CR+WFgTjhDqg7eyw==} + engines: {node: '>=18.0.0'} + + '@envelop/types@5.2.1': + resolution: {integrity: sha512-CsFmA3u3c2QoLDTfEpGr4t25fjMU31nyvse7IzWTvb0ZycuPjMjb0fjlheh+PbhBYb9YLugnT2uY6Mwcg1o+Zg==} + engines: {node: '>=18.0.0'} '@esbuild/aix-ppc64@0.25.10': resolution: {integrity: sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==} @@ -1634,288 +1538,96 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.18.20': - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.25.10': resolution: {integrity: sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.18.20': - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.25.10': resolution: {integrity: sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.18.20': - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.25.10': resolution: {integrity: sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.18.20': - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.25.10': resolution: {integrity: sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.18.20': - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.25.10': resolution: {integrity: sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.18.20': - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.25.10': resolution: {integrity: sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.18.20': - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.25.10': resolution: {integrity: sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.18.20': - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.25.10': resolution: {integrity: sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.18.20': - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.25.10': resolution: {integrity: sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.18.20': - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.25.10': resolution: {integrity: sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.18.20': - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.25.10': resolution: {integrity: sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.18.20': - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.25.10': resolution: {integrity: sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.18.20': - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.25.10': resolution: {integrity: sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.18.20': - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.25.10': resolution: {integrity: sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.18.20': - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.25.10': resolution: {integrity: sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.18.20': - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.25.10': resolution: {integrity: sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==} engines: {node: '>=18'} @@ -1928,18 +1640,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.18.20': - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.25.10': resolution: {integrity: sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==} engines: {node: '>=18'} @@ -1952,18 +1652,6 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.18.20': - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.25.10': resolution: {integrity: sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==} engines: {node: '>=18'} @@ -1976,72 +1664,24 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.18.20': - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.25.10': resolution: {integrity: sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.18.20': - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.25.10': resolution: {integrity: sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.18.20': - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.25.10': resolution: {integrity: sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.18.20': - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.25.10': resolution: {integrity: sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==} engines: {node: '>=18'} @@ -2077,6 +1717,9 @@ packages: resolution: {integrity: sha512-XK6BTq1NDMo9Xqw/YkYyGjSsg44fbNwYRx7QK2CuoQgyy+f1rrTDHoExVM5PsyXCtfl2vs2vVJ0MN0yN6LppRw==} engines: {node: '>=14.0.0', npm: '>=6.0.0'} + '@fastify/busboy@3.2.0': + resolution: {integrity: sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA==} + '@floating-ui/core@1.6.3': resolution: {integrity: sha512-1ZpCvYf788/ZXOhRQGFxnYQOVgeU+pi0i+d0Ow34La7qjIXETi6RNswGVKkA6KcDO8/+Ysu2E/CeUmmeEBDvTg==} @@ -2117,13 +1760,15 @@ packages: graphql-ws: optional: true - '@graphql-codegen/add@5.0.2': - resolution: {integrity: sha512-ouBkSvMFUhda5VoKumo/ZvsZM9P5ZTyDsI8LW18VxSNWOjrTeLXBWHG8Gfaai0HwhflPtCYVABbriEcOmrRShQ==} + '@graphql-codegen/add@6.0.0': + resolution: {integrity: sha512-biFdaURX0KTwEJPQ1wkT6BRgNasqgQ5KbCI1a3zwtLtO7XTo7/vKITPylmiU27K5DSOWYnY/1jfSqUAEBuhZrQ==} + engines: {node: '>=16'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-codegen/cli@5.0.2': - resolution: {integrity: sha512-MBIaFqDiLKuO4ojN6xxG9/xL9wmfD3ZjZ7RsPjwQnSHBCUXnEkdKvX+JVpx87Pq29Ycn8wTJUguXnTZ7Di0Mlw==} + '@graphql-codegen/cli@6.0.0': + resolution: {integrity: sha512-tvchLVCMtorDE+UwgQbrjyaQK16GCZA+QomTxZazRx64ixtgmbEiQV7GhCBy0y0Bo7/tcTJb6sy9G/TL/BgiOg==} + engines: {node: '>=16'} hasBin: true peerDependencies: '@parcel/watcher': ^2.1.0 @@ -2132,18 +1777,25 @@ packages: '@parcel/watcher': optional: true - '@graphql-codegen/client-preset@4.2.5': - resolution: {integrity: sha512-hAdB6HN8EDmkoBtr0bPUN/7NH6svzqbcTDMWBCRXPESXkl7y80po+IXrXUjsSrvhKG8xkNXgJNz/2mjwHzywcA==} + '@graphql-codegen/client-preset@5.1.0': + resolution: {integrity: sha512-MYMy9dIlAgT3q1U8WUys6Y8yt/T9WLsm1DczRtrCpV5N11v4Rlg3hGWQmEvhJtBbWxgzfYoHZHb0TohtbLkJ+g==} + engines: {node: '>=16'} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql-sock: ^1.0.0 + peerDependenciesMeta: + graphql-sock: + optional: true + + '@graphql-codegen/core@5.0.0': + resolution: {integrity: sha512-vLTEW0m8LbE4xgRwbFwCdYxVkJ1dBlVJbQyLb9Q7bHnVFgHAP982Xo8Uv7FuPBmON+2IbTjkCqhFLHVZbqpvjQ==} + engines: {node: '>=16'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-codegen/core@4.0.2': - resolution: {integrity: sha512-IZbpkhwVqgizcjNiaVzNAzm/xbWT6YnGgeOLwVjm4KbJn3V2jchVtuzHH09G5/WkkLSk2wgbXNdwjM41JxO6Eg==} - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - - '@graphql-codegen/gql-tag-operations@4.0.6': - resolution: {integrity: sha512-y6iXEDpDNjwNxJw3WZqX1/Znj0QHW7+y8O+t2V8qvbTT+3kb2lr9ntc8By7vCr6ctw9tXI4XKaJgpTstJDOwFA==} + '@graphql-codegen/gql-tag-operations@5.0.2': + resolution: {integrity: sha512-iK+LFGv4ihHKeerADFPTL7Iq4iNr+J1jm2+GUMtwTSAL4nGk+BdfyruV7eR53R7Des8NFdI+9hBzKbbob7VwGQ==} + engines: {node: '>=16'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -2157,8 +1809,9 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-codegen/plugin-helpers@5.0.3': - resolution: {integrity: sha512-yZ1rpULIWKBZqCDlvGIJRSyj1B2utkEdGmXZTBT/GVayP4hyRYlkd36AJV/LfEsVD8dnsKL5rLz2VTYmRNlJ5Q==} + '@graphql-codegen/plugin-helpers@6.0.0': + resolution: {integrity: sha512-Z7P89vViJvQakRyMbq/JF2iPLruRFOwOB6IXsuSvV/BptuuEd7fsGPuEf8bdjjDxUY0pJZnFN8oC7jIQ8p9GKA==} + engines: {node: '>=16'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -2167,13 +1820,15 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-codegen/schema-ast@4.0.2': - resolution: {integrity: sha512-5mVAOQQK3Oz7EtMl/l3vOQdc2aYClUzVDHHkMvZlunc+KlGgl81j8TLa+X7ANIllqU4fUEsQU3lJmk4hXP6K7Q==} + '@graphql-codegen/schema-ast@5.0.0': + resolution: {integrity: sha512-jn7Q3PKQc0FxXjbpo9trxzlz/GSFQWxL042l0iC8iSbM/Ar+M7uyBwMtXPsev/3Razk+osQyreghIz0d2+6F7Q==} + engines: {node: '>=16'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-codegen/typed-document-node@5.0.6': - resolution: {integrity: sha512-US0J95hOE2/W/h42w4oiY+DFKG7IetEN1mQMgXXeat1w6FAR5PlIz4JrRrEkiVfVetZ1g7K78SOwBD8/IJnDiA==} + '@graphql-codegen/typed-document-node@6.0.2': + resolution: {integrity: sha512-nqcD23F87jLPQ1P2jJaepNAa4SY8Xy2soacPyQMwvxWtbRSXlg/LBUjtbEkCaU2SuLoa4L3w8VPuGoQ3EWUzeg==} + engines: {node: '>=16'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -2182,10 +1837,15 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-codegen/typescript-operations@4.2.0': - resolution: {integrity: sha512-lmuwYb03XC7LNRS8oo9M4/vlOrq/wOKmTLBHlltK2YJ1BO/4K/Q9Jdv/jDmJpNydHVR1fmeF4wAfsIp1f9JibA==} + '@graphql-codegen/typescript-operations@5.0.2': + resolution: {integrity: sha512-i2nSJ5a65H+JgXwWvEuYehVYUImIvrHk3PTs+Fcj+OjZFvDl2qBziIhr6shCjV0KH9IZ6Y+1v4TzkxZr/+XFjA==} + engines: {node: '>=16'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql-sock: ^1.0.0 + peerDependenciesMeta: + graphql-sock: + optional: true '@graphql-codegen/typescript-react-apollo@3.3.7': resolution: {integrity: sha512-9DUiGE8rcwwEkf/S1kpBT/Py/UUs9Qak14bOnTT1JHWs1MWhiDA7vml+A8opU7YFI1EVbSSaE5jjRv11WHoikQ==} @@ -2198,8 +1858,9 @@ packages: peerDependencies: graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-codegen/typescript@4.0.6': - resolution: {integrity: sha512-IBG4N+Blv7KAL27bseruIoLTjORFCT3r+QYyMC3g11uY3/9TPpaUyjSdF70yBe5GIQ6dAgDU+ENUC1v7EPi0rw==} + '@graphql-codegen/typescript@5.0.2': + resolution: {integrity: sha512-OJYXpS9SRf4VFzqu3ZH/RmTftGhAVTCmscH63iPlvTlCT8NBmpSHdZ875AEa38LugdL8XgUcGsI3pprP3e5j/w==} + engines: {node: '>=16'} peerDependencies: graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -2213,109 +1874,126 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-codegen/visitor-plugin-common@5.1.0': - resolution: {integrity: sha512-eamQxtA9bjJqI2lU5eYoA1GbdMIRT2X8m8vhWYsVQVWD3qM7sx/IqJU0kx0J3Vd4/CSd36BzL6RKwksibytDIg==} + '@graphql-codegen/visitor-plugin-common@6.1.0': + resolution: {integrity: sha512-AvGO1pe+b/kAa7+WBDlNDXOruRZWv/NnhLHgTggiW2XWRv33biuzg4cF1UTdpR2jmESZzJU4kXngLLX8RYJWLA==} + engines: {node: '>=16'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-tools/apollo-engine-loader@8.0.1': - resolution: {integrity: sha512-NaPeVjtrfbPXcl+MLQCJLWtqe2/E4bbAqcauEOQ+3sizw1Fc2CNmhHRF8a6W4D0ekvTRRXAMptXYgA2uConbrA==} + '@graphql-hive/signal@1.0.0': + resolution: {integrity: sha512-RiwLMc89lTjvyLEivZ/qxAC5nBHoS2CtsWFSOsN35sxG9zoo5Z+JsFHM8MlvmO9yt+MJNIyC5MLE1rsbOphlag==} + engines: {node: '>=18.0.0'} + + '@graphql-tools/apollo-engine-loader@8.0.22': + resolution: {integrity: sha512-ssD2wNxeOTRcUEkuGcp0KfZAGstL9YLTe/y3erTDZtOs2wL1TJESw8NVAp+3oUHPeHKBZQB4Z6RFEbPgMdT2wA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/batch-execute@9.0.4': - resolution: {integrity: sha512-kkebDLXgDrep5Y0gK1RN3DMUlLqNhg60OAz0lTCqrYeja6DshxLtLkj+zV4mVbBA4mQOEoBmw6g1LZs3dA84/w==} + '@graphql-tools/batch-execute@9.0.19': + resolution: {integrity: sha512-VGamgY4PLzSx48IHPoblRw0oTaBa7S26RpZXt0Y4NN90ytoE0LutlpB2484RbkfcTjv9wa64QD474+YP1kEgGA==} + engines: {node: '>=18.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/code-file-loader@8.1.22': + resolution: {integrity: sha512-FSka29kqFkfFmw36CwoQ+4iyhchxfEzPbXOi37lCEjWLHudGaPkXc3RyB9LdmBxx3g3GHEu43a5n5W8gfcrMdA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/code-file-loader@8.1.1': - resolution: {integrity: sha512-q4KN25EPSUztc8rA8YUU3ufh721Yk12xXDbtUA+YstczWS7a1RJlghYMFEfR1HsHSYbF7cUqkbnTKSGM3o52bQ==} + '@graphql-tools/delegate@10.2.23': + resolution: {integrity: sha512-xrPtl7f1LxS+B6o+W7ueuQh67CwRkfl+UKJncaslnqYdkxKmNBB4wnzVcW8ZsRdwbsla/v43PtwAvSlzxCzq2w==} + engines: {node: '>=18.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/documents@1.0.1': + resolution: {integrity: sha512-aweoMH15wNJ8g7b2r4C4WRuJxZ0ca8HtNO54rkye/3duxTkW4fGBEutCx03jCIr5+a1l+4vFJNP859QnAVBVCA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/delegate@10.0.4': - resolution: {integrity: sha512-WswZRbQZMh/ebhc8zSomK9DIh6Pd5KbuiMsyiKkKz37TWTrlCOe+4C/fyrBFez30ksq6oFyCeSKMwfrCbeGo0Q==} + '@graphql-tools/executor-common@0.0.4': + resolution: {integrity: sha512-SEH/OWR+sHbknqZyROCFHcRrbZeUAyjCsgpVWCRjqjqRbiJiXq6TxNIIOmpXgkrXWW/2Ev4Wms6YSGJXjdCs6Q==} + engines: {node: '>=18.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/executor-common@0.0.6': + resolution: {integrity: sha512-JAH/R1zf77CSkpYATIJw+eOJwsbWocdDjY+avY7G+P5HCXxwQjAjWVkJI1QJBQYjPQDVxwf1fmTZlIN3VOadow==} + engines: {node: '>=18.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/executor-graphql-ws@2.0.7': + resolution: {integrity: sha512-J27za7sKF6RjhmvSOwOQFeNhNHyP4f4niqPnerJmq73OtLx9Y2PGOhkXOEB0PjhvPJceuttkD2O1yMgEkTGs3Q==} + engines: {node: '>=18.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/executor-http@1.3.3': + resolution: {integrity: sha512-LIy+l08/Ivl8f8sMiHW2ebyck59JzyzO/yF9SFS4NH6MJZUezA1xThUXCDIKhHiD56h/gPojbkpcFvM2CbNE7A==} + engines: {node: '>=18.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/executor-legacy-ws@1.1.19': + resolution: {integrity: sha512-bEbv/SlEdhWQD0WZLUX1kOenEdVZk1yYtilrAWjRUgfHRZoEkY9s+oiqOxnth3z68wC2MWYx7ykkS5hhDamixg==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/documents@1.0.0': - resolution: {integrity: sha512-rHGjX1vg/nZ2DKqRGfDPNC55CWZBMldEVcH+91BThRa6JeT80NqXknffLLEZLRUxyikCfkwMsk6xR3UNMqG0Rg==} + '@graphql-tools/executor@1.4.9': + resolution: {integrity: sha512-SAUlDT70JAvXeqV87gGzvDzUGofn39nvaVcVhNf12Dt+GfWHtNNO/RCn/Ea4VJaSLGzraUd41ObnN3i80EBU7w==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/executor-graphql-ws@1.1.2': - resolution: {integrity: sha512-+9ZK0rychTH1LUv4iZqJ4ESbmULJMTsv3XlFooPUngpxZkk00q6LqHKJRrsLErmQrVaC7cwQCaRBJa0teK17Lg==} + '@graphql-tools/git-loader@8.0.26': + resolution: {integrity: sha512-0g+9eng8DaT4ZmZvUmPgjLTgesUa6M8xrDjNBltRldZkB055rOeUgJiKmL6u8PjzI5VxkkVsn0wtAHXhDI2UXQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/executor-http@1.0.9': - resolution: {integrity: sha512-+NXaZd2MWbbrWHqU4EhXcrDbogeiCDmEbrAN+rMn4Nu2okDjn2MTFDbTIab87oEubQCH4Te1wDkWPKrzXup7+Q==} + '@graphql-tools/github-loader@8.0.22': + resolution: {integrity: sha512-uQ4JNcNPsyMkTIgzeSbsoT9hogLjYrZooLUYd173l5eUGUi49EAcsGdiBCKaKfEjanv410FE8hjaHr7fjSRkJw==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/executor-legacy-ws@1.0.6': - resolution: {integrity: sha512-lDSxz9VyyquOrvSuCCnld3256Hmd+QI2lkmkEv7d4mdzkxkK4ddAWW1geQiWrQvWmdsmcnGGlZ7gDGbhEExwqg==} + '@graphql-tools/graphql-file-loader@8.1.2': + resolution: {integrity: sha512-VB6ttpwkqCu0KsA1/Wmev4qsu05Qfw49kgVSKkPjuyDQfVaqtr9ewEQRkX5CqnqHGEeLl6sOlNGEMM5fCVMWGQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/executor@1.2.5': - resolution: {integrity: sha512-s7sW4K3BUNsk9sjq+vNicwb9KwcR3G55uS/CI8KZQ4x0ZdeYMIwpeU9MVeORCCpHuQyTaV+/VnO0hFrS/ygzsg==} + '@graphql-tools/graphql-tag-pluck@8.3.21': + resolution: {integrity: sha512-TJhELNvR1tmghXMi6HVKp/Swxbx1rcSp/zdkuJZT0DCM3vOY11FXY6NW3aoxumcuYDNN3jqXcCPKstYGFPi5GQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/git-loader@8.0.5': - resolution: {integrity: sha512-P97/1mhruDiA6D5WUmx3n/aeGPLWj2+4dpzDOxFGGU+z9NcI/JdygMkeFpGZNHeJfw+kHfxgPcMPnxHcyhAoVA==} + '@graphql-tools/import@7.1.2': + resolution: {integrity: sha512-+tlNQbLEqAA4LdWoLwM1tckx95lo8WIKd8vhj99b9rLwN/KfLwHWzdS3jnUFK7+99vmHmN1oE5v5zmqJz0MTKw==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/github-loader@8.0.1': - resolution: {integrity: sha512-W4dFLQJ5GtKGltvh/u1apWRFKBQOsDzFxO9cJkOYZj1VzHCpRF43uLST4VbCfWve+AwBqOuKr7YgkHoxpRMkcg==} + '@graphql-tools/json-file-loader@8.0.20': + resolution: {integrity: sha512-5v6W+ZLBBML5SgntuBDLsYoqUvwfNboAwL6BwPHi3z/hH1f8BS9/0+MCW9OGY712g7E4pc3y9KqS67mWF753eA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/graphql-file-loader@8.0.1': - resolution: {integrity: sha512-7gswMqWBabTSmqbaNyWSmRRpStWlcCkBc73E6NZNlh4YNuiyKOwbvSkOUYFOqFMfEL+cFsXgAvr87Vz4XrYSbA==} + '@graphql-tools/load@8.1.2': + resolution: {integrity: sha512-WhDPv25/jRND+0uripofMX0IEwo6mrv+tJg6HifRmDu8USCD7nZhufT0PP7lIcuutqjIQFyogqT70BQsy6wOgw==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/graphql-tag-pluck@8.3.0': - resolution: {integrity: sha512-gNqukC+s7iHC7vQZmx1SEJQmLnOguBq+aqE2zV2+o1hxkExvKqyFli1SY/9gmukFIKpKutCIj+8yLOM+jARutw==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/import@7.0.1': - resolution: {integrity: sha512-935uAjAS8UAeXThqHfYVr4HEAp6nHJ2sximZKO1RzUTq5WoALMAhhGARl0+ecm6X+cqNUwIChJbjtaa6P/ML0w==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/json-file-loader@8.0.1': - resolution: {integrity: sha512-lAy2VqxDAHjVyqeJonCP6TUemrpYdDuKt25a10X6zY2Yn3iFYGnuIDQ64cv3ytyGY6KPyPB+Kp+ZfOkNDG3FQA==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/load@8.0.2': - resolution: {integrity: sha512-S+E/cmyVmJ3CuCNfDuNF2EyovTwdWfQScXv/2gmvJOti2rGD8jTt9GYVzXaxhblLivQR9sBUCNZu/w7j7aXUCA==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/merge@9.0.3': - resolution: {integrity: sha512-FeKv9lKLMwqDu0pQjPpF59GY3HReUkWXKsMIuMuJQOKh9BETu7zPEFUELvcw8w+lwZkl4ileJsHXC9+AnsT2Lw==} + '@graphql-tools/merge@9.1.1': + resolution: {integrity: sha512-BJ5/7Y7GOhTuvzzO5tSBFL4NGr7PVqTJY3KeIDlVTT8YLcTXtBR+hlrC3uyEym7Ragn+zyWdHeJ9ev+nRX1X2w==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2331,38 +2009,31 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/prisma-loader@8.0.3': - resolution: {integrity: sha512-oZhxnMr3Jw2WAW1h9FIhF27xWzIB7bXWM8olz4W12oII4NiZl7VRkFw9IT50zME2Bqi9LGh9pkmMWkjvbOpl+Q==} - engines: {node: '>=16.0.0'} - deprecated: 'This package was intended to be used with an older versions of Prisma.\nThe newer versions of Prisma has a different approach to GraphQL integration.\nTherefore, this package is no longer needed and has been deprecated and removed.\nLearn more: https://www.prisma.io/graphql' - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/relay-operation-optimizer@6.5.18': resolution: {integrity: sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/relay-operation-optimizer@7.0.1': - resolution: {integrity: sha512-y0ZrQ/iyqWZlsS/xrJfSir3TbVYJTYmMOu4TaSz6F4FRDTQ3ie43BlKkhf04rC28pnUOS4BO9pDcAo1D30l5+A==} + '@graphql-tools/relay-operation-optimizer@7.0.21': + resolution: {integrity: sha512-vMdU0+XfeBh9RCwPqRsr3A05hPA3MsahFn/7OAwXzMySA5EVnSH5R4poWNs3h1a0yT0tDPLhxORhK7qJdSWj2A==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/schema@10.0.3': - resolution: {integrity: sha512-p28Oh9EcOna6i0yLaCFOnkcBDQECVf3SCexT6ktb86QNj9idnkhI+tCxnwZDh58Qvjd2nURdkbevvoZkvxzCog==} + '@graphql-tools/schema@10.0.25': + resolution: {integrity: sha512-/PqE8US8kdQ7lB9M5+jlW8AyVjRGCKU7TSktuW3WNKSKmDO0MK1wakvb5gGdyT49MjAIb4a3LWxIpwo5VygZuw==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/url-loader@8.0.2': - resolution: {integrity: sha512-1dKp2K8UuFn7DFo1qX5c1cyazQv2h2ICwA9esHblEqCYrgf69Nk8N7SODmsfWg94OEaI74IqMoM12t7eIGwFzQ==} + '@graphql-tools/url-loader@8.0.33': + resolution: {integrity: sha512-Fu626qcNHcqAj8uYd7QRarcJn5XZ863kmxsg1sm0fyjyfBJnsvC7ddFt6Hayz5kxVKfsnjxiDfPMXanvsQVBKw==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/utils@10.1.2': - resolution: {integrity: sha512-fX13CYsDnX4yifIyNdiN0cVygz/muvkreWWem6BBw130+ODbRRgfiVveL0NizCEnKXkpvdeTy9Bxvo9LIKlhrw==} + '@graphql-tools/utils@10.9.1': + resolution: {integrity: sha512-B1wwkXk9UvU7LCBkPs8513WxOQ2H8Fo5p8HR1+Id9WmYE5+bd51vqN+MbrqvWczHCH2gwkREgHJN88tE0n1FCw==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2377,9 +2048,9 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/wrap@10.0.5': - resolution: {integrity: sha512-Cbr5aYjr3HkwdPvetZp1cpDWTGdD1Owgsb3z/ClzhmrboiK86EnQDxDvOJiQkDCPWE9lNBwj8Y4HfxroY0D9DQ==} - engines: {node: '>=16.0.0'} + '@graphql-tools/wrap@10.1.4': + resolution: {integrity: sha512-7pyNKqXProRjlSdqOtrbnFRMQAVamCmEREilOXtZujxY6kYit3tvWWSjUrcIOheltTffoRh7EQSjpy2JDCzasg==} + engines: {node: '>=18.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2395,6 +2066,12 @@ packages: react: ^16 || ^17 || ^18 react-dom: ^16 || ^17 || ^18 + '@hello-pangea/dnd@18.0.1': + resolution: {integrity: sha512-xojVWG8s/TGrKT1fC8K2tIWeejJYTAeJuj36zM//yEm/ZrnZUSFGS15BpO+jGZT1ybWvyXmeDJwPYb4dhWlbZQ==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + '@heroicons/react@1.0.6': resolution: {integrity: sha512-JJCXydOFWMDpCP4q13iEplA503MQO3xLoZiKum+955ZCtHINWnx26CUxVxxFQu/uLb4LW3ge15ZpzIkXKkJ8oQ==} peerDependencies: @@ -2434,14 +2111,144 @@ packages: peerDependencies: react: ^16.13 || ^17 || ^18 + '@inquirer/ansi@1.0.0': + resolution: {integrity: sha512-JWaTfCxI1eTmJ1BIv86vUfjVatOdxwD0DAVKYevY8SazeUUZtW+tNbsdejVO1GYE0GXJW1N1ahmiC3TFd+7wZA==} + engines: {node: '>=18'} + + '@inquirer/checkbox@4.2.4': + resolution: {integrity: sha512-2n9Vgf4HSciFq8ttKXk+qy+GsyTXPV1An6QAwe/8bkbbqvG4VW1I/ZY1pNu2rf+h9bdzMLPbRSfcNxkHBy/Ydw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/confirm@5.1.18': + resolution: {integrity: sha512-MilmWOzHa3Ks11tzvuAmFoAd/wRuaP3SwlT1IZhyMke31FKLxPiuDWcGXhU+PKveNOpAc4axzAgrgxuIJJRmLw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/core@10.2.2': + resolution: {integrity: sha512-yXq/4QUnk4sHMtmbd7irwiepjB8jXU0kkFRL4nr/aDBA2mDz13cMakEWdDwX3eSCTkk03kwcndD1zfRAIlELxA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/editor@4.2.20': + resolution: {integrity: sha512-7omh5y5bK672Q+Brk4HBbnHNowOZwrb/78IFXdrEB9PfdxL3GudQyDk8O9vQ188wj3xrEebS2M9n18BjJoI83g==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/expand@4.0.20': + resolution: {integrity: sha512-Dt9S+6qUg94fEvgn54F2Syf0Z3U8xmnBI9ATq2f5h9xt09fs2IJXSCIXyyVHwvggKWFXEY/7jATRo2K6Dkn6Ow==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/external-editor@1.0.2': + resolution: {integrity: sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/figures@1.0.13': + resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} + engines: {node: '>=18'} + + '@inquirer/input@4.2.4': + resolution: {integrity: sha512-cwSGpLBMwpwcZZsc6s1gThm0J+it/KIJ+1qFL2euLmSKUMGumJ5TcbMgxEjMjNHRGadouIYbiIgruKoDZk7klw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/number@3.0.20': + resolution: {integrity: sha512-bbooay64VD1Z6uMfNehED2A2YOPHSJnQLs9/4WNiV/EK+vXczf/R988itL2XLDGTgmhMF2KkiWZo+iEZmc4jqg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/password@4.0.20': + resolution: {integrity: sha512-nxSaPV2cPvvoOmRygQR+h0B+Av73B01cqYLcr7NXcGXhbmsYfUb8fDdw2Us1bI2YsX+VvY7I7upgFYsyf8+Nug==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/prompts@7.8.6': + resolution: {integrity: sha512-68JhkiojicX9SBUD8FE/pSKbOKtwoyaVj1kwqLfvjlVXZvOy3iaSWX4dCLsZyYx/5Ur07Fq+yuDNOen+5ce6ig==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/rawlist@4.1.8': + resolution: {integrity: sha512-CQ2VkIASbgI2PxdzlkeeieLRmniaUU1Aoi5ggEdm6BIyqopE9GuDXdDOj9XiwOqK5qm72oI2i6J+Gnjaa26ejg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/search@3.1.3': + resolution: {integrity: sha512-D5T6ioybJJH0IiSUK/JXcoRrrm8sXwzrVMjibuPs+AgxmogKslaafy1oxFiorNI4s3ElSkeQZbhYQgLqiL8h6Q==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/select@4.3.4': + resolution: {integrity: sha512-Qp20nySRmfbuJBBsgPU7E/cL62Hf250vMZRzYDcBHty2zdD1kKCnoDFWRr0WO2ZzaXp3R7a4esaVGJUx0E6zvA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/type@3.0.8': + resolution: {integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - '@istanbuljs/schema@0.1.3': resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} @@ -2454,18 +2261,6 @@ packages: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/transform@26.6.2': - resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==} - engines: {node: '>= 10.14.2'} - - '@jest/types@26.6.2': - resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} - engines: {node: '>= 10.14.2'} - - '@jest/types@27.5.1': - resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - '@jest/types@29.6.3': resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2473,19 +2268,28 @@ packages: '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.6': - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/trace-mapping@0.3.30': resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -2510,18 +2314,24 @@ packages: peerDependencies: jsep: ^0.4.0||^1.0.0 - '@kamilkisiela/fast-url-parser@1.1.4': - resolution: {integrity: sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==} - '@lezer/common@1.2.1': resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==} + '@lezer/common@1.2.3': + resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==} + '@lezer/highlight@1.2.0': resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==} + '@lezer/highlight@1.2.1': + resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} + '@lezer/lr@1.4.1': resolution: {integrity: sha512-CHsKq8DMKBf9b3yXPDIU4DbH+ZJd/sJdYOW2llbW/HudP5u0VS6Bfq1hLYfgU7uAYGFIyGGQIsSOXGPEErZiJw==} + '@lezer/lr@1.4.2': + resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==} + '@lukeed/csprng@1.1.0': resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==} engines: {node: '>=8'} @@ -2536,17 +2346,6 @@ packages: react: ^17.0.2 || ^18.0.0 || ^19.0 react-dom: ^17.0.2 || ^18.0.0 || ^19.0 - '@mdx-js/mdx@1.6.22': - resolution: {integrity: sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==} - - '@mdx-js/react@1.6.22': - resolution: {integrity: sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==} - peerDependencies: - react: ^16.13.1 || ^17.0.0 - - '@mdx-js/util@1.6.22': - resolution: {integrity: sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==} - '@motionone/animation@10.18.0': resolution: {integrity: sha512-9z2p5GFGCm0gBsZbi8rVMOAJCtw1WqBTIPw3ozk06gDvZInBPIsQcHgYogEJ4yuHJ+akuW8g1SEIOpTOvYs8hw==} @@ -2565,13 +2364,9 @@ packages: '@motionone/utils@10.18.0': resolution: {integrity: sha512-3XVF7sgyTSI2KWvTf6uLlBJ5iAgRgmvp3bpuOiQJvInd4nZ19ET8lX5unn30SlmRH7hXbBbH+Gxd0m0klJ3Xtw==} - '@mswjs/cookies@0.2.2': - resolution: {integrity: sha512-mlN83YSrcFgk7Dm1Mys40DLssI1KdJji2CMKN8eOlBqsTADYzj2+jWzsANsUTFbxDMWPD5e9bfA1RGqBpS3O1g==} - engines: {node: '>=14'} - - '@mswjs/interceptors@0.17.10': - resolution: {integrity: sha512-N8x7eSLGcmUFNWZRxT1vsHvypzIRgQYdG0rJey/rZCy6zT/30qDt8Joj7FxzGNLSwXbeZqJOMqDurp7ra4hgbw==} - engines: {node: '>=14'} + '@mswjs/interceptors@0.39.7': + resolution: {integrity: sha512-sURvQbbKsq5f8INV54YJgJEdk8oxBanqkTiXXd33rKmofFCwZLhLRszPduMZ9TA9b8/1CHc/IJmOlBHJk2Q5AQ==} + engines: {node: '>=18'} '@mui/base@5.0.0-beta.31': resolution: {integrity: sha512-+uNbP3OHJuZVI00WyMg7xfLZotaEY7LgvYXDfONVJbrS+K9wyjCIPNfjy8r9XJn4fbHo/5ibiZqjWnU9LMNv+A==} @@ -2784,8 +2579,14 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@open-draft/until@1.0.3': - resolution: {integrity: sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==} + '@open-draft/deferred-promise@2.2.0': + resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} + + '@open-draft/logger@0.3.0': + resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} + + '@open-draft/until@2.1.0': + resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} '@orval/angular@7.11.2': resolution: {integrity: sha512-v7I3MXlc1DTFHZlCo10uqBmss/4puXi1EbYdlYGfeZ2sYQiwtRFEYAMnSIxHzMtdtI4jd7iDEH0fZRA7W6yloA==} @@ -2817,17 +2618,6 @@ packages: '@orval/zod@7.11.2': resolution: {integrity: sha512-4MzTg5Wms8/LlM3CbYu80dvCbP88bVlQjnYsBdFXuEv0K2GYkBCAhVOrmXCVrPXE89neV6ABkvWQeuKZQpkdxQ==} - '@peculiar/asn1-schema@2.3.13': - resolution: {integrity: sha512-3Xq3a01WkHRZL8X04Zsfg//mGaA21xlL4tlVn4v2xGT0JStiztATRkMwa5b+f/HXmY2smsiLXYK46Gwgzvfg3g==} - - '@peculiar/json-schema@1.1.12': - resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} - engines: {node: '>=8.0.0'} - - '@peculiar/webcrypto@1.4.6': - resolution: {integrity: sha512-YBcMfqNSwn3SujUJvAaySy5tlYbYm6tVt9SKoXu8BaTdKGROiJDgPR3TXpZdAKUfklzm3lRapJEAltiMQtBgZg==} - engines: {node: '>=10.12.0'} - '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -3787,8 +3577,11 @@ packages: '@radix-ui/rect@1.1.0': resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} - '@repeaterjs/repeater@3.0.5': - resolution: {integrity: sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==} + '@repeaterjs/repeater@3.0.6': + resolution: {integrity: sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==} + + '@rolldown/pluginutils@1.0.0-beta.27': + resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} '@rollup/rollup-android-arm-eabi@4.52.2': resolution: {integrity: sha512-o3pcKzJgSGt4d74lSZ+OCnHwkKBeAbFDmbEm5gg70eA8VkyCuC/zV9TwBnmw6VjDlRdF4Pshfb+WE9E6XY1PoQ==} @@ -4022,373 +3815,6 @@ packages: resolution: {integrity: sha512-JZlVFE6/dYpP9tQmV0/ADfn32L9uFarHWxfcRhReKUnljz1ZiUM5zpX+PH8h5CJs6lao3TuFqnPm9IJJCEkE2w==} engines: {node: '>=10.8'} - '@storybook/addon-actions@6.5.16': - resolution: {integrity: sha512-aADjilFmuD6TNGz2CRPSupnyiA/IGkPJHDBTqMpsDXTUr8xnuD122xkIhg6UxmCM2y1c+ncwYXy3WPK2xXK57g==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@storybook/addon-backgrounds@6.5.16': - resolution: {integrity: sha512-t7qooZ892BruhilFmzYPbysFwpULt/q4zYXNSmKVbAYta8UVvitjcU4F18p8FpWd9WvhiTr0SDlyhNZuzvDfug==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@storybook/addon-controls@6.5.16': - resolution: {integrity: sha512-kShSGjq1MjmmyL3l8i+uPz6yddtf82mzys0l82VKtcuyjrr5944wYFJ5NTXMfZxrO/U6FeFsfuFZE/k6ex3EMg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@storybook/addon-docs@6.5.16': - resolution: {integrity: sha512-QM9WDZG9P02UvbzLu947a8ZngOrQeAKAT8jCibQFM/+RJ39xBlfm8rm+cQy3dm94wgtjmVkA3mKGOV/yrrsddg==} - peerDependencies: - '@storybook/mdx2-csf': ^0.0.3 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@storybook/mdx2-csf': - optional: true - react: - optional: true - react-dom: - optional: true - - '@storybook/addon-essentials@6.5.16': - resolution: {integrity: sha512-TeoMr6tEit4Pe91GH6f8g/oar1P4M0JL9S6oMcFxxrhhtOGO7XkWD5EnfyCx272Ok2VYfE58FNBTGPNBVIqYKQ==} - peerDependencies: - '@babel/core': ^7.9.6 - '@storybook/angular': '*' - '@storybook/builder-manager4': '*' - '@storybook/builder-manager5': '*' - '@storybook/builder-webpack4': '*' - '@storybook/builder-webpack5': '*' - '@storybook/html': '*' - '@storybook/vue': '*' - '@storybook/vue3': '*' - '@storybook/web-components': '*' - lit: '*' - lit-html: '*' - react: '*' - react-dom: '*' - svelte: '*' - sveltedoc-parser: '*' - vue: '*' - webpack: '*' - peerDependenciesMeta: - '@storybook/angular': - optional: true - '@storybook/builder-manager4': - optional: true - '@storybook/builder-manager5': - optional: true - '@storybook/builder-webpack4': - optional: true - '@storybook/builder-webpack5': - optional: true - '@storybook/html': - optional: true - '@storybook/vue': - optional: true - '@storybook/vue3': - optional: true - '@storybook/web-components': - optional: true - lit: - optional: true - lit-html: - optional: true - react: - optional: true - react-dom: - optional: true - svelte: - optional: true - sveltedoc-parser: - optional: true - vue: - optional: true - webpack: - optional: true - - '@storybook/addon-interactions@6.5.16': - resolution: {integrity: sha512-DdTtyp3DgB/SpbM1GQgMnuSEBCkadxmj1mUcPk+Wp2iY+fDwsuoRDkr1H9Oe7IvlBKe7ciR79LEjoaABXNdw4w==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@storybook/addon-links@6.5.16': - resolution: {integrity: sha512-P/mmqK57NGXnR0i3d/T5B0rIt0Lg8Yq+qionRr3LK3AwG/4yGnYt4GNomLEknn/eEwABYq1Q/Z1aOpgIhNdq5A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@storybook/addon-measure@6.5.16': - resolution: {integrity: sha512-DMwnXkmM2L6POTh4KaOWvOAtQ2p9Tr1UUNxz6VXiN5cKFohpCs6x0txdLU5WN8eWIq0VFsO7u5ZX34CGCc6gCg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@storybook/addon-outline@6.5.16': - resolution: {integrity: sha512-0du96nha4qltexO0Xq1xB7LeRSbqjC9XqtZLflXG7/X3ABoPD2cXgOV97eeaXUodIyb2qYBbHUfftBeA75x0+w==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@storybook/addon-postcss@2.0.0': - resolution: {integrity: sha512-Nt82A7e9zJH4+A+VzLKKswUfru+T6FJTakj4dccP0i8DSn7a0CkzRPrLuZBq8tg4voV6gD74bcDf3gViCVBGtA==} - engines: {node: '>=10', yarn: ^1.17.0} - - '@storybook/addon-toolbars@6.5.16': - resolution: {integrity: sha512-y3PuUKiwOWrAvqx1YdUvArg0UaAwmboXFeR2bkrowk1xcT+xnRO3rML4npFeUl26OQ1FzwxX/cw6nknREBBLEA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@storybook/addon-viewport@6.5.16': - resolution: {integrity: sha512-1Vyqf1U6Qng6TXlf4SdqUKyizlw1Wn6+qW8YeA2q1lbkJqn3UlnHXIp8Q0t/5q1dK5BFtREox3+jkGwbJrzkmA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@storybook/addons@6.5.16': - resolution: {integrity: sha512-p3DqQi+8QRL5k7jXhXmJZLsE/GqHqyY6PcoA1oNTJr0try48uhTGUOYkgzmqtDaa/qPFO5LP+xCPzZXckGtquQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@storybook/api@6.5.16': - resolution: {integrity: sha512-HOsuT8iomqeTMQJrRx5U8nsC7lJTwRr1DhdD0SzlqL4c80S/7uuCy4IZvOt4sYQjOzW5fOo/kamcoBXyLproTA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@storybook/builder-webpack5@6.5.16': - resolution: {integrity: sha512-kh8Sofm1sbijaHDWtm0sXabqACHVFjikU/fIkkW786kpjoPIPIec1a+hrLgDsZxMU3I7XapSOaCFzWt6FjVXjg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@storybook/channel-postmessage@6.5.16': - resolution: {integrity: sha512-fZZSN29dsUArWOx7e7lTdMA9+7zijVwCwbvi2Fo4fqhRLh1DsTb/VXfz1FKMCWAjNlcX7QQvV25tnxbqsD6lyw==} - - '@storybook/channel-websocket@6.5.16': - resolution: {integrity: sha512-wJg2lpBjmRC2GJFzmhB9kxlh109VE58r/0WhFtLbwKvPqsvGf82xkBEl6BtBCvIQ4stzYnj/XijjA8qSi2zpOg==} - - '@storybook/channels@6.5.16': - resolution: {integrity: sha512-VylzaWQZaMozEwZPJdyJoz+0jpDa8GRyaqu9TGG6QGv+KU5POoZaGLDkRE7TzWkyyP0KQLo80K99MssZCpgSeg==} - - '@storybook/channels@7.6.20': - resolution: {integrity: sha512-4hkgPSH6bJclB2OvLnkZOGZW1WptJs09mhQ6j6qLjgBZzL/ZdD6priWSd7iXrmPiN5TzUobkG4P4Dp7FjkiO7A==} - - '@storybook/client-api@6.5.16': - resolution: {integrity: sha512-i3UwkzzUFw8I+E6fOcgB5sc4oU2fhvaKnqC1mpd9IYGJ9JN9MnGIaVl3Ko28DtFItu/QabC9JsLIJVripFLktQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@storybook/client-logger@6.5.16': - resolution: {integrity: sha512-pxcNaCj3ItDdicPTXTtmYJE3YC1SjxFrBmHcyrN+nffeNyiMuViJdOOZzzzucTUG0wcOOX8jaSyak+nnHg5H1Q==} - - '@storybook/client-logger@7.6.20': - resolution: {integrity: sha512-NwG0VIJQCmKrSaN5GBDFyQgTAHLNishUPLW1NrzqTDNAhfZUoef64rPQlinbopa0H4OXmlB+QxbQIb3ubeXmSQ==} - - '@storybook/components@6.5.16': - resolution: {integrity: sha512-LzBOFJKITLtDcbW9jXl0/PaG+4xAz25PK8JxPZpIALbmOpYWOAPcO6V9C2heX6e6NgWFMUxjplkULEk9RCQMNA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@storybook/core-client@6.5.16': - resolution: {integrity: sha512-14IRaDrVtKrQ+gNWC0wPwkCNfkZOKghYV/swCUnQX3rP99defsZK8Hc7xHIYoAiOP5+sc3sweRAxgmFiJeQ1Ig==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - typescript: '*' - webpack: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@storybook/core-client@7.6.20': - resolution: {integrity: sha512-upQuQQinLmlOPKcT8yqXNtwIucZ4E4qegYZXH5HXRWoLAL6GQtW7sUVSIuFogdki8OXRncr/dz8OA+5yQyYS4w==} - - '@storybook/core-common@6.5.16': - resolution: {integrity: sha512-2qtnKP3TTOzt2cp6LXKRTh7XrI9z5VanMnMTgeoFcA5ebnndD4V6BExQUdYPClE/QooLx6blUWNgS9dFEpjSqQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@storybook/core-common@7.6.20': - resolution: {integrity: sha512-8H1zPWPjcmeD4HbDm4FDD0WLsfAKGVr566IZ4hG+h3iWVW57II9JW9MLBtiR2LPSd8u7o0kw64lwRGmtCO1qAw==} - - '@storybook/core-events@6.5.16': - resolution: {integrity: sha512-qMZQwmvzpH5F2uwNUllTPg6eZXr2OaYZQRRN8VZJiuorZzDNdAFmiVWMWdkThwmyLEJuQKXxqCL8lMj/7PPM+g==} - - '@storybook/core-events@7.6.20': - resolution: {integrity: sha512-tlVDuVbDiNkvPDFAu+0ou3xBBYbx9zUURQz4G9fAq0ScgBOs/bpzcRrFb4mLpemUViBAd47tfZKdH4MAX45KVQ==} - - '@storybook/csf@0.0.2--canary.4566f4d.1': - resolution: {integrity: sha512-9OVvMVh3t9znYZwb0Svf/YQoxX2gVOeQTGe2bses2yj+a3+OJnCrUF3/hGv6Em7KujtOdL2LL+JnG49oMVGFgQ==} - - '@storybook/csf@0.1.8': - resolution: {integrity: sha512-Ntab9o7LjBCbFIao5l42itFiaSh/Qu+l16l/r/9qmV9LnYZkO+JQ7tzhdlwpgJfhs+B5xeejpdAtftDRyXNajw==} - - '@storybook/docs-tools@6.5.16': - resolution: {integrity: sha512-o+rAWPRGifjBF5xZzTKOqnHN3XQWkl0QFJYVDIiJYJrVll7ExCkpEq/PahOGzIBBV+tpMstJgmKM3lr/lu/jmg==} - - '@storybook/docs-tools@7.6.20': - resolution: {integrity: sha512-Bw2CcCKQ5xGLQgtexQsI1EGT6y5epoFzOINi0FSTGJ9Wm738nRp5LH3dLk1GZLlywIXcYwOEThb2pM+pZeRQxQ==} - - '@storybook/global@5.0.0': - resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} - - '@storybook/instrumenter@6.5.16': - resolution: {integrity: sha512-q8/GaBk8PA/cL7m5OW+ec5t63+Zja9YvYSPGXrYtW17koSv7OnNPmk6RvI7tIHHO0mODBYnaHjF4zQfEGoyR5Q==} - - '@storybook/manager-webpack5@6.5.16': - resolution: {integrity: sha512-OtxXv8JCe0r/0rE5HxaFicsNsXA+fqZxzokxquFFgrYf/1Jg4d7QX6/pG5wINF+5qInJfVkRG6xhPzv1s5bk9Q==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@storybook/mdx1-csf@0.0.1': - resolution: {integrity: sha512-4biZIWWzoWlCarMZmTpqcJNgo/RBesYZwGFbQeXiGYsswuvfWARZnW9RE9aUEMZ4XPn7B1N3EKkWcdcWe/K2tg==} - - '@storybook/node-logger@6.5.16': - resolution: {integrity: sha512-YjhBKrclQtjhqFNSO+BZK+RXOx6EQypAELJKoLFaawg331e8VUfvUuRCNB3fcEWp8G9oH13PQQte0OTjLyyOYg==} - - '@storybook/node-logger@7.6.20': - resolution: {integrity: sha512-l2i4qF1bscJkOplNffcRTsgQWYR7J51ewmizj5YrTM8BK6rslWT1RntgVJWB1RgPqvx6VsCz1gyP3yW1oKxvYw==} - - '@storybook/postinstall@6.5.16': - resolution: {integrity: sha512-08K2q+qN6pqyPW7PHLCZ5G5Xa6Wosd6t0F16PQ4abX2ItlJLabVoJN5mZ0gm/aeLTjD8QYr8IDvacu4eXh0SVA==} - - '@storybook/preview-api@7.6.20': - resolution: {integrity: sha512-3ic2m9LDZEPwZk02wIhNc3n3rNvbi7VDKn52hDXfAxnL5EYm7yDICAkaWcVaTfblru2zn0EDJt7ROpthscTW5w==} - - '@storybook/preview-web@6.5.16': - resolution: {integrity: sha512-IJnvfe2sKCfk7apN9Fu9U8qibbarrPX5JB55ZzK1amSHVmSDuYk5MIMc/U3NnSQNnvd1DO5v/zMcGgj563hrtg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@storybook/react-dom-shim@7.6.20': - resolution: {integrity: sha512-SRvPDr9VWcS24ByQOVmbfZ655y5LvjXRlsF1I6Pr9YZybLfYbu3L5IicfEHT4A8lMdghzgbPFVQaJez46DTrkg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@storybook/react@7.6.20': - resolution: {integrity: sha512-i5tKNgUbTNwlqBWGwPveDhh9ktlS0wGtd97A1ZgKZc3vckLizunlAFc7PRC1O/CMq5PTyxbuUb4RvRD2jWKwDA==} - engines: {node: '>=16.0.0'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@storybook/router@6.5.16': - resolution: {integrity: sha512-ZgeP8a5YV/iuKbv31V8DjPxlV4AzorRiR8OuSt/KqaiYXNXlOoQDz/qMmiNcrshrfLpmkzoq7fSo4T8lWo2UwQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@storybook/semver@7.3.2': - resolution: {integrity: sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==} - engines: {node: '>=10'} - hasBin: true - - '@storybook/source-loader@6.5.16': - resolution: {integrity: sha512-fyVl4jrM/5JLrb48aqXPu7sTsmySQaVGFp1zfeqvPPlJRFMastDrePm5XGPN7Qjv1wsKmpuBvuweFKOT1pru3g==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@storybook/store@6.5.16': - resolution: {integrity: sha512-g+bVL5hmMq/9cM51K04e37OviUPHT0rHHrRm5wj/hrf18Kd9120b3sxdQ5Dc+HZ292yuME0n+cyrQPTYx9Epmw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@storybook/testing-library@0.2.2': - resolution: {integrity: sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==} - deprecated: In Storybook 8, this package functionality has been integrated to a new package called @storybook/test, which uses Vitest APIs for an improved experience. When upgrading to Storybook 8 with 'npx storybook@latest upgrade', you will get prompted and will get an automigration for the new package. Please migrate when you can. - - '@storybook/theming@6.5.16': - resolution: {integrity: sha512-hNLctkjaYLRdk1+xYTkC1mg4dYz2wSv6SqbLpcKMbkPHTE0ElhddGPHQqB362md/w9emYXNkt1LSMD8Xk9JzVQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@storybook/types@7.6.20': - resolution: {integrity: sha512-GncdY3x0LpbhmUAAJwXYtJDUQEwfF175gsjH0/fxPkxPoV7Sef9TM41jQLJW/5+6TnZoCZP/+aJZTJtq3ni23Q==} - - '@storybook/ui@6.5.16': - resolution: {integrity: sha512-rHn/n12WM8BaXtZ3IApNZCiS+C4Oc5+Lkl4MoctX8V7QSml0SxZBB5hsJ/AiWkgbRxjQpa/L/Nt7/Qw0FjTH/A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@stripe/react-stripe-js@2.7.1': resolution: {integrity: sha512-/i13alp27HaSBbMM6kW0jhy8KqdtOL1T/EcRjFjfhvt+CBtMEg8TD7y28W3oZG0+OBDdCyGGnXgNgrKPYQH40g==} peerDependencies: @@ -4471,6 +3897,12 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' + '@theguild/federation-composition@0.20.1': + resolution: {integrity: sha512-lwYYKCeHmstOtbMtzxC0BQKWsUPYbEVRVdJ3EqR4jSpcF4gvNf3MOJv6yuvq6QsKqgYZURKRBszmg7VEDoi5Aw==} + engines: {node: '>=18'} + peerDependencies: + graphql: ^16.0.0 + '@tootallnate/once@2.0.0': resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} @@ -4496,26 +3928,20 @@ packages: '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} '@types/babel__template@7.4.4': resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + '@types/babel__traverse@7.28.0': + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} '@types/bcryptjs@2.4.6': resolution: {integrity: sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==} - '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - - '@types/chai-subset@1.3.5': - resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} - - '@types/chai@4.3.14': - resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} + '@types/chai@5.2.2': + resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} '@types/codemirror@0.0.90': resolution: {integrity: sha512-8Z9+tSg27NPRGubbUPUCrt5DDG/OWzLph5BvcDykwR5D7RyZh5mhHG0uS1ePKV1YFCA+/cwc4Ey2AJAEFfV3IA==} @@ -4523,24 +3949,15 @@ packages: '@types/codemirror@5.60.15': resolution: {integrity: sha512-dTOvwEQ+ouKJ/rE9LT1Ue2hmP6H1mZv5+CCnNWu2qtiOe2LQa9lCprEY20HxiDmV/Bxh+dXjywmy5aKvoGjULA==} - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - - '@types/cookie@0.4.1': - resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} - '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - '@types/doctrine@0.0.3': - resolution: {integrity: sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA==} + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} '@types/es-aggregate-error@1.0.6': resolution: {integrity: sha512-qJ7LIFp06h1QE1aVxbVd+zJP2wdaugYXYfd6JxsyRMrYHaxb6itXPogW2tz+ylUJ1n1b+JF1PHyYCfYHm0dvUg==} - '@types/escodegen@0.0.6': - resolution: {integrity: sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==} - '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} @@ -4550,42 +3967,12 @@ packages: '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - '@types/estree@0.0.51': - resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} - '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@types/express-serve-static-core@4.17.43': - resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} - - '@types/express@4.17.21': - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - - '@types/find-cache-dir@3.2.1': - resolution: {integrity: sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==} - - '@types/glob@8.1.0': - resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} - - '@types/graceful-fs@4.1.9': - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - - '@types/hast@2.3.10': - resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} - '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - '@types/html-minifier-terser@6.1.0': - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} - - '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - - '@types/is-function@1.0.3': - resolution: {integrity: sha512-/CLhCW79JUeLKznI6mbVieGbl4QU5Hfn+6udw1YHZoofASjbQ5zaP5LzAUZYDpRYEjS4/P+DhEgyJ/PQmGGTWw==} - '@types/istanbul-lib-coverage@2.0.6': resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -4598,18 +3985,9 @@ packages: '@types/jest@29.5.12': resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} - '@types/js-levenshtein@1.1.3': - resolution: {integrity: sha512-jd+Q+sD20Qfu9e2aEXogiO3vpOC1PYJOUdyN9gvs4Qrvkg4wF43L5OhqrPeokdv8TL0/mXoYfpkcoGZMNN2pkQ==} - - '@types/js-yaml@4.0.9': - resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} - '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/json-stable-stringify@1.0.36': - resolution: {integrity: sha512-b7bq23s4fgBB76n34m2b3RBf6M369B0Z9uRR8aHTMd8kZISRkmDEpPD8hhpYvDFzr3bJCPES96cm3Q6qRNDbQw==} - '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} @@ -4619,61 +3997,30 @@ packages: '@types/lodash@4.17.4': resolution: {integrity: sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==} - '@types/mdast@3.0.15': - resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} - '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - - '@types/mime@4.0.0': - resolution: {integrity: sha512-5eEkJZ/BLvTE3vXGKkWlyTSUVZuzj23Wj8PoyOq2lt5I3CYbiLBOPb3XmCW6QcuOibIUE6emHXHt9E/F/rCa6w==} - deprecated: This is a stub types definition. mime provides its own type definitions, so you do not need this installed. - - '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/node-fetch@2.6.11': - resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} + '@types/node@16.18.126': + resolution: {integrity: sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==} - '@types/node@16.18.105': - resolution: {integrity: sha512-w2d0Z9yMk07uH3+Cx0N8lqFyi3yjXZxlbYappPj+AsOlT02OyxyiuNoNHdGt6EuiSm8Wtgp2YV7vWg+GMFrvFA==} + '@types/node@20.14.8': + resolution: {integrity: sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==} - '@types/node@18.19.79': - resolution: {integrity: sha512-90K8Oayimbctc5zTPHPfZloc/lGVs7f3phUAAMcTgEPtg8kKquGZDERC8K4vkBYkQQh48msiYUslYtxTWvqcAg==} - - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - - '@types/npmlog@4.1.6': - resolution: {integrity: sha512-0l3z16vnlJGl2Mi/rgJFrdwfLZ4jfNYgE6ZShEpjqhHuGTqdEzNles03NpYHwUMVYZa+Tj46UxKIEpE78lQ3DQ==} + '@types/node@20.19.21': + resolution: {integrity: sha512-CsGG2P3I5y48RPMfprQGfy4JPRZ6csfC3ltBZSRItG3ngggmNY/qs2uZKp4p9VbrpqNNSMzUZNFZKzgOGnd/VA==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - '@types/parse5@5.0.3': - resolution: {integrity: sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==} - '@types/pluralize@0.0.30': resolution: {integrity: sha512-kVww6xZrW/db5BR9OqiT71J9huRdQ+z/r+LbDuT7/EK50mCmj5FoaIARnVv0rvjUS/YpDox0cDU9lpQT011VBA==} - '@types/pretty-hrtime@1.0.3': - resolution: {integrity: sha512-nj39q0wAIdhwn7DGUyT9irmsKK1tV0bd5WFEhgpqNTMFZ8cE+jieuTphCW0tfdm47S2zVT5mr09B28b1chmQMA==} - '@types/prop-types@15.7.12': resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - '@types/qs@6.9.15': - resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} - - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@18.3.0': resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} @@ -4689,18 +4036,12 @@ packages: '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - - '@types/serve-static@1.15.5': - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} - - '@types/set-cookie-parser@2.4.7': - resolution: {integrity: sha512-+ge/loa0oTozxip6zmhRIk8Z/boU51wl9Q6QdLZcokIGMzY5lFXYy/x7Htj2HTC6/KZP1hUbZ1ekx8DYXICvWg==} - '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + '@types/statuses@2.0.6': + resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==} + '@types/tern@0.23.9': resolution: {integrity: sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==} @@ -4716,27 +4057,21 @@ packages: '@types/urijs@1.19.25': resolution: {integrity: sha512-XOfUup9r3Y06nFAZh3WvO0rBU4OtlfPB/vgxpjg+NRdGU6CN6djdc6OEiH+PcqHCY6eFLo9Ista73uarf4gnBg==} + '@types/use-sync-external-store@0.0.6': + resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} + '@types/uuid@9.0.8': resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} '@types/validator@13.11.10': resolution: {integrity: sha512-e2PNXoXLr6Z+dbfx5zSh9TRlXJrELycxiaXznp4S5+D2M3b9bqJEitNHA5923jhnB2zzFiZHa2f0SI1HoIahpg==} - '@types/webpack-env@1.18.5': - resolution: {integrity: sha512-wz7kjjRRj8/Lty4B+Kr0LN6Ypc/3SymeCCGSbaXp2leH0ZVg/PriNiOwNj4bD4uphI7A8NXS4b6Gl373sfO5mA==} - - '@types/ws@8.5.10': - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@types/yargs@15.0.19': - resolution: {integrity: sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==} - - '@types/yargs@16.0.9': - resolution: {integrity: sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==} - '@types/yargs@17.0.32': resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} @@ -4914,150 +4249,109 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vitejs/plugin-react@4.3.1': - resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} + '@vitejs/plugin-react@4.7.0': + resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^4.2.0 || ^5.0.0 + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - '@vitest/coverage-v8@0.32.4': - resolution: {integrity: sha512-itiCYY3TmWEK+5wnFBoNr0ZA+adACp7Op1r2TeX5dPOgU2See7+Gx2NlK2lVMHVxfPsu5z9jszKa3i//eR+hqg==} + '@vitest/coverage-v8@3.2.4': + resolution: {integrity: sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==} peerDependencies: - vitest: '>=0.32.0 <1' + '@vitest/browser': 3.2.4 + vitest: 3.2.4 + peerDependenciesMeta: + '@vitest/browser': + optional: true - '@vitest/expect@0.32.4': - resolution: {integrity: sha512-m7EPUqmGIwIeoU763N+ivkFjTzbaBn0n9evsTOcde03ugy2avPs3kZbYmw3DkcH1j5mxhMhdamJkLQ6dM1bk/A==} + '@vitest/expect@3.2.4': + resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} - '@vitest/runner@0.32.4': - resolution: {integrity: sha512-cHOVCkiRazobgdKLnczmz2oaKK9GJOw6ZyRcaPdssO1ej+wzHVIkWiCiNacb3TTYPdzMddYkCgMjZ4r8C0JFCw==} + '@vitest/mocker@3.2.4': + resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true - '@vitest/snapshot@0.32.4': - resolution: {integrity: sha512-IRpyqn9t14uqsFlVI2d7DFMImGMs1Q9218of40bdQQgMePwVdmix33yMNnebXcTzDU5eiV3eUsoxxH5v0x/IQA==} + '@vitest/pretty-format@3.2.4': + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} - '@vitest/spy@0.32.4': - resolution: {integrity: sha512-oA7rCOqVOOpE6rEoXuCOADX7Lla1LIa4hljI2MSccbpec54q+oifhziZIJXxlE/CvI2E+ElhBHzVu0VEvJGQKQ==} + '@vitest/runner@3.2.4': + resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} - '@vitest/utils@0.32.4': - resolution: {integrity: sha512-Gwnl8dhd1uJ+HXrYyV0eRqfmk9ek1ASE/LWfTCuWMw+d07ogHqp4hEAV28NiecimK6UY9DpSEPh+pXBA5gtTBg==} + '@vitest/snapshot@3.2.4': + resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} + + '@vitest/spy@3.2.4': + resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} + + '@vitest/utils@3.2.4': + resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - '@webassemblyjs/ast@1.9.0': - resolution: {integrity: sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==} - '@webassemblyjs/floating-point-hex-parser@1.13.2': resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - '@webassemblyjs/floating-point-hex-parser@1.9.0': - resolution: {integrity: sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==} - '@webassemblyjs/helper-api-error@1.13.2': resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - '@webassemblyjs/helper-api-error@1.9.0': - resolution: {integrity: sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==} - '@webassemblyjs/helper-buffer@1.14.1': resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - '@webassemblyjs/helper-buffer@1.9.0': - resolution: {integrity: sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==} - - '@webassemblyjs/helper-code-frame@1.9.0': - resolution: {integrity: sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==} - - '@webassemblyjs/helper-fsm@1.9.0': - resolution: {integrity: sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==} - - '@webassemblyjs/helper-module-context@1.9.0': - resolution: {integrity: sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==} - '@webassemblyjs/helper-numbers@1.13.2': resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} '@webassemblyjs/helper-wasm-bytecode@1.13.2': resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} - '@webassemblyjs/helper-wasm-bytecode@1.9.0': - resolution: {integrity: sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==} - '@webassemblyjs/helper-wasm-section@1.14.1': resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} - '@webassemblyjs/helper-wasm-section@1.9.0': - resolution: {integrity: sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==} - '@webassemblyjs/ieee754@1.13.2': resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} - '@webassemblyjs/ieee754@1.9.0': - resolution: {integrity: sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==} - '@webassemblyjs/leb128@1.13.2': resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} - '@webassemblyjs/leb128@1.9.0': - resolution: {integrity: sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==} - '@webassemblyjs/utf8@1.13.2': resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} - '@webassemblyjs/utf8@1.9.0': - resolution: {integrity: sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==} - '@webassemblyjs/wasm-edit@1.14.1': resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} - '@webassemblyjs/wasm-edit@1.9.0': - resolution: {integrity: sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==} - '@webassemblyjs/wasm-gen@1.14.1': resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} - '@webassemblyjs/wasm-gen@1.9.0': - resolution: {integrity: sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==} - '@webassemblyjs/wasm-opt@1.14.1': resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - '@webassemblyjs/wasm-opt@1.9.0': - resolution: {integrity: sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==} - '@webassemblyjs/wasm-parser@1.14.1': resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} - '@webassemblyjs/wasm-parser@1.9.0': - resolution: {integrity: sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==} - - '@webassemblyjs/wast-parser@1.9.0': - resolution: {integrity: sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==} - '@webassemblyjs/wast-printer@1.14.1': resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} - '@webassemblyjs/wast-printer@1.9.0': - resolution: {integrity: sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==} + '@whatwg-node/disposablestack@0.0.6': + resolution: {integrity: sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==} + engines: {node: '>=18.0.0'} - '@whatwg-node/events@0.0.3': - resolution: {integrity: sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==} + '@whatwg-node/fetch@0.10.11': + resolution: {integrity: sha512-eR8SYtf9Nem1Tnl0IWrY33qJ5wCtIWlt3Fs3c6V4aAaTFLtkEQErXu3SSZg/XCHrj9hXSJ8/8t+CdMk5Qec/ZA==} + engines: {node: '>=18.0.0'} - '@whatwg-node/events@0.1.1': - resolution: {integrity: sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==} - engines: {node: '>=16.0.0'} + '@whatwg-node/node-fetch@0.8.1': + resolution: {integrity: sha512-cQmQEo7IsI0EPX9VrwygXVzrVlX43Jb7/DBZSmpnC7xH4xkyOnn/HykHpTaQk7TUs7zh59A5uTGqx3p2Ouzffw==} + engines: {node: '>=18.0.0'} - '@whatwg-node/fetch@0.8.8': - resolution: {integrity: sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==} - - '@whatwg-node/fetch@0.9.17': - resolution: {integrity: sha512-TDYP3CpCrxwxpiNY0UMNf096H5Ihf67BK1iKGegQl5u9SlpEDYrvnV71gWBGJm+Xm31qOy8ATgma9rm8Pe7/5Q==} - engines: {node: '>=16.0.0'} - - '@whatwg-node/node-fetch@0.3.6': - resolution: {integrity: sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==} - - '@whatwg-node/node-fetch@0.5.10': - resolution: {integrity: sha512-KIAHepie/T1PRkUfze4t+bPlyvpxlWiXTPtcGlbIZ0vWkBJMdRmCg4ZrJ2y4XaO1eTPo1HlWYUuj1WvoIpumqg==} + '@whatwg-node/promise-helpers@1.3.2': + resolution: {integrity: sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA==} engines: {node: '>=16.0.0'} '@wry/caches@1.0.1': @@ -5080,19 +4374,12 @@ packages: resolution: {integrity: sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA==} engines: {node: '>=8'} - '@xmldom/xmldom@0.8.10': - resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} - engines: {node: '>=10.0.0'} - '@xtuc/ieee754@1.2.0': resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} '@xtuc/long@4.2.2': resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - '@zxing/text-encoding@0.9.0': - resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} - JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -5105,33 +4392,15 @@ packages: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} - engines: {node: '>=0.4.0'} - acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} - acorn@6.4.2: - resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} - engines: {node: '>=0.4.0'} - hasBin: true - - acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.14.0: resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} @@ -5146,17 +4415,6 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} - engines: {node: '>= 14'} - - aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - - airbnb-js-shims@2.2.1: - resolution: {integrity: sha512-wJNXPH66U2xjgo1Zwyjf9EydvJ2Si94+vSdk6EERcBfB2VZkeltpqIats0cqIZMLCXP3zcyaUKGYQeIBT6XjsQ==} - ajv-draft-04@1.0.0: resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} peerDependencies: @@ -5165,11 +4423,6 @@ packages: ajv: optional: true - ajv-errors@1.0.1: - resolution: {integrity: sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==} - peerDependencies: - ajv: '>=5.0.0' - ajv-errors@3.0.0: resolution: {integrity: sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==} peerDependencies: @@ -5203,18 +4456,13 @@ packages: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - ansi-escapes@6.2.1: resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} engines: {node: '>=14.16'} - ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} - engines: {'0': node >= 0.8.0} - hasBin: true + ansi-escapes@7.1.1: + resolution: {integrity: sha512-Zhl0ErHcSRUaVfGUeUdDuLgpkEo8KIFjB4Y9uAc46ScOpdDiU1Dbyplh7qWJeJ/ZHpbyMSM26+X3BySgnIz40Q==} + engines: {node: '>=18'} ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} @@ -5224,6 +4472,10 @@ packages: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -5236,44 +4488,23 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - ansi-to-html@0.6.15: - resolution: {integrity: sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ==} - engines: {node: '>=8.0.0'} - hasBin: true + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - anymatch@2.0.0: - resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} - anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - app-root-dir@1.0.2: - resolution: {integrity: sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==} - - aproba@1.2.0: - resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} - - aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - - are-we-there-yet@2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} - deprecated: This package is no longer supported. - arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -5287,18 +4518,6 @@ packages: aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - arr-diff@4.0.0: - resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} - engines: {node: '>=0.10.0'} - - arr-flatten@1.1.0: - resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} - engines: {node: '>=0.10.0'} - - arr-union@3.1.0: - resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} - engines: {node: '>=0.10.0'} - array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} @@ -5307,9 +4526,6 @@ packages: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-includes@3.1.8: resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} @@ -5318,10 +4534,6 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - array-unique@0.3.2: - resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} - engines: {node: '>=0.10.0'} - array.prototype.findlast@1.2.5: resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} @@ -5338,14 +4550,6 @@ packages: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} - array.prototype.map@1.0.7: - resolution: {integrity: sha512-XpcFfLoBEAhezrrNw1V+yLXkE7M6uR7xJEsxbG6c/V9v043qurwVJB9r9UTnoSioFDoz1i1VOydpWGmJpfVZbg==} - engines: {node: '>= 0.4'} - - array.prototype.reduce@1.0.7: - resolution: {integrity: sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==} - engines: {node: '>= 0.4'} - array.prototype.toreversed@1.1.2: resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} @@ -5360,52 +4564,23 @@ packages: asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - asn1.js@4.10.1: - resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} - - asn1js@3.0.5: - resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==} - engines: {node: '>=12.0.0'} - - assert@1.5.1: - resolution: {integrity: sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==} - - assert@2.1.0: - resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} - - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - - assign-symbols@1.0.0: - resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} - engines: {node: '>=0.10.0'} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} + ast-v8-to-istanbul@0.3.5: + resolution: {integrity: sha512-9SdXjNheSiE8bALAQCQQuT6fgQaoxJh7IRYrRGZ8/9nv8WhJeC1aXAwN8TbaOssGOukUvyvnkgD9+Yuykvl1aA==} astring@1.9.0: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true - async-each@1.0.6: - resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} - asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - - atob@2.1.2: - resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} - engines: {node: '>= 4.5.0'} - hasBin: true - audit-ci@6.6.1: resolution: {integrity: sha512-zqZEoYfEC4QwX5yBkDNa0h7YhZC63HWtKtP19BVq+RS0dxRBInfmHogxe4VUeOzoADQjuTLZUI7zp3Pjyl+a5g==} engines: {node: '>=12.9.0'} @@ -5440,41 +4615,15 @@ packages: '@babel/core': ^7.0.0 webpack: '>=2' - babel-plugin-apply-mdx-type-prop@1.6.22: - resolution: {integrity: sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==} - peerDependencies: - '@babel/core': ^7.11.6 - - babel-plugin-emotion@10.2.2: - resolution: {integrity: sha512-SMSkGoqTbTyUTDeuVuPIWifPdUGkTk1Kf9BWRiXIOIcuyMfsdp2EjeiiFvOzX8NOBvEh/ypKYvUh2rkgAJMCLA==} - - babel-plugin-extract-import-names@1.6.22: - resolution: {integrity: sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==} - - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - - babel-plugin-macros@2.8.0: - resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} - babel-plugin-macros@3.1.0: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} - babel-plugin-named-exports-order@0.0.2: - resolution: {integrity: sha512-OgOYHOLoRK+/mvXU9imKHlG6GkPLYrUCvFXG/CM93R/aNNO8pOOF4aS+S8CCHMDQoNSeiOYEZb/G6RwL95Jktw==} - babel-plugin-polyfill-corejs2@0.4.14: resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-corejs3@0.1.7: - resolution: {integrity: sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - babel-plugin-polyfill-corejs3@0.10.4: resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} peerDependencies: @@ -5490,9 +4639,6 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-syntax-jsx@6.18.0: - resolution: {integrity: sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==} - babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: resolution: {integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==} @@ -5510,55 +4656,22 @@ packages: babel-preset-react-app@10.1.0: resolution: {integrity: sha512-f9B1xMdnkCIqe+2dHrJsoQFRz7reChaAHE/65SdaykPklQqhme2WaC08oD3is77x9ff98/9EazAKFDZv5rFEQg==} - bail@1.0.5: - resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} - bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - base@0.11.2: - resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} - engines: {node: '>=0.10.0'} - bcryptjs@2.4.3: resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - binary-extensions@1.13.1: - resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} - engines: {node: '>=0.10.0'} - binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - - bluebird@3.7.2: - resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - - bn.js@4.12.2: - resolution: {integrity: sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==} - - bn.js@5.2.2: - resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==} - - body-parser@1.20.3: - resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -5568,40 +4681,10 @@ packages: brace-expansion@2.0.2: resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} - braces@2.3.2: - resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} - engines: {node: '>=0.10.0'} - braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - brorand@1.1.0: - resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} - - browser-assert@1.2.1: - resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} - - browserify-aes@1.2.0: - resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} - - browserify-cipher@1.0.1: - resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==} - - browserify-des@1.0.2: - resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==} - - browserify-rsa@4.1.1: - resolution: {integrity: sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==} - engines: {node: '>= 0.10'} - - browserify-sign@4.2.3: - resolution: {integrity: sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==} - engines: {node: '>= 0.12'} - - browserify-zlib@0.2.0: - resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==} - browserslist@4.25.4: resolution: {integrity: sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -5616,37 +4699,14 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - buffer-xor@1.0.3: - resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} - - buffer@4.9.2: - resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} - - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - - builtin-status-codes@3.0.0: - resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} - busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - cacache@12.0.4: - resolution: {integrity: sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==} - - cache-base@1.0.1: - resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} - engines: {node: '>=0.10.0'} - call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -5683,23 +4743,12 @@ packages: capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} - capture-exit@2.0.0: - resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} - engines: {node: 6.* || 8.* || >= 10.*} - - case-sensitive-paths-webpack-plugin@2.4.0: - resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} - engines: {node: '>=4'} - - ccount@1.1.0: - resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} - ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} + chai@5.3.3: + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} + engines: {node: '>=18'} chalk@3.0.0: resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} @@ -5725,32 +4774,21 @@ packages: character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - character-entities-legacy@3.0.0: resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - character-entities@1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - character-reference-invalid@1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + chardet@2.1.0: + resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} - - chokidar@2.1.8: - resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} @@ -5760,62 +4798,36 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} - chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} - ci-info@2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - cipher-base@1.0.6: - resolution: {integrity: sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==} - engines: {node: '>= 0.10'} - - class-utils@0.3.6: - resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} - engines: {node: '>=0.10.0'} - class-variance-authority@0.7.0: resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} - clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} - engines: {node: '>= 10.0'} - - clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - cli-cursor@4.0.0: resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - - cli-truncate@2.1.0: - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} - engines: {node: '>=8'} + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} cli-truncate@4.0.0: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} - cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} + cli-truncate@5.1.0: + resolution: {integrity: sha512-7JDGG+4Zp0CsknDCedl0DYdaeOhc46QNpXi3NLQblkZpXXgA6LncLDUUyvrjSvZeF3VRQa+KiMGomazQrC1V8g==} + engines: {node: '>=20'} + + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} @@ -5827,18 +4839,6 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} - - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - - clsx@1.1.0: - resolution: {integrity: sha512-3avwM37fSK5oP6M5rQ9CNe99lwxhXDOeSWVPAOYF6OazUTgZCMb0yWlJpmdD74REy1gkEaFiub2ULv4fq9GUhA==} - engines: {node: '>=6'} - clsx@1.2.1: resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} engines: {node: '>=6'} @@ -5867,13 +4867,6 @@ packages: codemirror@5.65.16: resolution: {integrity: sha512-br21LjYmSlVL0vFCPWPfhzUCT34FM/pAdK7rRIZwa0rrtrIdotvP4Oh4GUHsu2E3IrQMCfRkL/fN3ytMNxVQvg==} - collapse-white-space@1.0.6: - resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==} - - collection-visit@1.0.0: - resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} - engines: {node: '>=0.10.0'} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -5881,13 +4874,6 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - - colorette@1.4.0: - resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} - colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} @@ -5895,9 +4881,6 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - comma-separated-tokens@1.0.8: - resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} - comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -5916,10 +4899,6 @@ packages: resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - common-tags@1.8.2: resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} engines: {node: '>=4.0.0'} @@ -5930,66 +4909,24 @@ packages: compare-versions@6.1.1: resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} - component-emitter@1.3.1: - resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} - concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - concat-stream@1.6.2: - resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} - engines: {'0': node >= 0.8} - - confbox@0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - confusing-browser-globals@1.0.11: resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} - console-browserify@1.2.0: - resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} - - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - constant-case@3.0.4: resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} - constants-browserify@1.0.0: - resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} - - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - - cookie@0.4.2: - resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} - engines: {node: '>= 0.6'} - - cookie@0.7.1: - resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} - engines: {node: '>= 0.6'} - - copy-concurrently@1.0.5: - resolution: {integrity: sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==} - deprecated: This package is no longer supported. - - copy-descriptor@0.1.1: - resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} - engines: {node: '>=0.10.0'} + cookie@1.0.2: + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + engines: {node: '>=18'} copy-to-clipboard@3.3.3: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} @@ -5997,16 +4934,9 @@ packages: core-js-compat@3.45.1: resolution: {integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==} - core-js@3.37.1: - resolution: {integrity: sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==} - core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cosmiconfig@6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} - cosmiconfig@7.1.0: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} @@ -6020,17 +4950,14 @@ packages: typescript: optional: true - create-ecdh@4.0.4: - resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} - - create-hash@1.1.3: - resolution: {integrity: sha512-snRpch/kwQhcdlnZKYanNF1m0RDlrCdSKQaH87w1FCFPVPNCQ/Il9QJKAX2jVBZddRdaHBMC+zXa9Gw9tmkNUA==} - - create-hash@1.2.0: - resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} - - create-hmac@1.1.7: - resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} @@ -6041,40 +4968,16 @@ packages: cross-fetch@3.1.8: resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} - cross-inspect@1.0.0: - resolution: {integrity: sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==} + cross-inspect@1.0.1: + resolution: {integrity: sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==} engines: {node: '>=16.0.0'} - cross-spawn@6.0.6: - resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} - engines: {node: '>=4.8'} - cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - crypto-browserify@3.12.1: - resolution: {integrity: sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==} - engines: {node: '>= 0.10'} - - css-loader@3.6.0: - resolution: {integrity: sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==} - engines: {node: '>= 8.9.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - - css-loader@5.2.7: - resolution: {integrity: sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.27.0 || ^5.0.0 - - css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} + css-box-model@1.2.1: + resolution: {integrity: sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==} css.escape@1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} @@ -6088,15 +4991,9 @@ packages: resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} engines: {node: '>=14'} - csstype@2.6.21: - resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} - csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - cyclist@1.0.2: - resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==} - damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -6132,8 +5029,8 @@ packages: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} - dataloader@2.2.2: - resolution: {integrity: sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==} + dataloader@2.2.3: + resolution: {integrity: sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==} date-fns-jalali@4.1.0-0: resolution: {integrity: sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==} @@ -6148,16 +5045,9 @@ packages: debounce-promise@3.1.2: resolution: {integrity: sha512-rZHcgBkbYavBeD9ej6sP56XfG53d51CD4dnaw989YX/nZ/ZJfgRx/9ePKmTNiUiyQvh4mtrMoS3OAWW+yoYtpg==} - debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debounce@2.2.0: + resolution: {integrity: sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw==} + engines: {node: '>=18'} debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} @@ -6185,6 +5075,15 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} @@ -6195,12 +5094,8 @@ packages: decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} - decode-uri-component@0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} - engines: {node: '>=0.10'} - - deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} deep-equal@2.2.3: @@ -6210,13 +5105,6 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -6225,47 +5113,22 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - define-property@0.2.5: - resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} - engines: {node: '>=0.10.0'} - - define-property@1.0.0: - resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} - engines: {node: '>=0.10.0'} - - define-property@2.0.2: - resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} - engines: {node: '>=0.10.0'} - delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - dependency-graph@0.11.0: resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==} engines: {node: '>= 0.6.0'} + dependency-graph@1.0.0: + resolution: {integrity: sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==} + engines: {node: '>=4'} + dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - des.js@1.1.0: - resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} - - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - detab@2.0.4: - resolution: {integrity: sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==} - detect-indent@6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} @@ -6287,9 +5150,6 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - diffie-hellman@5.0.3: - resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} - dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -6308,55 +5168,21 @@ packages: dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} - dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} - dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - - dom-walk@0.1.2: - resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} - - domain-browser@1.2.0: - resolution: {integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==} - engines: {node: '>=0.4', npm: '>=1.2'} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - domexception@4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} deprecated: Use your platform's native DOMException instead - domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - - domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - dotenv-expand@10.0.0: - resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} - engines: {node: '>=12'} - - dotenv-expand@5.1.0: - resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} - dotenv@16.4.5: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} - dotenv@8.6.0: - resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} - engines: {node: '>=10'} - dset@3.1.4: resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} engines: {node: '>=4'} @@ -6371,21 +5197,12 @@ packages: duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - duplexify@3.7.1: - resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} - eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.214: resolution: {integrity: sha512-TpvUNdha+X3ybfU78NoQatKvQEm1oq3lf2QbnmCEdw+Bd9RuIAY+hJTvq1avzHM0f7EJfnH3vbCnbzKzisc/9Q==} - elliptic@6.6.1: - resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} - emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} @@ -6399,42 +5216,32 @@ packages: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} engines: {node: '>= 4'} - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - - encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} - encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - - enhanced-resolve@4.5.0: - resolution: {integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==} - engines: {node: '>=6.9.0'} - enhanced-resolve@5.17.1: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} + enhanced-resolve@5.18.3: + resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} + engines: {node: '>=10.13.0'} + enquirer@2.4.1: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} - entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - errno@0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} - hasBin: true + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -6451,9 +5258,6 @@ packages: resolution: {integrity: sha512-3YxX6rVb07B5TV11AV5wsL7nQCHXNwoHPsQC8S4AmBiqYhyNCJ5BRKXkXyDJvs8QzXN20NgRtxe3dEEQD9NLHA==} engines: {node: '>= 0.4'} - es-array-method-boxes-properly@1.0.0: - resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} - es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} @@ -6469,8 +5273,8 @@ packages: resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} engines: {node: '>= 0.4'} - es-module-lexer@1.5.3: - resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} @@ -6487,31 +5291,9 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} - es5-shim@4.6.7: - resolution: {integrity: sha512-jg21/dmlrNQI7JyyA2w7n+yifSxBng0ZralnSfVZjoCawgNTCnS+yBCyVM9DL5itm7SUnDGgv7hcq2XCZX4iRQ==} - engines: {node: '>=0.4.0'} - es6-promise@3.3.1: resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} - es6-shim@0.35.8: - resolution: {integrity: sha512-Twf7I2v4/1tLoIXMT8HlqaBSS5H2wQTs2wx3MNYCI8K1R1/clXyCazrcVCPm/FuO9cyV8+leEaZOWD5C253NDg==} - - esbuild-register@3.5.0: - resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} - peerDependencies: - esbuild: '>=0.12 <1' - - esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - esbuild@0.25.10: resolution: {integrity: sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==} engines: {node: '>=18'} @@ -6521,13 +5303,6 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} @@ -6540,11 +5315,6 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true - eslint-config-airbnb-base@15.0.0: resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} engines: {node: ^10.12.0 || >=12.0.0} @@ -6705,10 +5475,6 @@ packages: peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-scope@4.0.3: - resolution: {integrity: sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==} - engines: {node: '>=4.0.0'} - eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -6743,11 +5509,6 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - esquery@1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} @@ -6767,14 +5528,13 @@ packages: estree-util-is-identifier-name@3.0.0: resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - event-stream@4.0.1: resolution: {integrity: sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==} @@ -6789,16 +5549,6 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - evp_bytestokey@1.0.3: - resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} - - exec-sh@0.3.6: - resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} - - execa@1.0.0: - resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} - engines: {node: '>=6'} - execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -6807,44 +5557,17 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - expand-brackets@2.1.4: - resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} - engines: {node: '>=0.10.0'} + expect-type@1.2.2: + resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} + engines: {node: '>=12.0.0'} expect@29.7.0: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - express@4.21.2: - resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} - engines: {node: '>= 0.10.0'} - - extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - - extend-shallow@3.0.2: - resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} - engines: {node: '>=0.10.0'} - extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - - extglob@2.0.4: - resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} - engines: {node: '>=0.10.0'} - - extract-files@11.0.0: - resolution: {integrity: sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==} - engines: {node: ^12.20 || >= 14.13} - - fast-decode-uri-component@1.0.1: - resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} - fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -6861,18 +5584,12 @@ packages: fast-memoize@2.5.2: resolution: {integrity: sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==} - fast-querystring@1.1.2: - resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} - fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} - fast-url-parser@1.1.3: - resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} - fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} @@ -6885,47 +5602,27 @@ packages: fbjs@3.0.5: resolution: {integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fetch-blob@3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} - figgy-pudding@3.5.2: - resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==} - deprecated: This module is no longer supported. - - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} - file-system-cache@1.1.0: - resolution: {integrity: sha512-IzF5MBq+5CR0jXx5RxPe4BICl/oEhBSXKaL9fLhAXrIfIUS77Hr4vzrYyqYMHN6uTt+BOqi3fDCTjjEBCjERKw==} - - file-system-cache@2.3.0: - resolution: {integrity: sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==} - - file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - - fill-range@4.0.0: - resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} - engines: {node: '>=0.10.0'} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - finalhandler@1.3.1: - resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} - engines: {node: '>= 0.8'} - - find-cache-dir@2.1.0: - resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} - engines: {node: '>=6'} - find-cache-dir@3.3.2: resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} engines: {node: '>=8'} @@ -6933,10 +5630,6 @@ packages: find-root@1.1.0: resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} - find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -6952,39 +5645,14 @@ packages: flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - flush-write-stream@1.1.1: - resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} - - focus-lock@0.8.1: - resolution: {integrity: sha512-/LFZOIo82WDsyyv7h7oc0MJF9ACOvDRdx9rWPZ2pgMfNWu/z8hQDBtOchuB/0BVLmuFOZjV02YwUVzNsWx/EzA==} - engines: {node: '>=10'} - for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} - for-in@1.0.2: - resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} - engines: {node: '>=0.10.0'} - foreground-child@3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} - fork-ts-checker-webpack-plugin@6.5.3: - resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} - engines: {node: '>=10', yarn: '>=1.0.0'} - peerDependencies: - eslint: '>= 6' - typescript: '>= 2.7' - vue-template-compiler: '*' - webpack: '>= 4' - peerDependenciesMeta: - eslint: - optional: true - vue-template-compiler: - optional: true - form-data@4.0.4: resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} @@ -6993,17 +5661,9 @@ packages: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - fragment-cache@0.2.1: - resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} - engines: {node: '>=0.10.0'} - framer-motion@10.18.0: resolution: {integrity: sha512-oGlDh1Q1XqYPksuTD/usb0I70hq95OUzmL9+6Zd+Hs4XV0oaISBa/UUMSjYiq6m8EUF32132mOJ8xVZS+I0S6w==} peerDependencies: @@ -7024,52 +5684,16 @@ packages: framesync@6.0.1: resolution: {integrity: sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==} - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - - from2@2.3.0: - resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} - from@0.1.7: resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} - fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - - fs-extra@11.1.1: - resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} - engines: {node: '>=14.14'} - - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - fs-extra@11.3.2: resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==} engines: {node: '>=14.14'} - fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} - - fs-monkey@1.0.6: - resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} - - fs-write-stream-atomic@1.0.10: - resolution: {integrity: sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==} - deprecated: This package is no longer supported. - fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - fsevents@1.2.13: - resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} - engines: {node: '>= 4.0'} - os: [darwin] - deprecated: Upgrade to fsevents v2 to mitigate potential security issues - fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -7094,11 +5718,6 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} - deprecated: This package is no longer supported. - generate-password@1.7.1: resolution: {integrity: sha512-9bVYY+16m7W7GczRBDqXE+VVuCX+bWNrfYKC/2p2JkZukFb2sKxT6E3zZ3mJGz7GMe5iRK0A/WawSL3jQfJuNQ==} @@ -7114,8 +5733,9 @@ packages: resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} engines: {node: '>=18'} - get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + get-east-asian-width@1.4.0: + resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} + engines: {node: '>=18'} get-intrinsic@1.3.0: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} @@ -7125,18 +5745,10 @@ packages: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} - get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} - get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} - get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -7156,16 +5768,6 @@ packages: get-tsconfig@4.7.3: resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} - get-value@2.0.6: - resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} - engines: {node: '>=0.10.0'} - - github-slugger@1.5.0: - resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} - - glob-parent@3.1.0: - resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -7174,12 +5776,6 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob-promise@3.4.0: - resolution: {integrity: sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==} - engines: {node: '>=4'} - peerDependencies: - glob: '*' - glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} @@ -7195,9 +5791,6 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported - global@4.4.0: - resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} - globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -7239,8 +5832,8 @@ packages: react: ^16.8.0 || ^17 || ^18 react-dom: ^16.8.0 || ^17 || ^18 - graphql-config@5.0.3: - resolution: {integrity: sha512-BNGZaoxIBkv9yy6Y7omvsaBUHOzfFcII3UN++tpH8MGOKFPFkCPZuwx09ggANMt8FgyWP1Od8SWPmrUEZca4NQ==} + graphql-config@5.1.5: + resolution: {integrity: sha512-mG2LL1HccpU8qg5ajLROgdsBzx/o2M6kgI3uAmoaXiSH9PCUbtIyLomLqUtCFaAeG2YCFsl0M5cfQ9rKmDoMVA==} engines: {node: '>= 16.0.0'} peerDependencies: cosmiconfig-toml-loader: ^1.0.0 @@ -7272,6 +5865,25 @@ packages: peerDependencies: graphql: '>=0.11 <=16' + graphql-ws@6.0.6: + resolution: {integrity: sha512-zgfER9s+ftkGKUZgc0xbx8T7/HMO4AV5/YuYiFc+AtgcO5T0v8AxYYNQ+ltzuzDZgNkYJaFspm5MMYLjQzrkmw==} + engines: {node: '>=20'} + peerDependencies: + '@fastify/websocket': ^10 || ^11 + crossws: ~0.3 + graphql: ^15.10.1 || ^16 + uWebSockets.js: ^20 + ws: ^8 + peerDependenciesMeta: + '@fastify/websocket': + optional: true + crossws: + optional: true + uWebSockets.js: + optional: true + ws: + optional: true + graphql@16.8.1: resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} @@ -7283,11 +5895,6 @@ packages: hamt_plus@1.0.2: resolution: {integrity: sha512-t2JXKaehnMb9paaYA7J0BX8QQAY8lwfQ9Gjf4pg/mk4krt+cmwmU652HOoWonf+7+EQV97ARPMhhVgU1ra2GhA==} - handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} - engines: {node: '>=0.4.7'} - hasBin: true - has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} @@ -7310,78 +5917,27 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - - has-value@0.3.1: - resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} - engines: {node: '>=0.10.0'} - - has-value@1.0.0: - resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} - engines: {node: '>=0.10.0'} - - has-values@0.1.4: - resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} - engines: {node: '>=0.10.0'} - - has-values@1.0.0: - resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} - engines: {node: '>=0.10.0'} - - hash-base@2.0.2: - resolution: {integrity: sha512-0TROgQ1/SxE6KmxWSvXHvRj90/Xo1JvZShofnYF+f6ZsGtR4eES7WfrQzPalmyagfKZCXpVnitiRebZulWsbiw==} - - hash-base@3.0.5: - resolution: {integrity: sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==} - engines: {node: '>= 0.10'} - - hash.js@1.1.7: - resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} - hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hast-to-hyperscript@9.0.1: - resolution: {integrity: sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==} - - hast-util-from-parse5@6.0.1: - resolution: {integrity: sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==} - hast-util-is-element@3.0.0: resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - hast-util-parse-selector@2.2.5: - resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} - - hast-util-raw@6.0.1: - resolution: {integrity: sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==} - hast-util-to-jsx-runtime@2.3.0: resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} - hast-util-to-parse5@6.0.0: - resolution: {integrity: sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==} - hast-util-to-text@4.0.2: resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - hastscript@6.0.0: - resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - header-case@2.0.4: resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} - headers-polyfill@3.2.5: - resolution: {integrity: sha512-tUCGvt191vNSQgttSyJoibR+VO+I6+iCHIUdhzEMJKE+EAL8BwCN7fUOZlY4ofOelNHsK+gEjxB/B+9N3EWtdA==} + headers-polyfill@4.0.3: + resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} hey-listen@1.0.8: resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} @@ -7390,34 +5946,16 @@ packages: resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==} engines: {node: '>=12.0.0'} - hmac-drbg@1.0.1: - resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} - hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - html-encoding-sniffer@3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} - html-entities@2.5.2: - resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} - html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true - - html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} - html-tokenize@2.0.1: resolution: {integrity: sha512-QY6S+hZ0f5m1WT8WffYN+Hg+xm/w5I8XeUcAq/ZYP5wVC8xbKi4Whhru3FtrAebD5EhBW8rmFzkDI6eCAuFe2w==} hasBin: true @@ -7425,50 +5963,17 @@ packages: html-url-attributes@3.0.0: resolution: {integrity: sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==} - html-void-elements@1.0.5: - resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==} - - html-webpack-plugin@5.6.3: - resolution: {integrity: sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==} - engines: {node: '>=10.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.20.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} - - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} - http2-client@1.3.5: resolution: {integrity: sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==} - https-browserify@1.0.0: - resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} - https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} - https-proxy-agent@7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} - engines: {node: '>= 14'} - human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -7477,29 +5982,13 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - icss-utils@4.1.1: - resolution: {integrity: sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==} - engines: {node: '>= 6'} - - icss-utils@5.1.0: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - iferr@0.1.5: - resolution: {integrity: sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==} + iconv-lite@0.7.0: + resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} + engines: {node: '>=0.10.0'} ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} @@ -7516,6 +6005,10 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + import-from@4.0.0: resolution: {integrity: sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==} engines: {node: '>=12.2'} @@ -7528,9 +6021,6 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} - inflected@2.1.0: resolution: {integrity: sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==} @@ -7538,58 +6028,26 @@ packages: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} - inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - inline-style-parser@0.2.4: resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} - inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} - internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - interpret@2.2.0: - resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} - engines: {node: '>= 0.10'} - invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - - is-absolute-url@3.0.3: - resolution: {integrity: sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==} - engines: {node: '>=8'} - is-absolute@1.0.0: resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} engines: {node: '>=0.10.0'} - is-accessor-descriptor@1.0.1: - resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} - engines: {node: '>= 0.10'} - - is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} - is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} @@ -7616,10 +6074,6 @@ packages: resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} engines: {node: '>= 0.4'} - is-binary-path@1.0.1: - resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} - engines: {node: '>=0.10.0'} - is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -7628,29 +6082,14 @@ packages: resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} engines: {node: '>= 0.4'} - is-buffer@1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} - - is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-ci@2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} - hasBin: true - is-core-module@2.16.0: resolution: {integrity: sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g==} engines: {node: '>= 0.4'} - is-data-descriptor@1.0.1: - resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} - engines: {node: '>= 0.4'} - is-data-view@1.0.2: resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} engines: {node: '>= 0.4'} @@ -7659,31 +6098,9 @@ packages: resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} - is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - is-descriptor@0.1.7: - resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} - engines: {node: '>= 0.4'} - - is-descriptor@1.0.3: - resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} - engines: {node: '>= 0.4'} - - is-dom@1.1.0: - resolution: {integrity: sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ==} - - is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - - is-extendable@1.0.1: - resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} - engines: {node: '>=0.10.0'} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -7704,31 +6121,21 @@ packages: resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} engines: {node: '>=18'} - is-function@1.0.2: - resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} + is-fullwidth-code-point@5.1.0: + resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} + engines: {node: '>=18'} is-generator-function@1.0.10: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} - is-glob@3.1.0: - resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} - engines: {node: '>=0.10.0'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - is-lower-case@2.0.2: resolution: {integrity: sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==} @@ -7736,10 +6143,6 @@ packages: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} - is-nan@1.3.2: - resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} - engines: {node: '>= 0.4'} - is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -7751,25 +6154,14 @@ packages: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} - is-number@3.0.0: - resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} - engines: {node: '>=0.10.0'} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-object@1.0.2: - resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==} - is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} - is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -7778,10 +6170,6 @@ packages: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} engines: {node: '>=0.10.0'} - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} @@ -7809,10 +6197,6 @@ packages: resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} engines: {node: '>= 0.4'} - is-stream@1.1.0: - resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} - engines: {node: '>=0.10.0'} - is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -7833,9 +6217,6 @@ packages: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} - is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - is-unc-path@1.0.0: resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} engines: {node: '>=0.10.0'} @@ -7863,23 +6244,10 @@ packages: resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} engines: {node: '>= 0.4'} - is-whitespace-character@1.0.4: - resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==} - - is-window@1.0.2: - resolution: {integrity: sha512-uj00kdXyZb9t9RcAUAwMZAnkBUwdYGhYlt7djMXhfyhUCzwNba50tIiBKR7q0l7tdoBtFVw/3JmLY6fI3rmZmg==} - is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} - is-word-character@1.0.4: - resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} - - is-wsl@1.1.0: - resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} - engines: {node: '>=4'} - isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} @@ -7892,18 +6260,10 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - isobject@2.1.0: - resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} - engines: {node: '>=0.10.0'} - isobject@3.0.1: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} - isobject@4.0.0: - resolution: {integrity: sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==} - engines: {node: '>=0.10.0'} - isomorphic-ws@5.0.0: resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} peerDependencies: @@ -7913,28 +6273,18 @@ packages: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} - istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - istanbul-lib-report@3.0.1: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} - istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} engines: {node: '>=10'} - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} - iterate-iterator@1.0.2: - resolution: {integrity: sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==} - - iterate-value@1.0.2: - resolution: {integrity: sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==} - iterator.prototype@1.1.2: resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} @@ -7950,10 +6300,6 @@ packages: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-haste-map@26.6.2: - resolution: {integrity: sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==} - engines: {node: '>= 10.14.2'} - jest-matcher-utils@29.7.0: resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7962,30 +6308,10 @@ packages: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-mock@27.5.1: - resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - - jest-regex-util@26.0.0: - resolution: {integrity: sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==} - engines: {node: '>= 10.14.2'} - - jest-serializer@26.6.2: - resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} - engines: {node: '>= 10.14.2'} - - jest-util@26.6.2: - resolution: {integrity: sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==} - engines: {node: '>= 10.14.2'} - jest-util@29.7.0: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-worker@26.6.2: - resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} - engines: {node: '>= 10.13.0'} - jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} @@ -7994,30 +6320,22 @@ packages: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - jose@5.2.3: - resolution: {integrity: sha512-KUXdbctm1uHVL8BYhnyHkgp3zDX5KW8ZhAKVFEfUbU2P8Alpzjb+48hHvjOdQIyPshoblhzsuqOwEEAbtHVirA==} - js-cookie@3.0.1: resolution: {integrity: sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==} engines: {node: '>=12'} - js-levenshtein@1.1.6: - resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} - engines: {node: '>=0.10.0'} - - js-string-escape@1.0.1: - resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} - engines: {node: '>= 0.8'} - js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} @@ -8048,9 +6366,6 @@ packages: json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -8063,10 +6378,6 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json-stable-stringify@1.1.1: - resolution: {integrity: sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==} - engines: {node: '>= 0.4'} - json-to-pretty-yaml@1.2.2: resolution: {integrity: sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A==} engines: {node: '>= 0.2.0'} @@ -8086,9 +6397,6 @@ packages: jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - jsonify@0.0.1: - resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} - jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} @@ -8119,22 +6427,6 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - kind-of@3.2.2: - resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} - engines: {node: '>=0.10.0'} - - kind-of@4.0.0: - resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} - engines: {node: '>=0.10.0'} - - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - - klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} - language-subtag-registry@0.3.22: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} @@ -8142,14 +6434,6 @@ packages: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} - lazy-universal-dotenv@3.0.1: - resolution: {integrity: sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ==} - engines: {node: '>=6.0.0', npm: '>=6.0.0', yarn: '>=1.0.0'} - - lazy-universal-dotenv@4.0.0: - resolution: {integrity: sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==} - engines: {node: '>=14.0.0'} - leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -8173,43 +6457,22 @@ packages: engines: {node: '>=18.12.0'} hasBin: true - listr2@4.0.5: - resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} - engines: {node: '>=12'} - peerDependencies: - enquirer: '>= 2.3.0 < 3' - peerDependenciesMeta: - enquirer: - optional: true - listr2@8.2.1: resolution: {integrity: sha512-irTfvpib/rNiD637xeevjO2l3Z5loZmuaRi0L0YE5LfijwVY96oyVn0DFD3o/teAok7nfobMG1THvvcHh/BP6g==} engines: {node: '>=18.0.0'} - loader-runner@2.4.0: - resolution: {integrity: sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==} - engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} + listr2@9.0.4: + resolution: {integrity: sha512-1wd/kpAdKRLwv7/3OKC8zZ5U8e/fajCfWMxacUvB79S5nLrYGPtUI/8chMQhn3LQjsRVErTb9i1ECAwW0ZIHnQ==} + engines: {node: '>=20.0.0'} - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + loader-runner@4.3.1: + resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} engines: {node: '>=6.11.5'} - loader-utils@1.4.2: - resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} - engines: {node: '>=4.0.0'} - loader-utils@2.0.4: resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} engines: {node: '>=8.9.0'} - local-pkg@0.4.3: - resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} - engines: {node: '>=14'} - - locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} - locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -8258,14 +6521,14 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} - log-update@4.0.0: - resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} - engines: {node: '>=10'} - log-update@6.0.0: resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} engines: {node: '>=18'} + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} + loglevel-plugin-prefix@0.8.4: resolution: {integrity: sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==} @@ -8280,8 +6543,8 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + loupe@3.2.1: + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} lower-case-first@2.0.2: resolution: {integrity: sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==} @@ -8299,8 +6562,8 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lucide-react@0.416.0: - resolution: {integrity: sha512-wPWxTzdss1CTz2aqcNWNlbh4YSnH9neJWP3RaeXepxpLCTW+pmu7WcT/wxJe+Q7Y7DqGOxAqakJv0pIK3431Ag==} + lucide-react@0.552.0: + resolution: {integrity: sha512-g9WCjmfwqbexSnZE+2cl21PCfXOcqnGeWeMTNAOGEfpPbm/ZF4YIq77Z8qWrxbu660EKuLB4nSLggoKnCb+isw==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -8311,12 +6574,11 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magic-string@0.30.19: + resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} - make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} + magicast@0.3.5: + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} @@ -8329,30 +6591,13 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - - map-age-cleaner@0.1.3: - resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} - engines: {node: '>=6'} - map-cache@0.2.2: resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} engines: {node: '>=0.10.0'} - map-or-similar@1.5.0: - resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} - map-stream@0.0.7: resolution: {integrity: sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==} - map-visit@1.0.0: - resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} - engines: {node: '>=0.10.0'} - - markdown-escapes@1.0.4: - resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==} - markdown-it@14.1.0: resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true @@ -8364,15 +6609,6 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - md5.js@1.3.5: - resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} - - mdast-squeeze-paragraphs@4.0.0: - resolution: {integrity: sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==} - - mdast-util-definitions@4.0.0: - resolution: {integrity: sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==} - mdast-util-find-and-replace@3.0.1: resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} @@ -8409,52 +6645,18 @@ packages: mdast-util-phrasing@4.1.0: resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - mdast-util-to-hast@10.0.1: - resolution: {integrity: sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==} - mdast-util-to-hast@13.1.0: resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} mdast-util-to-markdown@2.1.0: resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} - mdast-util-to-string@1.1.0: - resolution: {integrity: sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==} - mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - mdurl@1.0.1: - resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} - mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - - mem@8.1.1: - resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} - engines: {node: '>=10'} - - memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} - - memoizerific@1.11.3: - resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} - - memory-fs@0.4.1: - resolution: {integrity: sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==} - - memory-fs@0.5.0: - resolution: {integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==} - engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} - - merge-descriptors@1.0.3: - resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} - merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -8471,9 +6673,14 @@ packages: '@types/node': optional: true - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} + meros@1.3.2: + resolution: {integrity: sha512-Q3mobPbvEx7XbwhnC1J1r60+5H6EZyNccdzSz0eGexJRwouUtTZxPVRGdqKtxlpD84ScK4+tIGldkqDtCKdI0A==} + engines: {node: '>=13'} + peerDependencies: + '@types/node': '>=13' + peerDependenciesMeta: + '@types/node': + optional: true micromark-core-commonmark@2.0.1: resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} @@ -8559,18 +6766,10 @@ packages: micromark@4.0.0: resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} - micromatch@3.1.10: - resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} - engines: {node: '>=0.10.0'} - micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - miller-rabin@4.0.1: - resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} - hasBin: true - mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -8579,30 +6778,17 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - mime@4.0.1: - resolution: {integrity: sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==} - engines: {node: '>=16'} - hasBin: true - mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - mimic-fn@3.1.0: - resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} - engines: {node: '>=8'} - mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} - min-document@2.19.0: - resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} @@ -8612,19 +6798,9 @@ packages: resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} hasBin: true - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - - minimalistic-crypto-utils@1.0.1: - resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@4.2.3: - resolution: {integrity: sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==} - engines: {node: '>=10'} - minimatch@6.2.0: resolution: {integrity: sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==} engines: {node: '>=10'} @@ -8648,49 +6824,22 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - mississippi@3.0.0: - resolution: {integrity: sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==} - engines: {node: '>=4.0.0'} - - mixin-deep@1.3.2: - resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} - engines: {node: '>=0.10.0'} - - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - - mlly@1.7.3: - resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==} - - move-concurrently@1.0.1: - resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==} - deprecated: This package is no longer supported. - mrmime@1.0.1: resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} engines: {node: '>=10'} - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - msw-storybook-addon@1.10.0: - resolution: {integrity: sha512-soCTMTf7DnLeaMnFHPrtVgbyeFTJALVvnDHpzzXpJad+HOzJgQdwU4EAzVfDs1q+X5cVEgxOdAhSMC7ljvnSXg==} - peerDependencies: - msw: '>=0.35.0 <2.0.0' - - msw@1.3.5: - resolution: {integrity: sha512-nG3fpmBXxFbKSIdk6miPuL3KjU6WMxgoW4tG1YgnP1M+TRG3Qn7b7R0euKAHq4vpwARHb18ZyfZljSxsTnMX2w==} - engines: {node: '>=14'} + msw@2.11.4: + resolution: {integrity: sha512-CtRZ76gHVoTZiEhAM4zFJpglZ4Ptbg9g7qHn3wbKe55gCoWucC2CErXv/lAUPvOIr1kQw/V8AH4taOsREiNN/Q==} + engines: {node: '>=18'} hasBin: true peerDependencies: - typescript: '>= 4.4.x' + typescript: '>= 4.8.x' peerDependenciesMeta: typescript: optional: true @@ -8698,34 +6847,24 @@ packages: multipipe@1.0.2: resolution: {integrity: sha512-6uiC9OvY71vzSGX8lZvSqscE7ft9nPupJ8fMjrCNRAUy2LREUW42UL+V/NTrogr6rFgRydUrCX4ZitfpSNkSCQ==} - mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + mute-stream@2.0.0: + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nan@2.23.0: - resolution: {integrity: sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==} - nanoid@3.3.8: resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanomatch@1.2.13: - resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} - engines: {node: '>=0.10.0'} - natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -8766,9 +6905,6 @@ packages: sass: optional: true - nice-try@1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - nimma@0.2.3: resolution: {integrity: sha512-1ZOI8J+1PKKGceo/5CT5GfQOG6H8I2BencSK06YarZ2wXwH37BSSUWldqJmMJYA5JfqDqffxDXynt6f11AyKcA==} engines: {node: ^12.20 || >=14.13} @@ -8810,9 +6946,6 @@ packages: node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-libs-browser@2.2.1: - resolution: {integrity: sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==} - node-pg-format@1.3.5: resolution: {integrity: sha512-dyuRvnS/CCGBjjWFmigdb2HV8azWGJVcH8Se3yJ6nFnW2P9sd0bYNof6ITn6Fs7puqBs/EO3IciYTIZlg2hqNQ==} engines: {node: '>=4.0'} @@ -8823,9 +6956,6 @@ packages: node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - normalize-path@2.1.1: resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} engines: {node: '>=0.10.0'} @@ -8838,10 +6968,6 @@ packages: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} - npm-run-path@2.0.2: - resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} - engines: {node: '>=4'} - npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -8850,10 +6976,6 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} - deprecated: This package is no longer supported. - nprogress-v2@1.0.4: resolution: {integrity: sha512-HPhTEgqsQMFXXuaftvu6bevqEXvcQ/hogvkAswlcNyS9eRGjvo7wZY1O4H3aZS4Uq8oWSO6sL3dOj6Oq/ZJN5A==} @@ -8889,10 +7011,6 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-copy@0.1.0: - resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} - engines: {node: '>=0.10.0'} - object-hash@3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} @@ -8916,10 +7034,6 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - object-visit@1.0.1: - resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} - engines: {node: '>=0.10.0'} - object.assign@4.1.7: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} @@ -8932,10 +7046,6 @@ packages: resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} - object.getownpropertydescriptors@2.1.8: - resolution: {integrity: sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==} - engines: {node: '>= 0.8'} - object.groupby@1.0.3: resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} engines: {node: '>= 0.4'} @@ -8944,18 +7054,10 @@ packages: resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} engines: {node: '>= 0.4'} - object.pick@1.3.0: - resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} - engines: {node: '>=0.10.0'} - object.values@1.2.0: resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -8967,6 +7069,10 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + openapi-types@12.1.3: resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} @@ -8987,36 +7093,17 @@ packages: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - orval@7.11.2: resolution: {integrity: sha512-Cjc/dgnQwAOkvymzvPpFqFc2nQwZ29E+ZFWUI8yKejleHaoFKIdwvkM/b1njtLEjePDcF0hyqXXCTz2wWaXLig==} hasBin: true - os-browserify@0.3.0: - resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==} - - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - - outvariant@1.4.2: - resolution: {integrity: sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==} + outvariant@1.4.3: + resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} own-keys@1.0.1: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - p-defer@1.0.0: - resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} - engines: {node: '>=4'} - - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -9025,14 +7112,6 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} - p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -9041,10 +7120,6 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -9052,12 +7127,6 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - - parallel-transform@1.2.0: - resolution: {integrity: sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==} - param-case@3.0.4: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} @@ -9065,13 +7134,6 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-asn1@5.1.7: - resolution: {integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==} - engines: {node: '>= 0.10'} - - parse-entities@2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} - parse-entities@4.0.1: resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} @@ -9083,39 +7145,15 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} - pascalcase@0.1.1: - resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} - engines: {node: '>=0.10.0'} - - path-browserify@0.0.1: - resolution: {integrity: sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==} - - path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - path-case@3.0.4: resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} - path-dirname@1.0.2: - resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} - - path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -9124,10 +7162,6 @@ packages: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -9151,9 +7185,6 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-to-regexp@0.1.12: - resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} - path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} @@ -9161,22 +7192,16 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} + engines: {node: '>= 14.16'} pause-stream@0.0.11: resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} - pbkdf2@3.1.3: - resolution: {integrity: sha512-wfRLBZ0feWRhCIkoMB6ete7czJcnNnqRpcoWQBLqatqXXmelSRqfdDK4F3u9T2s2cXas/hQJcryI/4lAL+XTlA==} - engines: {node: '>=0.12'} - - picocolors@0.2.1: - resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -9184,6 +7209,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} @@ -9193,29 +7222,14 @@ packages: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} - pkg-dir@3.0.0: - resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} - engines: {node: '>=6'} - pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - pkg-dir@5.0.0: - resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} - engines: {node: '>=10'} - - pkg-types@1.2.1: - resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} - playwright-core@1.54.1: resolution: {integrity: sha512-Nbjs2zjj0htNhzgiy5wu+3w09YetDx5pkrpI/kZotDlDUaYk0HVA5xrBVPdow4SAUIlhgKcJeJg4GRKW6xHusA==} engines: {node: '>=18'} @@ -9230,10 +7244,6 @@ packages: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} - polished@4.3.1: - resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} - engines: {node: '>=10'} - pony-cause@1.1.1: resolution: {integrity: sha512-PxkIc/2ZpLiEzQXu5YRDOUgBlfGYBY8156HY5ZcRAwwonMk5W/MrJP2LLkG/hF7GEQzaHo2aS7ho6ZLCOvf+6g==} engines: {node: '>=12.0.0'} @@ -9241,10 +7251,6 @@ packages: popmotion@11.0.3: resolution: {integrity: sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==} - posix-character-classes@0.1.1: - resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} - engines: {node: '>=0.10.0'} - possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} @@ -9273,52 +7279,6 @@ packages: ts-node: optional: true - postcss-loader@4.3.0: - resolution: {integrity: sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==} - engines: {node: '>= 10.13.0'} - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^4.0.0 || ^5.0.0 - - postcss-modules-extract-imports@2.0.0: - resolution: {integrity: sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==} - engines: {node: '>= 6'} - - postcss-modules-extract-imports@3.1.0: - resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-local-by-default@3.0.3: - resolution: {integrity: sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==} - engines: {node: '>= 6'} - - postcss-modules-local-by-default@4.0.5: - resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-scope@2.2.0: - resolution: {integrity: sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==} - engines: {node: '>= 6'} - - postcss-modules-scope@3.2.0: - resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-values@3.0.0: - resolution: {integrity: sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==} - - postcss-modules-values@4.0.0: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - postcss-nested@6.2.0: resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} engines: {node: '>=12.0'} @@ -9336,10 +7296,6 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@7.0.39: - resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==} - engines: {node: '>=6.0.0'} - postcss@8.4.31: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} @@ -9417,19 +7373,11 @@ packages: prettier-plugin-svelte: optional: true - prettier@2.3.0: - resolution: {integrity: sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==} - engines: {node: '>=10.13.0'} - hasBin: true - prettier@3.4.2: resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} engines: {node: '>=14'} hasBin: true - pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} - pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -9438,33 +7386,9 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - pretty-hrtime@1.0.3: - resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} - engines: {node: '>= 0.8'} - process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - - promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - - promise.allsettled@1.0.7: - resolution: {integrity: sha512-hezvKvQQmsFkOdrZfYxUxkyxl8mgFQeT259Ajj9PXdbg9VzBCWrItOev72JyWxkCD5VSSqAeHmlN3tWx4DlmsA==} - engines: {node: '>= 0.4'} - - promise.prototype.finally@3.1.8: - resolution: {integrity: sha512-aVDtsXOml9iuMJzUco9J1je/UrIT3oMYfWkCTiUhkt+AvZw72q4dUZnR/R/eB3h5GeAagQVXvM1ApoYniJiwoA==} - engines: {node: '>= 0.4'} - promise@7.3.1: resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} @@ -9474,90 +7398,36 @@ packages: property-expr@2.0.6: resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} - property-information@5.6.0: - resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} - property-information@6.5.0: resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - - prr@1.0.1: - resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} - psl@1.15.0: resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} - public-encrypt@4.0.3: - resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} - - pump@2.0.1: - resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} - - pump@3.0.2: - resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} - - pumpify@1.5.1: - resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} - punycode.js@2.3.1: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} - punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - pvtsutils@1.3.6: - resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==} - - pvutils@1.1.3: - resolution: {integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==} - engines: {node: '>=6.0.0'} - - qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} - engines: {node: '>=0.6'} - qs@6.13.1: resolution: {integrity: sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==} engines: {node: '>=0.6'} - querystring-es3@0.2.1: - resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} - engines: {node: '>=0.4.x'} - querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - ramda@0.28.0: - resolution: {integrity: sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==} - - ramda@0.29.0: - resolution: {integrity: sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==} + raf-schd@4.0.3: + resolution: {integrity: sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==} randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - randomfill@1.0.4: - resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==} - - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - react-children-utilities@2.10.0: resolution: {integrity: sha512-9naSkrOHACjoDsHDtAQR5mGMp3ffv1DkUSQPDa8iJFP0+lXloS4fw44hMHaWeNF3qL4B3GPiJ9032Oo309oa9g==} peerDependencies: @@ -9568,13 +7438,6 @@ packages: peerDependencies: react: '>=16.0.0' - react-date-fns-hooks@0.9.4: - resolution: {integrity: sha512-LwYYf3dMtQMgfJHXcTyuDTUCwF1nUJwq04YqQP6wsIO137E2MYlfjjAnOXGt6Z9sAEDu0y018hOiXbdM6JNpYw==} - peerDependencies: - date-fns: ^2.22.1 - react: ^17.0.2 - react-dom: ^17.0.2 - react-day-picker@9.6.3: resolution: {integrity: sha512-rDqCSKAl5MLX0z1fLkYcBenQK4ANlYaAhUR0ruVSVAhAa7/ZmKQqgDpXPoS7bYEkgBRH06LO1qNFP1Ki8uiZpw==} engines: {node: '>=18'} @@ -9586,12 +7449,6 @@ packages: peerDependencies: react: ^18.2.0 - react-element-to-jsx-string@15.0.0: - resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} - peerDependencies: - react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 - react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 - react-error-boundary@4.1.2: resolution: {integrity: sha512-GQDxZ5Jd+Aq/qUxbCm1UtzmL/s++V7zKgE8yMktJiCQXCCFZnMZh9ng+6/Ne6PjNSXH0L9CjeOEREfRnq6Duag==} peerDependencies: @@ -9610,11 +7467,6 @@ packages: react: '>=16' react-dom: '>=16' - react-inspector@5.1.1: - resolution: {integrity: sha512-GURDaYzoLbW8pMGXwYPDBIv6nqei4kK7LPRZ9q9HCZF54wqXz/dnylBp/kfE9XmekBhHvLDdcYeyIwSrvtOiWg==} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-intersection-observer@9.14.0: resolution: {integrity: sha512-AYqlmDZn85VUmlODwYym9y5OlqY2cFyIu41dkN0GJWvhdbd19Mh16mz5IH6fO1gp5V4FfQOO4m0zGc04Tj13rQ==} peerDependencies: @@ -9630,26 +7482,15 @@ packages: react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - react-is@18.1.0: - resolution: {integrity: sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==} - react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - react-loading-skeleton@2.2.0: - resolution: {integrity: sha512-HH37uj9aobrUJSqFglHqO9KQt5zGQe+Svutv8LIq7Iq6gpJqCwIzJOsEVfkQy7ReirbI2uLhCtKloBGQIDP0BQ==} - peerDependencies: - react: ^15.6.1 || ^16.0.0 || ^17.0.0 - react-markdown@9.0.1: resolution: {integrity: sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==} peerDependencies: '@types/react': '>=18' react: '>=18' - react-merge-refs@1.1.0: - resolution: {integrity: sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==} - react-merge-refs@3.0.2: resolution: {integrity: sha512-MSZAfwFfdbEvwkKWP5EI5chuLYnNUxNS7vyS0i1Jp+wtd8J4Ga2ddzhaE68aMol2Z4vCnRM/oGOo1a3V75UPlw==} peerDependencies: @@ -9658,8 +7499,20 @@ packages: react: optional: true - react-refresh@0.14.2: - resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + react-redux@9.2.0: + resolution: {integrity: sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==} + peerDependencies: + '@types/react': ^18.2.25 || ^19 + react: ^18.0 || ^19 + redux: ^5.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + redux: + optional: true + + react-refresh@0.17.0: + resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} engines: {node: '>=0.10.0'} react-remove-scroll-bar@2.3.8: @@ -9736,28 +7589,12 @@ packages: read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - - read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - readable-stream@1.0.34: resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readdirp@2.2.1: - resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} - engines: {node: '>=0.10'} - readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -9791,6 +7628,9 @@ packages: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} + redux@5.0.1: + resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} + reflect.getprototypeof@1.0.10: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} @@ -9809,19 +7649,12 @@ packages: regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regex-not@1.0.2: - resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} - engines: {node: '>=0.10.0'} - regexp.prototype.flags@1.5.3: resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} engines: {node: '>= 0.4'} @@ -9856,40 +7689,18 @@ packages: rehype-highlight@7.0.1: resolution: {integrity: sha512-dB/vVGFsbm7xPglqnYbg0ABg6rAuIWKycTvuXaOO27SgLoOFNoTlniTBtAxp3n5ZyMioW1a3KwiNqgjkb6Skjg==} - relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} - engines: {node: '>= 0.10'} - relay-runtime@12.0.0: resolution: {integrity: sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==} - remark-external-links@8.0.0: - resolution: {integrity: sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA==} - - remark-footnotes@2.0.0: - resolution: {integrity: sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==} - remark-gfm@4.0.0: resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} - remark-mdx@1.6.22: - resolution: {integrity: sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==} - remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - remark-parse@8.0.3: - resolution: {integrity: sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==} - remark-rehype@11.1.1: resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} - remark-slug@6.1.0: - resolution: {integrity: sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==} - - remark-squeeze-paragraphs@4.0.0: - resolution: {integrity: sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==} - remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} @@ -9899,19 +7710,8 @@ packages: remove-trailing-separator@1.1.0: resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - remove-trailing-spaces@1.0.8: - resolution: {integrity: sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==} - - renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} - - repeat-element@1.1.4: - resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} - engines: {node: '>=0.10.0'} - - repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} + remove-trailing-spaces@1.0.9: + resolution: {integrity: sha512-xzG7w5IRijvIkHIjDk65URsJJ7k4J95wmcArY5PRcmjldIOl7oTvG8+X2Ag690R7SfwiOcHrWZKVc1Pp5WIOzA==} require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} @@ -9938,10 +7738,6 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve-url@0.2.1: - resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} - deprecated: https://github.com/lydell/resolve-url#deprecated - resolve@1.22.10: resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} engines: {node: '>= 0.4'} @@ -9955,17 +7751,16 @@ packages: resolution: {integrity: sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==} engines: {node: '>=0.8'} - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - restore-cursor@4.0.0: resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - ret@0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + rettime@0.7.0: + resolution: {integrity: sha512-LPRKoHnLKd/r3dVxcwO7vhCW+orkOGj9ViueosEBK6ie89CijnfRlhaDhHq/3Hxu4CkWQtxwlBG0mzTQY6uQjw==} reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} @@ -9979,27 +7774,11 @@ packages: peerDependencies: react: '>=16.8' - rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - ripemd160@2.0.1: - resolution: {integrity: sha512-J7f4wutN8mdbV08MJnXibYpCOPHR+yzy+iQ/AsjMv2j8cLavQ8VGagDFUwwTAdF8FmRKVeNpbTTEwNHCW1g94w==} - - ripemd160@2.0.2: - resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} - - rollup@3.29.5: - resolution: {integrity: sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - rollup@4.52.2: resolution: {integrity: sha512-I25/2QgoROE1vYV+NQ1En9T9UFB9Cmfm2CJ83zZOlaDpvz29wGQSZXWKw7MiNXau7wYgB/T9fVIdIuEQ+KbiiA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -10008,23 +7787,9 @@ packages: rrweb-cssom@0.6.0: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} - rsvp@4.8.5: - resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==} - engines: {node: 6.* || >= 7.*} - - run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - run-queue@1.0.3: - resolution: {integrity: sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==} - - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - safe-array-concat@1.1.3: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} @@ -10043,21 +7808,12 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} - safe-regex@1.1.0: - resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} - safe-stable-stringify@1.1.1: resolution: {integrity: sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==} safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sane@4.1.0: - resolution: {integrity: sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==} - engines: {node: 6.* || 8.* || >= 10.*} - deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added - hasBin: true - saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} @@ -10065,14 +7821,6 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - schema-utils@1.0.0: - resolution: {integrity: sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==} - engines: {node: '>= 4'} - - schema-utils@2.7.0: - resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} - engines: {node: '>= 8.9.0'} - schema-utils@2.7.1: resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} engines: {node: '>= 8.9.0'} @@ -10081,17 +7829,10 @@ packages: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} - schema-utils@4.3.0: - resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} + schema-utils@4.3.3: + resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} engines: {node: '>= 10.13.0'} - scuid@1.1.0: - resolution: {integrity: sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==} - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -10101,29 +7842,20 @@ packages: engines: {node: '>=10'} hasBin: true - send@0.19.0: - resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} - engines: {node: '>= 0.8.0'} + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true sentence-case@3.0.4: resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} - serialize-javascript@4.0.0: - resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} - serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - serve-static@1.16.2: - resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} - engines: {node: '>= 0.8.0'} - set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - set-cookie-parser@2.7.1: - resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} - set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -10136,10 +7868,6 @@ packages: resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} engines: {node: '>= 0.4'} - set-value@2.0.1: - resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} - engines: {node: '>=0.10.0'} - set-value@4.1.0: resolution: {integrity: sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw==} engines: {node: '>=11.0'} @@ -10147,36 +7875,16 @@ packages: setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - - sha.js@2.4.12: - resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==} - engines: {node: '>= 0.10'} - hasBin: true - - shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} - - shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} - shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} - shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shell-quote@1.8.2: - resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} + shell-quote@1.8.3: + resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} engines: {node: '>= 0.4'} should-equal@2.0.0: @@ -10238,14 +7946,6 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - slice-ansi@3.0.0: - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} - engines: {node: '>=8'} - - slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -10254,6 +7954,10 @@ packages: resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} engines: {node: '>=18'} + slice-ansi@7.1.2: + resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} + engines: {node: '>=18'} + slugify@1.6.6: resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} engines: {node: '>=8.0.0'} @@ -10261,36 +7965,13 @@ packages: snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - snapdragon-node@2.1.1: - resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} - engines: {node: '>=0.10.0'} - - snapdragon-util@3.0.1: - resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} - engines: {node: '>=0.10.0'} - - snapdragon@0.8.2: - resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} - engines: {node: '>=0.10.0'} - - source-list-map@2.0.1: - resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} - source-map-resolve@0.5.3: - resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} - deprecated: See https://github.com/lydell/source-map-resolve#deprecated - source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - source-map-url@0.4.1: - resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} - deprecated: See https://github.com/lydell/source-map-url#deprecated - source-map@0.5.7: resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} engines: {node: '>=0.10.0'} @@ -10299,44 +7980,15 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - space-separated-tokens@1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} - space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-license-ids@3.0.20: - resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} - - split-string@3.1.0: - resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} - engines: {node: '>=0.10.0'} - split@1.0.1: resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} sponge-case@1.0.1: resolution: {integrity: sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==} - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - ssri@6.0.2: - resolution: {integrity: sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==} - - stable@0.1.8: - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' - stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -10344,62 +7996,26 @@ packages: stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - state-toggle@1.0.3: - resolution: {integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==} - - static-extend@0.1.2: - resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} - engines: {node: '>=0.10.0'} - - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} - std-env@3.8.0: - resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} + std-env@3.9.0: + resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} - store2@2.14.4: - resolution: {integrity: sha512-srTItn1GOvyvOycgxjAnPA63FZNwy0PTyUBFMHRM+hVFltAeoh0LmNBz9SZqUS9mMqGk8rfyWyXn3GH5ReJ8Zw==} - - storybook-addon-next-router@4.0.2: - resolution: {integrity: sha512-0rjGAl7HziW4ecDq+VU03H1dwkw5f6phqA+PMquPzdowNVl29ejVwVadLMGlovG6x2snaxMGxtySR2c5bwegSw==} - engines: {node: '>=10'} - peerDependencies: - '@storybook/addon-actions': ^6.0.0 - '@storybook/addons': ^6.0.0 - '@storybook/client-api': ^6.0.0 - next: ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - stream-browserify@2.0.2: - resolution: {integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==} - stream-combiner@0.2.2: resolution: {integrity: sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==} - stream-each@1.2.3: - resolution: {integrity: sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==} - - stream-http@2.8.3: - resolution: {integrity: sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==} - - stream-shift@1.0.3: - resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} - streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} - strict-event-emitter@0.2.8: - resolution: {integrity: sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==} - - strict-event-emitter@0.4.6: - resolution: {integrity: sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==} + strict-event-emitter@0.5.1: + resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} @@ -10423,18 +8039,14 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} + string-width@8.1.0: + resolution: {integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==} + engines: {node: '>=20'} + string.prototype.matchall@4.0.11: resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} engines: {node: '>= 0.4'} - string.prototype.padend@3.1.6: - resolution: {integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==} - engines: {node: '>= 0.4'} - - string.prototype.padstart@3.1.6: - resolution: {integrity: sha512-1y15lz7otgfRTAVK5qbp3eHIga+w8j7+jIH+7HpUrOfnLVl6n0hbspi4EXf4tR+PNOpBjPstltemkx0SvViOCg==} - engines: {node: '>= 0.4'} - string.prototype.trim@1.2.10: resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} engines: {node: '>= 0.4'} @@ -10453,9 +8065,6 @@ packages: string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - stringify-entities@4.0.4: resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} @@ -10467,14 +8076,14 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + engines: {node: '>=12'} + strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - strip-eof@1.0.0: - resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} - engines: {node: '>=0.10.0'} - strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -10491,31 +8100,16 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strip-literal@1.3.0: - resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + strip-literal@3.1.0: + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} stripe@10.17.0: resolution: {integrity: sha512-JHV2KoL+nMQRXu3m9ervCZZvi4DDCJfzHUE6CmtJxR9TmizyYfrVuhGvnsZLLnheby9Qrnf4Hq6iOEcejGwnGQ==} engines: {node: ^8.1 || >=10.*} - style-loader@1.3.0: - resolution: {integrity: sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==} - engines: {node: '>= 8.9.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - - style-loader@2.0.0: - resolution: {integrity: sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - style-mod@4.1.2: resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} - style-to-object@0.3.0: - resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} - style-to-object@1.0.8: resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} @@ -10569,12 +8163,9 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - symbol.prototype.description@1.0.6: - resolution: {integrity: sha512-VgVgtEabORsQtmuindtO7v8fF+bsKxUkvEMFj+ecBK6bomrwv5JUSWdMoC3ypa9+Jaqp/wOzkWk4f6I+p5GzyA==} - engines: {node: '>= 0.4'} - - synchronous-promise@2.0.17: - resolution: {integrity: sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==} + sync-fetch@0.6.0-2: + resolution: {integrity: sha512-c7AfkZ9udatCuAy9RSfiGPpeOKKUAUK5e1cXadLOGUjasdxqYqAK0jTNkM/FSEyJ3a5Ra27j/tw/PS0qLmaF/A==} + engines: {node: '>=18'} tailwind-merge@1.14.0: resolution: {integrity: sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==} @@ -10589,28 +8180,16 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - tapable@1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} - engines: {node: '>=6'} - tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} - telejson@6.0.8: - resolution: {integrity: sha512-nerNXi+j8NK1QEfBHtZUN/aLdDcyupA//9kAboYLrtzZlPLpUfqbVGWb9zz91f/mIjRbAYhbgtnJHY8I1b5MBg==} + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + engines: {node: '>=6'} - telejson@7.2.0: - resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==} - - terser-webpack-plugin@1.4.6: - resolution: {integrity: sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==} - engines: {node: '>= 6.9.0'} - peerDependencies: - webpack: ^4.0.0 - - terser-webpack-plugin@5.3.11: - resolution: {integrity: sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==} + terser-webpack-plugin@5.3.14: + resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -10625,19 +8204,14 @@ packages: uglify-js: optional: true - terser@4.8.1: - resolution: {integrity: sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==} - engines: {node: '>=6.0.0'} - hasBin: true - - terser@5.37.0: - resolution: {integrity: sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==} + terser@5.44.0: + resolution: {integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==} engines: {node: '>=10'} hasBin: true - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} + test-exclude@7.0.1: + resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} + engines: {node: '>=18'} text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -10652,15 +8226,12 @@ packages: through2@0.4.2: resolution: {integrity: sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==} - through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - timers-browserify@2.0.12: - resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==} - engines: {node: '>=0.6.0'} + timeout-signal@2.0.0: + resolution: {integrity: sha512-YBGpG4bWsHoPvofT6y/5iqulfXIiIErl5B0LdtHT1mGXDFTAhhRrbUpTvBgYbovr+3cKblya2WAOcpoy90XguA==} + engines: {node: '>=16'} timezones-list@3.1.0: resolution: {integrity: sha512-PcDBt9tae330KTOIufK/wArTlJp+unuuRcG0EEu+4oLHZACHefKQyP2D51gMZID+urye92mHND60KRVuDDAmbA==} @@ -10674,54 +8245,42 @@ packages: tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - tinypool@0.5.0: - resolution: {integrity: sha512-paHQtnrlS1QZYKF/GnLoOM/DN9fqaGOFbCbxzAhwniySnzl9Ebk8w73/dd34DAhe/obUbPAOldTyYXQZxnPBPQ==} + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} - tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + tinyspy@4.0.4: + resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} engines: {node: '>=14.0.0'} title-case@3.0.3: resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} + tldts-core@7.0.16: + resolution: {integrity: sha512-XHhPmHxphLi+LGbH0G/O7dmUH9V65OY20R7vH8gETHsp5AZCjBk9l8sqmRKLaGOxnETU7XNSDUPtewAy/K6jbA==} - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - - to-arraybuffer@1.0.1: - resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==} - - to-buffer@1.2.1: - resolution: {integrity: sha512-tB82LpAIWjhLYbqjx3X4zEeHN6M8CiuOEy2JY8SEQVdYRe3CCHOFaqrBW1doLDrfpWhplcW7BL+bO3/6S3pcDQ==} - engines: {node: '>= 0.4'} - - to-object-path@0.3.0: - resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} - engines: {node: '>=0.10.0'} - - to-regex-range@2.1.1: - resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} - engines: {node: '>=0.10.0'} + tldts@7.0.16: + resolution: {integrity: sha512-5bdPHSwbKTeHmXrgecID4Ljff8rQjv7g8zKQPkCozRo2HWWni+p310FSn5ImI+9kWw9kK4lzOB5q/a6iv0IJsw==} + hasBin: true to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - to-regex@3.0.2: - resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} - engines: {node: '>=0.10.0'} - toggle-selection@1.0.6: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - toposort@2.0.2: resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} @@ -10733,6 +8292,10 @@ packages: resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} engines: {node: '>=6'} + tough-cookie@6.0.0: + resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==} + engines: {node: '>=16'} + tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -10743,16 +8306,6 @@ packages: trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - trim-trailing-lines@1.1.4: - resolution: {integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==} - - trim@0.0.1: - resolution: {integrity: sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==} - deprecated: Use String.prototype.trim() instead - - trough@1.0.5: - resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} - trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} @@ -10762,10 +8315,6 @@ packages: peerDependencies: typescript: '>=4.2.0' - ts-dedent@2.2.0: - resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} - engines: {node: '>=6.10'} - ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -10824,9 +8373,6 @@ packages: tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - tslib@2.4.0: - resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} - tslib@2.4.1: resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} @@ -10845,40 +8391,21 @@ packages: peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - tty-browserify@0.0.0: - resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==} - type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-detect@4.1.0: - resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} - engines: {node: '>=4'} - type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} @@ -10904,12 +8431,6 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - - typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typedoc-plugin-markdown@4.9.0: resolution: {integrity: sha512-9Uu4WR9L7ZBgAl60N/h+jqmPxxvnC9nQAlnnO/OujtG2ubjnKTVUFY1XDhcMY+pCqlX3N2HsQM2QTYZIU9tJuw==} engines: {node: '>= 18'} @@ -10935,14 +8456,6 @@ packages: uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - ufo@1.5.4: - resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} - - uglify-js@3.19.3: - resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} - engines: {node: '>=0.8.0'} - hasBin: true - unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} @@ -10954,15 +8467,15 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + unfetch@3.1.2: resolution: {integrity: sha512-L0qrK7ZeAudGiKYw6nzFjnJ2D5WHblUBwmHIqtPS6oKUd+Hcpk7/hKsSmcHsTlpd1TbTNsiRBUKRq3bHLNIqIw==} unfetch@4.2.0: resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} - unherit@1.1.3: - resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==} - unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} @@ -10982,64 +8495,24 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unified@9.2.0: - resolution: {integrity: sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==} - - union-value@1.0.1: - resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} - engines: {node: '>=0.10.0'} - - unique-filename@1.1.1: - resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} - - unique-slug@2.0.2: - resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} - - unist-builder@2.0.3: - resolution: {integrity: sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==} - unist-util-find-after@5.0.0: resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} - unist-util-generated@1.1.6: - resolution: {integrity: sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==} - - unist-util-is@4.1.0: - resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} - unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - unist-util-position@3.1.0: - resolution: {integrity: sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==} - unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - unist-util-remove-position@2.0.1: - resolution: {integrity: sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==} - unist-util-remove-position@5.0.0: resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} - unist-util-remove@2.1.0: - resolution: {integrity: sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==} - - unist-util-stringify-position@2.0.3: - resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} - unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unist-util-visit-parents@3.1.1: - resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} - unist-util-visit-parents@6.0.1: resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - unist-util-visit@2.0.3: - resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} - unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} @@ -11055,17 +8528,8 @@ packages: resolution: {integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==} engines: {node: '>=0.10.0'} - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - - unset-value@1.0.0: - resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} - engines: {node: '>=0.10.0'} - - upath@1.2.0: - resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} - engines: {node: '>=4'} + until-async@3.0.2: + resolution: {integrity: sha512-IiSk4HlzAMqTUseHHe3VhIGyuFmN90zMTpD3Z3y8jeQbzLIq500MVM7Jq2vUAnTKAFPJrqwkzr6PoTcPhGcOiw==} update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} @@ -11085,22 +8549,11 @@ packages: urijs@1.19.11: resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==} - urix@0.1.0: - resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} - deprecated: Please see https://github.com/lydell/urix#deprecated - url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - url@0.11.4: - resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} - engines: {node: '>= 0.4'} - - urlpattern-polyfill@10.0.0: - resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} - - urlpattern-polyfill@8.0.2: - resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} + urlpattern-polyfill@10.1.0: + resolution: {integrity: sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==} use-callback-ref@1.3.2: resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} @@ -11127,37 +8580,13 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - use@3.1.1: - resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} - engines: {node: '>=0.10.0'} - util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - util@0.10.4: - resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==} - - util@0.11.1: - resolution: {integrity: sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==} - - util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - - utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} - utility-types@3.11.0: resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} engines: {node: '>= 4'} - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - - uuid-browser@3.1.0: - resolution: {integrity: sha512-dsNgbLaTrd6l3MMxTtouOCFw4CBFc/3a+GgYA2YyrJvyQ1u6q4pcu3ktLoUZ/VN/Aw9WsauazbgsgdfVWgAKQg==} - deprecated: Package no longer supported and required. Use the uuid package or crypto.randomUUID instead - uuid@9.0.1: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true @@ -11165,43 +8594,19 @@ packages: v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - v8-to-istanbul@9.3.0: - resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} - engines: {node: '>=10.12.0'} - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - validator@13.12.0: resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} engines: {node: '>= 0.10'} - value-or-promise@1.0.12: - resolution: {integrity: sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==} - engines: {node: '>=12'} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - vfile-location@3.2.0: - resolution: {integrity: sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==} - - vfile-message@2.0.4: - resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} - vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - vfile@4.2.1: - resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} - vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite-node@0.32.4: - resolution: {integrity: sha512-L2gIw+dCxO0LK14QnUMoqSYpa9XRGnTTTDjW2h19Mr+GR0EFj4vx52W41gFXfMLqpA00eK4ZjOVYo1Xk//LFEw==} - engines: {node: '>=v14.18.0'} + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true vite-tsconfig-paths@4.3.2: @@ -11212,36 +8617,8 @@ packages: vite: optional: true - vite@4.5.14: - resolution: {integrity: sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - 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 - - vite@5.4.20: - resolution: {integrity: sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g==} + vite@5.4.21: + resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -11271,22 +8648,25 @@ packages: terser: optional: true - vitest@0.32.4: - resolution: {integrity: sha512-3czFm8RnrsWwIzVDu/Ca48Y/M+qh3vOnF16czJm98Q/AN1y3B6PBsyV8Re91Ty5s7txKNjEhpgtGPcfdbh2MZg==} - engines: {node: '>=v14.18.0'} + vitest@3.2.4: + resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.2.4 + '@vitest/ui': 3.2.4 happy-dom: '*' jsdom: '*' - playwright: '*' - safaridriver: '*' - webdriverio: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true + '@types/debug': + optional: true + '@types/node': + optional: true '@vitest/browser': optional: true '@vitest/ui': @@ -11295,15 +8675,6 @@ packages: optional: true jsdom: optional: true - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true - - vm-browserify@1.1.2: - resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} vscode-languageserver-types@3.17.5: resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} @@ -11321,35 +8692,14 @@ packages: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - - watchpack-chokidar2@2.0.1: - resolution: {integrity: sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==} - - watchpack@1.7.5: - resolution: {integrity: sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==} - - watchpack@2.4.2: - resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + watchpack@2.4.4: + resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} engines: {node: '>=10.13.0'} - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - - web-encoding@1.1.5: - resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} - - web-namespaces@1.1.4: - resolution: {integrity: sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==} - web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} - webcrypto-core@1.8.1: - resolution: {integrity: sha512-P+x1MvlNCXlKbLSOY4cYrdreqPG5hbzkmawbcXLKN/mf6DZW0SdNNkZ+sjwsqVkI4A4Ko2sPZmkZtCKY58w83A==} - webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -11362,38 +8712,10 @@ packages: engines: {node: '>= 10.13.0'} hasBin: true - webpack-dev-middleware@4.3.0: - resolution: {integrity: sha512-PjwyVY95/bhBh6VUqt6z4THplYcsvQ8YNNBTBM873xLVmw8FLeALn0qurHbs9EmcfhzQis/eoqypSnZeuUz26w==} - engines: {node: '>= v10.23.3'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - - webpack-hot-middleware@2.26.1: - resolution: {integrity: sha512-khZGfAeJx6I8K9zKohEWWYN6KDlVw2DHownoe+6Vtwj1LP9WFgegXnVMSkZ/dBEBtXFwrkkydsaPFlB7f8wU2A==} - - webpack-sources@1.4.3: - resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==} - - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + webpack-sources@3.3.3: + resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} engines: {node: '>=10.13.0'} - webpack-virtual-modules@0.4.6: - resolution: {integrity: sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==} - - webpack@4.47.0: - resolution: {integrity: sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==} - engines: {node: '>=6.11.5'} - hasBin: true - peerDependencies: - webpack-cli: '*' - webpack-command: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - webpack-command: - optional: true - webpack@5.97.1: resolution: {integrity: sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==} engines: {node: '>=10.13.0'} @@ -11412,6 +8734,10 @@ packages: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + whatwg-url@12.0.1: resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} engines: {node: '>=14'} @@ -11438,10 +8764,6 @@ packages: resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} engines: {node: '>= 0.4'} - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -11452,15 +8774,6 @@ packages: engines: {node: '>=8'} hasBin: true - wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - - wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - - worker-farm@1.7.0: - resolution: {integrity: sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==} - wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} @@ -11477,12 +8790,13 @@ packages: resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} engines: {node: '>=18'} + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} + engines: {node: '>=18'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - ws@7.5.10: resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} @@ -11507,6 +8821,18 @@ packages: utf-8-validate: optional: true + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + 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 + xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} @@ -11518,10 +8844,6 @@ packages: resolution: {integrity: sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==} engines: {node: '>=0.4'} - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} @@ -11532,9 +8854,6 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml-ast-parser@0.0.43: - resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} - yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} @@ -11578,9 +8897,9 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.1.1: - resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} - engines: {node: '>=12.20'} + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} + engines: {node: '>=18'} yup-password@0.2.2: resolution: {integrity: sha512-2PHfqGWtbXg4OfDV7VKFIb3hyEaYgTYpEORnFqgGAYqzENWmGzWMoeGvJg2Ohmq6maTRxhJzLZpNTITrqlZTrA==} @@ -11597,9 +8916,6 @@ packages: zod@3.24.1: resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} - zwitch@1.0.5: - resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} - zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -11666,7 +8982,7 @@ snapshots: '@babel/core': 7.26.10 '@babel/generator': 7.28.3 '@babel/parser': 7.28.3 - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@babel/traverse': 7.28.3 '@babel/types': 7.28.2 babel-preset-fbjs: 3.4.0(@babel/core@7.26.10) @@ -11685,9 +9001,19 @@ snapshots: - encoding - supports-color - '@ardatan/sync-fetch@0.0.1(encoding@0.1.13)': + '@ardatan/relay-compiler@12.0.3(encoding@0.1.13)(graphql@16.8.1)': dependencies: - node-fetch: 2.6.13(encoding@0.1.13) + '@babel/generator': 7.28.3 + '@babel/parser': 7.28.4 + '@babel/runtime': 7.28.4 + chalk: 4.1.2 + fb-watchman: 2.0.2 + graphql: 16.8.1 + immutable: 3.7.6 + invariant: 2.2.4 + nullthrows: 1.1.1 + relay-runtime: 12.0.0(encoding@0.1.13) + signedsource: 1.0.0 transitivePeerDependencies: - encoding @@ -11703,27 +9029,6 @@ snapshots: '@babel/compat-data@7.28.0': {} - '@babel/core@7.12.9': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.12.9) - '@babel/helpers': 7.26.10 - '@babel/parser': 7.28.3 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.3 - '@babel/types': 7.28.2 - convert-source-map: 1.9.0 - debug: 4.4.1 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - lodash: 4.17.21 - resolve: 1.22.10 - semver: 5.7.2 - source-map: 0.5.7 - transitivePeerDependencies: - - supports-color - '@babel/core@7.26.10': dependencies: '@ampproject/remapping': 2.3.0 @@ -11744,6 +9049,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.28.4': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.3 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.4 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/eslint-parser@7.28.0(@babel/core@7.26.10)(eslint@8.57.0)': dependencies: '@babel/core': 7.26.10 @@ -11801,26 +9126,12 @@ snapshots: regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.1.5(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.3 - debug: 4.4.1 - lodash.debounce: 4.0.8 - resolve: 1.22.10 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.1 + debug: 4.4.3 lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -11855,15 +9166,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.12.9)': - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.3 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -11873,12 +9175,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)': + dependencies: + '@babel/core': 7.28.4 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.4 + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.24.7': dependencies: '@babel/types': 7.28.2 - '@babel/helper-plugin-utils@7.10.4': {} - '@babel/helper-plugin-utils@7.27.1': {} '@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.26.10)': @@ -11937,10 +9246,19 @@ snapshots: '@babel/template': 7.27.2 '@babel/types': 7.28.2 + '@babel/helpers@7.28.4': + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.28.4 + '@babel/parser@7.28.3': dependencies: '@babel/types': 7.28.2 + '@babel/parser@7.28.4': + dependencies: + '@babel/types': 7.28.4 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -11984,12 +9302,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-export-default-from@7.24.7(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.26.10) - '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -12002,13 +9314,6 @@ snapshots: '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.10) - '@babel/plugin-proposal-object-rest-spread@7.12.1(@babel/core@7.12.9)': - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.12.9) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.12.9) - '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.26.10)': dependencies: '@babel/compat-data': 7.28.0 @@ -12074,11 +9379,6 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-export-default-from@7.24.7(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -12094,6 +9394,11 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -12109,11 +9414,6 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.12.1(@babel/core@7.12.9)': - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -12134,11 +9434,6 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.12.9)': - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -12414,11 +9709,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.12.9)': - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -12459,14 +9749,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.26.10)': + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.26.10)': + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.10)': @@ -12687,28 +9977,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/register@7.24.6(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - clone-deep: 4.0.1 - find-cache-dir: 2.1.0 - make-dir: 2.1.0 - pirates: 4.0.6 - source-map-support: 0.5.21 - '@babel/regjsgen@0.8.0': {} '@babel/runtime@7.26.10': dependencies: regenerator-runtime: 0.14.1 - '@babel/runtime@7.5.5': - dependencies: - regenerator-runtime: 0.13.11 - - '@babel/runtime@7.7.2': - dependencies: - regenerator-runtime: 0.13.11 + '@babel/runtime@7.28.4': {} '@babel/template@7.27.2': dependencies: @@ -12728,19 +10003,29 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.28.4': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.3 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.4 + '@babel/template': 7.27.2 + '@babel/types': 7.28.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + '@babel/types@7.28.2': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@base2/pretty-print-object@1.0.1': {} - - '@bcoe/v8-coverage@0.2.3': {} - - '@cnakazawa/watch@1.0.4': + '@babel/types@7.28.4': dependencies: - exec-sh: 0.3.6 - minimist: 1.2.8 + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + + '@bcoe/v8-coverage@1.0.2': {} '@codemirror/autocomplete@6.16.2(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.26.4)(@lezer/common@1.2.1)': dependencies: @@ -12776,6 +10061,15 @@ snapshots: '@lezer/lr': 1.4.1 style-mod: 4.1.2 + '@codemirror/language@6.11.3': + dependencies: + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.4 + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + style-mod: 4.1.2 + '@codemirror/legacy-modes@6.4.0': dependencies: '@codemirror/language': 6.10.2 @@ -12796,10 +10090,10 @@ snapshots: '@codemirror/theme-one-dark@6.1.2': dependencies: - '@codemirror/language': 6.10.2 + '@codemirror/language': 6.11.3 '@codemirror/state': 6.4.1 '@codemirror/view': 6.26.4 - '@lezer/highlight': 1.2.0 + '@lezer/highlight': 1.2.1 '@codemirror/view@6.26.4': dependencies: @@ -12833,56 +10127,10 @@ snapshots: dependencies: '@date-io/core': 2.17.0 - '@design-systems/utils@2.12.0(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@babel/runtime': 7.26.10 - '@types/react': 18.2.73 - clsx: 1.2.1 - focus-lock: 0.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-merge-refs: 1.1.0 - - '@devtools-ds/object-inspector@1.2.1(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@babel/runtime': 7.7.2 - '@devtools-ds/object-parser': 1.2.1 - '@devtools-ds/themes': 1.2.1(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@devtools-ds/tree': 1.2.1(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - clsx: 1.1.0 - react: 18.2.0 - transitivePeerDependencies: - - '@types/react' - - react-dom - - '@devtools-ds/object-parser@1.2.1': - dependencies: - '@babel/runtime': 7.5.5 - - '@devtools-ds/themes@1.2.1(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@babel/runtime': 7.5.5 - '@design-systems/utils': 2.12.0(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - clsx: 1.1.0 - react: 18.2.0 - transitivePeerDependencies: - - '@types/react' - - react-dom - - '@devtools-ds/tree@1.2.1(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@babel/runtime': 7.7.2 - '@devtools-ds/themes': 1.2.1(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - clsx: 1.1.0 - react: 18.2.0 - transitivePeerDependencies: - - '@types/react' - - react-dom - '@emotion/babel-plugin@11.11.0': dependencies: '@babel/helper-module-imports': 7.27.1 - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@emotion/hash': 0.9.1 '@emotion/memoize': 0.8.1 '@emotion/serialize': 1.1.4 @@ -12895,13 +10143,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@emotion/cache@10.0.29': - dependencies: - '@emotion/sheet': 0.9.4 - '@emotion/stylis': 0.8.5 - '@emotion/utils': 0.11.3 - '@emotion/weak-memoize': 0.2.5 - '@emotion/cache@11.11.0': dependencies: '@emotion/memoize': 0.8.1 @@ -12910,28 +10151,6 @@ snapshots: '@emotion/weak-memoize': 0.3.1 stylis: 4.2.0 - '@emotion/core@10.3.1(react@18.2.0)': - dependencies: - '@babel/runtime': 7.26.10 - '@emotion/cache': 10.0.29 - '@emotion/css': 10.0.27 - '@emotion/serialize': 0.11.16 - '@emotion/sheet': 0.9.4 - '@emotion/utils': 0.11.3 - react: 18.2.0 - transitivePeerDependencies: - - supports-color - - '@emotion/css@10.0.27': - dependencies: - '@emotion/serialize': 0.11.16 - '@emotion/utils': 0.11.3 - babel-plugin-emotion: 10.2.2 - transitivePeerDependencies: - - supports-color - - '@emotion/hash@0.8.0': {} - '@emotion/hash@0.9.1': {} '@emotion/is-prop-valid@0.8.8': @@ -12943,7 +10162,8 @@ snapshots: dependencies: '@emotion/memoize': 0.8.1 - '@emotion/memoize@0.7.4': {} + '@emotion/memoize@0.7.4': + optional: true '@emotion/memoize@0.8.1': {} @@ -12963,14 +10183,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@emotion/serialize@0.11.16': - dependencies: - '@emotion/hash': 0.8.0 - '@emotion/memoize': 0.7.4 - '@emotion/unitless': 0.7.5 - '@emotion/utils': 0.11.3 - csstype: 2.6.21 - '@emotion/serialize@1.1.4': dependencies: '@emotion/hash': 0.9.1 @@ -12986,8 +10198,6 @@ snapshots: multipipe: 1.0.2 through: 2.3.8 - '@emotion/sheet@0.9.4': {} - '@emotion/sheet@1.2.2': {} '@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.2.73)(react@18.2.0))(@types/react@18.2.73)(react@18.2.0)': @@ -13005,234 +10215,108 @@ snapshots: transitivePeerDependencies: - supports-color - '@emotion/stylis@0.8.5': {} - - '@emotion/unitless@0.7.5': {} - '@emotion/unitless@0.8.1': {} '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0)': dependencies: react: 18.2.0 - '@emotion/utils@0.11.3': {} - '@emotion/utils@1.2.1': {} - '@emotion/weak-memoize@0.2.5': {} - '@emotion/weak-memoize@0.3.1': {} - '@esbuild/aix-ppc64@0.21.5': - optional: true + '@envelop/core@5.3.2': + dependencies: + '@envelop/instrumentation': 1.0.0 + '@envelop/types': 5.2.1 + '@whatwg-node/promise-helpers': 1.3.2 + tslib: 2.8.1 + + '@envelop/instrumentation@1.0.0': + dependencies: + '@whatwg-node/promise-helpers': 1.3.2 + tslib: 2.8.1 + + '@envelop/types@5.2.1': + dependencies: + '@whatwg-node/promise-helpers': 1.3.2 + tslib: 2.8.1 '@esbuild/aix-ppc64@0.25.10': optional: true - '@esbuild/android-arm64@0.18.20': - optional: true - - '@esbuild/android-arm64@0.21.5': - optional: true - '@esbuild/android-arm64@0.25.10': optional: true - '@esbuild/android-arm@0.18.20': - optional: true - - '@esbuild/android-arm@0.21.5': - optional: true - '@esbuild/android-arm@0.25.10': optional: true - '@esbuild/android-x64@0.18.20': - optional: true - - '@esbuild/android-x64@0.21.5': - optional: true - '@esbuild/android-x64@0.25.10': optional: true - '@esbuild/darwin-arm64@0.18.20': - optional: true - - '@esbuild/darwin-arm64@0.21.5': - optional: true - '@esbuild/darwin-arm64@0.25.10': optional: true - '@esbuild/darwin-x64@0.18.20': - optional: true - - '@esbuild/darwin-x64@0.21.5': - optional: true - '@esbuild/darwin-x64@0.25.10': optional: true - '@esbuild/freebsd-arm64@0.18.20': - optional: true - - '@esbuild/freebsd-arm64@0.21.5': - optional: true - '@esbuild/freebsd-arm64@0.25.10': optional: true - '@esbuild/freebsd-x64@0.18.20': - optional: true - - '@esbuild/freebsd-x64@0.21.5': - optional: true - '@esbuild/freebsd-x64@0.25.10': optional: true - '@esbuild/linux-arm64@0.18.20': - optional: true - - '@esbuild/linux-arm64@0.21.5': - optional: true - '@esbuild/linux-arm64@0.25.10': optional: true - '@esbuild/linux-arm@0.18.20': - optional: true - - '@esbuild/linux-arm@0.21.5': - optional: true - '@esbuild/linux-arm@0.25.10': optional: true - '@esbuild/linux-ia32@0.18.20': - optional: true - - '@esbuild/linux-ia32@0.21.5': - optional: true - '@esbuild/linux-ia32@0.25.10': optional: true - '@esbuild/linux-loong64@0.18.20': - optional: true - - '@esbuild/linux-loong64@0.21.5': - optional: true - '@esbuild/linux-loong64@0.25.10': optional: true - '@esbuild/linux-mips64el@0.18.20': - optional: true - - '@esbuild/linux-mips64el@0.21.5': - optional: true - '@esbuild/linux-mips64el@0.25.10': optional: true - '@esbuild/linux-ppc64@0.18.20': - optional: true - - '@esbuild/linux-ppc64@0.21.5': - optional: true - '@esbuild/linux-ppc64@0.25.10': optional: true - '@esbuild/linux-riscv64@0.18.20': - optional: true - - '@esbuild/linux-riscv64@0.21.5': - optional: true - '@esbuild/linux-riscv64@0.25.10': optional: true - '@esbuild/linux-s390x@0.18.20': - optional: true - - '@esbuild/linux-s390x@0.21.5': - optional: true - '@esbuild/linux-s390x@0.25.10': optional: true - '@esbuild/linux-x64@0.18.20': - optional: true - - '@esbuild/linux-x64@0.21.5': - optional: true - '@esbuild/linux-x64@0.25.10': optional: true '@esbuild/netbsd-arm64@0.25.10': optional: true - '@esbuild/netbsd-x64@0.18.20': - optional: true - - '@esbuild/netbsd-x64@0.21.5': - optional: true - '@esbuild/netbsd-x64@0.25.10': optional: true '@esbuild/openbsd-arm64@0.25.10': optional: true - '@esbuild/openbsd-x64@0.18.20': - optional: true - - '@esbuild/openbsd-x64@0.21.5': - optional: true - '@esbuild/openbsd-x64@0.25.10': optional: true '@esbuild/openharmony-arm64@0.25.10': optional: true - '@esbuild/sunos-x64@0.18.20': - optional: true - - '@esbuild/sunos-x64@0.21.5': - optional: true - '@esbuild/sunos-x64@0.25.10': optional: true - '@esbuild/win32-arm64@0.18.20': - optional: true - - '@esbuild/win32-arm64@0.21.5': - optional: true - '@esbuild/win32-arm64@0.25.10': optional: true - '@esbuild/win32-ia32@0.18.20': - optional: true - - '@esbuild/win32-ia32@0.21.5': - optional: true - '@esbuild/win32-ia32@0.25.10': optional: true - '@esbuild/win32-x64@0.18.20': - optional: true - - '@esbuild/win32-x64@0.21.5': - optional: true - '@esbuild/win32-x64@0.25.10': optional: true @@ -13265,6 +10349,8 @@ snapshots: '@faker-js/faker@7.6.0': {} + '@fastify/busboy@3.2.0': {} + '@floating-ui/core@1.6.3': dependencies: '@floating-ui/utils': 0.2.3 @@ -13294,9 +10380,9 @@ snapshots: '@shikijs/types': 3.13.0 '@shikijs/vscode-textmate': 10.0.2 - '@graphiql/react@0.22.3(@codemirror/language@6.10.2)(@types/node@16.18.105)(@types/react-dom@18.3.0)(@types/react@18.2.73)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@graphiql/react@0.22.3(@codemirror/language@6.10.2)(@types/node@20.14.8)(@types/react-dom@18.3.0)(@types/react@18.2.73)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@graphiql/toolkit': 0.9.1(@types/node@16.18.105)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1) + '@graphiql/toolkit': 0.9.1(@types/node@20.14.8)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1) '@headlessui/react': 1.7.19(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-dialog': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-dropdown-menu': 2.1.1(@types/react-dom@18.3.0)(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -13321,109 +10407,109 @@ snapshots: - '@types/react-dom' - graphql-ws - '@graphiql/toolkit@0.9.1(@types/node@16.18.105)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1)': + '@graphiql/toolkit@0.9.1(@types/node@20.14.8)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1)': dependencies: '@n1ru4l/push-pull-async-iterable-iterator': 3.2.0 graphql: 16.8.1 - meros: 1.3.0(@types/node@16.18.105) + meros: 1.3.0(@types/node@20.14.8) optionalDependencies: graphql-ws: 5.16.0(graphql@16.8.1) transitivePeerDependencies: - '@types/node' - '@graphql-codegen/add@5.0.2(graphql@16.8.1)': + '@graphql-codegen/add@6.0.0(graphql@16.8.1)': dependencies: - '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.8.1) graphql: 16.8.1 tslib: 2.6.3 - '@graphql-codegen/cli@5.0.2(@types/node@16.18.105)(encoding@0.1.13)(enquirer@2.4.1)(graphql@16.8.1)(typescript@5.8.3)': + '@graphql-codegen/cli@6.0.0(@types/node@20.14.8)(encoding@0.1.13)(graphql@16.8.1)(typescript@5.8.3)': dependencies: '@babel/generator': 7.28.3 '@babel/template': 7.27.2 - '@babel/types': 7.28.2 - '@graphql-codegen/client-preset': 4.2.5(encoding@0.1.13)(graphql@16.8.1) - '@graphql-codegen/core': 4.0.2(graphql@16.8.1) - '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) - '@graphql-tools/apollo-engine-loader': 8.0.1(encoding@0.1.13)(graphql@16.8.1) - '@graphql-tools/code-file-loader': 8.1.1(graphql@16.8.1) - '@graphql-tools/git-loader': 8.0.5(graphql@16.8.1) - '@graphql-tools/github-loader': 8.0.1(@types/node@16.18.105)(encoding@0.1.13)(graphql@16.8.1) - '@graphql-tools/graphql-file-loader': 8.0.1(graphql@16.8.1) - '@graphql-tools/json-file-loader': 8.0.1(graphql@16.8.1) - '@graphql-tools/load': 8.0.2(graphql@16.8.1) - '@graphql-tools/prisma-loader': 8.0.3(@types/node@16.18.105)(encoding@0.1.13)(graphql@16.8.1) - '@graphql-tools/url-loader': 8.0.2(@types/node@16.18.105)(encoding@0.1.13)(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) - '@whatwg-node/fetch': 0.8.8 + '@babel/types': 7.28.4 + '@graphql-codegen/client-preset': 5.1.0(encoding@0.1.13)(graphql@16.8.1) + '@graphql-codegen/core': 5.0.0(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.8.1) + '@graphql-tools/apollo-engine-loader': 8.0.22(graphql@16.8.1) + '@graphql-tools/code-file-loader': 8.1.22(graphql@16.8.1) + '@graphql-tools/git-loader': 8.0.26(graphql@16.8.1) + '@graphql-tools/github-loader': 8.0.22(@types/node@20.14.8)(graphql@16.8.1) + '@graphql-tools/graphql-file-loader': 8.1.2(graphql@16.8.1) + '@graphql-tools/json-file-loader': 8.0.20(graphql@16.8.1) + '@graphql-tools/load': 8.1.2(graphql@16.8.1) + '@graphql-tools/url-loader': 8.0.33(@types/node@20.14.8)(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) + '@inquirer/prompts': 7.8.6(@types/node@20.14.8) + '@whatwg-node/fetch': 0.10.11 chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@5.8.3) - debounce: 1.2.1 + cosmiconfig: 9.0.0(typescript@5.8.3) + debounce: 2.2.0 detect-indent: 6.1.0 graphql: 16.8.1 - graphql-config: 5.0.3(@types/node@16.18.105)(encoding@0.1.13)(graphql@16.8.1)(typescript@5.8.3) - inquirer: 8.2.6 + graphql-config: 5.1.5(@types/node@20.14.8)(graphql@16.8.1)(typescript@5.8.3) is-glob: 4.0.3 - jiti: 1.21.6 + jiti: 2.6.1 json-to-pretty-yaml: 1.2.2 - listr2: 4.0.5(enquirer@2.4.1) + listr2: 9.0.4 log-symbols: 4.1.0 micromatch: 4.0.8 - shell-quote: 1.8.2 + shell-quote: 1.8.3 string-env-interpolation: 1.0.1 ts-log: 2.2.7 tslib: 2.8.1 - yaml: 2.6.1 + yaml: 2.8.1 yargs: 17.7.2 transitivePeerDependencies: + - '@fastify/websocket' - '@types/node' - bufferutil - cosmiconfig-toml-loader + - crossws - encoding - - enquirer + - graphql-sock - supports-color - typescript + - uWebSockets.js - utf-8-validate - '@graphql-codegen/client-preset@4.2.5(encoding@0.1.13)(graphql@16.8.1)': + '@graphql-codegen/client-preset@5.1.0(encoding@0.1.13)(graphql@16.8.1)': dependencies: '@babel/helper-plugin-utils': 7.27.1 '@babel/template': 7.27.2 - '@graphql-codegen/add': 5.0.2(graphql@16.8.1) - '@graphql-codegen/gql-tag-operations': 4.0.6(encoding@0.1.13)(graphql@16.8.1) - '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) - '@graphql-codegen/typed-document-node': 5.0.6(encoding@0.1.13)(graphql@16.8.1) - '@graphql-codegen/typescript': 4.0.6(encoding@0.1.13)(graphql@16.8.1) - '@graphql-codegen/typescript-operations': 4.2.0(encoding@0.1.13)(graphql@16.8.1) - '@graphql-codegen/visitor-plugin-common': 5.1.0(encoding@0.1.13)(graphql@16.8.1) - '@graphql-tools/documents': 1.0.0(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-codegen/add': 6.0.0(graphql@16.8.1) + '@graphql-codegen/gql-tag-operations': 5.0.2(encoding@0.1.13)(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.8.1) + '@graphql-codegen/typed-document-node': 6.0.2(encoding@0.1.13)(graphql@16.8.1) + '@graphql-codegen/typescript': 5.0.2(encoding@0.1.13)(graphql@16.8.1) + '@graphql-codegen/typescript-operations': 5.0.2(encoding@0.1.13)(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 6.1.0(encoding@0.1.13)(graphql@16.8.1) + '@graphql-tools/documents': 1.0.1(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) graphql: 16.8.1 tslib: 2.6.3 transitivePeerDependencies: - encoding - - supports-color - '@graphql-codegen/core@4.0.2(graphql@16.8.1)': + '@graphql-codegen/core@5.0.0(graphql@16.8.1)': dependencies: - '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) - '@graphql-tools/schema': 10.0.3(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.8.1) + '@graphql-tools/schema': 10.0.25(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) graphql: 16.8.1 tslib: 2.6.3 - '@graphql-codegen/gql-tag-operations@4.0.6(encoding@0.1.13)(graphql@16.8.1)': + '@graphql-codegen/gql-tag-operations@5.0.2(encoding@0.1.13)(graphql@16.8.1)': dependencies: - '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) - '@graphql-codegen/visitor-plugin-common': 5.1.0(encoding@0.1.13)(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 6.1.0(encoding@0.1.13)(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) auto-bind: 4.0.0 graphql: 16.8.1 tslib: 2.6.3 transitivePeerDependencies: - encoding - - supports-color '@graphql-codegen/plugin-helpers@2.7.2(graphql@16.8.1)': dependencies: @@ -13445,9 +10531,9 @@ snapshots: lodash: 4.17.21 tslib: 2.5.3 - '@graphql-codegen/plugin-helpers@5.0.3(graphql@16.8.1)': + '@graphql-codegen/plugin-helpers@6.0.0(graphql@16.8.1)': dependencies: - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) change-case-all: 1.0.15 common-tags: 1.8.2 graphql: 16.8.1 @@ -13462,24 +10548,23 @@ snapshots: graphql: 16.8.1 tslib: 2.5.3 - '@graphql-codegen/schema-ast@4.0.2(graphql@16.8.1)': + '@graphql-codegen/schema-ast@5.0.0(graphql@16.8.1)': dependencies: - '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) graphql: 16.8.1 tslib: 2.6.3 - '@graphql-codegen/typed-document-node@5.0.6(encoding@0.1.13)(graphql@16.8.1)': + '@graphql-codegen/typed-document-node@6.0.2(encoding@0.1.13)(graphql@16.8.1)': dependencies: - '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) - '@graphql-codegen/visitor-plugin-common': 5.1.0(encoding@0.1.13)(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 6.1.0(encoding@0.1.13)(graphql@16.8.1) auto-bind: 4.0.0 change-case-all: 1.0.15 graphql: 16.8.1 tslib: 2.6.3 transitivePeerDependencies: - encoding - - supports-color '@graphql-codegen/typescript-operations@3.0.4(encoding@0.1.13)(graphql@16.8.1)': dependencies: @@ -13493,17 +10578,16 @@ snapshots: - encoding - supports-color - '@graphql-codegen/typescript-operations@4.2.0(encoding@0.1.13)(graphql@16.8.1)': + '@graphql-codegen/typescript-operations@5.0.2(encoding@0.1.13)(graphql@16.8.1)': dependencies: - '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) - '@graphql-codegen/typescript': 4.0.6(encoding@0.1.13)(graphql@16.8.1) - '@graphql-codegen/visitor-plugin-common': 5.1.0(encoding@0.1.13)(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.8.1) + '@graphql-codegen/typescript': 5.0.2(encoding@0.1.13)(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 6.1.0(encoding@0.1.13)(graphql@16.8.1) auto-bind: 4.0.0 graphql: 16.8.1 tslib: 2.6.3 transitivePeerDependencies: - encoding - - supports-color '@graphql-codegen/typescript-react-apollo@3.3.7(encoding@0.1.13)(graphql-tag@2.12.6(graphql@16.8.1))(graphql@16.8.1)': dependencies: @@ -13530,17 +10614,16 @@ snapshots: - encoding - supports-color - '@graphql-codegen/typescript@4.0.6(encoding@0.1.13)(graphql@16.8.1)': + '@graphql-codegen/typescript@5.0.2(encoding@0.1.13)(graphql@16.8.1)': dependencies: - '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) - '@graphql-codegen/schema-ast': 4.0.2(graphql@16.8.1) - '@graphql-codegen/visitor-plugin-common': 5.1.0(encoding@0.1.13)(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.8.1) + '@graphql-codegen/schema-ast': 5.0.0(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 6.1.0(encoding@0.1.13)(graphql@16.8.1) auto-bind: 4.0.0 graphql: 16.8.1 tslib: 2.6.3 transitivePeerDependencies: - encoding - - supports-color '@graphql-codegen/visitor-plugin-common@2.13.1(encoding@0.1.13)(graphql@16.8.1)': dependencies: @@ -13576,45 +10659,44 @@ snapshots: - encoding - supports-color - '@graphql-codegen/visitor-plugin-common@5.1.0(encoding@0.1.13)(graphql@16.8.1)': + '@graphql-codegen/visitor-plugin-common@6.1.0(encoding@0.1.13)(graphql@16.8.1)': dependencies: - '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.8.1) '@graphql-tools/optimize': 2.0.0(graphql@16.8.1) - '@graphql-tools/relay-operation-optimizer': 7.0.1(encoding@0.1.13)(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-tools/relay-operation-optimizer': 7.0.21(encoding@0.1.13)(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) auto-bind: 4.0.0 change-case-all: 1.0.15 - dependency-graph: 0.11.0 + dependency-graph: 1.0.0 graphql: 16.8.1 graphql-tag: 2.12.6(graphql@16.8.1) parse-filepath: 1.0.2 tslib: 2.6.3 transitivePeerDependencies: - encoding - - supports-color - '@graphql-tools/apollo-engine-loader@8.0.1(encoding@0.1.13)(graphql@16.8.1)': + '@graphql-hive/signal@1.0.0': {} + + '@graphql-tools/apollo-engine-loader@8.0.22(graphql@16.8.1)': dependencies: - '@ardatan/sync-fetch': 0.0.1(encoding@0.1.13) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) - '@whatwg-node/fetch': 0.9.17 + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) + '@whatwg-node/fetch': 0.10.11 + graphql: 16.8.1 + sync-fetch: 0.6.0-2 + tslib: 2.8.1 + + '@graphql-tools/batch-execute@9.0.19(graphql@16.8.1)': + dependencies: + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) + '@whatwg-node/promise-helpers': 1.3.2 + dataloader: 2.2.3 graphql: 16.8.1 tslib: 2.8.1 - transitivePeerDependencies: - - encoding - '@graphql-tools/batch-execute@9.0.4(graphql@16.8.1)': + '@graphql-tools/code-file-loader@8.1.22(graphql@16.8.1)': dependencies: - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) - dataloader: 2.2.2 - graphql: 16.8.1 - tslib: 2.8.1 - value-or-promise: 1.0.12 - - '@graphql-tools/code-file-loader@8.1.1(graphql@16.8.1)': - dependencies: - '@graphql-tools/graphql-tag-pluck': 8.3.0(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-tools/graphql-tag-pluck': 8.3.21(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) globby: 11.1.0 graphql: 16.8.1 tslib: 2.8.1 @@ -13622,73 +10704,95 @@ snapshots: transitivePeerDependencies: - supports-color - '@graphql-tools/delegate@10.0.4(graphql@16.8.1)': + '@graphql-tools/delegate@10.2.23(graphql@16.8.1)': dependencies: - '@graphql-tools/batch-execute': 9.0.4(graphql@16.8.1) - '@graphql-tools/executor': 1.2.5(graphql@16.8.1) - '@graphql-tools/schema': 10.0.3(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) - dataloader: 2.2.2 + '@graphql-tools/batch-execute': 9.0.19(graphql@16.8.1) + '@graphql-tools/executor': 1.4.9(graphql@16.8.1) + '@graphql-tools/schema': 10.0.25(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) + '@repeaterjs/repeater': 3.0.6 + '@whatwg-node/promise-helpers': 1.3.2 + dataloader: 2.2.3 + dset: 3.1.4 graphql: 16.8.1 tslib: 2.8.1 - '@graphql-tools/documents@1.0.0(graphql@16.8.1)': + '@graphql-tools/documents@1.0.1(graphql@16.8.1)': dependencies: graphql: 16.8.1 lodash.sortby: 4.7.0 tslib: 2.8.1 - '@graphql-tools/executor-graphql-ws@1.1.2(graphql@16.8.1)': + '@graphql-tools/executor-common@0.0.4(graphql@16.8.1)': dependencies: - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) - '@types/ws': 8.5.10 + '@envelop/core': 5.3.2 + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) graphql: 16.8.1 - graphql-ws: 5.16.0(graphql@16.8.1) - isomorphic-ws: 5.0.0(ws@8.17.1) + + '@graphql-tools/executor-common@0.0.6(graphql@16.8.1)': + dependencies: + '@envelop/core': 5.3.2 + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) + graphql: 16.8.1 + + '@graphql-tools/executor-graphql-ws@2.0.7(graphql@16.8.1)': + dependencies: + '@graphql-tools/executor-common': 0.0.6(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) + '@whatwg-node/disposablestack': 0.0.6 + graphql: 16.8.1 + graphql-ws: 6.0.6(graphql@16.8.1)(ws@8.18.3) + isomorphic-ws: 5.0.0(ws@8.18.3) tslib: 2.8.1 - ws: 8.17.1 + ws: 8.18.3 transitivePeerDependencies: + - '@fastify/websocket' - bufferutil + - crossws + - uWebSockets.js - utf-8-validate - '@graphql-tools/executor-http@1.0.9(@types/node@16.18.105)(graphql@16.8.1)': + '@graphql-tools/executor-http@1.3.3(@types/node@20.14.8)(graphql@16.8.1)': dependencies: - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) - '@repeaterjs/repeater': 3.0.5 - '@whatwg-node/fetch': 0.9.17 - extract-files: 11.0.0 + '@graphql-hive/signal': 1.0.0 + '@graphql-tools/executor-common': 0.0.4(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) + '@repeaterjs/repeater': 3.0.6 + '@whatwg-node/disposablestack': 0.0.6 + '@whatwg-node/fetch': 0.10.11 + '@whatwg-node/promise-helpers': 1.3.2 graphql: 16.8.1 - meros: 1.3.0(@types/node@16.18.105) + meros: 1.3.2(@types/node@20.14.8) tslib: 2.8.1 - value-or-promise: 1.0.12 transitivePeerDependencies: - '@types/node' - '@graphql-tools/executor-legacy-ws@1.0.6(graphql@16.8.1)': + '@graphql-tools/executor-legacy-ws@1.1.19(graphql@16.8.1)': dependencies: - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) - '@types/ws': 8.5.10 + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) + '@types/ws': 8.18.1 graphql: 16.8.1 - isomorphic-ws: 5.0.0(ws@8.17.1) + isomorphic-ws: 5.0.0(ws@8.18.3) tslib: 2.8.1 - ws: 8.17.1 + ws: 8.18.3 transitivePeerDependencies: - bufferutil - utf-8-validate - '@graphql-tools/executor@1.2.5(graphql@16.8.1)': + '@graphql-tools/executor@1.4.9(graphql@16.8.1)': dependencies: - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) - '@repeaterjs/repeater': 3.0.5 + '@repeaterjs/repeater': 3.0.6 + '@whatwg-node/disposablestack': 0.0.6 + '@whatwg-node/promise-helpers': 1.3.2 graphql: 16.8.1 tslib: 2.8.1 - value-or-promise: 1.0.12 - '@graphql-tools/git-loader@8.0.5(graphql@16.8.1)': + '@graphql-tools/git-loader@8.0.26(graphql@16.8.1)': dependencies: - '@graphql-tools/graphql-tag-pluck': 8.3.0(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-tools/graphql-tag-pluck': 8.3.21(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) graphql: 16.8.1 is-glob: 4.0.3 micromatch: 4.0.8 @@ -13697,69 +10801,73 @@ snapshots: transitivePeerDependencies: - supports-color - '@graphql-tools/github-loader@8.0.1(@types/node@16.18.105)(encoding@0.1.13)(graphql@16.8.1)': + '@graphql-tools/github-loader@8.0.22(@types/node@20.14.8)(graphql@16.8.1)': dependencies: - '@ardatan/sync-fetch': 0.0.1(encoding@0.1.13) - '@graphql-tools/executor-http': 1.0.9(@types/node@16.18.105)(graphql@16.8.1) - '@graphql-tools/graphql-tag-pluck': 8.3.0(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) - '@whatwg-node/fetch': 0.9.17 + '@graphql-tools/executor-http': 1.3.3(@types/node@20.14.8)(graphql@16.8.1) + '@graphql-tools/graphql-tag-pluck': 8.3.21(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) + '@whatwg-node/fetch': 0.10.11 + '@whatwg-node/promise-helpers': 1.3.2 graphql: 16.8.1 + sync-fetch: 0.6.0-2 tslib: 2.8.1 - value-or-promise: 1.0.12 transitivePeerDependencies: - '@types/node' - - encoding - supports-color - '@graphql-tools/graphql-file-loader@8.0.1(graphql@16.8.1)': + '@graphql-tools/graphql-file-loader@8.1.2(graphql@16.8.1)': dependencies: - '@graphql-tools/import': 7.0.1(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-tools/import': 7.1.2(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) globby: 11.1.0 graphql: 16.8.1 tslib: 2.8.1 unixify: 1.0.0 + transitivePeerDependencies: + - supports-color - '@graphql-tools/graphql-tag-pluck@8.3.0(graphql@16.8.1)': + '@graphql-tools/graphql-tag-pluck@8.3.21(graphql@16.8.1)': dependencies: '@babel/core': 7.26.10 - '@babel/parser': 7.28.3 - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.26.10) - '@babel/traverse': 7.28.3 - '@babel/types': 7.28.2 - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@babel/parser': 7.28.4 + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.26.10) + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) graphql: 16.8.1 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@graphql-tools/import@7.0.1(graphql@16.8.1)': + '@graphql-tools/import@7.1.2(graphql@16.8.1)': dependencies: - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) + '@theguild/federation-composition': 0.20.1(graphql@16.8.1) graphql: 16.8.1 resolve-from: 5.0.0 tslib: 2.8.1 + transitivePeerDependencies: + - supports-color - '@graphql-tools/json-file-loader@8.0.1(graphql@16.8.1)': + '@graphql-tools/json-file-loader@8.0.20(graphql@16.8.1)': dependencies: - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) globby: 11.1.0 graphql: 16.8.1 tslib: 2.8.1 unixify: 1.0.0 - '@graphql-tools/load@8.0.2(graphql@16.8.1)': + '@graphql-tools/load@8.1.2(graphql@16.8.1)': dependencies: - '@graphql-tools/schema': 10.0.3(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-tools/schema': 10.0.25(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) graphql: 16.8.1 p-limit: 3.1.0 tslib: 2.8.1 - '@graphql-tools/merge@9.0.3(graphql@16.8.1)': + '@graphql-tools/merge@9.1.1(graphql@16.8.1)': dependencies: - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) graphql: 16.8.1 tslib: 2.8.1 @@ -13773,34 +10881,6 @@ snapshots: graphql: 16.8.1 tslib: 2.8.1 - '@graphql-tools/prisma-loader@8.0.3(@types/node@16.18.105)(encoding@0.1.13)(graphql@16.8.1)': - dependencies: - '@graphql-tools/url-loader': 8.0.2(@types/node@16.18.105)(encoding@0.1.13)(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) - '@types/js-yaml': 4.0.9 - '@types/json-stable-stringify': 1.0.36 - '@whatwg-node/fetch': 0.9.17 - chalk: 4.1.2 - debug: 4.4.1 - dotenv: 16.4.5 - graphql: 16.8.1 - graphql-request: 6.1.0(encoding@0.1.13)(graphql@16.8.1) - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 - jose: 5.2.3 - js-yaml: 4.1.0 - json-stable-stringify: 1.1.1 - lodash: 4.17.21 - scuid: 1.1.0 - tslib: 2.8.1 - yaml-ast-parser: 0.0.43 - transitivePeerDependencies: - - '@types/node' - - bufferutil - - encoding - - supports-color - - utf-8-validate - '@graphql-tools/relay-operation-optimizer@6.5.18(encoding@0.1.13)(graphql@16.8.1)': dependencies: '@ardatan/relay-compiler': 12.0.0(encoding@0.1.13)(graphql@16.8.1) @@ -13811,50 +10891,50 @@ snapshots: - encoding - supports-color - '@graphql-tools/relay-operation-optimizer@7.0.1(encoding@0.1.13)(graphql@16.8.1)': + '@graphql-tools/relay-operation-optimizer@7.0.21(encoding@0.1.13)(graphql@16.8.1)': dependencies: - '@ardatan/relay-compiler': 12.0.0(encoding@0.1.13)(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@ardatan/relay-compiler': 12.0.3(encoding@0.1.13)(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) graphql: 16.8.1 tslib: 2.8.1 transitivePeerDependencies: - encoding - - supports-color - '@graphql-tools/schema@10.0.3(graphql@16.8.1)': + '@graphql-tools/schema@10.0.25(graphql@16.8.1)': dependencies: - '@graphql-tools/merge': 9.0.3(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-tools/merge': 9.1.1(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) graphql: 16.8.1 tslib: 2.8.1 - value-or-promise: 1.0.12 - '@graphql-tools/url-loader@8.0.2(@types/node@16.18.105)(encoding@0.1.13)(graphql@16.8.1)': + '@graphql-tools/url-loader@8.0.33(@types/node@20.14.8)(graphql@16.8.1)': dependencies: - '@ardatan/sync-fetch': 0.0.1(encoding@0.1.13) - '@graphql-tools/delegate': 10.0.4(graphql@16.8.1) - '@graphql-tools/executor-graphql-ws': 1.1.2(graphql@16.8.1) - '@graphql-tools/executor-http': 1.0.9(@types/node@16.18.105)(graphql@16.8.1) - '@graphql-tools/executor-legacy-ws': 1.0.6(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) - '@graphql-tools/wrap': 10.0.5(graphql@16.8.1) - '@types/ws': 8.5.10 - '@whatwg-node/fetch': 0.9.17 + '@graphql-tools/executor-graphql-ws': 2.0.7(graphql@16.8.1) + '@graphql-tools/executor-http': 1.3.3(@types/node@20.14.8)(graphql@16.8.1) + '@graphql-tools/executor-legacy-ws': 1.1.19(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) + '@graphql-tools/wrap': 10.1.4(graphql@16.8.1) + '@types/ws': 8.18.1 + '@whatwg-node/fetch': 0.10.11 + '@whatwg-node/promise-helpers': 1.3.2 graphql: 16.8.1 - isomorphic-ws: 5.0.0(ws@8.17.1) + isomorphic-ws: 5.0.0(ws@8.18.3) + sync-fetch: 0.6.0-2 tslib: 2.8.1 - value-or-promise: 1.0.12 - ws: 8.17.1 + ws: 8.18.3 transitivePeerDependencies: + - '@fastify/websocket' - '@types/node' - bufferutil - - encoding + - crossws + - uWebSockets.js - utf-8-validate - '@graphql-tools/utils@10.1.2(graphql@16.8.1)': + '@graphql-tools/utils@10.9.1(graphql@16.8.1)': dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) - cross-inspect: 1.0.0 + '@whatwg-node/promise-helpers': 1.3.2 + cross-inspect: 1.0.1 dset: 3.1.4 graphql: 16.8.1 tslib: 2.8.1 @@ -13870,14 +10950,14 @@ snapshots: graphql: 16.8.1 tslib: 2.8.1 - '@graphql-tools/wrap@10.0.5(graphql@16.8.1)': + '@graphql-tools/wrap@10.1.4(graphql@16.8.1)': dependencies: - '@graphql-tools/delegate': 10.0.4(graphql@16.8.1) - '@graphql-tools/schema': 10.0.3(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-tools/delegate': 10.2.23(graphql@16.8.1) + '@graphql-tools/schema': 10.0.25(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) + '@whatwg-node/promise-helpers': 1.3.2 graphql: 16.8.1 tslib: 2.8.1 - value-or-promise: 1.0.12 '@graphql-typed-document-node/core@3.2.0(graphql@16.8.1)': dependencies: @@ -13890,6 +10970,18 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + '@hello-pangea/dnd@18.0.1(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.28.4 + css-box-model: 1.2.1 + raf-schd: 4.0.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-redux: 9.2.0(@types/react@18.2.73)(react@18.2.0)(redux@5.0.1) + redux: 5.0.1 + transitivePeerDependencies: + - '@types/react' + '@heroicons/react@1.0.6(react@18.2.0)': dependencies: react: 18.2.0 @@ -13935,6 +11027,131 @@ snapshots: dependencies: react: 18.2.0 + '@inquirer/ansi@1.0.0': {} + + '@inquirer/checkbox@4.2.4(@types/node@20.14.8)': + dependencies: + '@inquirer/ansi': 1.0.0 + '@inquirer/core': 10.2.2(@types/node@20.14.8) + '@inquirer/figures': 1.0.13 + '@inquirer/type': 3.0.8(@types/node@20.14.8) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 20.14.8 + + '@inquirer/confirm@5.1.18(@types/node@20.14.8)': + dependencies: + '@inquirer/core': 10.2.2(@types/node@20.14.8) + '@inquirer/type': 3.0.8(@types/node@20.14.8) + optionalDependencies: + '@types/node': 20.14.8 + + '@inquirer/core@10.2.2(@types/node@20.14.8)': + dependencies: + '@inquirer/ansi': 1.0.0 + '@inquirer/figures': 1.0.13 + '@inquirer/type': 3.0.8(@types/node@20.14.8) + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 20.14.8 + + '@inquirer/editor@4.2.20(@types/node@20.14.8)': + dependencies: + '@inquirer/core': 10.2.2(@types/node@20.14.8) + '@inquirer/external-editor': 1.0.2(@types/node@20.14.8) + '@inquirer/type': 3.0.8(@types/node@20.14.8) + optionalDependencies: + '@types/node': 20.14.8 + + '@inquirer/expand@4.0.20(@types/node@20.14.8)': + dependencies: + '@inquirer/core': 10.2.2(@types/node@20.14.8) + '@inquirer/type': 3.0.8(@types/node@20.14.8) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 20.14.8 + + '@inquirer/external-editor@1.0.2(@types/node@20.14.8)': + dependencies: + chardet: 2.1.0 + iconv-lite: 0.7.0 + optionalDependencies: + '@types/node': 20.14.8 + + '@inquirer/figures@1.0.13': {} + + '@inquirer/input@4.2.4(@types/node@20.14.8)': + dependencies: + '@inquirer/core': 10.2.2(@types/node@20.14.8) + '@inquirer/type': 3.0.8(@types/node@20.14.8) + optionalDependencies: + '@types/node': 20.14.8 + + '@inquirer/number@3.0.20(@types/node@20.14.8)': + dependencies: + '@inquirer/core': 10.2.2(@types/node@20.14.8) + '@inquirer/type': 3.0.8(@types/node@20.14.8) + optionalDependencies: + '@types/node': 20.14.8 + + '@inquirer/password@4.0.20(@types/node@20.14.8)': + dependencies: + '@inquirer/ansi': 1.0.0 + '@inquirer/core': 10.2.2(@types/node@20.14.8) + '@inquirer/type': 3.0.8(@types/node@20.14.8) + optionalDependencies: + '@types/node': 20.14.8 + + '@inquirer/prompts@7.8.6(@types/node@20.14.8)': + dependencies: + '@inquirer/checkbox': 4.2.4(@types/node@20.14.8) + '@inquirer/confirm': 5.1.18(@types/node@20.14.8) + '@inquirer/editor': 4.2.20(@types/node@20.14.8) + '@inquirer/expand': 4.0.20(@types/node@20.14.8) + '@inquirer/input': 4.2.4(@types/node@20.14.8) + '@inquirer/number': 3.0.20(@types/node@20.14.8) + '@inquirer/password': 4.0.20(@types/node@20.14.8) + '@inquirer/rawlist': 4.1.8(@types/node@20.14.8) + '@inquirer/search': 3.1.3(@types/node@20.14.8) + '@inquirer/select': 4.3.4(@types/node@20.14.8) + optionalDependencies: + '@types/node': 20.14.8 + + '@inquirer/rawlist@4.1.8(@types/node@20.14.8)': + dependencies: + '@inquirer/core': 10.2.2(@types/node@20.14.8) + '@inquirer/type': 3.0.8(@types/node@20.14.8) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 20.14.8 + + '@inquirer/search@3.1.3(@types/node@20.14.8)': + dependencies: + '@inquirer/core': 10.2.2(@types/node@20.14.8) + '@inquirer/figures': 1.0.13 + '@inquirer/type': 3.0.8(@types/node@20.14.8) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 20.14.8 + + '@inquirer/select@4.3.4(@types/node@20.14.8)': + dependencies: + '@inquirer/ansi': 1.0.0 + '@inquirer/core': 10.2.2(@types/node@20.14.8) + '@inquirer/figures': 1.0.13 + '@inquirer/type': 3.0.8(@types/node@20.14.8) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 20.14.8 + + '@inquirer/type@3.0.8(@types/node@20.14.8)': + optionalDependencies: + '@types/node': 20.14.8 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -13944,14 +11161,6 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@istanbuljs/load-nyc-config@1.1.0': - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - '@istanbuljs/schema@0.1.3': {} '@jest/expect-utils@29.7.0': @@ -13962,48 +11171,12 @@ snapshots: dependencies: '@sinclair/typebox': 0.27.8 - '@jest/transform@26.6.2': - dependencies: - '@babel/core': 7.26.10 - '@jest/types': 26.6.2 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 1.9.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.11 - jest-haste-map: 26.6.2 - jest-regex-util: 26.0.0 - jest-util: 26.6.2 - micromatch: 4.0.8 - pirates: 4.0.6 - slash: 3.0.0 - source-map: 0.6.1 - write-file-atomic: 3.0.3 - transitivePeerDependencies: - - supports-color - - '@jest/types@26.6.2': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 16.18.105 - '@types/yargs': 15.0.19 - chalk: 4.1.2 - - '@jest/types@27.5.1': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 16.18.105 - '@types/yargs': 16.0.9 - chalk: 4.1.2 - '@jest/types@29.6.3': dependencies: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 16.18.105 + '@types/node': 16.18.126 '@types/yargs': 17.0.32 chalk: 4.1.2 @@ -14012,20 +11185,32 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.30 - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/source-map@0.3.6': + '@jridgewell/remapping@2.3.5': dependencies: '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/trace-mapping@0.3.30': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -14045,18 +11230,26 @@ snapshots: dependencies: jsep: 1.4.0 - '@kamilkisiela/fast-url-parser@1.1.4': {} - '@lezer/common@1.2.1': {} + '@lezer/common@1.2.3': {} + '@lezer/highlight@1.2.0': dependencies: '@lezer/common': 1.2.1 + '@lezer/highlight@1.2.1': + dependencies: + '@lezer/common': 1.2.3 + '@lezer/lr@1.4.1': dependencies: '@lezer/common': 1.2.1 + '@lezer/lr@1.4.2': + dependencies: + '@lezer/common': 1.2.3 + '@lukeed/csprng@1.1.0': {} '@lukeed/uuid@2.0.1': @@ -14068,36 +11261,6 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@mdx-js/mdx@1.6.22': - dependencies: - '@babel/core': 7.12.9 - '@babel/plugin-syntax-jsx': 7.12.1(@babel/core@7.12.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.12.9) - '@mdx-js/util': 1.6.22 - babel-plugin-apply-mdx-type-prop: 1.6.22(@babel/core@7.12.9) - babel-plugin-extract-import-names: 1.6.22 - camelcase-css: 2.0.1 - detab: 2.0.4 - hast-util-raw: 6.0.1 - lodash.uniq: 4.5.0 - mdast-util-to-hast: 10.0.1 - remark-footnotes: 2.0.0 - remark-mdx: 1.6.22 - remark-parse: 8.0.3 - remark-squeeze-paragraphs: 4.0.0 - style-to-object: 0.3.0 - unified: 9.2.0 - unist-builder: 2.0.3 - unist-util-visit: 2.0.3 - transitivePeerDependencies: - - supports-color - - '@mdx-js/react@1.6.22(react@18.2.0)': - dependencies: - react: 18.2.0 - - '@mdx-js/util@1.6.22': {} - '@motionone/animation@10.18.0': dependencies: '@motionone/easing': 10.18.0 @@ -14133,23 +11296,14 @@ snapshots: hey-listen: 1.0.8 tslib: 2.8.1 - '@mswjs/cookies@0.2.2': + '@mswjs/interceptors@0.39.7': dependencies: - '@types/set-cookie-parser': 2.4.7 - set-cookie-parser: 2.7.1 - - '@mswjs/interceptors@0.17.10': - dependencies: - '@open-draft/until': 1.0.3 - '@types/debug': 4.1.12 - '@xmldom/xmldom': 0.8.10 - debug: 4.4.1 - headers-polyfill: 3.2.5 - outvariant: 1.4.2 - strict-event-emitter: 0.2.8 - web-encoding: 1.1.5 - transitivePeerDependencies: - - supports-color + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/logger': 0.3.0 + '@open-draft/until': 2.1.0 + is-node-process: 1.2.0 + outvariant: 1.4.3 + strict-event-emitter: 0.5.1 '@mui/base@5.0.0-beta.31(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: @@ -14167,7 +11321,7 @@ snapshots: '@mui/base@5.0.0-beta.40(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@floating-ui/react-dom': 2.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/types': 7.2.14(@types/react@18.2.73) '@mui/utils': 5.15.14(@types/react@18.2.73)(react@18.2.0) @@ -14204,7 +11358,7 @@ snapshots: '@mui/private-theming@5.15.14(@types/react@18.2.73)(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@mui/utils': 5.15.14(@types/react@18.2.73)(react@18.2.0) prop-types: 15.8.1 react: 18.2.0 @@ -14213,7 +11367,7 @@ snapshots: '@mui/styled-engine@5.15.14(@emotion/react@11.11.4(@types/react@18.2.73)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.2.73)(react@18.2.0))(@types/react@18.2.73)(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@emotion/cache': 11.11.0 csstype: 3.1.3 prop-types: 15.8.1 @@ -14244,7 +11398,7 @@ snapshots: '@mui/utils@5.15.14(@types/react@18.2.73)(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@types/prop-types': 15.7.12 prop-types: 15.8.1 react: 18.2.0 @@ -14335,7 +11489,14 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@open-draft/until@1.0.3': {} + '@open-draft/deferred-promise@2.2.0': {} + + '@open-draft/logger@0.3.0': + dependencies: + is-node-process: 1.2.0 + outvariant: 1.4.3 + + '@open-draft/until@2.1.0': {} '@orval/angular@7.11.2(encoding@0.1.13)(openapi-types@12.1.3)': dependencies: @@ -14443,24 +11604,6 @@ snapshots: - openapi-types - supports-color - '@peculiar/asn1-schema@2.3.13': - dependencies: - asn1js: 3.0.5 - pvtsutils: 1.3.6 - tslib: 2.8.1 - - '@peculiar/json-schema@1.1.12': - dependencies: - tslib: 2.8.1 - - '@peculiar/webcrypto@1.4.6': - dependencies: - '@peculiar/asn1-schema': 2.3.13 - '@peculiar/json-schema': 1.1.12 - pvtsutils: 1.3.6 - tslib: 2.8.1 - webcrypto-core: 1.8.1 - '@pkgjs/parseargs@0.11.0': optional: true @@ -14476,7 +11619,7 @@ snapshots: '@radix-ui/primitive@1.0.1': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@radix-ui/primitive@1.1.0': {} @@ -14603,7 +11746,7 @@ snapshots: '@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.73)(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 react: 18.2.0 optionalDependencies: '@types/react': 18.2.73 @@ -14628,7 +11771,7 @@ snapshots: '@radix-ui/react-context@1.0.1(@types/react@18.2.73)(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 react: 18.2.0 optionalDependencies: '@types/react': 18.2.73 @@ -14653,7 +11796,7 @@ snapshots: '@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.73)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.73)(react@18.2.0) @@ -14704,7 +11847,7 @@ snapshots: '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.73)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -14759,7 +11902,7 @@ snapshots: '@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.73)(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 react: 18.2.0 optionalDependencies: '@types/react': 18.2.73 @@ -14778,7 +11921,7 @@ snapshots: '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.73)(react@18.2.0) '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.73)(react@18.2.0) @@ -14829,7 +11972,7 @@ snapshots: '@radix-ui/react-id@1.0.1(@types/react@18.2.73)(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.73)(react@18.2.0) react: 18.2.0 optionalDependencies: @@ -14938,7 +12081,7 @@ snapshots: '@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -14968,7 +12111,7 @@ snapshots: '@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.73)(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.73)(react@18.2.0) react: 18.2.0 @@ -14999,7 +12142,7 @@ snapshots: '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@radix-ui/react-slot': 1.0.2(@types/react@18.2.73)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -15162,7 +12305,7 @@ snapshots: '@radix-ui/react-slot@1.0.2(@types/react@18.2.73)(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.73)(react@18.2.0) react: 18.2.0 optionalDependencies: @@ -15249,7 +12392,7 @@ snapshots: '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.73)(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 react: 18.2.0 optionalDependencies: '@types/react': 18.2.73 @@ -15262,7 +12405,7 @@ snapshots: '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.73)(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.73)(react@18.2.0) react: 18.2.0 optionalDependencies: @@ -15292,7 +12435,7 @@ snapshots: '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.73)(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.73)(react@18.2.0) react: 18.2.0 optionalDependencies: @@ -15307,7 +12450,7 @@ snapshots: '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.73)(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 react: 18.2.0 optionalDependencies: '@types/react': 18.2.73 @@ -15377,7 +12520,9 @@ snapshots: '@radix-ui/rect@1.1.0': {} - '@repeaterjs/repeater@3.0.5': {} + '@repeaterjs/repeater@3.0.6': {} + + '@rolldown/pluginutils@1.0.0-beta.27': {} '@rollup/rollup-android-arm-eabi@4.52.2': optional: true @@ -15681,867 +12826,6 @@ snapshots: '@stoplight/yaml-ast-parser': 0.0.50 tslib: 2.8.1 - '@storybook/addon-actions@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.37.1 - fast-deep-equal: 3.1.3 - global: 4.4.0 - lodash: 4.17.21 - polished: 4.3.1 - prop-types: 15.8.1 - react-inspector: 5.1.1(react@18.2.0) - regenerator-runtime: 0.13.11 - telejson: 6.0.8 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - uuid-browser: 3.1.0 - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@storybook/addon-backgrounds@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.37.1 - global: 4.4.0 - memoizerific: 1.11.3 - regenerator-runtime: 0.13.11 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@storybook/addon-controls@6.5.16(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)': - dependencies: - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-common': 6.5.16(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/node-logger': 6.5.16 - '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.37.1 - lodash: 4.17.21 - ts-dedent: 2.2.0 - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - transitivePeerDependencies: - - eslint - - supports-color - - typescript - - vue-template-compiler - - webpack-cli - - webpack-command - - '@storybook/addon-docs@6.5.16(@babel/core@7.26.10)(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.97.1(esbuild@0.18.20))': - dependencies: - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.10) - '@babel/preset-env': 7.24.7(@babel/core@7.26.10) - '@jest/transform': 26.6.2 - '@mdx-js/react': 1.6.22(react@18.2.0) - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-common': 6.5.16(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/docs-tools': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/mdx1-csf': 0.0.1(@babel/core@7.26.10) - '@storybook/node-logger': 6.5.16 - '@storybook/postinstall': 6.5.16 - '@storybook/preview-web': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/source-loader': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - babel-loader: 8.3.0(@babel/core@7.26.10)(webpack@5.97.1(esbuild@0.18.20)) - core-js: 3.37.1 - fast-deep-equal: 3.1.3 - global: 4.4.0 - lodash: 4.17.21 - regenerator-runtime: 0.13.11 - remark-external-links: 8.0.0 - remark-slug: 6.1.0 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - transitivePeerDependencies: - - '@babel/core' - - eslint - - supports-color - - typescript - - vue-template-compiler - - webpack - - webpack-cli - - webpack-command - - '@storybook/addon-essentials@6.5.16(@babel/core@7.26.10)(@storybook/builder-webpack5@6.5.16(esbuild@0.18.20)(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3))(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.97.1(esbuild@0.18.20))': - dependencies: - '@babel/core': 7.26.10 - '@storybook/addon-actions': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/addon-backgrounds': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/addon-controls': 6.5.16(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) - '@storybook/addon-docs': 6.5.16(@babel/core@7.26.10)(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.97.1(esbuild@0.18.20)) - '@storybook/addon-measure': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/addon-outline': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/addon-toolbars': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/addon-viewport': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-common': 6.5.16(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) - '@storybook/node-logger': 6.5.16 - core-js: 3.37.1 - regenerator-runtime: 0.13.11 - ts-dedent: 2.2.0 - optionalDependencies: - '@storybook/builder-webpack5': 6.5.16(esbuild@0.18.20)(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - webpack: 5.97.1(esbuild@0.18.20) - transitivePeerDependencies: - - '@storybook/mdx2-csf' - - eslint - - supports-color - - typescript - - vue-template-compiler - - webpack-cli - - webpack-command - - '@storybook/addon-interactions@6.5.16(@types/react@18.2.73)(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)': - dependencies: - '@devtools-ds/object-inspector': 1.2.1(@types/react@18.2.73)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-common': 6.5.16(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/instrumenter': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.37.1 - global: 4.4.0 - jest-mock: 27.5.1 - polished: 4.3.1 - ts-dedent: 2.2.0 - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - - eslint - - supports-color - - typescript - - vue-template-compiler - - webpack-cli - - webpack-command - - '@storybook/addon-links@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/router': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@types/qs': 6.9.15 - core-js: 3.37.1 - global: 4.4.0 - prop-types: 15.8.1 - qs: 6.13.1 - regenerator-runtime: 0.13.11 - ts-dedent: 2.2.0 - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@storybook/addon-measure@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - core-js: 3.37.1 - global: 4.4.0 - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@storybook/addon-outline@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - core-js: 3.37.1 - global: 4.4.0 - regenerator-runtime: 0.13.11 - ts-dedent: 2.2.0 - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@storybook/addon-postcss@2.0.0(webpack@5.97.1(esbuild@0.18.20))': - dependencies: - '@storybook/node-logger': 6.5.16 - css-loader: 3.6.0(webpack@5.97.1(esbuild@0.18.20)) - postcss: 7.0.39 - postcss-loader: 4.3.0(postcss@7.0.39)(webpack@5.97.1(esbuild@0.18.20)) - style-loader: 1.3.0(webpack@5.97.1(esbuild@0.18.20)) - transitivePeerDependencies: - - webpack - - '@storybook/addon-toolbars@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.37.1 - regenerator-runtime: 0.13.11 - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@storybook/addon-viewport@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-events': 6.5.16 - '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.37.1 - global: 4.4.0 - memoizerific: 1.11.3 - prop-types: 15.8.1 - regenerator-runtime: 0.13.11 - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@storybook/addons@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/channels': 6.5.16 - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/router': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@types/webpack-env': 1.18.5 - core-js: 3.37.1 - global: 4.4.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - regenerator-runtime: 0.13.11 - - '@storybook/api@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/channels': 6.5.16 - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/router': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/semver': 7.3.2 - '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.37.1 - fast-deep-equal: 3.1.3 - global: 4.4.0 - lodash: 4.17.21 - memoizerific: 1.11.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - regenerator-runtime: 0.13.11 - store2: 2.14.4 - telejson: 6.0.8 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - - '@storybook/builder-webpack5@6.5.16(esbuild@0.18.20)(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)': - dependencies: - '@babel/core': 7.26.10 - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/channel-postmessage': 6.5.16 - '@storybook/channels': 6.5.16 - '@storybook/client-api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-common': 6.5.16(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) - '@storybook/core-events': 6.5.16 - '@storybook/node-logger': 6.5.16 - '@storybook/preview-web': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/router': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/semver': 7.3.2 - '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@types/node': 16.18.105 - babel-loader: 8.3.0(@babel/core@7.26.10)(webpack@5.97.1(esbuild@0.18.20)) - babel-plugin-named-exports-order: 0.0.2 - browser-assert: 1.2.1 - case-sensitive-paths-webpack-plugin: 2.4.0 - core-js: 3.37.1 - css-loader: 5.2.7(webpack@5.97.1(esbuild@0.18.20)) - fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.0)(typescript@5.8.3)(webpack@5.97.1(esbuild@0.18.20)) - glob: 7.2.3 - glob-promise: 3.4.0(glob@7.2.3) - html-webpack-plugin: 5.6.3(webpack@5.97.1(esbuild@0.18.20)) - path-browserify: 1.0.1 - process: 0.11.10 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - stable: 0.1.8 - style-loader: 2.0.0(webpack@5.97.1(esbuild@0.18.20)) - terser-webpack-plugin: 5.3.11(esbuild@0.18.20)(webpack@5.97.1(esbuild@0.18.20)) - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - webpack: 5.97.1(esbuild@0.18.20) - webpack-dev-middleware: 4.3.0(webpack@5.97.1(esbuild@0.18.20)) - webpack-hot-middleware: 2.26.1 - webpack-virtual-modules: 0.4.6 - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - '@rspack/core' - - '@swc/core' - - esbuild - - eslint - - supports-color - - uglify-js - - vue-template-compiler - - webpack-cli - - webpack-command - - '@storybook/channel-postmessage@6.5.16': - dependencies: - '@storybook/channels': 6.5.16 - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - core-js: 3.37.1 - global: 4.4.0 - qs: 6.13.1 - telejson: 6.0.8 - - '@storybook/channel-websocket@6.5.16': - dependencies: - '@storybook/channels': 6.5.16 - '@storybook/client-logger': 6.5.16 - core-js: 3.37.1 - global: 4.4.0 - telejson: 6.0.8 - - '@storybook/channels@6.5.16': - dependencies: - core-js: 3.37.1 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - - '@storybook/channels@7.6.20': - dependencies: - '@storybook/client-logger': 7.6.20 - '@storybook/core-events': 7.6.20 - '@storybook/global': 5.0.0 - qs: 6.13.1 - telejson: 7.2.0 - tiny-invariant: 1.3.3 - - '@storybook/client-api@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/channel-postmessage': 6.5.16 - '@storybook/channels': 6.5.16 - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@types/qs': 6.9.15 - '@types/webpack-env': 1.18.5 - core-js: 3.37.1 - fast-deep-equal: 3.1.3 - global: 4.4.0 - lodash: 4.17.21 - memoizerific: 1.11.3 - qs: 6.13.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - regenerator-runtime: 0.13.11 - store2: 2.14.4 - synchronous-promise: 2.0.17 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - - '@storybook/client-logger@6.5.16': - dependencies: - core-js: 3.37.1 - global: 4.4.0 - - '@storybook/client-logger@7.6.20': - dependencies: - '@storybook/global': 5.0.0 - - '@storybook/components@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/client-logger': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.37.1 - memoizerific: 1.11.3 - qs: 6.13.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - regenerator-runtime: 0.13.11 - util-deprecate: 1.0.2 - - '@storybook/core-client@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.97.1(esbuild@0.18.20))': - dependencies: - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/channel-postmessage': 6.5.16 - '@storybook/channel-websocket': 6.5.16 - '@storybook/client-api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/preview-web': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/ui': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - airbnb-js-shims: 2.2.1 - ansi-to-html: 0.6.15 - core-js: 3.37.1 - global: 4.4.0 - lodash: 4.17.21 - qs: 6.13.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - regenerator-runtime: 0.13.11 - ts-dedent: 2.2.0 - unfetch: 4.2.0 - util-deprecate: 1.0.2 - webpack: 5.97.1(esbuild@0.18.20) - optionalDependencies: - typescript: 5.8.3 - - '@storybook/core-client@7.6.20': - dependencies: - '@storybook/client-logger': 7.6.20 - '@storybook/preview-api': 7.6.20 - - '@storybook/core-common@6.5.16(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)': - dependencies: - '@babel/core': 7.26.10 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.26.10) - '@babel/plugin-proposal-decorators': 7.24.6(@babel/core@7.26.10) - '@babel/plugin-proposal-export-default-from': 7.24.7(@babel/core@7.26.10) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.26.10) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.26.10) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.26.10) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.26.10) - '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.26.10) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.26.10) - '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.26.10) - '@babel/plugin-transform-classes': 7.24.7(@babel/core@7.26.10) - '@babel/plugin-transform-destructuring': 7.24.7(@babel/core@7.26.10) - '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.26.10) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.26.10) - '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.26.10) - '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.26.10) - '@babel/preset-env': 7.24.7(@babel/core@7.26.10) - '@babel/preset-react': 7.24.6(@babel/core@7.26.10) - '@babel/preset-typescript': 7.24.7(@babel/core@7.26.10) - '@babel/register': 7.24.6(@babel/core@7.26.10) - '@storybook/node-logger': 6.5.16 - '@storybook/semver': 7.3.2 - '@types/node': 16.18.105 - '@types/pretty-hrtime': 1.0.3 - babel-loader: 8.3.0(@babel/core@7.26.10)(webpack@4.47.0) - babel-plugin-macros: 3.1.0 - babel-plugin-polyfill-corejs3: 0.1.7(@babel/core@7.26.10) - chalk: 4.1.2 - core-js: 3.37.1 - express: 4.21.2 - file-system-cache: 1.1.0 - find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.0)(typescript@5.8.3)(webpack@4.47.0) - fs-extra: 9.1.0 - glob: 7.2.3 - handlebars: 4.7.8 - interpret: 2.2.0 - json5: 2.2.3 - lazy-universal-dotenv: 3.0.1 - picomatch: 2.3.1 - pkg-dir: 5.0.0 - pretty-hrtime: 1.0.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - resolve-from: 5.0.0 - slash: 3.0.0 - telejson: 6.0.8 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - webpack: 4.47.0 - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - eslint - - supports-color - - vue-template-compiler - - webpack-cli - - webpack-command - - '@storybook/core-common@7.6.20(encoding@0.1.13)': - dependencies: - '@storybook/core-events': 7.6.20 - '@storybook/node-logger': 7.6.20 - '@storybook/types': 7.6.20 - '@types/find-cache-dir': 3.2.1 - '@types/node': 18.19.79 - '@types/node-fetch': 2.6.11 - '@types/pretty-hrtime': 1.0.3 - chalk: 4.1.2 - esbuild: 0.18.20 - esbuild-register: 3.5.0(esbuild@0.18.20) - file-system-cache: 2.3.0 - find-cache-dir: 3.3.2 - find-up: 5.0.0 - fs-extra: 11.2.0 - glob: 10.4.5 - handlebars: 4.7.8 - lazy-universal-dotenv: 4.0.0 - node-fetch: 2.6.13(encoding@0.1.13) - picomatch: 2.3.1 - pkg-dir: 5.0.0 - pretty-hrtime: 1.0.3 - resolve-from: 5.0.0 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - encoding - - supports-color - - '@storybook/core-events@6.5.16': - dependencies: - core-js: 3.37.1 - - '@storybook/core-events@7.6.20': - dependencies: - ts-dedent: 2.2.0 - - '@storybook/csf@0.0.2--canary.4566f4d.1': - dependencies: - lodash: 4.17.21 - - '@storybook/csf@0.1.8': - dependencies: - type-fest: 2.19.0 - - '@storybook/docs-tools@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@babel/core': 7.26.10 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.37.1 - doctrine: 3.0.0 - lodash: 4.17.21 - regenerator-runtime: 0.13.11 - transitivePeerDependencies: - - react - - react-dom - - supports-color - - '@storybook/docs-tools@7.6.20(encoding@0.1.13)': - dependencies: - '@storybook/core-common': 7.6.20(encoding@0.1.13) - '@storybook/preview-api': 7.6.20 - '@storybook/types': 7.6.20 - '@types/doctrine': 0.0.3 - assert: 2.1.0 - doctrine: 3.0.0 - lodash: 4.17.21 - transitivePeerDependencies: - - encoding - - supports-color - - '@storybook/global@5.0.0': {} - - '@storybook/instrumenter@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - core-js: 3.37.1 - global: 4.4.0 - transitivePeerDependencies: - - react - - react-dom - - '@storybook/manager-webpack5@6.5.16(encoding@0.1.13)(esbuild@0.18.20)(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)': - dependencies: - '@babel/core': 7.26.10 - '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.26.10) - '@babel/preset-react': 7.24.6(@babel/core@7.26.10) - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.97.1(esbuild@0.18.20)) - '@storybook/core-common': 6.5.16(eslint@8.57.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) - '@storybook/node-logger': 6.5.16 - '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/ui': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@types/node': 16.18.105 - babel-loader: 8.3.0(@babel/core@7.26.10)(webpack@5.97.1(esbuild@0.18.20)) - case-sensitive-paths-webpack-plugin: 2.4.0 - chalk: 4.1.2 - core-js: 3.37.1 - css-loader: 5.2.7(webpack@5.97.1(esbuild@0.18.20)) - express: 4.21.2 - find-up: 5.0.0 - fs-extra: 9.1.0 - html-webpack-plugin: 5.6.3(webpack@5.97.1(esbuild@0.18.20)) - node-fetch: 2.6.13(encoding@0.1.13) - process: 0.11.10 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - read-pkg-up: 7.0.1 - regenerator-runtime: 0.13.11 - resolve-from: 5.0.0 - style-loader: 2.0.0(webpack@5.97.1(esbuild@0.18.20)) - telejson: 6.0.8 - terser-webpack-plugin: 5.3.11(esbuild@0.18.20)(webpack@5.97.1(esbuild@0.18.20)) - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - webpack: 5.97.1(esbuild@0.18.20) - webpack-dev-middleware: 4.3.0(webpack@5.97.1(esbuild@0.18.20)) - webpack-virtual-modules: 0.4.6 - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - '@rspack/core' - - '@swc/core' - - encoding - - esbuild - - eslint - - supports-color - - uglify-js - - vue-template-compiler - - webpack-cli - - webpack-command - - '@storybook/mdx1-csf@0.0.1(@babel/core@7.26.10)': - dependencies: - '@babel/generator': 7.28.3 - '@babel/parser': 7.28.3 - '@babel/preset-env': 7.24.7(@babel/core@7.26.10) - '@babel/types': 7.28.2 - '@mdx-js/mdx': 1.6.22 - '@types/lodash': 4.17.4 - js-string-escape: 1.0.1 - loader-utils: 2.0.4 - lodash: 4.17.21 - prettier: 2.3.0 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - '@babel/core' - - supports-color - - '@storybook/node-logger@6.5.16': - dependencies: - '@types/npmlog': 4.1.6 - chalk: 4.1.2 - core-js: 3.37.1 - npmlog: 5.0.1 - pretty-hrtime: 1.0.3 - - '@storybook/node-logger@7.6.20': {} - - '@storybook/postinstall@6.5.16': - dependencies: - core-js: 3.37.1 - - '@storybook/preview-api@7.6.20': - dependencies: - '@storybook/channels': 7.6.20 - '@storybook/client-logger': 7.6.20 - '@storybook/core-events': 7.6.20 - '@storybook/csf': 0.1.8 - '@storybook/global': 5.0.0 - '@storybook/types': 7.6.20 - '@types/qs': 6.9.15 - dequal: 2.0.3 - lodash: 4.17.21 - memoizerific: 1.11.3 - qs: 6.13.1 - synchronous-promise: 2.0.17 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - - '@storybook/preview-web@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/channel-postmessage': 6.5.16 - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - ansi-to-html: 0.6.15 - core-js: 3.37.1 - global: 4.4.0 - lodash: 4.17.21 - qs: 6.13.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - regenerator-runtime: 0.13.11 - synchronous-promise: 2.0.17 - ts-dedent: 2.2.0 - unfetch: 4.2.0 - util-deprecate: 1.0.2 - - '@storybook/react-dom-shim@7.6.20(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@storybook/react@7.6.20(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)': - dependencies: - '@storybook/client-logger': 7.6.20 - '@storybook/core-client': 7.6.20 - '@storybook/docs-tools': 7.6.20(encoding@0.1.13) - '@storybook/global': 5.0.0 - '@storybook/preview-api': 7.6.20 - '@storybook/react-dom-shim': 7.6.20(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/types': 7.6.20 - '@types/escodegen': 0.0.6 - '@types/estree': 0.0.51 - '@types/node': 18.19.79 - acorn: 7.4.1 - acorn-jsx: 5.3.2(acorn@7.4.1) - acorn-walk: 7.2.0 - escodegen: 2.1.0 - html-tags: 3.3.1 - lodash: 4.17.21 - prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-element-to-jsx-string: 15.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - ts-dedent: 2.2.0 - type-fest: 2.19.0 - util-deprecate: 1.0.2 - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - encoding - - supports-color - - '@storybook/router@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/client-logger': 6.5.16 - core-js: 3.37.1 - memoizerific: 1.11.3 - qs: 6.13.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - regenerator-runtime: 0.13.11 - - '@storybook/semver@7.3.2': - dependencies: - core-js: 3.37.1 - find-up: 4.1.0 - - '@storybook/source-loader@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/client-logger': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - core-js: 3.37.1 - estraverse: 5.3.0 - global: 4.4.0 - loader-utils: 2.0.4 - lodash: 4.17.21 - prettier: 2.3.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - regenerator-runtime: 0.13.11 - - '@storybook/store@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/client-logger': 6.5.16 - '@storybook/core-events': 6.5.16 - '@storybook/csf': 0.0.2--canary.4566f4d.1 - core-js: 3.37.1 - fast-deep-equal: 3.1.3 - global: 4.4.0 - lodash: 4.17.21 - memoizerific: 1.11.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - regenerator-runtime: 0.13.11 - slash: 3.0.0 - stable: 0.1.8 - synchronous-promise: 2.0.17 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - - '@storybook/testing-library@0.2.2': - dependencies: - '@testing-library/dom': 9.3.4 - '@testing-library/user-event': 14.5.2(@testing-library/dom@9.3.4) - ts-dedent: 2.2.0 - - '@storybook/theming@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/client-logger': 6.5.16 - core-js: 3.37.1 - memoizerific: 1.11.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - regenerator-runtime: 0.13.11 - - '@storybook/types@7.6.20': - dependencies: - '@storybook/channels': 7.6.20 - '@types/babel__core': 7.20.5 - '@types/express': 4.17.21 - file-system-cache: 2.3.0 - - '@storybook/ui@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/channels': 6.5.16 - '@storybook/client-logger': 6.5.16 - '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-events': 6.5.16 - '@storybook/router': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/semver': 7.3.2 - '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.37.1 - memoizerific: 1.11.3 - qs: 6.13.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - regenerator-runtime: 0.13.11 - resolve-from: 5.0.0 - '@stripe/react-stripe-js@2.7.1(@stripe/stripe-js@1.54.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@stripe/stripe-js': 1.54.2 @@ -16558,18 +12842,18 @@ snapshots: '@swc/counter': 0.1.3 tslib: 2.8.1 - '@tailwindcss/forms@0.5.7(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@16.18.105)(typescript@5.8.3)))': + '@tailwindcss/forms@0.5.7(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@20.14.8)(typescript@5.8.3)))': dependencies: mini-svg-data-uri: 1.4.4 - tailwindcss: 3.4.16(ts-node@10.9.2(@types/node@16.18.105)(typescript@5.8.3)) + tailwindcss: 3.4.16(ts-node@10.9.2(@types/node@20.14.8)(typescript@5.8.3)) - '@tailwindcss/typography@0.5.13(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@16.18.105)(typescript@5.8.3)))': + '@tailwindcss/typography@0.5.13(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@20.14.8)(typescript@5.8.3)))': dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.16(ts-node@10.9.2(@types/node@16.18.105)(typescript@5.8.3)) + tailwindcss: 3.4.16(ts-node@10.9.2(@types/node@20.14.8)(typescript@5.8.3)) '@tanstack/query-core@4.36.1': {} @@ -16632,6 +12916,16 @@ snapshots: dependencies: '@testing-library/dom': 9.3.4 + '@theguild/federation-composition@0.20.1(graphql@16.8.1)': + dependencies: + constant-case: 3.0.4 + debug: 4.4.1 + graphql: 16.8.1 + json5: 2.2.3 + lodash.sortby: 4.7.0 + transitivePeerDependencies: + - supports-color + '@tootallnate/once@2.0.0': {} '@tsconfig/node10@1.0.11': {} @@ -16648,37 +12942,30 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.28.3 - '@babel/types': 7.28.2 - '@types/babel__generator': 7.6.8 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 + '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 + '@types/babel__traverse': 7.28.0 - '@types/babel__generator@7.6.8': + '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.28.3 - '@babel/types': 7.28.2 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 - '@types/babel__traverse@7.20.6': + '@types/babel__traverse@7.28.0': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@types/bcryptjs@2.4.6': {} - '@types/body-parser@1.19.5': + '@types/chai@5.2.2': dependencies: - '@types/connect': 3.4.38 - '@types/node': 16.18.105 - - '@types/chai-subset@1.3.5': - dependencies: - '@types/chai': 4.3.14 - - '@types/chai@4.3.14': {} + '@types/deep-eql': 4.0.2 '@types/codemirror@0.0.90': dependencies: @@ -16688,23 +12975,15 @@ snapshots: dependencies: '@types/tern': 0.23.9 - '@types/connect@3.4.38': - dependencies: - '@types/node': 16.18.105 - - '@types/cookie@0.4.1': {} - '@types/debug@4.1.12': dependencies: '@types/ms': 0.7.34 - '@types/doctrine@0.0.3': {} + '@types/deep-eql@4.0.2': {} '@types/es-aggregate-error@1.0.6': dependencies: - '@types/node': 16.18.105 - - '@types/escodegen@0.0.6': {} + '@types/node': 16.18.126 '@types/eslint-scope@3.7.7': dependencies: @@ -16720,49 +12999,12 @@ snapshots: dependencies: '@types/estree': 1.0.8 - '@types/estree@0.0.51': {} - '@types/estree@1.0.8': {} - '@types/express-serve-static-core@4.17.43': - dependencies: - '@types/node': 16.18.105 - '@types/qs': 6.9.15 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 - - '@types/express@4.17.21': - dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.17.43 - '@types/qs': 6.9.15 - '@types/serve-static': 1.15.5 - - '@types/find-cache-dir@3.2.1': {} - - '@types/glob@8.1.0': - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 16.18.105 - - '@types/graceful-fs@4.1.9': - dependencies: - '@types/node': 16.18.105 - - '@types/hast@2.3.10': - dependencies: - '@types/unist': 2.0.10 - '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.3 - '@types/html-minifier-terser@6.1.0': {} - - '@types/http-errors@2.0.4': {} - - '@types/is-function@1.0.3': {} - '@types/istanbul-lib-coverage@2.0.6': {} '@types/istanbul-lib-report@3.0.3': @@ -16778,14 +13020,8 @@ snapshots: expect: 29.7.0 pretty-format: 29.7.0 - '@types/js-levenshtein@1.1.3': {} - - '@types/js-yaml@4.0.9': {} - '@types/json-schema@7.0.15': {} - '@types/json-stable-stringify@1.0.36': {} - '@types/json5@0.0.29': {} '@types/lodash.debounce@4.0.9': @@ -16794,55 +13030,28 @@ snapshots: '@types/lodash@4.17.4': {} - '@types/mdast@3.0.15': - dependencies: - '@types/unist': 2.0.10 - '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 - '@types/mime@1.3.5': {} - - '@types/mime@4.0.0': - dependencies: - mime: 4.0.1 - - '@types/minimatch@5.1.2': {} - '@types/ms@0.7.34': {} - '@types/node-fetch@2.6.11': - dependencies: - '@types/node': 16.18.105 - form-data: 4.0.4 + '@types/node@16.18.126': {} - '@types/node@16.18.105': {} - - '@types/node@18.19.79': + '@types/node@20.14.8': dependencies: undici-types: 5.26.5 - '@types/normalize-package-data@2.4.4': {} - - '@types/npmlog@4.1.6': + '@types/node@20.19.21': dependencies: - '@types/node': 16.18.105 + undici-types: 6.21.0 '@types/parse-json@4.0.2': {} - '@types/parse5@5.0.3': {} - '@types/pluralize@0.0.30': {} - '@types/pretty-hrtime@1.0.3': {} - '@types/prop-types@15.7.12': {} - '@types/qs@6.9.15': {} - - '@types/range-parser@1.2.7': {} - '@types/react-dom@18.3.0': dependencies: '@types/react': 18.2.73 @@ -16862,23 +13071,10 @@ snapshots: '@types/semver@7.5.8': {} - '@types/send@0.17.4': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 16.18.105 - - '@types/serve-static@1.15.5': - dependencies: - '@types/http-errors': 2.0.4 - '@types/mime': 4.0.0 - '@types/node': 16.18.105 - - '@types/set-cookie-parser@2.4.7': - dependencies: - '@types/node': 16.18.105 - '@types/stack-utils@2.0.3': {} + '@types/statuses@2.0.6': {} + '@types/tern@0.23.9': dependencies: '@types/estree': 1.0.8 @@ -16893,26 +13089,18 @@ snapshots: '@types/urijs@1.19.25': {} + '@types/use-sync-external-store@0.0.6': {} + '@types/uuid@9.0.8': {} '@types/validator@13.11.10': {} - '@types/webpack-env@1.18.5': {} - - '@types/ws@8.5.10': + '@types/ws@8.18.1': dependencies: - '@types/node': 16.18.105 + '@types/node': 20.14.8 '@types/yargs-parser@21.0.3': {} - '@types/yargs@15.0.19': - dependencies: - '@types/yargs-parser': 21.0.3 - - '@types/yargs@16.0.9': - dependencies: - '@types/yargs-parser': 21.0.3 - '@types/yargs@17.0.32': dependencies: '@types/yargs-parser': 21.0.3 @@ -17112,8 +13300,8 @@ snapshots: '@uiw/codemirror-theme-bbedit@4.22.2(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.26.4)': dependencies: - '@babel/runtime': 7.26.10 - '@lezer/highlight': 1.2.0 + '@babel/runtime': 7.28.4 + '@lezer/highlight': 1.2.1 '@uiw/codemirror-themes': 4.22.2(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.26.4) transitivePeerDependencies: - '@codemirror/language' @@ -17122,8 +13310,8 @@ snapshots: '@uiw/codemirror-theme-github@4.22.1(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.26.4)': dependencies: - '@babel/runtime': 7.26.10 - '@lezer/highlight': 1.2.0 + '@babel/runtime': 7.28.4 + '@lezer/highlight': 1.2.1 '@uiw/codemirror-themes': 4.22.1(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.26.4) transitivePeerDependencies: - '@codemirror/language' @@ -17142,9 +13330,9 @@ snapshots: '@codemirror/state': 6.4.1 '@codemirror/view': 6.26.4 - '@uiw/react-codemirror@4.22.1(@babel/runtime@7.26.10)(@codemirror/autocomplete@6.16.2(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.26.4)(@lezer/common@1.2.1))(@codemirror/language@6.10.2)(@codemirror/lint@6.8.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.26.4)(codemirror@5.65.16)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@uiw/react-codemirror@4.22.1(@babel/runtime@7.28.4)(@codemirror/autocomplete@6.16.2(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.26.4)(@lezer/common@1.2.1))(@codemirror/language@6.10.2)(@codemirror/lint@6.8.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.26.4)(codemirror@5.65.16)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 '@codemirror/commands': 6.5.0 '@codemirror/state': 6.4.1 '@codemirror/theme-one-dark': 6.1.2 @@ -17161,95 +13349,91 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-react@4.3.1(vite@5.4.20(@types/node@16.18.105)(terser@5.37.0))': + '@vitejs/plugin-react@4.7.0(vite@5.4.21(@types/node@20.14.8)(terser@5.44.0))': dependencies: - '@babel/core': 7.26.10 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.26.10) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.26.10) + '@babel/core': 7.28.4 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.4) + '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 - react-refresh: 0.14.2 - vite: 5.4.20(@types/node@16.18.105)(terser@5.37.0) + react-refresh: 0.17.0 + vite: 5.4.21(@types/node@20.14.8)(terser@5.44.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@0.32.4(vitest@0.32.4(jsdom@22.1.0)(playwright@1.54.1)(terser@5.37.0))': + '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.14.8)(jsdom@22.1.0)(msw@2.11.4(@types/node@20.14.8)(typescript@5.8.3))(terser@5.44.0))': dependencies: '@ampproject/remapping': 2.3.0 - '@bcoe/v8-coverage': 0.2.3 + '@bcoe/v8-coverage': 1.0.2 + ast-v8-to-istanbul: 0.3.5 + debug: 4.4.3 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.7 - magic-string: 0.30.17 - picocolors: 1.1.1 - std-env: 3.8.0 - test-exclude: 6.0.0 - v8-to-istanbul: 9.3.0 - vitest: 0.32.4(jsdom@22.1.0)(playwright@1.54.1)(terser@5.37.0) + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.2.0 + magic-string: 0.30.19 + magicast: 0.3.5 + std-env: 3.9.0 + test-exclude: 7.0.1 + tinyrainbow: 2.0.0 + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.14.8)(jsdom@22.1.0)(msw@2.11.4(@types/node@20.14.8)(typescript@5.8.3))(terser@5.44.0) transitivePeerDependencies: - supports-color - '@vitest/expect@0.32.4': + '@vitest/expect@3.2.4': dependencies: - '@vitest/spy': 0.32.4 - '@vitest/utils': 0.32.4 - chai: 4.4.1 + '@types/chai': 5.2.2 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 + tinyrainbow: 2.0.0 - '@vitest/runner@0.32.4': + '@vitest/mocker@3.2.4(msw@2.11.4(@types/node@20.14.8)(typescript@5.8.3))(vite@5.4.21(@types/node@20.14.8)(terser@5.44.0))': dependencies: - '@vitest/utils': 0.32.4 - p-limit: 4.0.0 - pathe: 1.1.2 + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.19 + optionalDependencies: + msw: 2.11.4(@types/node@20.14.8)(typescript@5.8.3) + vite: 5.4.21(@types/node@20.14.8)(terser@5.44.0) - '@vitest/snapshot@0.32.4': + '@vitest/pretty-format@3.2.4': dependencies: - magic-string: 0.30.17 - pathe: 1.1.2 - pretty-format: 29.7.0 + tinyrainbow: 2.0.0 - '@vitest/spy@0.32.4': + '@vitest/runner@3.2.4': dependencies: - tinyspy: 2.2.1 + '@vitest/utils': 3.2.4 + pathe: 2.0.3 + strip-literal: 3.1.0 - '@vitest/utils@0.32.4': + '@vitest/snapshot@3.2.4': dependencies: - diff-sequences: 29.6.3 - loupe: 2.3.7 - pretty-format: 29.7.0 + '@vitest/pretty-format': 3.2.4 + magic-string: 0.30.19 + pathe: 2.0.3 + + '@vitest/spy@3.2.4': + dependencies: + tinyspy: 4.0.4 + + '@vitest/utils@3.2.4': + dependencies: + '@vitest/pretty-format': 3.2.4 + loupe: 3.2.1 + tinyrainbow: 2.0.0 '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ast@1.9.0': - dependencies: - '@webassemblyjs/helper-module-context': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/wast-parser': 1.9.0 - '@webassemblyjs/floating-point-hex-parser@1.13.2': {} - '@webassemblyjs/floating-point-hex-parser@1.9.0': {} - '@webassemblyjs/helper-api-error@1.13.2': {} - '@webassemblyjs/helper-api-error@1.9.0': {} - '@webassemblyjs/helper-buffer@1.14.1': {} - '@webassemblyjs/helper-buffer@1.9.0': {} - - '@webassemblyjs/helper-code-frame@1.9.0': - dependencies: - '@webassemblyjs/wast-printer': 1.9.0 - - '@webassemblyjs/helper-fsm@1.9.0': {} - - '@webassemblyjs/helper-module-context@1.9.0': - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-numbers@1.13.2': dependencies: '@webassemblyjs/floating-point-hex-parser': 1.13.2 @@ -17258,8 +13442,6 @@ snapshots: '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} - '@webassemblyjs/helper-wasm-bytecode@1.9.0': {} - '@webassemblyjs/helper-wasm-section@1.14.1': dependencies: '@webassemblyjs/ast': 1.14.1 @@ -17267,33 +13449,16 @@ snapshots: '@webassemblyjs/helper-wasm-bytecode': 1.13.2 '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/helper-wasm-section@1.9.0': - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-buffer': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/wasm-gen': 1.9.0 - '@webassemblyjs/ieee754@1.13.2': dependencies: '@xtuc/ieee754': 1.2.0 - '@webassemblyjs/ieee754@1.9.0': - dependencies: - '@xtuc/ieee754': 1.2.0 - '@webassemblyjs/leb128@1.13.2': dependencies: '@xtuc/long': 4.2.2 - '@webassemblyjs/leb128@1.9.0': - dependencies: - '@xtuc/long': 4.2.2 - '@webassemblyjs/utf8@1.13.2': {} - '@webassemblyjs/utf8@1.9.0': {} - '@webassemblyjs/wasm-edit@1.14.1': dependencies: '@webassemblyjs/ast': 1.14.1 @@ -17305,17 +13470,6 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 '@webassemblyjs/wast-printer': 1.14.1 - '@webassemblyjs/wasm-edit@1.9.0': - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-buffer': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/helper-wasm-section': 1.9.0 - '@webassemblyjs/wasm-gen': 1.9.0 - '@webassemblyjs/wasm-opt': 1.9.0 - '@webassemblyjs/wasm-parser': 1.9.0 - '@webassemblyjs/wast-printer': 1.9.0 - '@webassemblyjs/wasm-gen@1.14.1': dependencies: '@webassemblyjs/ast': 1.14.1 @@ -17324,14 +13478,6 @@ snapshots: '@webassemblyjs/leb128': 1.13.2 '@webassemblyjs/utf8': 1.13.2 - '@webassemblyjs/wasm-gen@1.9.0': - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/ieee754': 1.9.0 - '@webassemblyjs/leb128': 1.9.0 - '@webassemblyjs/utf8': 1.9.0 - '@webassemblyjs/wasm-opt@1.14.1': dependencies: '@webassemblyjs/ast': 1.14.1 @@ -17339,13 +13485,6 @@ snapshots: '@webassemblyjs/wasm-gen': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - '@webassemblyjs/wasm-opt@1.9.0': - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-buffer': 1.9.0 - '@webassemblyjs/wasm-gen': 1.9.0 - '@webassemblyjs/wasm-parser': 1.9.0 - '@webassemblyjs/wasm-parser@1.14.1': dependencies: '@webassemblyjs/ast': 1.14.1 @@ -17355,66 +13494,30 @@ snapshots: '@webassemblyjs/leb128': 1.13.2 '@webassemblyjs/utf8': 1.13.2 - '@webassemblyjs/wasm-parser@1.9.0': - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-api-error': 1.9.0 - '@webassemblyjs/helper-wasm-bytecode': 1.9.0 - '@webassemblyjs/ieee754': 1.9.0 - '@webassemblyjs/leb128': 1.9.0 - '@webassemblyjs/utf8': 1.9.0 - - '@webassemblyjs/wast-parser@1.9.0': - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/floating-point-hex-parser': 1.9.0 - '@webassemblyjs/helper-api-error': 1.9.0 - '@webassemblyjs/helper-code-frame': 1.9.0 - '@webassemblyjs/helper-fsm': 1.9.0 - '@xtuc/long': 4.2.2 - '@webassemblyjs/wast-printer@1.14.1': dependencies: '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 - '@webassemblyjs/wast-printer@1.9.0': + '@whatwg-node/disposablestack@0.0.6': dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/wast-parser': 1.9.0 - '@xtuc/long': 4.2.2 - - '@whatwg-node/events@0.0.3': {} - - '@whatwg-node/events@0.1.1': {} - - '@whatwg-node/fetch@0.8.8': - dependencies: - '@peculiar/webcrypto': 1.4.6 - '@whatwg-node/node-fetch': 0.3.6 - busboy: 1.6.0 - urlpattern-polyfill: 8.0.2 - web-streams-polyfill: 3.3.3 - - '@whatwg-node/fetch@0.9.17': - dependencies: - '@whatwg-node/node-fetch': 0.5.10 - urlpattern-polyfill: 10.0.0 - - '@whatwg-node/node-fetch@0.3.6': - dependencies: - '@whatwg-node/events': 0.0.3 - busboy: 1.6.0 - fast-querystring: 1.1.2 - fast-url-parser: 1.1.3 + '@whatwg-node/promise-helpers': 1.3.2 tslib: 2.8.1 - '@whatwg-node/node-fetch@0.5.10': + '@whatwg-node/fetch@0.10.11': + dependencies: + '@whatwg-node/node-fetch': 0.8.1 + urlpattern-polyfill: 10.1.0 + + '@whatwg-node/node-fetch@0.8.1': + dependencies: + '@fastify/busboy': 3.2.0 + '@whatwg-node/disposablestack': 0.0.6 + '@whatwg-node/promise-helpers': 1.3.2 + tslib: 2.8.1 + + '@whatwg-node/promise-helpers@1.3.2': dependencies: - '@kamilkisiela/fast-url-parser': 1.1.4 - '@whatwg-node/events': 0.1.1 - busboy: 1.6.0 - fast-querystring: 1.1.2 tslib: 2.8.1 '@wry/caches@1.0.1': @@ -17437,15 +13540,10 @@ snapshots: dependencies: tslib: 2.8.1 - '@xmldom/xmldom@0.8.10': {} - '@xtuc/ieee754@1.2.0': {} '@xtuc/long@4.2.2': {} - '@zxing/text-encoding@0.9.0': - optional: true - JSONStream@1.3.5: dependencies: jsonparse: 1.3.1 @@ -17457,27 +13555,12 @@ snapshots: dependencies: event-target-shim: 5.0.1 - accepts@1.3.8: - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - - acorn-jsx@5.3.2(acorn@7.4.1): - dependencies: - acorn: 7.4.1 - acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 - acorn-walk@7.2.0: {} - acorn-walk@8.3.2: {} - acorn@6.4.2: {} - - acorn@7.4.1: {} - acorn@8.14.0: {} acorn@8.15.0: {} @@ -17488,45 +13571,10 @@ snapshots: transitivePeerDependencies: - supports-color - agent-base@7.1.1: - dependencies: - debug: 4.4.1 - transitivePeerDependencies: - - supports-color - - aggregate-error@3.1.0: - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - - airbnb-js-shims@2.2.1: - dependencies: - array-includes: 3.1.8 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - es5-shim: 4.6.7 - es6-shim: 0.35.8 - function.prototype.name: 1.1.7 - globalthis: 1.0.4 - object.entries: 1.1.8 - object.fromentries: 2.0.8 - object.getownpropertydescriptors: 2.1.8 - object.values: 1.2.0 - promise.allsettled: 1.0.7 - promise.prototype.finally: 3.1.8 - string.prototype.matchall: 4.0.11 - string.prototype.padend: 3.1.6 - string.prototype.padstart: 3.1.6 - symbol.prototype.description: 1.0.6 - ajv-draft-04@1.0.0(ajv@8.17.1): optionalDependencies: ajv: 8.17.1 - ajv-errors@1.0.1(ajv@6.12.6): - dependencies: - ajv: 6.12.6 - ajv-errors@3.0.0(ajv@8.17.1): dependencies: ajv: 8.17.1 @@ -17560,18 +13608,18 @@ snapshots: ansi-colors@4.1.3: {} - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - ansi-escapes@6.2.1: {} - ansi-html-community@0.0.8: {} + ansi-escapes@7.1.1: + dependencies: + environment: 1.1.0 ansi-regex@5.0.1: {} ansi-regex@6.0.1: {} + ansi-regex@6.2.2: {} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -17580,43 +13628,19 @@ snapshots: ansi-styles@6.2.1: {} - ansi-to-html@0.6.15: - dependencies: - entities: 2.2.0 + ansi-styles@6.2.3: {} any-promise@1.3.0: {} - anymatch@2.0.0: - dependencies: - micromatch: 3.1.10 - normalize-path: 2.1.1 - transitivePeerDependencies: - - supports-color - anymatch@3.1.3: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - app-root-dir@1.0.2: {} - - aproba@1.2.0: {} - - aproba@2.0.0: {} - - are-we-there-yet@2.0.0: - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - arg@4.1.3: {} arg@5.0.2: {} - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - argparse@2.0.1: {} aria-hidden@1.2.4: @@ -17631,12 +13655,6 @@ snapshots: dependencies: dequal: 2.0.3 - arr-diff@4.0.0: {} - - arr-flatten@1.1.0: {} - - arr-union@3.1.0: {} - array-buffer-byte-length@1.0.1: dependencies: call-bind: 1.0.8 @@ -17647,8 +13665,6 @@ snapshots: call-bound: 1.0.4 is-array-buffer: 3.0.5 - array-flatten@1.1.1: {} - array-includes@3.1.8: dependencies: call-bind: 1.0.8 @@ -17660,8 +13676,6 @@ snapshots: array-union@2.1.0: {} - array-unique@0.3.2: {} - array.prototype.findlast@1.2.5: dependencies: call-bind: 1.0.8 @@ -17694,25 +13708,6 @@ snapshots: es-abstract: 1.23.6 es-shim-unscopables: 1.0.2 - array.prototype.map@1.0.7: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.6 - es-array-method-boxes-properly: 1.0.0 - es-object-atoms: 1.1.1 - is-string: 1.1.1 - - array.prototype.reduce@1.0.7: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.6 - es-array-method-boxes-properly: 1.0.0 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - is-string: 1.1.1 - array.prototype.toreversed@1.1.2: dependencies: call-bind: 1.0.8 @@ -17740,50 +13735,20 @@ snapshots: asap@2.0.6: {} - asn1.js@4.10.1: - dependencies: - bn.js: 4.12.2 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - - asn1js@3.0.5: - dependencies: - pvtsutils: 1.3.6 - pvutils: 1.1.3 - tslib: 2.8.1 - - assert@1.5.1: - dependencies: - object.assign: 4.1.7 - util: 0.10.4 - - assert@2.1.0: - dependencies: - call-bind: 1.0.8 - is-nan: 1.3.2 - object-is: 1.1.6 - object.assign: 4.1.7 - util: 0.12.5 - - assertion-error@1.1.0: {} - - assign-symbols@1.0.0: {} + assertion-error@2.0.1: {} ast-types-flow@0.0.8: {} - astral-regex@2.0.0: {} + ast-v8-to-istanbul@0.3.5: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + estree-walker: 3.0.3 + js-tokens: 9.0.1 astring@1.9.0: {} - async-each@1.0.6: - optional: true - asynckit@0.4.0: {} - at-least-node@1.0.0: {} - - atob@2.1.2: {} - audit-ci@6.6.1: dependencies: JSONStream: 1.3.5 @@ -17817,73 +13782,21 @@ snapshots: dependencies: dequal: 2.0.3 - babel-loader@8.3.0(@babel/core@7.26.10)(webpack@4.47.0): + babel-loader@8.3.0(@babel/core@7.26.10)(webpack@5.97.1): dependencies: '@babel/core': 7.26.10 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 4.47.0 - - babel-loader@8.3.0(@babel/core@7.26.10)(webpack@5.97.1(esbuild@0.18.20)): - dependencies: - '@babel/core': 7.26.10 - find-cache-dir: 3.3.2 - loader-utils: 2.0.4 - make-dir: 3.1.0 - schema-utils: 2.7.1 - webpack: 5.97.1(esbuild@0.18.20) - - babel-plugin-apply-mdx-type-prop@1.6.22(@babel/core@7.12.9): - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.10.4 - '@mdx-js/util': 1.6.22 - - babel-plugin-emotion@10.2.2: - dependencies: - '@babel/helper-module-imports': 7.27.1 - '@emotion/hash': 0.8.0 - '@emotion/memoize': 0.7.4 - '@emotion/serialize': 0.11.16 - babel-plugin-macros: 2.8.0 - babel-plugin-syntax-jsx: 6.18.0 - convert-source-map: 1.9.0 - escape-string-regexp: 1.0.5 - find-root: 1.1.0 - source-map: 0.5.7 - transitivePeerDependencies: - - supports-color - - babel-plugin-extract-import-names@1.6.22: - dependencies: - '@babel/helper-plugin-utils': 7.10.4 - - babel-plugin-istanbul@6.1.1: - dependencies: - '@babel/helper-plugin-utils': 7.27.1 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-macros@2.8.0: - dependencies: - '@babel/runtime': 7.26.10 - cosmiconfig: 6.0.0 - resolve: 1.22.10 + webpack: 5.97.1 babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 cosmiconfig: 7.1.0 resolve: 1.22.10 - babel-plugin-named-exports-order@0.0.2: {} - babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.26.10): dependencies: '@babel/compat-data': 7.28.0 @@ -17893,14 +13806,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.1.7(@babel/core@7.26.10): - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-define-polyfill-provider': 0.1.5(@babel/core@7.26.10) - core-js-compat: 3.45.1 - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.26.10): dependencies: '@babel/core': 7.26.10 @@ -17924,8 +13829,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-syntax-jsx@6.18.0: {} - babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: {} babel-plugin-transform-react-remove-prop-types@0.4.24: {} @@ -17981,73 +13884,22 @@ snapshots: '@babel/preset-env': 7.24.7(@babel/core@7.26.10) '@babel/preset-react': 7.24.6(@babel/core@7.26.10) '@babel/preset-typescript': 7.24.7(@babel/core@7.26.10) - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 babel-plugin-macros: 3.1.0 babel-plugin-transform-react-remove-prop-types: 0.4.24 transitivePeerDependencies: - supports-color - bail@1.0.5: {} - bail@2.0.2: {} balanced-match@1.0.2: {} - base64-js@1.5.1: {} - - base@0.11.2: - dependencies: - cache-base: 1.0.1 - class-utils: 0.3.6 - component-emitter: 1.3.1 - define-property: 1.0.0 - isobject: 3.0.1 - mixin-deep: 1.3.2 - pascalcase: 0.1.1 - bcryptjs@2.4.3: {} big.js@5.2.2: {} - binary-extensions@1.13.1: - optional: true - binary-extensions@2.3.0: {} - bindings@1.5.0: - dependencies: - file-uri-to-path: 1.0.0 - optional: true - - bl@4.1.0: - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - - bluebird@3.7.2: {} - - bn.js@4.12.2: {} - - bn.js@5.2.2: {} - - body-parser@1.20.3: - 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.13.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - boolbase@1.0.0: {} brace-expansion@1.1.12: @@ -18059,74 +13911,10 @@ snapshots: dependencies: balanced-match: 1.0.2 - braces@2.3.2: - dependencies: - arr-flatten: 1.1.0 - array-unique: 0.3.2 - extend-shallow: 2.0.1 - fill-range: 4.0.0 - isobject: 3.0.1 - repeat-element: 1.1.4 - snapdragon: 0.8.2 - snapdragon-node: 2.1.1 - split-string: 3.1.0 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - braces@3.0.3: dependencies: fill-range: 7.1.1 - brorand@1.1.0: {} - - browser-assert@1.2.1: {} - - browserify-aes@1.2.0: - dependencies: - buffer-xor: 1.0.3 - cipher-base: 1.0.6 - create-hash: 1.2.0 - evp_bytestokey: 1.0.3 - inherits: 2.0.4 - safe-buffer: 5.2.1 - - browserify-cipher@1.0.1: - dependencies: - browserify-aes: 1.2.0 - browserify-des: 1.0.2 - evp_bytestokey: 1.0.3 - - browserify-des@1.0.2: - dependencies: - cipher-base: 1.0.6 - des.js: 1.1.0 - inherits: 2.0.4 - safe-buffer: 5.2.1 - - browserify-rsa@4.1.1: - dependencies: - bn.js: 5.2.2 - randombytes: 2.1.0 - safe-buffer: 5.2.1 - - browserify-sign@4.2.3: - dependencies: - bn.js: 5.2.2 - browserify-rsa: 4.1.1 - create-hash: 1.2.0 - create-hmac: 1.1.7 - elliptic: 6.6.1 - hash-base: 3.0.5 - inherits: 2.0.4 - parse-asn1: 5.1.7 - readable-stream: 2.3.8 - safe-buffer: 5.2.1 - - browserify-zlib@0.2.0: - dependencies: - pako: 1.0.11 - browserslist@4.25.4: dependencies: caniuse-lite: 1.0.30001739 @@ -18142,59 +13930,12 @@ snapshots: buffer-from@1.1.2: {} - buffer-xor@1.0.3: {} - - buffer@4.9.2: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - isarray: 1.0.0 - - buffer@5.7.1: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - builtin-status-codes@3.0.0: {} - busboy@1.6.0: dependencies: streamsearch: 1.1.0 - bytes@3.1.2: {} - cac@6.7.14: {} - cacache@12.0.4: - dependencies: - bluebird: 3.7.2 - chownr: 1.1.4 - figgy-pudding: 3.5.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - infer-owner: 1.0.4 - lru-cache: 5.1.1 - mississippi: 3.0.0 - mkdirp: 0.5.6 - move-concurrently: 1.0.1 - promise-inflight: 1.0.1(bluebird@3.7.2) - rimraf: 2.7.1 - ssri: 6.0.2 - unique-filename: 1.1.1 - y18n: 4.0.3 - - cache-base@1.0.1: - dependencies: - collection-visit: 1.0.0 - component-emitter: 1.3.1 - get-value: 2.0.6 - has-value: 1.0.0 - isobject: 3.0.1 - set-value: 2.0.1 - to-object-path: 0.3.0 - union-value: 1.0.1 - unset-value: 1.0.0 - call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -18233,25 +13974,15 @@ snapshots: tslib: 2.8.1 upper-case-first: 2.0.2 - capture-exit@2.0.0: - dependencies: - rsvp: 4.8.5 - - case-sensitive-paths-webpack-plugin@2.4.0: {} - - ccount@1.1.0: {} - ccount@2.0.1: {} - chai@4.4.1: + chai@5.3.3: 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.7 - pathval: 1.1.1 - type-detect: 4.1.0 + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.2.1 + pathval: 2.0.1 chalk@3.0.0: dependencies: @@ -18308,42 +14039,15 @@ snapshots: character-entities-html4@2.1.0: {} - character-entities-legacy@1.1.4: {} - character-entities-legacy@3.0.0: {} - character-entities@1.2.4: {} - character-entities@2.0.2: {} - character-reference-invalid@1.1.4: {} - character-reference-invalid@2.0.1: {} - chardet@0.7.0: {} + chardet@2.1.0: {} - check-error@1.0.3: - dependencies: - get-func-name: 2.0.2 - - chokidar@2.1.8: - dependencies: - anymatch: 2.0.0 - async-each: 1.0.6 - braces: 2.3.2 - glob-parent: 3.1.0 - inherits: 2.0.4 - is-binary-path: 1.0.1 - is-glob: 4.0.3 - normalize-path: 3.0.0 - path-is-absolute: 1.0.1 - readdirp: 2.2.1 - upath: 1.2.0 - optionalDependencies: - fsevents: 1.2.13 - transitivePeerDependencies: - - supports-color - optional: true + check-error@2.1.1: {} chokidar@3.6.0: dependencies: @@ -18361,57 +14065,33 @@ snapshots: dependencies: readdirp: 4.1.2 - chownr@1.1.4: {} - chrome-trace-event@1.0.4: {} - ci-info@2.0.0: {} - ci-info@3.9.0: {} - cipher-base@1.0.6: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - - class-utils@0.3.6: - dependencies: - arr-union: 3.1.0 - define-property: 0.2.5 - isobject: 3.0.1 - static-extend: 0.1.2 - class-variance-authority@0.7.0: dependencies: clsx: 2.0.0 - clean-css@5.3.3: - dependencies: - source-map: 0.6.1 - - clean-stack@2.2.0: {} - - cli-cursor@3.1.0: - dependencies: - restore-cursor: 3.1.0 - cli-cursor@4.0.0: dependencies: restore-cursor: 4.0.0 - cli-spinners@2.9.2: {} - - cli-truncate@2.1.0: + cli-cursor@5.0.0: dependencies: - slice-ansi: 3.0.0 - string-width: 4.2.3 + restore-cursor: 5.1.0 cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 string-width: 7.2.0 - cli-width@3.0.0: {} + cli-truncate@5.1.0: + dependencies: + slice-ansi: 7.1.2 + string-width: 8.1.0 + + cli-width@4.1.0: {} client-only@0.0.1: {} @@ -18427,16 +14107,6 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - clone-deep@4.0.1: - dependencies: - is-plain-object: 2.0.4 - kind-of: 6.0.3 - shallow-clone: 3.0.1 - - clone@1.0.4: {} - - clsx@1.1.0: {} - clsx@1.2.1: {} clsx@2.0.0: {} @@ -18463,31 +14133,18 @@ snapshots: codemirror@5.65.16: {} - collapse-white-space@1.0.6: {} - - collection-visit@1.0.0: - dependencies: - map-visit: 1.0.0 - object-visit: 1.0.1 - color-convert@2.0.1: dependencies: color-name: 1.1.4 color-name@1.1.4: {} - color-support@1.1.3: {} - - colorette@1.4.0: {} - colorette@2.0.20: {} combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 - comma-separated-tokens@1.0.8: {} - comma-separated-tokens@2.0.3: {} commander@12.1.0: {} @@ -18498,67 +14155,27 @@ snapshots: commander@6.2.1: {} - commander@8.3.0: {} - common-tags@1.8.2: {} commondir@1.0.1: {} compare-versions@6.1.1: {} - component-emitter@1.3.1: {} - concat-map@0.0.1: {} - concat-stream@1.6.2: - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 2.3.8 - typedarray: 0.0.6 - - confbox@0.1.8: {} - confusing-browser-globals@1.0.11: {} - console-browserify@1.2.0: {} - - console-control-strings@1.1.0: {} - constant-case@3.0.4: dependencies: no-case: 3.0.4 tslib: 2.8.1 upper-case: 2.0.2 - constants-browserify@1.0.0: {} - - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 - - content-type@1.0.5: {} - convert-source-map@1.9.0: {} convert-source-map@2.0.0: {} - cookie-signature@1.0.6: {} - - cookie@0.4.2: {} - - cookie@0.7.1: {} - - copy-concurrently@1.0.5: - dependencies: - aproba: 1.2.0 - fs-write-stream-atomic: 1.0.10 - iferr: 0.1.5 - mkdirp: 0.5.6 - rimraf: 2.7.1 - run-queue: 1.0.3 - - copy-descriptor@0.1.1: {} + cookie@1.0.2: {} copy-to-clipboard@3.3.3: dependencies: @@ -18568,18 +14185,8 @@ snapshots: dependencies: browserslist: 4.25.4 - core-js@3.37.1: {} - core-util-is@1.0.3: {} - cosmiconfig@6.0.0: - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - cosmiconfig@7.1.0: dependencies: '@types/parse-json': 4.0.2 @@ -18590,41 +14197,21 @@ snapshots: cosmiconfig@8.3.6(typescript@5.8.3): dependencies: - import-fresh: 3.3.0 + import-fresh: 3.3.1 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: typescript: 5.8.3 - create-ecdh@4.0.4: + cosmiconfig@9.0.0(typescript@5.8.3): dependencies: - bn.js: 4.12.2 - elliptic: 6.6.1 - - create-hash@1.1.3: - dependencies: - cipher-base: 1.0.6 - inherits: 2.0.4 - ripemd160: 2.0.2 - sha.js: 2.4.12 - - create-hash@1.2.0: - dependencies: - cipher-base: 1.0.6 - inherits: 2.0.4 - md5.js: 1.3.5 - ripemd160: 2.0.2 - sha.js: 2.4.12 - - create-hmac@1.1.7: - dependencies: - cipher-base: 1.0.6 - create-hash: 1.2.0 - inherits: 2.0.4 - ripemd160: 2.0.2 - safe-buffer: 5.2.1 - sha.js: 2.4.12 + env-paths: 2.2.1 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.8.3 create-require@1.1.1: {} @@ -18636,79 +14223,19 @@ snapshots: transitivePeerDependencies: - encoding - cross-inspect@1.0.0: + cross-inspect@1.0.1: dependencies: tslib: 2.8.1 - cross-spawn@6.0.6: - dependencies: - nice-try: 1.0.5 - path-key: 2.0.1 - semver: 5.7.2 - shebang-command: 1.2.0 - which: 1.3.1 - cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - crypto-browserify@3.12.1: + css-box-model@1.2.1: dependencies: - browserify-cipher: 1.0.1 - browserify-sign: 4.2.3 - create-ecdh: 4.0.4 - create-hash: 1.2.0 - create-hmac: 1.1.7 - diffie-hellman: 5.0.3 - hash-base: 3.0.5 - inherits: 2.0.4 - pbkdf2: 3.1.3 - public-encrypt: 4.0.3 - randombytes: 2.1.0 - randomfill: 1.0.4 - - css-loader@3.6.0(webpack@5.97.1(esbuild@0.18.20)): - dependencies: - camelcase: 5.3.1 - cssesc: 3.0.0 - icss-utils: 4.1.1 - loader-utils: 1.4.2 - normalize-path: 3.0.0 - postcss: 7.0.39 - postcss-modules-extract-imports: 2.0.0 - postcss-modules-local-by-default: 3.0.3 - postcss-modules-scope: 2.2.0 - postcss-modules-values: 3.0.0 - postcss-value-parser: 4.2.0 - schema-utils: 2.7.1 - semver: 6.3.1 - webpack: 5.97.1(esbuild@0.18.20) - - css-loader@5.2.7(webpack@5.97.1(esbuild@0.18.20)): - dependencies: - icss-utils: 5.1.0(postcss@8.5.3) - loader-utils: 2.0.4 - postcss: 8.5.3 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.3) - postcss-modules-local-by-default: 4.0.5(postcss@8.5.3) - postcss-modules-scope: 3.2.0(postcss@8.5.3) - postcss-modules-values: 4.0.0(postcss@8.5.3) - postcss-value-parser: 4.2.0 - schema-utils: 3.3.0 - semver: 7.6.3 - webpack: 5.97.1(esbuild@0.18.20) - - css-select@4.3.0: - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 4.3.1 - domutils: 2.8.0 - nth-check: 2.1.1 - - css-what@6.1.0: {} + tiny-invariant: 1.3.3 css.escape@1.5.1: {} @@ -18718,12 +14245,8 @@ snapshots: dependencies: rrweb-cssom: 0.6.0 - csstype@2.6.21: {} - csstype@3.1.3: {} - cyclist@1.0.2: {} - damerau-levenshtein@1.0.8: {} data-uri-to-buffer@4.0.1: {} @@ -18770,7 +14293,7 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.2 - dataloader@2.2.2: {} + dataloader@2.2.3: {} date-fns-jalali@4.1.0-0: {} @@ -18782,11 +14305,7 @@ snapshots: debounce-promise@3.1.2: {} - debounce@1.2.1: {} - - debug@2.6.9: - dependencies: - ms: 2.0.0 + debounce@2.2.0: {} debug@3.2.7: dependencies: @@ -18800,6 +14319,10 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.3: + dependencies: + ms: 2.1.3 + decamelize@1.2.0: {} decimal.js@10.4.3: {} @@ -18808,11 +14331,7 @@ snapshots: dependencies: character-entities: 2.0.2 - decode-uri-component@0.2.2: {} - - deep-eql@4.1.3: - dependencies: - type-detect: 4.1.0 + deep-eql@5.0.2: {} deep-equal@2.2.3: dependencies: @@ -18837,12 +14356,6 @@ snapshots: deep-is@0.1.4: {} - deepmerge@4.3.1: {} - - defaults@1.0.4: - dependencies: - clone: 1.0.4 - define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 @@ -18855,40 +14368,14 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 - define-property@0.2.5: - dependencies: - is-descriptor: 0.1.7 - - define-property@1.0.0: - dependencies: - is-descriptor: 1.0.3 - - define-property@2.0.2: - dependencies: - is-descriptor: 1.0.3 - isobject: 3.0.1 - delayed-stream@1.0.0: {} - delegates@1.0.0: {} - - depd@2.0.0: {} - dependency-graph@0.11.0: {} + dependency-graph@1.0.0: {} + dequal@2.0.3: {} - des.js@1.1.0: - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - - destroy@1.2.0: {} - - detab@2.0.4: - dependencies: - repeat-string: 1.6.1 - detect-indent@6.1.0: {} detect-node-es@1.1.0: {} @@ -18903,12 +14390,6 @@ snapshots: diff@4.0.2: {} - diffie-hellman@5.0.3: - dependencies: - bn.js: 4.12.2 - miller-rabin: 4.0.1 - randombytes: 2.1.0 - dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -18925,54 +14406,22 @@ snapshots: dom-accessibility-api@0.5.16: {} - dom-converter@0.2.0: - dependencies: - utila: 0.4.0 - dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 csstype: 3.1.3 - dom-serializer@1.4.1: - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - entities: 2.2.0 - - dom-walk@0.1.2: {} - - domain-browser@1.2.0: {} - - domelementtype@2.3.0: {} - domexception@4.0.0: dependencies: webidl-conversions: 7.0.0 - domhandler@4.3.1: - dependencies: - domelementtype: 2.3.0 - - domutils@2.8.0: - dependencies: - dom-serializer: 1.4.1 - domelementtype: 2.3.0 - domhandler: 4.3.1 - dot-case@3.0.4: dependencies: no-case: 3.0.4 tslib: 2.8.1 - dotenv-expand@10.0.0: {} - - dotenv-expand@5.1.0: {} - dotenv@16.4.5: {} - dotenv@8.6.0: {} - dset@3.1.4: {} dunder-proto@1.0.1: @@ -18987,29 +14436,10 @@ snapshots: duplexer@0.1.2: {} - duplexify@3.7.1: - dependencies: - end-of-stream: 1.4.4 - inherits: 2.0.4 - readable-stream: 2.3.8 - stream-shift: 1.0.3 - eastasianwidth@0.2.0: {} - ee-first@1.1.1: {} - electron-to-chromium@1.5.214: {} - elliptic@6.6.1: - dependencies: - bn.js: 4.12.2 - brorand: 1.1.0 - hash.js: 1.1.7 - hmac-drbg: 1.0.1 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - emoji-regex@10.3.0: {} emoji-regex@8.0.0: {} @@ -19018,41 +14448,30 @@ snapshots: emojis-list@3.0.0: {} - encodeurl@1.0.2: {} - - encodeurl@2.0.0: {} - encoding@0.1.13: dependencies: iconv-lite: 0.6.3 - end-of-stream@1.4.4: - dependencies: - once: 1.4.0 - - enhanced-resolve@4.5.0: - dependencies: - graceful-fs: 4.2.11 - memory-fs: 0.5.0 - tapable: 1.1.3 - enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 + enhanced-resolve@5.18.3: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.0 + enquirer@2.4.1: dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 - entities@2.2.0: {} - entities@4.5.0: {} - errno@0.1.8: - dependencies: - prr: 1.0.1 + env-paths@2.2.1: {} + + environment@1.1.0: {} error-ex@1.3.2: dependencies: @@ -19177,8 +14596,6 @@ snapshots: has-property-descriptors: 1.0.2 set-function-name: 2.0.2 - es-array-method-boxes-properly@1.0.0: {} - es-define-property@1.0.1: {} es-errors@1.3.0: {} @@ -19212,7 +14629,7 @@ snapshots: iterator.prototype: 1.1.2 safe-array-concat: 1.1.3 - es-module-lexer@1.5.3: {} + es-module-lexer@1.7.0: {} es-object-atoms@1.1.1: dependencies: @@ -19235,70 +14652,8 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - es5-shim@4.6.7: {} - es6-promise@3.3.1: {} - es6-shim@0.35.8: {} - - esbuild-register@3.5.0(esbuild@0.18.20): - dependencies: - debug: 4.4.1 - esbuild: 0.18.20 - transitivePeerDependencies: - - supports-color - - esbuild@0.18.20: - 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 - - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - esbuild@0.25.10: optionalDependencies: '@esbuild/aix-ppc64': 0.25.10 @@ -19330,24 +14685,12 @@ snapshots: escalade@3.2.0: {} - escape-html@1.0.3: {} - - escape-string-regexp@1.0.5: {} - escape-string-regexp@2.0.0: {} escape-string-regexp@4.0.0: {} escape-string-regexp@5.0.0: {} - escodegen@2.1.0: - dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionalDependencies: - source-map: 0.6.1 - eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.57.0): dependencies: confusing-browser-globals: 1.0.11 @@ -19668,11 +15011,6 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-scope@4.0.3: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 @@ -19742,8 +15080,6 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 3.4.3 - esprima@4.0.1: {} - esquery@1.5.0: dependencies: estraverse: 5.3.0 @@ -19758,9 +15094,11 @@ snapshots: estree-util-is-identifier-name@3.0.0: {} - esutils@2.0.3: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.8 - etag@1.8.1: {} + esutils@2.0.3: {} event-stream@4.0.1: dependencies: @@ -19778,23 +15116,6 @@ snapshots: events@3.3.0: {} - evp_bytestokey@1.0.3: - dependencies: - md5.js: 1.3.5 - safe-buffer: 5.2.1 - - exec-sh@0.3.6: {} - - execa@1.0.0: - dependencies: - cross-spawn: 6.0.6 - get-stream: 4.1.0 - is-stream: 1.1.0 - npm-run-path: 2.0.2 - p-finally: 1.0.0 - signal-exit: 3.0.7 - strip-eof: 1.0.0 - execa@5.1.1: dependencies: cross-spawn: 7.0.6 @@ -19819,17 +15140,7 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - expand-brackets@2.1.4: - dependencies: - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - posix-character-classes: 0.1.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color + expect-type@1.2.2: {} expect@29.7.0: dependencies: @@ -19839,76 +15150,8 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 - express@4.21.2: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.3 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.7.1 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.3.1 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.3 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.12 - proxy-addr: 2.0.7 - qs: 6.13.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.19.0 - serve-static: 1.16.2 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - - extend-shallow@2.0.1: - dependencies: - is-extendable: 0.1.1 - - extend-shallow@3.0.2: - dependencies: - assign-symbols: 1.0.0 - is-extendable: 1.0.1 - extend@3.0.2: {} - external-editor@3.1.0: - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - - extglob@2.0.4: - dependencies: - array-unique: 0.3.2 - define-property: 1.0.0 - expand-brackets: 2.1.4 - extend-shallow: 2.0.1 - fragment-cache: 0.2.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - - extract-files@11.0.0: {} - - fast-decode-uri-component@1.0.1: {} - fast-deep-equal@3.1.3: {} fast-glob@3.3.2: @@ -19925,18 +15168,10 @@ snapshots: fast-memoize@2.5.2: {} - fast-querystring@1.1.2: - dependencies: - fast-decode-uri-component: 1.0.1 - fast-safe-stringify@2.1.1: {} fast-uri@3.0.6: {} - fast-url-parser@1.1.3: - dependencies: - punycode: 1.4.1 - fastq@1.17.1: dependencies: reusify: 1.0.4 @@ -19959,63 +15194,23 @@ snapshots: transitivePeerDependencies: - encoding + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + fetch-blob@3.2.0: dependencies: node-domexception: 1.0.0 web-streams-polyfill: 3.3.3 - figgy-pudding@3.5.2: {} - - figures@3.2.0: - dependencies: - escape-string-regexp: 1.0.5 - file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 - file-system-cache@1.1.0: - dependencies: - fs-extra: 10.1.0 - ramda: 0.28.0 - - file-system-cache@2.3.0: - dependencies: - fs-extra: 11.1.1 - ramda: 0.29.0 - - file-uri-to-path@1.0.0: - optional: true - - fill-range@4.0.0: - dependencies: - extend-shallow: 2.0.1 - is-number: 3.0.0 - repeat-string: 1.6.1 - to-regex-range: 2.1.1 - fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 - finalhandler@1.3.1: - dependencies: - debug: 2.6.9 - encodeurl: 2.0.0 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - find-cache-dir@2.1.0: - dependencies: - commondir: 1.0.1 - make-dir: 2.1.0 - pkg-dir: 3.0.0 - find-cache-dir@3.3.2: dependencies: commondir: 1.0.1 @@ -20024,10 +15219,6 @@ snapshots: find-root@1.1.0: {} - find-up@3.0.0: - dependencies: - locate-path: 3.0.0 - find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -20046,66 +15237,15 @@ snapshots: flatted@3.3.1: {} - flush-write-stream@1.1.1: - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 - - focus-lock@0.8.1: - dependencies: - tslib: 1.14.1 - for-each@0.3.5: dependencies: is-callable: 1.2.7 - for-in@1.0.2: {} - foreground-child@3.1.1: dependencies: cross-spawn: 7.0.6 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.8.3)(webpack@4.47.0): - dependencies: - '@babel/code-frame': 7.27.1 - '@types/json-schema': 7.0.15 - chalk: 4.1.2 - chokidar: 3.6.0 - cosmiconfig: 6.0.0 - deepmerge: 4.3.1 - fs-extra: 9.1.0 - glob: 7.2.3 - memfs: 3.5.3 - minimatch: 3.1.2 - schema-utils: 2.7.0 - semver: 7.6.3 - tapable: 1.1.3 - typescript: 5.8.3 - webpack: 4.47.0 - optionalDependencies: - eslint: 8.57.0 - - fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.8.3)(webpack@5.97.1(esbuild@0.18.20)): - dependencies: - '@babel/code-frame': 7.27.1 - '@types/json-schema': 7.0.15 - chalk: 4.1.2 - chokidar: 3.6.0 - cosmiconfig: 6.0.0 - deepmerge: 4.3.1 - fs-extra: 9.1.0 - glob: 7.2.3 - memfs: 3.5.3 - minimatch: 3.1.2 - schema-utils: 2.7.0 - semver: 7.6.3 - tapable: 1.1.3 - typescript: 5.8.3 - webpack: 5.97.1(esbuild@0.18.20) - optionalDependencies: - eslint: 8.57.0 - form-data@4.0.4: dependencies: asynckit: 0.4.0 @@ -20118,14 +15258,8 @@ snapshots: dependencies: fetch-blob: 3.2.0 - forwarded@0.2.0: {} - fraction.js@4.3.7: {} - fragment-cache@0.2.1: - dependencies: - map-cache: 0.2.2 - framer-motion@10.18.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: tslib: 2.8.1 @@ -20151,63 +15285,16 @@ snapshots: dependencies: tslib: 2.8.1 - fresh@0.5.2: {} - - from2@2.3.0: - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 - from@0.1.7: {} - fs-extra@10.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs-extra@11.1.1: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs-extra@11.2.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - fs-extra@11.3.2: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@9.1.0: - dependencies: - at-least-node: 1.0.0 - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs-monkey@1.0.6: {} - - fs-write-stream-atomic@1.0.10: - dependencies: - graceful-fs: 4.2.11 - iferr: 0.1.5 - imurmurhash: 0.1.4 - readable-stream: 2.3.8 - fs.realpath@1.0.0: {} - fsevents@1.2.13: - dependencies: - bindings: 1.5.0 - nan: 2.23.0 - optional: true - fsevents@2.3.2: optional: true @@ -20235,18 +15322,6 @@ snapshots: functions-have-names@1.2.3: {} - gauge@3.0.2: - dependencies: - aproba: 2.0.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - generate-password@1.7.1: {} gensync@1.0.0-beta.2: {} @@ -20255,7 +15330,7 @@ snapshots: get-east-asian-width@1.2.0: {} - get-func-name@2.0.2: {} + get-east-asian-width@1.4.0: {} get-intrinsic@1.3.0: dependencies: @@ -20272,17 +15347,11 @@ snapshots: get-nonce@1.0.1: {} - get-package-type@0.1.0: {} - get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 - get-stream@4.1.0: - dependencies: - pump: 3.0.2 - get-stream@6.0.1: {} get-stream@8.0.1: {} @@ -20303,16 +15372,6 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - get-value@2.0.6: {} - - github-slugger@1.5.0: {} - - glob-parent@3.1.0: - dependencies: - is-glob: 3.1.0 - path-dirname: 1.0.2 - optional: true - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -20321,11 +15380,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-promise@3.4.0(glob@7.2.3): - dependencies: - '@types/glob': 8.1.0 - glob: 7.2.3 - glob-to-regexp@0.4.1: {} glob@10.4.5: @@ -20355,11 +15409,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - global@4.4.0: - dependencies: - min-document: 2.19.0 - process: 0.11.10 - globals@11.12.0: {} globals@13.24.0: @@ -20392,10 +15441,10 @@ snapshots: graphemer@1.4.0: {} - graphiql@3.3.1(@codemirror/language@6.10.2)(@types/node@16.18.105)(@types/react-dom@18.3.0)(@types/react@18.2.73)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + graphiql@3.3.1(@codemirror/language@6.10.2)(@types/node@20.14.8)(@types/react-dom@18.3.0)(@types/react@18.2.73)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@graphiql/react': 0.22.3(@codemirror/language@6.10.2)(@types/node@16.18.105)(@types/react-dom@18.3.0)(@types/react@18.2.73)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@graphiql/toolkit': 0.9.1(@types/node@16.18.105)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1) + '@graphiql/react': 0.22.3(@codemirror/language@6.10.2)(@types/node@20.14.8)(@types/react-dom@18.3.0)(@types/react@18.2.73)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@graphiql/toolkit': 0.9.1(@types/node@20.14.8)(graphql-ws@5.16.0(graphql@16.8.1))(graphql@16.8.1) graphql: 16.8.1 graphql-language-service: 5.3.0(graphql@16.8.1) markdown-it: 14.1.0 @@ -20408,25 +15457,28 @@ snapshots: - '@types/react-dom' - graphql-ws - graphql-config@5.0.3(@types/node@16.18.105)(encoding@0.1.13)(graphql@16.8.1)(typescript@5.8.3): + graphql-config@5.1.5(@types/node@20.14.8)(graphql@16.8.1)(typescript@5.8.3): dependencies: - '@graphql-tools/graphql-file-loader': 8.0.1(graphql@16.8.1) - '@graphql-tools/json-file-loader': 8.0.1(graphql@16.8.1) - '@graphql-tools/load': 8.0.2(graphql@16.8.1) - '@graphql-tools/merge': 9.0.3(graphql@16.8.1) - '@graphql-tools/url-loader': 8.0.2(@types/node@16.18.105)(encoding@0.1.13)(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-tools/graphql-file-loader': 8.1.2(graphql@16.8.1) + '@graphql-tools/json-file-loader': 8.0.20(graphql@16.8.1) + '@graphql-tools/load': 8.1.2(graphql@16.8.1) + '@graphql-tools/merge': 9.1.1(graphql@16.8.1) + '@graphql-tools/url-loader': 8.0.33(@types/node@20.14.8)(graphql@16.8.1) + '@graphql-tools/utils': 10.9.1(graphql@16.8.1) cosmiconfig: 8.3.6(typescript@5.8.3) graphql: 16.8.1 - jiti: 1.21.6 - minimatch: 4.2.3 + jiti: 2.6.1 + minimatch: 9.0.5 string-env-interpolation: 1.0.1 tslib: 2.8.1 transitivePeerDependencies: + - '@fastify/websocket' - '@types/node' - bufferutil - - encoding + - crossws + - supports-color - typescript + - uWebSockets.js - utf-8-validate graphql-language-service@5.3.0(graphql@16.8.1): @@ -20453,6 +15505,12 @@ snapshots: dependencies: graphql: 16.8.1 + graphql-ws@6.0.6(graphql@16.8.1)(ws@8.18.3): + dependencies: + graphql: 16.8.1 + optionalDependencies: + ws: 8.18.3 + graphql@16.8.1: {} gzip-size@6.0.0: @@ -20461,15 +15519,6 @@ snapshots: hamt_plus@1.0.2: {} - handlebars@4.7.8: - dependencies: - minimist: 1.2.8 - neo-async: 2.6.2 - source-map: 0.6.1 - wordwrap: 1.0.0 - optionalDependencies: - uglify-js: 3.19.3 - has-bigints@1.0.2: {} has-flag@4.0.0: {} @@ -20488,83 +15537,14 @@ snapshots: dependencies: has-symbols: 1.1.0 - has-unicode@2.0.1: {} - - has-value@0.3.1: - dependencies: - get-value: 2.0.6 - has-values: 0.1.4 - isobject: 2.1.0 - - has-value@1.0.0: - dependencies: - get-value: 2.0.6 - has-values: 1.0.0 - isobject: 3.0.1 - - has-values@0.1.4: {} - - has-values@1.0.0: - dependencies: - is-number: 3.0.0 - kind-of: 4.0.0 - - hash-base@2.0.2: - dependencies: - inherits: 2.0.4 - - hash-base@3.0.5: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - - hash.js@1.1.7: - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - hasown@2.0.2: dependencies: function-bind: 1.1.2 - hast-to-hyperscript@9.0.1: - dependencies: - '@types/unist': 2.0.10 - comma-separated-tokens: 1.0.8 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 - style-to-object: 0.3.0 - unist-util-is: 4.1.0 - web-namespaces: 1.1.4 - - hast-util-from-parse5@6.0.1: - dependencies: - '@types/parse5': 5.0.3 - hastscript: 6.0.0 - property-information: 5.6.0 - vfile: 4.2.1 - vfile-location: 3.2.0 - web-namespaces: 1.1.4 - hast-util-is-element@3.0.0: dependencies: '@types/hast': 3.0.4 - hast-util-parse-selector@2.2.5: {} - - hast-util-raw@6.0.1: - dependencies: - '@types/hast': 2.3.10 - hast-util-from-parse5: 6.0.1 - hast-util-to-parse5: 6.0.0 - html-void-elements: 1.0.5 - parse5: 6.0.1 - unist-util-position: 3.1.0 - vfile: 4.2.1 - web-namespaces: 1.1.4 - xtend: 4.0.2 - zwitch: 1.0.5 - hast-util-to-jsx-runtime@2.3.0: dependencies: '@types/estree': 1.0.8 @@ -20585,14 +15565,6 @@ snapshots: transitivePeerDependencies: - supports-color - hast-util-to-parse5@6.0.0: - dependencies: - hast-to-hyperscript: 9.0.1 - property-information: 5.6.0 - web-namespaces: 1.1.4 - xtend: 4.0.2 - zwitch: 1.0.5 - hast-util-to-text@4.0.2: dependencies: '@types/hast': 3.0.4 @@ -20604,59 +15576,27 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hastscript@6.0.0: - dependencies: - '@types/hast': 2.3.10 - comma-separated-tokens: 1.0.8 - hast-util-parse-selector: 2.2.5 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 - - he@1.2.0: {} - header-case@2.0.4: dependencies: capital-case: 1.0.4 tslib: 2.8.1 - headers-polyfill@3.2.5: {} + headers-polyfill@4.0.3: {} hey-listen@1.0.8: {} highlight.js@11.9.0: {} - hmac-drbg@1.0.1: - dependencies: - hash.js: 1.1.7 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - hoist-non-react-statics@3.3.2: dependencies: react-is: 16.13.1 - hosted-git-info@2.8.9: {} - html-encoding-sniffer@3.0.0: dependencies: whatwg-encoding: 2.0.0 - html-entities@2.5.2: {} - html-escaper@2.0.2: {} - html-minifier-terser@6.1.0: - dependencies: - camel-case: 4.1.2 - clean-css: 5.3.3 - commander: 8.3.0 - he: 1.2.0 - param-case: 3.0.4 - relateurl: 0.2.7 - terser: 5.37.0 - - html-tags@3.3.1: {} - html-tokenize@2.0.1: dependencies: buffer-from: 0.1.2 @@ -20667,33 +15607,6 @@ snapshots: html-url-attributes@3.0.0: {} - html-void-elements@1.0.5: {} - - html-webpack-plugin@5.6.3(webpack@5.97.1(esbuild@0.18.20)): - dependencies: - '@types/html-minifier-terser': 6.1.0 - html-minifier-terser: 6.1.0 - lodash: 4.17.21 - pretty-error: 4.0.0 - tapable: 2.2.1 - optionalDependencies: - webpack: 5.97.1(esbuild@0.18.20) - - htmlparser2@6.1.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - domutils: 2.8.0 - entities: 2.2.0 - - http-errors@2.0.0: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - http-proxy-agent@5.0.0: dependencies: '@tootallnate/once': 2.0.0 @@ -20702,17 +15615,8 @@ snapshots: transitivePeerDependencies: - supports-color - http-proxy-agent@7.0.2: - dependencies: - agent-base: 7.1.1 - debug: 4.4.1 - transitivePeerDependencies: - - supports-color - http2-client@1.3.5: {} - https-browserify@1.0.0: {} - https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 @@ -20720,36 +15624,17 @@ snapshots: transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.4: - dependencies: - agent-base: 7.1.1 - debug: 4.4.1 - transitivePeerDependencies: - - supports-color - human-signals@2.1.0: {} human-signals@5.0.0: {} - iconv-lite@0.4.24: - dependencies: - safer-buffer: 2.1.2 - iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 - icss-utils@4.1.1: + iconv-lite@0.7.0: dependencies: - postcss: 7.0.39 - - icss-utils@5.1.0(postcss@8.5.3): - dependencies: - postcss: 8.5.3 - - ieee754@1.2.1: {} - - iferr@0.1.5: {} + safer-buffer: 2.1.2 ignore@5.3.2: {} @@ -20762,14 +15647,17 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + import-from@4.0.0: {} imurmurhash@0.1.4: {} indent-string@4.0.0: {} - infer-owner@1.0.4: {} - inflected@2.1.0: {} inflight@1.0.6: @@ -20777,66 +15665,27 @@ snapshots: once: 1.4.0 wrappy: 1.0.2 - inherits@2.0.3: {} - inherits@2.0.4: {} - inline-style-parser@0.1.1: {} - inline-style-parser@0.2.4: {} - inquirer@8.2.6: - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.8.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 6.2.0 - internal-slot@1.1.0: dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.1.0 - interpret@2.2.0: {} - invariant@2.2.4: dependencies: loose-envify: 1.4.0 - ipaddr.js@1.9.1: {} - - is-absolute-url@3.0.3: {} - is-absolute@1.0.0: dependencies: is-relative: 1.0.0 is-windows: 1.0.2 - is-accessor-descriptor@1.0.1: - dependencies: - hasown: 2.0.2 - - is-alphabetical@1.0.4: {} - is-alphabetical@2.0.1: {} - is-alphanumerical@1.0.4: - dependencies: - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - is-alphanumerical@2.0.1: dependencies: is-alphabetical: 2.0.1 @@ -20868,11 +15717,6 @@ snapshots: dependencies: has-bigints: 1.0.2 - is-binary-path@1.0.1: - dependencies: - binary-extensions: 1.13.1 - optional: true - is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 @@ -20882,24 +15726,12 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-buffer@1.1.6: {} - - is-buffer@2.0.5: {} - is-callable@1.2.7: {} - is-ci@2.0.0: - dependencies: - ci-info: 2.0.0 - is-core-module@2.16.0: dependencies: hasown: 2.0.2 - is-data-descriptor@1.0.1: - dependencies: - hasown: 2.0.2 - is-data-view@1.0.2: dependencies: call-bound: 1.0.4 @@ -20911,31 +15743,8 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-decimal@1.0.4: {} - is-decimal@2.0.1: {} - is-descriptor@0.1.7: - dependencies: - is-accessor-descriptor: 1.0.1 - is-data-descriptor: 1.0.1 - - is-descriptor@1.0.3: - dependencies: - is-accessor-descriptor: 1.0.1 - is-data-descriptor: 1.0.1 - - is-dom@1.1.0: - dependencies: - is-object: 1.0.2 - is-window: 1.0.2 - - is-extendable@0.1.1: {} - - is-extendable@1.0.1: - dependencies: - is-plain-object: 2.0.4 - is-extglob@2.1.1: {} is-finalizationregistry@1.1.0: @@ -20950,38 +15759,26 @@ snapshots: dependencies: get-east-asian-width: 1.2.0 - is-function@1.0.2: {} + is-fullwidth-code-point@5.1.0: + dependencies: + get-east-asian-width: 1.4.0 is-generator-function@1.0.10: dependencies: has-tostringtag: 1.0.2 - is-glob@3.1.0: - dependencies: - is-extglob: 2.1.1 - optional: true - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - is-hexadecimal@1.0.4: {} - is-hexadecimal@2.0.1: {} - is-interactive@1.0.0: {} - is-lower-case@2.0.2: dependencies: tslib: 2.8.1 is-map@2.0.3: {} - is-nan@1.3.2: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - is-negative-zero@2.0.3: {} is-node-process@1.2.0: {} @@ -20991,26 +15788,16 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-number@3.0.0: - dependencies: - kind-of: 3.2.2 - is-number@7.0.0: {} - is-object@1.0.2: {} - is-path-inside@3.0.3: {} - is-plain-obj@2.1.0: {} - is-plain-obj@4.1.0: {} is-plain-object@2.0.4: dependencies: isobject: 3.0.1 - is-plain-object@5.0.0: {} - is-potential-custom-element-name@1.0.1: {} is-primitive@3.0.1: {} @@ -21036,8 +15823,6 @@ snapshots: dependencies: call-bound: 1.0.4 - is-stream@1.1.0: {} - is-stream@2.0.1: {} is-stream@3.0.0: {} @@ -21057,8 +15842,6 @@ snapshots: dependencies: which-typed-array: 1.1.19 - is-typedarray@1.0.0: {} - is-unc-path@1.0.0: dependencies: unc-path-regex: 0.1.2 @@ -21084,16 +15867,8 @@ snapshots: call-bind: 1.0.8 get-intrinsic: 1.3.0 - is-whitespace-character@1.0.4: {} - - is-window@1.0.2: {} - is-windows@1.0.2: {} - is-word-character@1.0.4: {} - - is-wsl@1.1.0: {} - isarray@0.0.1: {} isarray@1.0.0: {} @@ -21102,56 +15877,33 @@ snapshots: isexe@2.0.0: {} - isobject@2.1.0: - dependencies: - isarray: 1.0.0 - isobject@3.0.1: {} - isobject@4.0.0: {} - - isomorphic-ws@5.0.0(ws@8.17.1): + isomorphic-ws@5.0.0(ws@8.18.3): dependencies: - ws: 8.17.1 + ws: 8.18.3 istanbul-lib-coverage@3.2.2: {} - istanbul-lib-instrument@5.2.1: - dependencies: - '@babel/core': 7.26.10 - '@babel/parser': 7.28.3 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - istanbul-lib-report@3.0.1: dependencies: istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 - istanbul-lib-source-maps@4.0.1: + istanbul-lib-source-maps@5.0.6: dependencies: - debug: 4.4.1 + '@jridgewell/trace-mapping': 0.3.31 + debug: 4.4.3 istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 transitivePeerDependencies: - supports-color - istanbul-reports@3.1.7: + istanbul-reports@3.2.0: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - iterate-iterator@1.0.2: {} - - iterate-value@1.0.2: - dependencies: - es-get-iterator: 1.1.3 - iterate-iterator: 1.0.2 - iterator.prototype@1.1.2: dependencies: define-properties: 1.2.1 @@ -21175,26 +15927,6 @@ snapshots: jest-get-type@29.6.3: {} - jest-haste-map@26.6.2: - dependencies: - '@jest/types': 26.6.2 - '@types/graceful-fs': 4.1.9 - '@types/node': 16.18.105 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 26.0.0 - jest-serializer: 26.6.2 - jest-util: 26.6.2 - jest-worker: 26.6.2 - micromatch: 4.0.8 - sane: 4.1.0 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - transitivePeerDependencies: - - supports-color - jest-matcher-utils@29.7.0: dependencies: chalk: 4.1.2 @@ -21214,66 +15946,32 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 - jest-mock@27.5.1: - dependencies: - '@jest/types': 27.5.1 - '@types/node': 16.18.105 - - jest-regex-util@26.0.0: {} - - jest-serializer@26.6.2: - dependencies: - '@types/node': 16.18.105 - graceful-fs: 4.2.11 - - jest-util@26.6.2: - dependencies: - '@jest/types': 26.6.2 - '@types/node': 16.18.105 - chalk: 4.1.2 - graceful-fs: 4.2.11 - is-ci: 2.0.0 - micromatch: 4.0.8 - jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 16.18.105 + '@types/node': 16.18.126 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 picomatch: 2.3.1 - jest-worker@26.6.2: - dependencies: - '@types/node': 16.18.105 - merge-stream: 2.0.0 - supports-color: 7.2.0 - jest-worker@27.5.1: dependencies: - '@types/node': 16.18.105 + '@types/node': 20.19.21 merge-stream: 2.0.0 supports-color: 8.1.1 jiti@1.21.6: {} - jju@1.4.0: {} + jiti@2.6.1: {} - jose@5.2.3: {} + jju@1.4.0: {} js-cookie@3.0.1: {} - js-levenshtein@1.1.6: {} - - js-string-escape@1.0.1: {} - js-tokens@4.0.0: {} - js-yaml@3.14.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 + js-tokens@9.0.1: {} js-yaml@4.1.0: dependencies: @@ -21317,8 +16015,6 @@ snapshots: json-buffer@3.0.1: {} - json-parse-better-errors@1.0.2: {} - json-parse-even-better-errors@2.3.1: {} json-schema-traverse@0.4.1: {} @@ -21327,17 +16023,10 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} - json-stable-stringify@1.1.1: - dependencies: - call-bind: 1.0.8 - isarray: 2.0.5 - jsonify: 0.0.1 - object-keys: 1.1.1 - json-to-pretty-yaml@1.2.2: dependencies: remedial: 1.0.8 - remove-trailing-spaces: 1.0.8 + remove-trailing-spaces: 1.0.9 json5@1.0.2: dependencies: @@ -21353,8 +16042,6 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - jsonify@0.0.1: {} - jsonparse@1.3.1: {} jsonpath-plus@10.3.0: @@ -21382,38 +16069,12 @@ snapshots: dependencies: json-buffer: 3.0.1 - kind-of@3.2.2: - dependencies: - is-buffer: 1.1.6 - - kind-of@4.0.0: - dependencies: - is-buffer: 1.1.6 - - kind-of@6.0.3: {} - - klona@2.0.6: {} - language-subtag-registry@0.3.22: {} language-tags@1.0.9: dependencies: language-subtag-registry: 0.3.22 - lazy-universal-dotenv@3.0.1: - dependencies: - '@babel/runtime': 7.26.10 - app-root-dir: 1.0.2 - core-js: 3.37.1 - dotenv: 8.6.0 - dotenv-expand: 5.1.0 - - lazy-universal-dotenv@4.0.0: - dependencies: - app-root-dir: 1.0.2 - dotenv: 16.4.5 - dotenv-expand: 10.0.0 - leven@3.1.0: {} levn@0.4.1: @@ -21444,19 +16105,6 @@ snapshots: transitivePeerDependencies: - supports-color - listr2@4.0.5(enquirer@2.4.1): - dependencies: - cli-truncate: 2.1.0 - colorette: 2.0.20 - log-update: 4.0.0 - p-map: 4.0.0 - rfdc: 1.4.1 - rxjs: 7.8.1 - through: 2.3.8 - wrap-ansi: 7.0.0 - optionalDependencies: - enquirer: 2.4.1 - listr2@8.2.1: dependencies: cli-truncate: 4.0.0 @@ -21466,15 +16114,16 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 9.0.0 - loader-runner@2.4.0: {} - - loader-runner@4.3.0: {} - - loader-utils@1.4.2: + listr2@9.0.4: dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 1.0.2 + cli-truncate: 5.1.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.2 + + loader-runner@4.3.1: {} loader-utils@2.0.4: dependencies: @@ -21482,13 +16131,6 @@ snapshots: emojis-list: 3.0.0 json5: 2.2.3 - local-pkg@0.4.3: {} - - locate-path@3.0.0: - dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 - locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -21526,13 +16168,6 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 - log-update@4.0.0: - dependencies: - ansi-escapes: 4.3.2 - cli-cursor: 3.1.0 - slice-ansi: 4.0.0 - wrap-ansi: 6.2.0 - log-update@6.0.0: dependencies: ansi-escapes: 6.2.1 @@ -21541,6 +16176,14 @@ snapshots: strip-ansi: 7.1.0 wrap-ansi: 9.0.0 + log-update@6.1.0: + dependencies: + ansi-escapes: 7.1.1 + cli-cursor: 5.0.0 + slice-ansi: 7.1.2 + strip-ansi: 7.1.2 + wrap-ansi: 9.0.2 + loglevel-plugin-prefix@0.8.4: {} loglevel@1.9.2: {} @@ -21551,9 +16194,7 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@2.3.7: - dependencies: - get-func-name: 2.0.2 + loupe@3.2.1: {} lower-case-first@2.0.2: dependencies: @@ -21575,7 +16216,7 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react@0.416.0(react@18.2.0): + lucide-react@0.552.0(react@18.2.0): dependencies: react: 18.2.0 @@ -21583,14 +16224,15 @@ snapshots: lz-string@1.5.0: {} - magic-string@0.30.17: + magic-string@0.30.19: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 - make-dir@2.1.0: + magicast@0.3.5: dependencies: - pify: 4.0.1 - semver: 5.7.2 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 + source-map-js: 1.2.1 make-dir@3.1.0: dependencies: @@ -21598,30 +16240,14 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.6.3 + semver: 7.7.3 make-error@1.3.6: {} - makeerror@1.0.12: - dependencies: - tmpl: 1.0.5 - - map-age-cleaner@0.1.3: - dependencies: - p-defer: 1.0.0 - map-cache@0.2.2: {} - map-or-similar@1.5.0: {} - map-stream@0.0.7: {} - map-visit@1.0.0: - dependencies: - object-visit: 1.0.1 - - markdown-escapes@1.0.4: {} - markdown-it@14.1.0: dependencies: argparse: 2.0.1 @@ -21635,20 +16261,6 @@ snapshots: math-intrinsics@1.1.0: {} - md5.js@1.3.5: - dependencies: - hash-base: 3.0.5 - inherits: 2.0.4 - safe-buffer: 5.2.1 - - mdast-squeeze-paragraphs@4.0.0: - dependencies: - unist-util-remove: 2.1.0 - - mdast-util-definitions@4.0.0: - dependencies: - unist-util-visit: 2.0.3 - mdast-util-find-and-replace@3.0.1: dependencies: '@types/mdast': 4.0.4 @@ -21775,17 +16387,6 @@ snapshots: '@types/mdast': 4.0.4 unist-util-is: 6.0.0 - mdast-util-to-hast@10.0.1: - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - mdast-util-definitions: 4.0.0 - mdurl: 1.0.1 - unist-builder: 2.0.3 - unist-util-generated: 1.1.6 - unist-util-position: 3.1.0 - unist-util-visit: 2.0.3 - mdast-util-to-hast@13.1.0: dependencies: '@types/hast': 3.0.4 @@ -21809,52 +16410,23 @@ snapshots: unist-util-visit: 5.0.0 zwitch: 2.0.4 - mdast-util-to-string@1.1.0: {} - mdast-util-to-string@4.0.0: dependencies: '@types/mdast': 4.0.4 - mdurl@1.0.1: {} - mdurl@2.0.0: {} - media-typer@0.3.0: {} - - mem@8.1.1: - dependencies: - map-age-cleaner: 0.1.3 - mimic-fn: 3.1.0 - - memfs@3.5.3: - dependencies: - fs-monkey: 1.0.6 - - memoizerific@1.11.3: - dependencies: - map-or-similar: 1.5.0 - - memory-fs@0.4.1: - dependencies: - errno: 0.1.8 - readable-stream: 2.3.8 - - memory-fs@0.5.0: - dependencies: - errno: 0.1.8 - readable-stream: 2.3.8 - - merge-descriptors@1.0.3: {} - merge-stream@2.0.0: {} merge2@1.4.1: {} - meros@1.3.0(@types/node@16.18.105): + meros@1.3.0(@types/node@20.14.8): optionalDependencies: - '@types/node': 16.18.105 + '@types/node': 20.14.8 - methods@1.1.2: {} + meros@1.3.2(@types/node@20.14.8): + optionalDependencies: + '@types/node': 20.14.8 micromark-core-commonmark@2.0.1: dependencies: @@ -22028,7 +16600,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.4.1 + debug: 4.4.3 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -22047,70 +16619,31 @@ snapshots: transitivePeerDependencies: - supports-color - micromatch@3.1.10: - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - braces: 2.3.2 - define-property: 2.0.2 - extend-shallow: 3.0.2 - extglob: 2.0.4 - fragment-cache: 0.2.1 - kind-of: 6.0.3 - nanomatch: 1.2.13 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 - miller-rabin@4.0.1: - dependencies: - bn.js: 4.12.2 - brorand: 1.1.0 - mime-db@1.52.0: {} mime-types@2.1.35: dependencies: mime-db: 1.52.0 - mime@1.6.0: {} - - mime@4.0.1: {} - mimic-fn@2.1.0: {} - mimic-fn@3.1.0: {} - mimic-fn@4.0.0: {} - min-document@2.19.0: - dependencies: - dom-walk: 0.1.2 + mimic-function@5.0.1: {} min-indent@1.0.1: {} mini-svg-data-uri@1.4.4: {} - minimalistic-assert@1.0.1: {} - - minimalistic-crypto-utils@1.0.1: {} - minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 - minimatch@4.2.3: - dependencies: - brace-expansion: 1.1.12 - minimatch@6.2.0: dependencies: brace-expansion: 2.0.2 @@ -22131,90 +16664,43 @@ snapshots: minipass@7.1.2: {} - mississippi@3.0.0: - dependencies: - concat-stream: 1.6.2 - duplexify: 3.7.1 - end-of-stream: 1.4.4 - flush-write-stream: 1.1.1 - from2: 2.3.0 - parallel-transform: 1.2.0 - pump: 3.0.2 - pumpify: 1.5.1 - stream-each: 1.2.3 - through2: 2.0.5 - - mixin-deep@1.3.2: - dependencies: - for-in: 1.0.2 - is-extendable: 1.0.1 - - mkdirp@0.5.6: - dependencies: - minimist: 1.2.8 - - mlly@1.7.3: - dependencies: - acorn: 8.14.0 - pathe: 1.1.2 - pkg-types: 1.2.1 - ufo: 1.5.4 - - move-concurrently@1.0.1: - dependencies: - aproba: 1.2.0 - copy-concurrently: 1.0.5 - fs-write-stream-atomic: 1.0.10 - mkdirp: 0.5.6 - rimraf: 2.7.1 - run-queue: 1.0.3 - mrmime@1.0.1: {} - ms@2.0.0: {} - ms@2.1.2: {} ms@2.1.3: {} - msw-storybook-addon@1.10.0(msw@1.3.5(encoding@0.1.13)(typescript@5.8.3)): + msw@2.11.4(@types/node@20.14.8)(typescript@5.8.3): dependencies: - is-node-process: 1.2.0 - msw: 1.3.5(encoding@0.1.13)(typescript@5.8.3) - - msw@1.3.5(encoding@0.1.13)(typescript@5.8.3): - dependencies: - '@mswjs/cookies': 0.2.2 - '@mswjs/interceptors': 0.17.10 - '@open-draft/until': 1.0.3 - '@types/cookie': 0.4.1 - '@types/js-levenshtein': 1.1.3 - chalk: 4.1.2 - chokidar: 3.6.0 - cookie: 0.4.2 + '@inquirer/confirm': 5.1.18(@types/node@20.14.8) + '@mswjs/interceptors': 0.39.7 + '@open-draft/deferred-promise': 2.2.0 + '@types/statuses': 2.0.6 + cookie: 1.0.2 graphql: 16.8.1 - headers-polyfill: 3.2.5 - inquirer: 8.2.6 + headers-polyfill: 4.0.3 is-node-process: 1.2.0 - js-levenshtein: 1.1.6 - node-fetch: 2.6.13(encoding@0.1.13) - outvariant: 1.4.2 + outvariant: 1.4.3 path-to-regexp: 6.3.0 - strict-event-emitter: 0.4.6 - type-fest: 2.19.0 + picocolors: 1.1.1 + rettime: 0.7.0 + statuses: 2.0.2 + strict-event-emitter: 0.5.1 + tough-cookie: 6.0.0 + type-fest: 4.41.0 + until-async: 3.0.2 yargs: 17.7.2 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - - encoding - - supports-color + - '@types/node' multipipe@1.0.2: dependencies: duplexer2: 0.1.4 object-assign: 4.1.1 - mute-stream@0.0.8: {} + mute-stream@2.0.0: {} mz@2.7.0: dependencies: @@ -22222,33 +16708,12 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nan@2.23.0: - optional: true - nanoid@3.3.8: {} - nanomatch@1.2.13: - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - define-property: 2.0.2 - extend-shallow: 3.0.2 - fragment-cache: 0.2.1 - is-windows: 1.0.2 - kind-of: 6.0.3 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - natural-compare-lite@1.4.0: {} natural-compare@1.4.0: {} - negotiator@0.6.3: {} - neo-async@2.6.2: {} new-date@1.0.3: @@ -22296,8 +16761,6 @@ snapshots: - '@babel/core' - babel-plugin-macros - nice-try@1.0.5: {} - nimma@0.2.3: dependencies: '@jsep-plugin/regex': 1.0.4(jsep@1.4.0) @@ -22339,32 +16802,6 @@ snapshots: node-int64@0.4.0: {} - node-libs-browser@2.2.1: - dependencies: - assert: 1.5.1 - browserify-zlib: 0.2.0 - buffer: 4.9.2 - console-browserify: 1.2.0 - constants-browserify: 1.0.0 - crypto-browserify: 3.12.1 - domain-browser: 1.2.0 - events: 3.3.0 - https-browserify: 1.0.0 - os-browserify: 0.3.0 - path-browserify: 0.0.1 - process: 0.11.10 - punycode: 1.4.1 - querystring-es3: 0.2.1 - readable-stream: 2.3.8 - stream-browserify: 2.0.2 - stream-http: 2.8.3 - string_decoder: 1.3.0 - timers-browserify: 2.0.12 - tty-browserify: 0.0.0 - url: 0.11.4 - util: 0.11.1 - vm-browserify: 1.1.2 - node-pg-format@1.3.5: {} node-readfiles@0.2.0: @@ -22373,13 +16810,6 @@ snapshots: node-releases@2.0.19: {} - normalize-package-data@2.5.0: - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.10 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - normalize-path@2.1.1: dependencies: remove-trailing-separator: 1.1.0 @@ -22388,10 +16818,6 @@ snapshots: normalize-range@0.1.2: {} - npm-run-path@2.0.2: - dependencies: - path-key: 2.0.1 - npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -22400,13 +16826,6 @@ snapshots: dependencies: path-key: 4.0.0 - npmlog@5.0.1: - dependencies: - are-we-there-yet: 2.0.0 - console-control-strings: 1.1.0 - gauge: 3.0.2 - set-blocking: 2.0.0 - nprogress-v2@1.0.4: {} nth-check@2.1.1: @@ -22452,12 +16871,6 @@ snapshots: object-assign@4.1.1: {} - object-copy@0.1.0: - dependencies: - copy-descriptor: 0.1.1 - define-property: 0.2.5 - kind-of: 3.2.2 - object-hash@3.0.0: {} object-inspect@1.13.3: {} @@ -22473,10 +16886,6 @@ snapshots: object-keys@1.1.1: {} - object-visit@1.0.1: - dependencies: - isobject: 3.0.1 - object.assign@4.1.7: dependencies: call-bind: 1.0.8 @@ -22499,16 +16908,6 @@ snapshots: es-abstract: 1.23.6 es-object-atoms: 1.1.1 - object.getownpropertydescriptors@2.1.8: - dependencies: - array.prototype.reduce: 1.0.7 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.6 - es-object-atoms: 1.1.1 - gopd: 1.2.0 - safe-array-concat: 1.1.3 - object.groupby@1.0.3: dependencies: call-bind: 1.0.8 @@ -22521,20 +16920,12 @@ snapshots: es-abstract: 1.23.6 es-object-atoms: 1.1.1 - object.pick@1.3.0: - dependencies: - isobject: 3.0.1 - object.values@1.2.0: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-object-atoms: 1.1.1 - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - once@1.4.0: dependencies: wrappy: 1.0.2 @@ -22547,6 +16938,10 @@ snapshots: dependencies: mimic-fn: 4.0.0 + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + openapi-types@12.1.3: {} openapi3-ts@4.2.2: @@ -22575,18 +16970,6 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - ora@5.4.1: - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - orval@7.11.2(encoding@0.1.13)(openapi-types@12.1.3): dependencies: '@apidevtools/swagger-parser': 10.1.1(openapi-types@12.1.3) @@ -22620,11 +17003,7 @@ snapshots: - openapi-types - supports-color - os-browserify@0.3.0: {} - - os-tmpdir@1.0.2: {} - - outvariant@1.4.2: {} + outvariant@1.4.3: {} own-keys@1.0.1: dependencies: @@ -22632,10 +17011,6 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - p-defer@1.0.0: {} - - p-finally@1.0.0: {} - p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -22644,14 +17019,6 @@ snapshots: dependencies: yocto-queue: 0.1.0 - p-limit@4.0.0: - dependencies: - yocto-queue: 1.1.1 - - p-locate@3.0.0: - dependencies: - p-limit: 2.3.0 - p-locate@4.1.0: dependencies: p-limit: 2.3.0 @@ -22660,22 +17027,10 @@ snapshots: dependencies: p-limit: 3.1.0 - p-map@4.0.0: - dependencies: - aggregate-error: 3.1.0 - p-try@2.2.0: {} package-json-from-dist@1.0.1: {} - pako@1.0.11: {} - - parallel-transform@1.2.0: - dependencies: - cyclist: 1.0.2 - inherits: 2.0.4 - readable-stream: 2.3.8 - param-case@3.0.4: dependencies: dot-case: 3.0.4 @@ -22685,24 +17040,6 @@ snapshots: dependencies: callsites: 3.1.0 - parse-asn1@5.1.7: - dependencies: - asn1.js: 4.10.1 - browserify-aes: 1.2.0 - evp_bytestokey: 1.0.3 - hash-base: 3.0.5 - pbkdf2: 3.1.3 - safe-buffer: 5.2.1 - - parse-entities@2.0.0: - dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 - parse-entities@4.0.1: dependencies: '@types/unist': 2.0.10 @@ -22727,41 +17064,24 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse5@6.0.1: {} - parse5@7.1.2: dependencies: entities: 4.5.0 - parseurl@1.3.3: {} - pascal-case@3.1.2: dependencies: no-case: 3.0.4 tslib: 2.8.1 - pascalcase@0.1.1: {} - - path-browserify@0.0.1: {} - - path-browserify@1.0.1: {} - path-case@3.0.4: dependencies: dot-case: 3.0.4 tslib: 2.8.1 - path-dirname@1.0.2: - optional: true - - path-exists@3.0.0: {} - path-exists@4.0.0: {} path-is-absolute@1.0.1: {} - path-key@2.0.1: {} - path-key@3.1.1: {} path-key@4.0.0: {} @@ -22779,61 +17099,34 @@ snapshots: lru-cache: 10.2.2 minipass: 7.1.2 - path-to-regexp@0.1.12: {} - path-to-regexp@6.3.0: {} path-type@4.0.0: {} - pathe@1.1.2: {} + pathe@2.0.3: {} - pathval@1.1.1: {} + pathval@2.0.1: {} pause-stream@0.0.11: dependencies: through: 2.3.8 - pbkdf2@3.1.3: - dependencies: - create-hash: 1.1.3 - create-hmac: 1.1.7 - ripemd160: 2.0.1 - safe-buffer: 5.2.1 - sha.js: 2.4.12 - to-buffer: 1.2.1 - - picocolors@0.2.1: {} - picocolors@1.1.1: {} picomatch@2.3.1: {} + picomatch@4.0.3: {} + pidtree@0.6.0: {} pify@2.3.0: {} - pify@4.0.1: {} - pirates@4.0.6: {} - pkg-dir@3.0.0: - dependencies: - find-up: 3.0.0 - pkg-dir@4.2.0: dependencies: find-up: 4.1.0 - pkg-dir@5.0.0: - dependencies: - find-up: 5.0.0 - - pkg-types@1.2.1: - dependencies: - confbox: 0.1.8 - mlly: 1.7.3 - pathe: 1.1.2 - playwright-core@1.54.1: {} playwright@1.54.1: @@ -22844,10 +17137,6 @@ snapshots: pluralize@8.0.0: {} - polished@4.3.1: - dependencies: - '@babel/runtime': 7.26.10 - pony-cause@1.1.1: {} popmotion@11.0.3: @@ -22857,8 +17146,6 @@ snapshots: style-value-types: 5.0.0 tslib: 2.8.1 - posix-character-classes@0.1.1: {} - possible-typed-array-names@1.0.0: {} postcss-import@15.1.0(postcss@8.5.3): @@ -22873,65 +17160,13 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.3 - postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@16.18.105)(typescript@5.8.3)): + postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.14.8)(typescript@5.8.3)): dependencies: lilconfig: 3.1.3 yaml: 2.6.1 optionalDependencies: postcss: 8.5.3 - ts-node: 10.9.2(@types/node@16.18.105)(typescript@5.8.3) - - postcss-loader@4.3.0(postcss@7.0.39)(webpack@5.97.1(esbuild@0.18.20)): - dependencies: - cosmiconfig: 7.1.0 - klona: 2.0.6 - loader-utils: 2.0.4 - postcss: 7.0.39 - schema-utils: 3.3.0 - semver: 7.6.3 - webpack: 5.97.1(esbuild@0.18.20) - - postcss-modules-extract-imports@2.0.0: - dependencies: - postcss: 7.0.39 - - postcss-modules-extract-imports@3.1.0(postcss@8.5.3): - dependencies: - postcss: 8.5.3 - - postcss-modules-local-by-default@3.0.3: - dependencies: - icss-utils: 4.1.1 - postcss: 7.0.39 - postcss-selector-parser: 6.1.2 - postcss-value-parser: 4.2.0 - - postcss-modules-local-by-default@4.0.5(postcss@8.5.3): - dependencies: - icss-utils: 5.1.0(postcss@8.5.3) - postcss: 8.5.3 - postcss-selector-parser: 6.1.2 - postcss-value-parser: 4.2.0 - - postcss-modules-scope@2.2.0: - dependencies: - postcss: 7.0.39 - postcss-selector-parser: 6.1.2 - - postcss-modules-scope@3.2.0(postcss@8.5.3): - dependencies: - postcss: 8.5.3 - postcss-selector-parser: 6.1.2 - - postcss-modules-values@3.0.0: - dependencies: - icss-utils: 4.1.1 - postcss: 7.0.39 - - postcss-modules-values@4.0.0(postcss@8.5.3): - dependencies: - icss-utils: 5.1.0(postcss@8.5.3) - postcss: 8.5.3 + ts-node: 10.9.2(@types/node@20.14.8)(typescript@5.8.3) postcss-nested@6.2.0(postcss@8.5.3): dependencies: @@ -22950,11 +17185,6 @@ snapshots: postcss-value-parser@4.2.0: {} - postcss@7.0.39: - dependencies: - picocolors: 0.2.1 - source-map: 0.6.1 - postcss@8.4.31: dependencies: nanoid: 3.3.8 @@ -22980,15 +17210,8 @@ snapshots: optionalDependencies: prettier-plugin-organize-imports: 4.1.0(prettier@3.4.2)(typescript@5.8.3) - prettier@2.3.0: {} - prettier@3.4.2: {} - pretty-error@4.0.0: - dependencies: - lodash: 4.17.21 - renderkid: 3.0.0 - pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 @@ -23001,33 +17224,8 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.2.0 - pretty-hrtime@1.0.3: {} - process-nextick-args@2.0.1: {} - process@0.11.10: {} - - promise-inflight@1.0.1(bluebird@3.7.2): - optionalDependencies: - bluebird: 3.7.2 - - promise.allsettled@1.0.7: - dependencies: - array.prototype.map: 1.0.7 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.6 - get-intrinsic: 1.3.0 - iterate-value: 1.0.2 - - promise.prototype.finally@3.1.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.6 - es-errors: 1.3.0 - set-function-name: 2.0.2 - promise@7.3.1: dependencies: asap: 2.0.6 @@ -23040,96 +17238,30 @@ snapshots: property-expr@2.0.6: {} - property-information@5.6.0: - dependencies: - xtend: 4.0.2 - property-information@6.5.0: {} - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - - prr@1.0.1: {} - psl@1.15.0: dependencies: punycode: 2.3.1 - public-encrypt@4.0.3: - dependencies: - bn.js: 4.12.2 - browserify-rsa: 4.1.1 - create-hash: 1.2.0 - parse-asn1: 5.1.7 - randombytes: 2.1.0 - safe-buffer: 5.2.1 - - pump@2.0.1: - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - - pump@3.0.2: - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - - pumpify@1.5.1: - dependencies: - duplexify: 3.7.1 - inherits: 2.0.4 - pump: 2.0.1 - punycode.js@2.3.1: {} - punycode@1.4.1: {} - punycode@2.3.1: {} - pvtsutils@1.3.6: - dependencies: - tslib: 2.8.1 - - pvutils@1.1.3: {} - - qs@6.13.0: - dependencies: - side-channel: 1.1.0 - qs@6.13.1: dependencies: side-channel: 1.1.0 - querystring-es3@0.2.1: {} - querystringify@2.2.0: {} queue-microtask@1.2.3: {} - ramda@0.28.0: {} - - ramda@0.29.0: {} + raf-schd@4.0.3: {} randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 - randomfill@1.0.4: - dependencies: - randombytes: 2.1.0 - safe-buffer: 5.2.1 - - range-parser@1.2.1: {} - - raw-body@2.5.2: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - react-children-utilities@2.10.0(react@18.2.0): dependencies: react: 18.2.0 @@ -23138,12 +17270,6 @@ snapshots: dependencies: react: 18.2.0 - react-date-fns-hooks@0.9.4(date-fns@2.30.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - date-fns: 2.30.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-day-picker@9.6.3(react@18.2.0): dependencies: '@date-fns/tz': 1.2.0 @@ -23157,14 +17283,6 @@ snapshots: react: 18.2.0 scheduler: 0.23.2 - react-element-to-jsx-string@15.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@base2/pretty-print-object': 1.0.1 - is-plain-object: 5.0.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-is: 18.1.0 - react-error-boundary@4.1.2(react@18.2.0): dependencies: '@babel/runtime': 7.26.10 @@ -23182,13 +17300,6 @@ snapshots: transitivePeerDependencies: - csstype - react-inspector@5.1.1(react@18.2.0): - dependencies: - '@babel/runtime': 7.26.10 - is-dom: 1.1.0 - prop-types: 15.8.1 - react: 18.2.0 - react-intersection-observer@9.14.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: react: 18.2.0 @@ -23199,17 +17310,8 @@ snapshots: react-is@17.0.2: {} - react-is@18.1.0: {} - react-is@18.2.0: {} - react-loading-skeleton@2.2.0(react@18.2.0): - dependencies: - '@emotion/core': 10.3.1(react@18.2.0) - react: 18.2.0 - transitivePeerDependencies: - - supports-color - react-markdown@9.0.1(@types/react@18.2.73)(react@18.2.0): dependencies: '@types/hast': 3.0.4 @@ -23227,13 +17329,20 @@ snapshots: transitivePeerDependencies: - supports-color - react-merge-refs@1.1.0: {} - react-merge-refs@3.0.2(react@18.2.0): optionalDependencies: react: 18.2.0 - react-refresh@0.14.2: {} + react-redux@9.2.0(@types/react@18.2.73)(react@18.2.0)(redux@5.0.1): + dependencies: + '@types/use-sync-external-store': 0.0.6 + react: 18.2.0 + use-sync-external-store: 1.4.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.73 + redux: 5.0.1 + + react-refresh@0.17.0: {} react-remove-scroll-bar@2.3.8(@types/react@18.2.73)(react@18.2.0): dependencies: @@ -23295,7 +17404,7 @@ snapshots: react-transition-group@4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -23310,19 +17419,6 @@ snapshots: dependencies: pify: 2.3.0 - read-pkg-up@7.0.1: - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - - read-pkg@5.2.0: - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - readable-stream@1.0.34: dependencies: core-util-is: 1.0.3 @@ -23340,21 +17436,6 @@ snapshots: string_decoder: 1.1.1 util-deprecate: 1.0.2 - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - - readdirp@2.2.1: - dependencies: - graceful-fs: 4.2.11 - micromatch: 3.1.10 - readable-stream: 2.3.8 - transitivePeerDependencies: - - supports-color - optional: true - readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -23379,6 +17460,8 @@ snapshots: indent-string: 4.0.0 strip-indent: 3.0.0 + redux@5.0.1: {} + reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 @@ -23409,18 +17492,11 @@ snapshots: regenerate@1.4.2: {} - regenerator-runtime@0.13.11: {} - regenerator-runtime@0.14.1: {} regenerator-transform@0.15.2: dependencies: - '@babel/runtime': 7.26.10 - - regex-not@1.0.2: - dependencies: - extend-shallow: 3.0.2 - safe-regex: 1.1.0 + '@babel/runtime': 7.28.4 regexp.prototype.flags@1.5.3: dependencies: @@ -23466,26 +17542,14 @@ snapshots: unist-util-visit: 5.0.0 vfile: 6.0.3 - relateurl@0.2.7: {} - relay-runtime@12.0.0(encoding@0.1.13): dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.28.4 fbjs: 3.0.5(encoding@0.1.13) invariant: 2.2.4 transitivePeerDependencies: - encoding - remark-external-links@8.0.0: - dependencies: - extend: 3.0.2 - is-absolute-url: 3.0.3 - mdast-util-definitions: 4.0.0 - space-separated-tokens: 1.1.5 - unist-util-visit: 2.0.3 - - remark-footnotes@2.0.0: {} - remark-gfm@4.0.0: dependencies: '@types/mdast': 4.0.4 @@ -23497,19 +17561,6 @@ snapshots: transitivePeerDependencies: - supports-color - remark-mdx@1.6.22: - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.10.4 - '@babel/plugin-proposal-object-rest-spread': 7.12.1(@babel/core@7.12.9) - '@babel/plugin-syntax-jsx': 7.12.1(@babel/core@7.12.9) - '@mdx-js/util': 1.6.22 - is-alphabetical: 1.0.4 - remark-parse: 8.0.3 - unified: 9.2.0 - transitivePeerDependencies: - - supports-color - remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.4 @@ -23519,25 +17570,6 @@ snapshots: transitivePeerDependencies: - supports-color - remark-parse@8.0.3: - dependencies: - ccount: 1.1.0 - collapse-white-space: 1.0.6 - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - is-whitespace-character: 1.0.4 - is-word-character: 1.0.4 - markdown-escapes: 1.0.4 - parse-entities: 2.0.0 - repeat-string: 1.6.1 - state-toggle: 1.0.3 - trim: 0.0.1 - trim-trailing-lines: 1.1.4 - unherit: 1.1.3 - unist-util-remove-position: 2.0.1 - vfile-location: 3.2.0 - xtend: 4.0.2 - remark-rehype@11.1.1: dependencies: '@types/hast': 3.0.4 @@ -23546,16 +17578,6 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 - remark-slug@6.1.0: - dependencies: - github-slugger: 1.5.0 - mdast-util-to-string: 1.1.0 - unist-util-visit: 2.0.3 - - remark-squeeze-paragraphs@4.0.0: - dependencies: - mdast-squeeze-paragraphs: 4.0.0 - remark-stringify@11.0.0: dependencies: '@types/mdast': 4.0.4 @@ -23566,19 +17588,7 @@ snapshots: remove-trailing-separator@1.1.0: {} - remove-trailing-spaces@1.0.8: {} - - renderkid@3.0.0: - dependencies: - css-select: 4.3.0 - dom-converter: 0.2.0 - htmlparser2: 6.1.0 - lodash: 4.17.21 - strip-ansi: 6.0.1 - - repeat-element@1.1.4: {} - - repeat-string@1.6.1: {} + remove-trailing-spaces@1.0.9: {} require-directory@2.1.1: {} @@ -23594,8 +17604,6 @@ snapshots: resolve-pkg-maps@1.0.0: {} - resolve-url@0.2.1: {} - resolve@1.22.10: dependencies: is-core-module: 2.16.0 @@ -23610,17 +17618,17 @@ snapshots: response-iterator@0.2.6: {} - restore-cursor@3.1.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - restore-cursor@4.0.0: dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - ret@0.1.15: {} + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + + rettime@0.7.0: {} reusify@1.0.4: {} @@ -23630,28 +17638,10 @@ snapshots: dependencies: react: 18.2.0 - rimraf@2.7.1: - dependencies: - glob: 7.2.3 - rimraf@3.0.2: dependencies: glob: 7.2.3 - ripemd160@2.0.1: - dependencies: - hash-base: 2.0.2 - inherits: 2.0.4 - - ripemd160@2.0.2: - dependencies: - hash-base: 3.0.5 - inherits: 2.0.4 - - rollup@3.29.5: - optionalDependencies: - fsevents: 2.3.3 - rollup@4.52.2: dependencies: '@types/estree': 1.0.8 @@ -23682,22 +17672,10 @@ snapshots: rrweb-cssom@0.6.0: {} - rsvp@4.8.5: {} - - run-async@2.4.1: {} - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - run-queue@1.0.3: - dependencies: - aproba: 1.2.0 - - rxjs@7.8.1: - dependencies: - tslib: 2.8.1 - safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 @@ -23721,28 +17699,10 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 - safe-regex@1.1.0: - dependencies: - ret: 0.1.15 - safe-stable-stringify@1.1.1: {} safer-buffer@2.1.2: {} - sane@4.1.0: - dependencies: - '@cnakazawa/watch': 1.0.4 - anymatch: 2.0.0 - capture-exit: 2.0.0 - exec-sh: 0.3.6 - execa: 1.0.0 - fb-watchman: 2.0.2 - micromatch: 3.1.10 - minimist: 1.2.8 - walker: 1.0.8 - transitivePeerDependencies: - - supports-color - saxes@6.0.0: dependencies: xmlchars: 2.2.0 @@ -23751,18 +17711,6 @@ snapshots: dependencies: loose-envify: 1.4.0 - schema-utils@1.0.0: - dependencies: - ajv: 6.12.6 - ajv-errors: 1.0.1(ajv@6.12.6) - ajv-keywords: 3.5.2(ajv@6.12.6) - - schema-utils@2.7.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - schema-utils@2.7.1: dependencies: '@types/json-schema': 7.0.15 @@ -23775,38 +17723,18 @@ snapshots: ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - schema-utils@4.3.0: + schema-utils@4.3.3: dependencies: '@types/json-schema': 7.0.15 ajv: 8.17.1 ajv-formats: 2.1.1(ajv@8.17.1) ajv-keywords: 5.1.0(ajv@8.17.1) - scuid@1.1.0: {} - - semver@5.7.2: {} - semver@6.3.1: {} semver@7.6.3: {} - send@0.19.0: - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color + semver@7.7.3: {} sentence-case@3.0.4: dependencies: @@ -23814,27 +17742,12 @@ snapshots: tslib: 2.8.1 upper-case-first: 2.0.2 - serialize-javascript@4.0.0: - dependencies: - randombytes: 2.1.0 - serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 - serve-static@1.16.2: - dependencies: - encodeurl: 2.0.0 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.19.0 - transitivePeerDependencies: - - supports-color - set-blocking@2.0.0: {} - set-cookie-parser@2.7.1: {} - set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -23857,13 +17770,6 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.1.1 - set-value@2.0.1: - dependencies: - extend-shallow: 2.0.1 - is-extendable: 0.1.1 - is-plain-object: 2.0.4 - split-string: 3.1.0 - set-value@4.1.0: dependencies: is-plain-object: 2.0.4 @@ -23871,31 +17777,13 @@ snapshots: setimmediate@1.0.5: {} - setprototypeof@1.2.0: {} - - sha.js@2.4.12: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - to-buffer: 1.2.1 - - shallow-clone@3.0.1: - dependencies: - kind-of: 6.0.3 - - shebang-command@1.2.0: - dependencies: - shebang-regex: 1.0.0 - shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - shebang-regex@1.0.0: {} - shebang-regex@3.0.0: {} - shell-quote@1.8.2: {} + shell-quote@1.8.3: {} should-equal@2.0.0: dependencies: @@ -23971,18 +17859,6 @@ snapshots: slash@3.0.0: {} - slice-ansi@3.0.0: - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - - slice-ansi@4.0.0: - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 @@ -23993,6 +17869,11 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 + slice-ansi@7.1.2: + dependencies: + ansi-styles: 6.2.3 + is-fullwidth-code-point: 5.1.0 + slugify@1.6.6: {} snake-case@3.0.4: @@ -24000,74 +17881,19 @@ snapshots: dot-case: 3.0.4 tslib: 2.8.1 - snapdragon-node@2.1.1: - dependencies: - define-property: 1.0.0 - isobject: 3.0.1 - snapdragon-util: 3.0.1 - - snapdragon-util@3.0.1: - dependencies: - kind-of: 3.2.2 - - snapdragon@0.8.2: - dependencies: - base: 0.11.2 - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - map-cache: 0.2.2 - source-map: 0.5.7 - source-map-resolve: 0.5.3 - use: 3.1.1 - transitivePeerDependencies: - - supports-color - - source-list-map@2.0.1: {} - source-map-js@1.2.1: {} - source-map-resolve@0.5.3: - dependencies: - atob: 2.1.2 - decode-uri-component: 0.2.2 - resolve-url: 0.2.1 - source-map-url: 0.4.1 - urix: 0.1.0 - source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - source-map-url@0.4.1: {} - source-map@0.5.7: {} source-map@0.6.1: {} - space-separated-tokens@1.1.5: {} - space-separated-tokens@2.0.2: {} - spdx-correct@3.2.0: - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.20 - - spdx-exceptions@2.5.0: {} - - spdx-expression-parse@3.0.1: - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.20 - - spdx-license-ids@3.0.20: {} - - split-string@3.1.0: - dependencies: - extend-shallow: 3.0.2 - split@1.0.1: dependencies: through: 2.3.8 @@ -24076,80 +17902,29 @@ snapshots: dependencies: tslib: 2.8.1 - sprintf-js@1.0.3: {} - - ssri@6.0.2: - dependencies: - figgy-pudding: 3.5.2 - - stable@0.1.8: {} - stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 stackback@0.0.2: {} - state-toggle@1.0.3: {} + statuses@2.0.2: {} - static-extend@0.1.2: - dependencies: - define-property: 0.2.5 - object-copy: 0.1.0 - - statuses@2.0.1: {} - - std-env@3.8.0: {} + std-env@3.9.0: {} stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 internal-slot: 1.1.0 - store2@2.14.4: {} - - storybook-addon-next-router@4.0.2(@storybook/addon-actions@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@storybook/addons@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@storybook/client-api@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(next@14.2.32(@babel/core@7.26.10)(@playwright/test@1.54.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@storybook/addon-actions': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/client-api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - next: 14.2.32(@babel/core@7.26.10)(@playwright/test@1.54.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - tslib: 2.4.0 - - stream-browserify@2.0.2: - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 - stream-combiner@0.2.2: dependencies: duplexer: 0.1.2 through: 2.3.8 - stream-each@1.2.3: - dependencies: - end-of-stream: 1.4.4 - stream-shift: 1.0.3 - - stream-http@2.8.3: - dependencies: - builtin-status-codes: 3.0.0 - inherits: 2.0.4 - readable-stream: 2.3.8 - to-arraybuffer: 1.0.1 - xtend: 4.0.2 - - stream-shift@1.0.3: {} - streamsearch@1.1.0: {} - strict-event-emitter@0.2.8: - dependencies: - events: 3.3.0 - - strict-event-emitter@0.4.6: {} + strict-event-emitter@0.5.1: {} string-argv@0.3.2: {} @@ -24175,6 +17950,11 @@ snapshots: get-east-asian-width: 1.2.0 strip-ansi: 7.1.0 + string-width@8.1.0: + dependencies: + get-east-asian-width: 1.4.0 + strip-ansi: 7.1.2 + string.prototype.matchall@4.0.11: dependencies: call-bind: 1.0.8 @@ -24190,20 +17970,6 @@ snapshots: set-function-name: 2.0.2 side-channel: 1.1.0 - string.prototype.padend@3.1.6: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.6 - es-object-atoms: 1.1.1 - - string.prototype.padstart@3.1.6: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.6 - es-object-atoms: 1.1.1 - string.prototype.trim@1.2.10: dependencies: call-bind: 1.0.8 @@ -24233,10 +17999,6 @@ snapshots: dependencies: safe-buffer: 5.1.2 - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - stringify-entities@4.0.4: dependencies: character-entities-html4: 2.1.0 @@ -24250,9 +18012,11 @@ snapshots: dependencies: ansi-regex: 6.0.1 - strip-bom@3.0.0: {} + strip-ansi@7.1.2: + dependencies: + ansi-regex: 6.2.2 - strip-eof@1.0.0: {} + strip-bom@3.0.0: {} strip-final-newline@2.0.0: {} @@ -24264,33 +18028,17 @@ snapshots: strip-json-comments@3.1.1: {} - strip-literal@1.3.0: + strip-literal@3.1.0: dependencies: - acorn: 8.14.0 + js-tokens: 9.0.1 stripe@10.17.0: dependencies: - '@types/node': 16.18.105 + '@types/node': 16.18.126 qs: 6.13.1 - style-loader@1.3.0(webpack@5.97.1(esbuild@0.18.20)): - dependencies: - loader-utils: 2.0.4 - schema-utils: 2.7.1 - webpack: 5.97.1(esbuild@0.18.20) - - style-loader@2.0.0(webpack@5.97.1(esbuild@0.18.20)): - dependencies: - loader-utils: 2.0.4 - schema-utils: 3.3.0 - webpack: 5.97.1(esbuild@0.18.20) - style-mod@4.1.2: {} - style-to-object@0.3.0: - dependencies: - inline-style-parser: 0.1.1 - style-to-object@1.0.8: dependencies: inline-style-parser: 0.2.4 @@ -24353,23 +18101,19 @@ snapshots: symbol-tree@3.2.4: {} - symbol.prototype.description@1.0.6: + sync-fetch@0.6.0-2: dependencies: - call-bind: 1.0.8 - es-errors: 1.3.0 - get-symbol-description: 1.0.2 - has-symbols: 1.1.0 - object.getownpropertydescriptors: 2.1.8 - - synchronous-promise@2.0.17: {} + node-fetch: 3.3.2 + timeout-signal: 2.0.0 + whatwg-mimetype: 4.0.0 tailwind-merge@1.14.0: {} - tailwindcss-animate@1.0.7(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@16.18.105)(typescript@5.8.3))): + tailwindcss-animate@1.0.7(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@20.14.8)(typescript@5.8.3))): dependencies: - tailwindcss: 3.4.16(ts-node@10.9.2(@types/node@16.18.105)(typescript@5.8.3)) + tailwindcss: 3.4.16(ts-node@10.9.2(@types/node@20.14.8)(typescript@5.8.3)) - tailwindcss@3.4.16(ts-node@10.9.2(@types/node@16.18.105)(typescript@5.8.3)): + tailwindcss@3.4.16(ts-node@10.9.2(@types/node@20.14.8)(typescript@5.8.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -24388,7 +18132,7 @@ snapshots: postcss: 8.5.3 postcss-import: 15.1.0(postcss@8.5.3) postcss-js: 4.0.1(postcss@8.5.3) - postcss-load-config: 4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@16.18.105)(typescript@5.8.3)) + postcss-load-config: 4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.14.8)(typescript@5.8.3)) postcss-nested: 6.2.0(postcss@8.5.3) postcss-selector-parser: 6.1.2 resolve: 1.22.10 @@ -24396,68 +18140,31 @@ snapshots: transitivePeerDependencies: - ts-node - tapable@1.1.3: {} - tapable@2.2.1: {} - telejson@6.0.8: - dependencies: - '@types/is-function': 1.0.3 - global: 4.4.0 - is-function: 1.0.2 - is-regex: 1.2.1 - is-symbol: 1.1.1 - isobject: 4.0.0 - lodash: 4.17.21 - memoizerific: 1.11.3 + tapable@2.3.0: {} - telejson@7.2.0: + terser-webpack-plugin@5.3.14(webpack@5.97.1): dependencies: - memoizerific: 1.11.3 - - terser-webpack-plugin@1.4.6(webpack@4.47.0): - dependencies: - cacache: 12.0.4 - find-cache-dir: 2.1.0 - is-wsl: 1.1.0 - schema-utils: 1.0.0 - serialize-javascript: 4.0.0 - source-map: 0.6.1 - terser: 4.8.1 - webpack: 4.47.0 - webpack-sources: 1.4.3 - worker-farm: 1.7.0 - - terser-webpack-plugin@5.3.11(esbuild@0.18.20)(webpack@5.97.1(esbuild@0.18.20)): - dependencies: - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 - schema-utils: 4.3.0 + schema-utils: 4.3.3 serialize-javascript: 6.0.2 - terser: 5.37.0 - webpack: 5.97.1(esbuild@0.18.20) - optionalDependencies: - esbuild: 0.18.20 + terser: 5.44.0 + webpack: 5.97.1 - terser@4.8.1: + terser@5.44.0: dependencies: - acorn: 8.14.0 - commander: 2.20.3 - source-map: 0.6.1 - source-map-support: 0.5.21 - - terser@5.37.0: - dependencies: - '@jridgewell/source-map': 0.3.6 - acorn: 8.14.0 + '@jridgewell/source-map': 0.3.11 + acorn: 8.15.0 commander: 2.20.3 source-map-support: 0.5.21 - test-exclude@6.0.0: + test-exclude@7.0.1: dependencies: '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 + glob: 10.4.5 + minimatch: 9.0.5 text-table@0.2.0: {} @@ -24474,16 +18181,9 @@ snapshots: readable-stream: 1.0.34 xtend: 2.1.2 - through2@2.0.5: - dependencies: - readable-stream: 2.3.8 - xtend: 4.0.2 - through@2.3.8: {} - timers-browserify@2.0.12: - dependencies: - setimmediate: 1.0.5 + timeout-signal@2.0.0: {} timezones-list@3.1.0: {} @@ -24493,52 +18193,35 @@ snapshots: tinybench@2.9.0: {} - tinypool@0.5.0: {} + tinyexec@0.3.2: {} - tinyspy@2.2.1: {} + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + tinypool@1.1.1: {} + + tinyrainbow@2.0.0: {} + + tinyspy@4.0.4: {} title-case@3.0.3: dependencies: tslib: 2.8.1 - tmp@0.0.33: + tldts-core@7.0.16: {} + + tldts@7.0.16: dependencies: - os-tmpdir: 1.0.2 - - tmpl@1.0.5: {} - - to-arraybuffer@1.0.1: {} - - to-buffer@1.2.1: - dependencies: - isarray: 2.0.5 - safe-buffer: 5.2.1 - typed-array-buffer: 1.0.3 - - to-object-path@0.3.0: - dependencies: - kind-of: 3.2.2 - - to-regex-range@2.1.1: - dependencies: - is-number: 3.0.0 - repeat-string: 1.6.1 + tldts-core: 7.0.16 to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - to-regex@3.0.2: - dependencies: - define-property: 2.0.2 - extend-shallow: 3.0.2 - regex-not: 1.0.2 - safe-regex: 1.1.0 - toggle-selection@1.0.6: {} - toidentifier@1.0.1: {} - toposort@2.0.2: {} totalist@1.1.0: {} @@ -24550,6 +18233,10 @@ snapshots: universalify: 0.2.0 url-parse: 1.5.10 + tough-cookie@6.0.0: + dependencies: + tldts: 7.0.16 + tr46@0.0.3: {} tr46@4.1.1: @@ -24558,20 +18245,12 @@ snapshots: trim-lines@3.0.1: {} - trim-trailing-lines@1.1.4: {} - - trim@0.0.1: {} - - trough@1.0.5: {} - trough@2.2.0: {} ts-api-utils@1.4.3(typescript@5.8.3): dependencies: typescript: 5.8.3 - ts-dedent@2.2.0: {} - ts-interface-checker@0.1.13: {} ts-invariant@0.10.3: @@ -24580,14 +18259,14 @@ snapshots: ts-log@2.2.7: {} - ts-node@10.9.2(@types/node@16.18.105)(typescript@5.8.3): + ts-node@10.9.2(@types/node@20.14.8)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 16.18.105 + '@types/node': 20.14.8 acorn: 8.14.0 acorn-walk: 8.3.2 arg: 4.1.3 @@ -24628,8 +18307,6 @@ snapshots: tslib@1.14.1: {} - tslib@2.4.0: {} - tslib@2.4.1: {} tslib@2.5.3: {} @@ -24643,28 +18320,15 @@ snapshots: tslib: 1.14.1 typescript: 5.8.3 - tty-browserify@0.0.0: {} - type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - type-detect@4.1.0: {} - type-fest@0.20.2: {} - type-fest@0.21.3: {} - - type-fest@0.6.0: {} - - type-fest@0.8.1: {} - type-fest@2.19.0: {} - type-is@1.6.18: - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 + type-fest@4.41.0: {} typed-array-buffer@1.0.3: dependencies: @@ -24717,12 +18381,6 @@ snapshots: possible-typed-array-names: 1.0.0 reflect.getprototypeof: 1.0.8 - typedarray-to-buffer@3.1.5: - dependencies: - is-typedarray: 1.0.0 - - typedarray@0.0.6: {} - typedoc-plugin-markdown@4.9.0(typedoc@0.28.13(typescript@5.8.3)): dependencies: typedoc: 0.28.13(typescript@5.8.3) @@ -24742,11 +18400,6 @@ snapshots: uc.micro@2.1.0: {} - ufo@1.5.4: {} - - uglify-js@3.19.3: - optional: true - unbox-primitive@1.1.0: dependencies: call-bound: 1.0.4 @@ -24758,15 +18411,12 @@ snapshots: undici-types@5.26.5: {} + undici-types@6.21.0: {} + unfetch@3.1.2: {} unfetch@4.2.0: {} - unherit@1.1.3: - dependencies: - inherits: 2.0.4 - xtend: 4.0.2 - unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-match-property-ecmascript@2.0.0: @@ -24788,89 +18438,33 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unified@9.2.0: - dependencies: - '@types/unist': 2.0.10 - bail: 1.0.5 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 2.1.0 - trough: 1.0.5 - vfile: 4.2.1 - - union-value@1.0.1: - dependencies: - arr-union: 3.1.0 - get-value: 2.0.6 - is-extendable: 0.1.1 - set-value: 2.0.1 - - unique-filename@1.1.1: - dependencies: - unique-slug: 2.0.2 - - unique-slug@2.0.2: - dependencies: - imurmurhash: 0.1.4 - - unist-builder@2.0.3: {} - unist-util-find-after@5.0.0: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.0 - unist-util-generated@1.1.6: {} - - unist-util-is@4.1.0: {} - unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.3 - unist-util-position@3.1.0: {} - unist-util-position@5.0.0: dependencies: '@types/unist': 3.0.3 - unist-util-remove-position@2.0.1: - dependencies: - unist-util-visit: 2.0.3 - unist-util-remove-position@5.0.0: dependencies: '@types/unist': 3.0.3 unist-util-visit: 5.0.0 - unist-util-remove@2.1.0: - dependencies: - unist-util-is: 4.1.0 - - unist-util-stringify-position@2.0.3: - dependencies: - '@types/unist': 2.0.10 - unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 - unist-util-visit-parents@3.1.1: - dependencies: - '@types/unist': 2.0.10 - unist-util-is: 4.1.0 - unist-util-visit-parents@6.0.1: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.0 - unist-util-visit@2.0.3: - dependencies: - '@types/unist': 2.0.10 - unist-util-is: 4.1.0 - unist-util-visit-parents: 3.1.1 - unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.3 @@ -24885,15 +18479,7 @@ snapshots: dependencies: normalize-path: 2.1.1 - unpipe@1.0.0: {} - - unset-value@1.0.0: - dependencies: - has-value: 0.3.1 - isobject: 3.0.1 - - upath@1.2.0: - optional: true + until-async@3.0.2: {} update-browserslist-db@1.1.3(browserslist@4.25.4): dependencies: @@ -24915,21 +18501,12 @@ snapshots: urijs@1.19.11: {} - urix@0.1.0: {} - url-parse@1.5.10: dependencies: querystringify: 2.2.0 requires-port: 1.0.0 - url@0.11.4: - dependencies: - punycode: 1.4.1 - qs: 6.13.1 - - urlpattern-polyfill@10.0.0: {} - - urlpattern-polyfill@8.0.2: {} + urlpattern-polyfill@10.1.0: {} use-callback-ref@1.3.2(@types/react@18.2.73)(react@18.2.0): dependencies: @@ -24950,168 +18527,105 @@ snapshots: dependencies: react: 18.2.0 - use@3.1.1: {} - util-deprecate@1.0.2: {} - util@0.10.4: - dependencies: - inherits: 2.0.3 - - util@0.11.1: - dependencies: - inherits: 2.0.3 - - util@0.12.5: - dependencies: - inherits: 2.0.4 - is-arguments: 1.1.1 - is-generator-function: 1.0.10 - is-typed-array: 1.1.15 - which-typed-array: 1.1.19 - - utila@0.4.0: {} - utility-types@3.11.0: {} - utils-merge@1.0.1: {} - - uuid-browser@3.1.0: {} - uuid@9.0.1: {} v8-compile-cache-lib@3.0.1: {} - v8-to-istanbul@9.3.0: - dependencies: - '@jridgewell/trace-mapping': 0.3.30 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - - validate-npm-package-license@3.0.4: - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - validator@13.12.0: {} - value-or-promise@1.0.12: {} - - vary@1.1.2: {} - - vfile-location@3.2.0: {} - - vfile-message@2.0.4: - dependencies: - '@types/unist': 2.0.10 - unist-util-stringify-position: 2.0.3 - vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 - vfile@4.2.1: - dependencies: - '@types/unist': 2.0.10 - is-buffer: 2.0.5 - unist-util-stringify-position: 2.0.3 - vfile-message: 2.0.4 - vfile@6.0.3: dependencies: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@0.32.4(@types/node@16.18.105)(terser@5.37.0): + vite-node@3.2.4(@types/node@20.14.8)(terser@5.44.0): dependencies: cac: 6.7.14 - debug: 4.4.1 - mlly: 1.7.3 - pathe: 1.1.2 - picocolors: 1.1.1 - vite: 4.5.14(@types/node@16.18.105)(terser@5.37.0) + debug: 4.4.3 + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 5.4.21(@types/node@20.14.8)(terser@5.44.0) transitivePeerDependencies: - '@types/node' - less - lightningcss - sass + - sass-embedded - stylus - sugarss - supports-color - terser - vite-tsconfig-paths@4.3.2(typescript@5.8.3)(vite@5.4.20(@types/node@16.18.105)(terser@5.37.0)): + vite-tsconfig-paths@4.3.2(typescript@5.8.3)(vite@5.4.21(@types/node@20.14.8)(terser@5.44.0)): dependencies: debug: 4.4.1 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.8.3) optionalDependencies: - vite: 5.4.20(@types/node@16.18.105)(terser@5.37.0) + vite: 5.4.21(@types/node@20.14.8)(terser@5.44.0) transitivePeerDependencies: - supports-color - typescript - vite@4.5.14(@types/node@16.18.105)(terser@5.37.0): + vite@5.4.21(@types/node@20.14.8)(terser@5.44.0): dependencies: - esbuild: 0.18.20 - postcss: 8.5.3 - rollup: 3.29.5 - optionalDependencies: - '@types/node': 16.18.105 - fsevents: 2.3.3 - terser: 5.37.0 - - vite@5.4.20(@types/node@16.18.105)(terser@5.37.0): - dependencies: - esbuild: 0.21.5 + esbuild: 0.25.10 postcss: 8.5.3 rollup: 4.52.2 optionalDependencies: - '@types/node': 16.18.105 + '@types/node': 20.14.8 fsevents: 2.3.3 - terser: 5.37.0 + terser: 5.44.0 - vitest@0.32.4(jsdom@22.1.0)(playwright@1.54.1)(terser@5.37.0): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.14.8)(jsdom@22.1.0)(msw@2.11.4(@types/node@20.14.8)(typescript@5.8.3))(terser@5.44.0): dependencies: - '@types/chai': 4.3.14 - '@types/chai-subset': 1.3.5 - '@types/node': 16.18.105 - '@vitest/expect': 0.32.4 - '@vitest/runner': 0.32.4 - '@vitest/snapshot': 0.32.4 - '@vitest/spy': 0.32.4 - '@vitest/utils': 0.32.4 - acorn: 8.14.0 - acorn-walk: 8.3.2 - cac: 6.7.14 - chai: 4.4.1 - debug: 4.4.1 - local-pkg: 0.4.3 - magic-string: 0.30.17 - pathe: 1.1.2 - picocolors: 1.1.1 - std-env: 3.8.0 - strip-literal: 1.3.0 + '@types/chai': 5.2.2 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(msw@2.11.4(@types/node@20.14.8)(typescript@5.8.3))(vite@5.4.21(@types/node@20.14.8)(terser@5.44.0)) + '@vitest/pretty-format': 3.2.4 + '@vitest/runner': 3.2.4 + '@vitest/snapshot': 3.2.4 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 + debug: 4.4.3 + expect-type: 1.2.2 + magic-string: 0.30.19 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.9.0 tinybench: 2.9.0 - tinypool: 0.5.0 - vite: 4.5.14(@types/node@16.18.105)(terser@5.37.0) - vite-node: 0.32.4(@types/node@16.18.105)(terser@5.37.0) + tinyexec: 0.3.2 + tinyglobby: 0.2.15 + tinypool: 1.1.1 + tinyrainbow: 2.0.0 + vite: 5.4.21(@types/node@20.14.8)(terser@5.44.0) + vite-node: 3.2.4(@types/node@20.14.8)(terser@5.44.0) why-is-node-running: 2.3.0 optionalDependencies: + '@types/debug': 4.1.12 + '@types/node': 20.14.8 jsdom: 22.1.0 - playwright: 1.54.1 transitivePeerDependencies: - less - lightningcss + - msw - sass + - sass-embedded - stylus - sugarss - supports-color - terser - vm-browserify@1.1.2: {} - vscode-languageserver-types@3.17.5: {} vue-eslint-parser@9.4.3(eslint@8.57.0): @@ -25133,54 +18647,13 @@ snapshots: dependencies: xml-name-validator: 4.0.0 - walker@1.0.8: - dependencies: - makeerror: 1.0.12 - - watchpack-chokidar2@2.0.1: - dependencies: - chokidar: 2.1.8 - transitivePeerDependencies: - - supports-color - optional: true - - watchpack@1.7.5: - dependencies: - graceful-fs: 4.2.11 - neo-async: 2.6.2 - optionalDependencies: - chokidar: 3.6.0 - watchpack-chokidar2: 2.0.1 - transitivePeerDependencies: - - supports-color - - watchpack@2.4.2: + watchpack@2.4.4: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - wcwidth@1.0.1: - dependencies: - defaults: 1.0.4 - - web-encoding@1.1.5: - dependencies: - util: 0.12.5 - optionalDependencies: - '@zxing/text-encoding': 0.9.0 - - web-namespaces@1.1.4: {} - web-streams-polyfill@3.3.3: {} - webcrypto-core@1.8.1: - dependencies: - '@peculiar/asn1-schema': 2.3.13 - '@peculiar/json-schema': 1.1.12 - asn1js: 3.0.5 - pvtsutils: 1.3.6 - tslib: 2.8.1 - webidl-conversions@3.0.1: {} webidl-conversions@7.0.0: {} @@ -25200,84 +18673,33 @@ snapshots: - bufferutil - utf-8-validate - webpack-dev-middleware@4.3.0(webpack@5.97.1(esbuild@0.18.20)): - dependencies: - colorette: 1.4.0 - mem: 8.1.1 - memfs: 3.5.3 - mime-types: 2.1.35 - range-parser: 1.2.1 - schema-utils: 3.3.0 - webpack: 5.97.1(esbuild@0.18.20) + webpack-sources@3.3.3: {} - webpack-hot-middleware@2.26.1: - dependencies: - ansi-html-community: 0.0.8 - html-entities: 2.5.2 - strip-ansi: 6.0.1 - - webpack-sources@1.4.3: - dependencies: - source-list-map: 2.0.1 - source-map: 0.6.1 - - webpack-sources@3.2.3: {} - - webpack-virtual-modules@0.4.6: {} - - webpack@4.47.0: - dependencies: - '@webassemblyjs/ast': 1.9.0 - '@webassemblyjs/helper-module-context': 1.9.0 - '@webassemblyjs/wasm-edit': 1.9.0 - '@webassemblyjs/wasm-parser': 1.9.0 - acorn: 6.4.2 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - chrome-trace-event: 1.0.4 - enhanced-resolve: 4.5.0 - eslint-scope: 4.0.3 - json-parse-better-errors: 1.0.2 - loader-runner: 2.4.0 - loader-utils: 1.4.2 - memory-fs: 0.4.1 - micromatch: 3.1.10 - mkdirp: 0.5.6 - neo-async: 2.6.2 - node-libs-browser: 2.2.1 - schema-utils: 1.0.0 - tapable: 1.1.3 - terser-webpack-plugin: 1.4.6(webpack@4.47.0) - watchpack: 1.7.5 - webpack-sources: 1.4.3 - transitivePeerDependencies: - - supports-color - - webpack@5.97.1(esbuild@0.18.20): + webpack@5.97.1: dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.14.0 + acorn: 8.15.0 browserslist: 4.25.4 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.17.1 - es-module-lexer: 1.5.3 + enhanced-resolve: 5.18.3 + es-module-lexer: 1.7.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 + loader-runner: 4.3.1 mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(esbuild@0.18.20)(webpack@5.97.1(esbuild@0.18.20)) - watchpack: 2.4.2 - webpack-sources: 3.2.3 + tapable: 2.3.0 + terser-webpack-plugin: 5.3.14(webpack@5.97.1) + watchpack: 2.4.4 + webpack-sources: 3.3.3 transitivePeerDependencies: - '@swc/core' - esbuild @@ -25289,6 +18711,8 @@ snapshots: whatwg-mimetype@3.0.0: {} + whatwg-mimetype@4.0.0: {} + whatwg-url@12.0.1: dependencies: tr46: 4.1.1 @@ -25342,10 +18766,6 @@ snapshots: gopd: 1.2.0 has-tostringtag: 1.0.2 - which@1.3.1: - dependencies: - isexe: 2.0.0 - which@2.0.2: dependencies: isexe: 2.0.0 @@ -25355,16 +18775,6 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 - wide-align@1.1.5: - dependencies: - string-width: 4.2.3 - - wordwrap@1.0.0: {} - - worker-farm@1.7.0: - dependencies: - errno: 0.1.8 - wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 @@ -25389,19 +18799,20 @@ snapshots: string-width: 7.2.0 strip-ansi: 7.1.0 - wrappy@1.0.2: {} - - write-file-atomic@3.0.3: + wrap-ansi@9.0.2: dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 + ansi-styles: 6.2.3 + string-width: 7.2.0 + strip-ansi: 7.1.2 + + wrappy@1.0.2: {} ws@7.5.10: {} ws@8.17.1: {} + ws@8.18.3: {} + xml-name-validator@4.0.0: {} xmlchars@2.2.0: {} @@ -25410,16 +18821,12 @@ snapshots: dependencies: object-keys: 0.4.0 - xtend@4.0.2: {} - y18n@4.0.3: {} y18n@5.0.8: {} yallist@3.1.1: {} - yaml-ast-parser@0.0.43: {} - yaml@1.10.2: {} yaml@2.4.5: {} @@ -25463,7 +18870,7 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.1.1: {} + yoctocolors-cjs@2.1.3: {} yup-password@0.2.2: {} @@ -25482,6 +18889,4 @@ snapshots: zod@3.24.1: {} - zwitch@1.0.5: {} - zwitch@2.0.4: {} diff --git a/dashboard/project.nix b/dashboard/project.nix index e02c6c58f..6900c5af3 100644 --- a/dashboard/project.nix +++ b/dashboard/project.nix @@ -66,7 +66,6 @@ let "${submodule}/tsconfig.test.json" "${submodule}/vitest.config.ts" "${submodule}/vitest.global-setup.ts" - (inDirectory "${submodule}/.storybook") (inDirectory "${submodule}/e2e") (inDirectory "${submodule}/public") (inDirectory "${submodule}/src") @@ -167,6 +166,12 @@ rec { ''; }; + packageWithDisabledCSP = package.overrideAttrs (oldAttrs: { + configurePhase = oldAttrs.configurePhase + '' + export CSP_MODE=disabled + ''; + }); + dockerImage = pkgs.runCommand "image-as-dir" { } '' ${(nix2containerPkgs.nix2container.buildImage { inherit name created; @@ -176,7 +181,7 @@ rec { copyToRoot = pkgs.buildEnv { name = "image"; paths = [ - package + packageWithDisabledCSP (pkgs.writeTextFile { name = "tmp-file"; text = '' @@ -213,5 +218,3 @@ rec { }).copyTo}/bin/copy-to dir:$out ''; } - - diff --git a/dashboard/react-table-config.d.ts b/dashboard/react-table-config.d.ts index 7403b86fd..112ffa598 100644 --- a/dashboard/react-table-config.d.ts +++ b/dashboard/react-table-config.d.ts @@ -64,7 +64,6 @@ declare module 'react-table' { export interface Cell< D extends Record = Record, - V = any, > extends UseGroupByCellProps, UseRowStateCellProps {} diff --git a/dashboard/src/components/common/DragAndDropList/DragAndDropList.tsx b/dashboard/src/components/common/DragAndDropList/DragAndDropList.tsx new file mode 100644 index 000000000..7d9e37499 --- /dev/null +++ b/dashboard/src/components/common/DragAndDropList/DragAndDropList.tsx @@ -0,0 +1,41 @@ +import { cn } from '@/lib/utils'; +import { + DragDropContext, + Droppable, + type DragDropContextProps, + type DroppableProps, +} from '@hello-pangea/dnd'; +import type { PropsWithChildren } from 'react'; + +type DragAndDropListProps = Omit< + DroppableProps & DragDropContextProps, + 'children' +> & { + wrapperClassName?: string; +}; + +function DragAndDropList({ + droppableId, + onDragEnd, + children, + wrapperClassName, +}: PropsWithChildren) { + return ( + + + {(provided) => ( +
+ {children} + {provided.placeholder} +
+ )} +
+
+ ); +} + +export default DragAndDropList; diff --git a/dashboard/src/components/common/DragAndDropList/DraggableItem.tsx b/dashboard/src/components/common/DragAndDropList/DraggableItem.tsx new file mode 100644 index 000000000..5e9e8f857 --- /dev/null +++ b/dashboard/src/components/common/DragAndDropList/DraggableItem.tsx @@ -0,0 +1,30 @@ +import { cn } from '@/lib/utils'; +import { Draggable, type DraggableProps } from '@hello-pangea/dnd'; +import type { PropsWithChildren } from 'react'; + +export type DraggableItemProps = PropsWithChildren< + Omit & { className?: string } +>; + +function DraggableItem({ + children, + className, + ...draggableProps +}: DraggableItemProps) { + return ( + + {(provided) => ( +
+ {children} +
+ )} +
+ ); +} + +export default DraggableItem; diff --git a/dashboard/src/components/common/DragAndDropList/index.ts b/dashboard/src/components/common/DragAndDropList/index.ts new file mode 100644 index 000000000..ea8582283 --- /dev/null +++ b/dashboard/src/components/common/DragAndDropList/index.ts @@ -0,0 +1,3 @@ +export { default as DragAndDropList } from './DragAndDropList'; +export * from './DraggableItem'; +export { default as DraggableItem } from './DraggableItem'; diff --git a/dashboard/src/components/common/TimePicker/TimePickerInput.tsx b/dashboard/src/components/common/TimePicker/TimePickerInput.tsx index 3438f3667..0263460dc 100644 --- a/dashboard/src/components/common/TimePicker/TimePickerInput.tsx +++ b/dashboard/src/components/common/TimePicker/TimePickerInput.tsx @@ -123,7 +123,7 @@ const TimePickerInput = React.forwardRef< id={id || picker} name={name || picker} className={cn( - 'w-[48px] text-center font-mono text-base tabular-nums focus:bg-accent focus:text-accent-foreground [&::-webkit-inner-spin-button]:appearance-none', + 'w-[48px] text-center font-mono text-base tabular-nums focus:bg-accent-background focus:text-accent-foreground [&::-webkit-inner-spin-button]:appearance-none', className, )} value={value || calculatedValue} diff --git a/dashboard/src/components/form/FormActivityIndicator/FormActivityIndicator.tsx b/dashboard/src/components/form/FormActivityIndicator/FormActivityIndicator.tsx index 324fe2259..a5a1ad714 100644 --- a/dashboard/src/components/form/FormActivityIndicator/FormActivityIndicator.tsx +++ b/dashboard/src/components/form/FormActivityIndicator/FormActivityIndicator.tsx @@ -1,26 +1,25 @@ -import { ActivityIndicator } from '@/components/ui/v2/ActivityIndicator'; -import type { BoxProps } from '@/components/ui/v2/Box'; -import { Box } from '@/components/ui/v2/Box'; -import { twMerge } from 'tailwind-merge'; +import { Spinner } from '@/components/ui/v3/spinner'; +import { cn } from '@/lib/utils'; -export interface FormActivityIndicatorProps extends BoxProps {} +export interface FormActivityIndicatorProps { + className?: string; +} export default function FormActivityIndicator({ className, ...props }: FormActivityIndicatorProps) { return ( - - - + + Loading form... + + ); } diff --git a/dashboard/src/components/form/FormInput/FormInput.tsx b/dashboard/src/components/form/FormInput/FormInput.tsx index 1f39f102b..bd7abf433 100644 --- a/dashboard/src/components/form/FormInput/FormInput.tsx +++ b/dashboard/src/components/form/FormInput/FormInput.tsx @@ -1,12 +1,27 @@ import { FormControl, + FormDescription, FormField, FormItem, FormLabel, FormMessage, } from '@/components/ui/v3/form'; import { Input } from '@/components/ui/v3/input'; -import type { Control, FieldPath, FieldValues } from 'react-hook-form'; +import { cn, isNotEmptyValue } from '@/lib/utils'; +import { + type ChangeEvent, + type ForwardedRef, + forwardRef, + type ReactNode, +} from 'react'; +import type { + Control, + ControllerRenderProps, + FieldPath, + FieldValues, + PathValue, +} from 'react-hook-form'; +import { mergeRefs } from 'react-merge-refs'; const inputClasses = '!bg-transparent aria-[invalid=true]:border-red-500 aria-[invalid=true]:focus:border-red-500 aria-[invalid=true]:focus:ring-red-500'; @@ -17,43 +32,116 @@ interface FormInputProps< > { control: Control; name: TName; - label: string; + label: ReactNode; placeholder?: string; className?: string; type?: string; + inline?: boolean; + helperText?: string | null; + transformValue?: ( + value: PathValue, + ) => PathValue; } -function FormInput< +function InnerFormInput< TFieldValues extends FieldValues = FieldValues, TName extends FieldPath = FieldPath, ->({ - control, - name, - label, - placeholder, - className = '', - type = 'text', -}: FormInputProps) { +>( + { + control, + name, + label, + placeholder, + className = '', + type = 'text', + inline, + helperText, + transformValue, + }: FormInputProps, + ref: ForwardedRef, +) { + function getOnChangeHandlerAndValue( + field: ControllerRenderProps, + ): [ + PathValue, + (e: ChangeEvent) => void, + ] { + const { onChange, value } = field; + + function handleOnChange(event: ChangeEvent) { + let transformedValue = event.target.value; + if (isNotEmptyValue(transformValue)) { + transformedValue = transformValue( + event.target.value as PathValue, + ); + } + onChange(transformedValue); + } + + const transformedValue = isNotEmptyValue(transformValue) + ? transformValue(value) + : value; + + return [transformedValue, handleOnChange]; + } return ( ( - - {label} - - - - - - )} + render={({ field }) => { + const { onChange, value, ...fieldProps } = field; + + const [tValue, handleOnChange] = getOnChangeHandlerAndValue(field); + return ( + + + {label} + +
+ + + + {!!helperText && ( + + {helperText} + + )} + +
+
+ ); + }} /> ); } +const FormInput = forwardRef(InnerFormInput) as < + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +>( + props: FormInputProps & { + ref?: ForwardedRef; + }, +) => ReturnType; + export default FormInput; diff --git a/dashboard/src/components/form/FormSelect/FormSelect.tsx b/dashboard/src/components/form/FormSelect/FormSelect.tsx new file mode 100644 index 000000000..b6ccac505 --- /dev/null +++ b/dashboard/src/components/form/FormSelect/FormSelect.tsx @@ -0,0 +1,125 @@ +import { + FormControl, + FormDescription, + FormField, + FormItem, + FormLabel, + FormMessage, +} from '@/components/ui/v3/form'; +import { + Select, + SelectContent, + SelectTrigger, + SelectValue, +} from '@/components/ui/v3/select'; +import { cn, isNotEmptyValue } from '@/lib/utils'; +import type { PropsWithChildren, ReactNode } from 'react'; +import type { + Control, + ControllerRenderProps, + FieldPath, + FieldValues, + PathValue, +} from 'react-hook-form'; + +interface FormSelectProps< + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +> { + control: Control; + name: TName; + label: ReactNode; + placeholder?: string; + className?: string; + inline?: boolean; + helperText?: string | null; + transformValue?: ( + value: PathValue, + ) => PathValue; +} + +function FormSelect< + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +>({ + control, + name, + label, + placeholder, + className = '', + inline, + helperText, + children, + transformValue, +}: PropsWithChildren>) { + function getOnChangeHandlerAndValue( + field: ControllerRenderProps, + ): [string, (v: string) => void] { + const { onChange, value } = field; + + function handleOnChange(newValue: string) { + const transformedNewValue = isNotEmptyValue(transformValue) + ? transformValue(newValue as PathValue) + : newValue; + + onChange(transformedNewValue); + } + + const transformedValue: string = isNotEmptyValue(transformValue) + ? transformValue(value as PathValue) + : value; + + return [transformedValue, handleOnChange]; + } + return ( + { + const { onChange, value, ...selectProps } = field; + const [tValue, handleOnChange] = getOnChangeHandlerAndValue(field); + return ( + + + {label} + +
+ + {!!helperText && ( + + {helperText} + + )} + +
+
+ ); + }} + /> + ); +} + +export default FormSelect; diff --git a/dashboard/src/components/form/FormSelect/index.ts b/dashboard/src/components/form/FormSelect/index.ts new file mode 100644 index 000000000..cfedc469a --- /dev/null +++ b/dashboard/src/components/form/FormSelect/index.ts @@ -0,0 +1 @@ +export { default as FormSelect } from './FormSelect'; diff --git a/dashboard/src/components/form/FormTextarea/FormTextarea.tsx b/dashboard/src/components/form/FormTextarea/FormTextarea.tsx new file mode 100644 index 000000000..741160cc1 --- /dev/null +++ b/dashboard/src/components/form/FormTextarea/FormTextarea.tsx @@ -0,0 +1,97 @@ +import { + FormControl, + FormDescription, + FormField, + FormItem, + FormLabel, + FormMessage, +} from '@/components/ui/v3/form'; +import { Textarea } from '@/components/ui/v3/textarea'; +import { cn } from '@/lib/utils'; +import { forwardRef, type ForwardedRef, type ReactNode } from 'react'; +import type { Control, FieldPath, FieldValues } from 'react-hook-form'; +import { mergeRefs } from 'react-merge-refs'; + +const inputClasses = + '!bg-transparent aria-[invalid=true]:border-red-500 aria-[invalid=true]:focus:border-red-500 aria-[invalid=true]:focus:ring-red-500'; + +interface FormTextareaProps< + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +> { + control: Control; + name: TName; + label: ReactNode; + placeholder?: string; + className?: string; + inline?: boolean; + helperText?: string | null; +} + +function InnerFormTextarea< + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +>( + { + control, + name, + label, + placeholder, + className = '', + inline, + helperText, + }: FormTextareaProps, + ref: ForwardedRef, +) { + return ( + ( + + + {label} + +
+ +