diff --git a/.changeset/tame-lizards-fly.md b/.changeset/tame-lizards-fly.md new file mode 100644 index 00000000000..aae5fb91bbe --- /dev/null +++ b/.changeset/tame-lizards-fly.md @@ -0,0 +1,5 @@ +--- +'@graphql-tools/utils': minor +--- + +Introduce fast type checkers that avoid `instanceOf` diff --git a/.changeset/tidy-nails-lick.md b/.changeset/tidy-nails-lick.md new file mode 100644 index 00000000000..a32a1880f73 --- /dev/null +++ b/.changeset/tidy-nails-lick.md @@ -0,0 +1,9 @@ +--- +'@graphql-tools/executor': patch +'@graphql-tools/schema': patch +'@graphql-tools/utils': patch +'@graphql-tools/load': patch +'@graphql-tools/mock': patch +--- + +Use faster type checkers, and avoid `instanceOf` diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 4183270a787..dd97cb55e3c 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -49,7 +49,7 @@ module.exports = { { name: 'graphql', importNames: ['ExecutionResult', 'ExecutionArgs', 'execute', 'subscribe'], - message: 'Please use `execute` and `subscribe` from `@graphql-tools/executro` instead.', + message: 'Please use `execute` and `subscribe` from `@graphql-tools/executor` instead.', }, ], }, diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml new file mode 100644 index 00000000000..7767437c906 --- /dev/null +++ b/.github/codeql/codeql-config.yml @@ -0,0 +1,10 @@ +paths-ignore: + - '**/*.test.ts' + - '**/*.spec.ts' + - '**/__tests__/**' + - '**/tests/**' + - '**/test/**' + - '**/test-files/**' + - '**/dist/**' + - '**/node_modules/**' + - '**/scripts/**' diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000000..184c0bf4571 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,43 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: 'docker' # See documentation for possible values + directory: '/' # Location of package manifests + schedule: + interval: 'daily' + groups: + actions-deps: + patterns: + - '*' + - package-ecosystem: 'github-actions' # See documentation for possible values + directory: '/' # Location of package manifests + schedule: + interval: 'daily' + groups: + actions-deps: + patterns: + - '*' + - package-ecosystem: 'npm' # See documentation for possible values + directory: '/' # Location of package manifests + schedule: + interval: 'daily' + groups: + actions-deps: + patterns: + - '*' + exclude-patterns: + - '@changesets/*' + - 'typescript' + - '^@theguild/' + - 'next' + - 'tailwindcss' + - 'husky' + - '@pulumi/*' + - 'typedoc' + update-types: + - 'minor' + - 'patch' diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index 1b833ae6ede..00000000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: Benchmark - -env: - NODE_NO_WARNINGS: true - CI: true - -on: - pull_request: - workflow_dispatch: - -jobs: - federation-benchmark: - name: Federation Benchmark with ${{matrix.products_size}} Products - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - products_size: [3, 10, 50, 100, 1000] - steps: - - name: Checkout Master - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - - name: Setup env - uses: the-guild-org/shared-config/setup@main - with: - nodeVersion: 18 - - - name: Build packages - run: yarn build - - name: Setup K6 - run: | - wget https://github.com/grafana/k6/releases/download/v0.37.0/k6-v0.37.0-linux-amd64.deb - sudo apt-get update - sudo apt-get install ./k6-v0.37.0-linux-amd64.deb - - name: GraphQL API - working-directory: ./benchmark/federation - run: | - yarn start & - yarn wait-on tcp:3000 - env: - PRODUCTS_SIZE: ${{matrix.products_size}} - - name: Federation - run: k6 -e ENDPOINT=federation run --out json=federation.json benchmark/federation/k6.js - - name: Stitching - uses: nick-fields/retry@v3 - with: - timeout_minutes: 10 - max_attempts: 3 - command: - k6 -e ENDPOINT=stitching -e PRODUCTS_SIZE=${{matrix.products_size}} -e GITHUB_PR=${{ - github.event.number }} -e GITHUB_SHA=${{ github.sha }} -e - GITHUB_TOKEN=${{secrets.GITHUB_TOKEN}} run --out json=stitching.json - benchmark/federation/k6.js - - name: Monolith - run: k6 -e ENDPOINT=monolith run --out json=monolith.json benchmark/federation/k6.js - - name: Compare - run: - node benchmark/compare monolith:monolith.json federation:federation.json - stitching:stitching.json diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 00000000000..bdcaae59627 --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,105 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: 'CodeQL Advanced' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + push: + branches: ['master'] + pull_request: + branches: ['master'] + schedule: + - cron: '17 4 * * 0' + +jobs: + analyze: + name: Analyze (${{ matrix.language }}) + # Runner size impacts CodeQL analysis time. To learn more, please see: + # - https://gh.io/recommended-hardware-resources-for-running-codeql + # - https://gh.io/supported-runners-and-hardware-resources + # - https://gh.io/using-larger-runners (GitHub.com only) + # Consider using larger runners or machines with greater resources for possible analysis time improvements. + runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} + permissions: + # required for all workflows + security-events: write + + # required to fetch internal or private CodeQL packs + packages: read + + # only required for workflows in private repositories + actions: read + contents: read + + strategy: + fail-fast: false + matrix: + include: + - language: javascript + build-mode: none + - language: javascript-typescript + build-mode: none + # CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' + # Use `c-cpp` to analyze code written in C, C++ or both + # Use 'java-kotlin' to analyze code written in Java, Kotlin or both + # Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both + # To learn more about changing the languages that are analyzed or customizing the build mode for your analysis, + # see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning. + # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how + # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages + steps: + - name: Checkout repository + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + + # Add any setup steps before running the `github/codeql-action/init` action. + # This includes steps like installing compilers or runtimes (`actions/setup-node` + # or others). This is typically only required for manual builds. + # - name: Setup runtime (example) + # uses: actions/setup-example@v1 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3 + with: + config-file: ./.github/codeql/codeql-config.yml + languages: ${{ matrix.language }} + build-mode: ${{ matrix.build-mode }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + + # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality + + # If the analyze step fails for one of the languages you are analyzing with + # "We were unable to automatically build your code", modify the matrix above + # to set the build mode to "manual" for that language. Then modify this step + # to build your code. + # โ„น๏ธ Command-line programs to run using the OS shell. + # ๐Ÿ“š See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + - if: matrix.build-mode == 'manual' + shell: bash + run: | + echo 'If you are using a "manual" build mode for one or more of the' \ + 'languages you are analyzing, replace this with the commands to build' \ + 'your code, for example:' + echo ' make bootstrap' + echo ' make release' + exit 1 + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3 + with: + category: '/language:${{matrix.language}}' diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 87a5eb33c8b..ee5448e47fc 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -4,12 +4,16 @@ on: branches: - master +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: dependencies: uses: the-guild-org/shared-config/.github/workflows/changesets-dependencies.yaml@main if: ${{ github.event.pull_request.title != 'Upcoming Release Changes' }} secrets: - githubToken: ${{ secrets.GUILD_BOT_TOKEN }} + githubToken: ${{ secrets.GITHUB_TOKEN }} alpha: permissions: @@ -20,7 +24,7 @@ jobs: with: npmTag: alpha buildScript: build - nodeVersion: 18 + nodeVersion: 22 secrets: - githubToken: ${{ secrets.GUILD_BOT_TOKEN }} + githubToken: ${{ secrets.GITHUB_TOKEN }} npmToken: ${{ secrets.NODE_AUTH_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f8ec63bc9d1..3edc7823ebb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,15 +4,20 @@ on: branches: - master +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: stable: permissions: - contents: read + contents: write id-token: write + pull-requests: write uses: the-guild-org/shared-config/.github/workflows/release-stable.yml@main with: releaseScript: release - nodeVersion: 18 + nodeVersion: 22 secrets: - githubToken: ${{ secrets.GUILD_BOT_TOKEN }} + githubToken: ${{ secrets.GITHUB_TOKEN }} npmToken: ${{ secrets.NODE_AUTH_TOKEN }} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 972844e61fe..27efb284984 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -5,6 +5,10 @@ env: NODE_OPTIONS: '--max-old-space-size=8192' CI: true +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + on: push: branches: @@ -12,8 +16,8 @@ on: pull_request: jobs: - prettier-check: - name: ๐Ÿงน Prettier Check + typecheck-15: + name: Type Check on GraphQL v15 runs-on: ubuntu-latest steps: - name: Checkout Master @@ -22,44 +26,32 @@ jobs: - name: Setup env uses: the-guild-org/shared-config/setup@main with: - nodeVersion: 18 - - - name: Prettier Check - run: yarn prettier:check - lint: - name: Lint - uses: the-guild-org/shared-config/.github/workflows/lint.yml@main - with: - script: yarn ci:lint - secrets: - githubToken: ${{ secrets.GITHUB_TOKEN }} + nodeVersion: 22 - build: - name: Type Check on GraphQL v${{matrix.graphql_version}} + - name: Use GraphQL v15 + run: node ./scripts/match-graphql.js 15 + - name: Install Dependencies using Yarn + run: yarn install --ignore-engines && git checkout yarn.lock + - name: Type Check + run: yarn ts:check + check: + name: Full Check on GraphQL v16 runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - graphql_version: - - 15 - - 16 - - '17.0.0-alpha.1' steps: - name: Checkout Master uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - name: Setup env uses: the-guild-org/shared-config/setup@main with: - nodeVersion: 18 - - - name: Use GraphQL v${{matrix.graphql_version}} - run: node ./scripts/match-graphql.js ${{matrix.graphql_version}} - - name: Install Dependencies using Yarn - run: yarn install --ignore-engines && git checkout yarn.lock - - name: Type Check - run: yarn ts:check - + nodeVersion: 22 + - name: Prettier + run: yarn prettier:check + - name: Lint + run: yarn lint + - name: Build + run: yarn build + - name: Test ESM and CJS integrity + run: yarn bob check test: name: Unit Test on Node ${{matrix.node-version}} (${{matrix.os}}) and GraphQL @@ -69,11 +61,10 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] # remove windows to speed up the tests - node-version: [18, 20, 22] + node-version: [18, 20, 22, 23] graphql_version: - 15 - 16 - - '17.0.0-alpha.1' include: - node-version: 18 os: windows-latest @@ -92,7 +83,7 @@ jobs: - name: Install Dependencies using Yarn run: yarn install --ignore-engines && git checkout yarn.lock - name: Cache Jest - uses: actions/cache@v4 + uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4 with: path: .cache/jest key: @@ -100,32 +91,30 @@ jobs: hashFiles('yarn.lock') }} restore-keys: | ${{ runner.os }}-${{matrix.node-version}}-${{matrix.graphql_version}}-jest- - - name: Test - if: ${{ matrix.node-version >= 20 }} - run: yarn test --ci - - name: Test - if: ${{ matrix.node-version < 20 }} - uses: nick-fields/retry@v3 + - name: Build + run: yarn build + - name: Unit Tests + uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 with: timeout_minutes: 10 max_attempts: 5 - command: yarn test:leaks --ci - - trackback: - name: trackback rc dependencies - needs: test - if: ${{ always() }}} - runs-on: ubuntu-latest - steps: - - uses: the-guild-org/shared-config/release-trackback@main + command: yarn test --ci + - name: Leak Tests + uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 with: - token: ${{ secrets.GITHUB_TOKEN }} - relevantPackages: | - @whatwg-node/* - - test_esm: - name: ESM Test + timeout_minutes: 10 + max_attempts: 5 + command: yarn test:leaks --ci + test-bun: + name: Unit Test on Bun (${{matrix.os}}) and GraphQL v${{matrix.graphql_version}} runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] # remove windows to speed up the tests + graphql_version: + - 15 + - 16 steps: - name: Checkout Master uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 @@ -133,77 +122,22 @@ jobs: - name: Setup env uses: the-guild-org/shared-config/setup@main with: - nodeVersion: 18 + nodeVersion: 23 - - name: Build Packages - run: yarn build - - name: Test ESM and CJS integrity - run: yarn bob check - test_browser: - name: Browser Test - runs-on: ubuntu-latest - steps: - - name: Checkout Master - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - name: Setup env - uses: the-guild-org/shared-config/setup@main - with: - nodeVersion: 22 - - name: Setup Chrome - uses: browser-actions/setup-chrome@v1 - - name: Build Packages + - name: Use GraphQL v${{matrix.graphql_version}} + run: node ./scripts/match-graphql.js ${{matrix.graphql_version}} + - name: Install Dependencies using Yarn + run: yarn install --ignore-engines && git checkout yarn.lock + - name: Build run: yarn build - - name: Test - uses: nick-fields/retry@v3 + - name: Unit Tests + uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 with: timeout_minutes: 10 max_attempts: 5 - command: TEST_BROWSER=true yarn jest --no-watchman --ci browser - analyze: - name: Analyze - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: ['javascript'] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] - # Learn more: - # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed - - steps: - - name: Checkout repository - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v3 + command: yarn test:bun --ci --reporter=junit --reporter-outfile=./junit.xml + - name: Publish Test Report + uses: mikepenz/action-junit-report@cf701569b05ccdd861a76b8607a66d76f6fd4857 # v5 + if: success() || failure() # always run even if the previous step fails with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # 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 - - # โ„น๏ธ Command-line programs to run using the OS shell. - # ๐Ÿ“š https://git.io/JvXDl - - # โœ๏ธ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 + report_paths: './junit.xml' diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index e606d63139f..686021f9d51 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -6,6 +6,10 @@ on: - master pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: deployment: runs-on: ubuntu-latest @@ -21,7 +25,7 @@ jobs: - uses: the-guild-org/shared-config/setup@main name: setup env with: - nodeVersion: 18 + nodeVersion: 22 packageManager: yarn - uses: the-guild-org/shared-config/website-cf@main diff --git a/.gitignore b/.gitignore index 4a45f945e85..7f495d706e0 100644 --- a/.gitignore +++ b/.gitignore @@ -74,6 +74,8 @@ junit.xml package-lock.json website/public/_redirects website/public/sitemap.xml -website/src/pages/docs/api/ +website/src/content/api/ +website/out/ +website/public/_pagefind/ .mise.toml diff --git a/.husky/pre-commit b/.husky/pre-commit index d2ae35e84b0..37236231717 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - yarn lint-staged diff --git a/.prettierignore b/.prettierignore index 6ee282d8de9..2ce4c5a9f4c 100644 --- a/.prettierignore +++ b/.prettierignore @@ -24,11 +24,7 @@ packages/federation/test/fixtures/federation-compatibility/* .bob/ CHANGELOG.md -website/src/pages/docs/api -# temporarly ignore follow files because prettier-ignore comments don't work in mdx2 -# see https://github.com/prettier/prettier/pull/12208 -website/src/pages/docs/migration/migration-from-tools.mdx -website/src/pages/docs/schema-stitching/stitch-schema-extensions.mdx +website/src/content/api .changeset/* !.changeset/README.md diff --git a/babel.config.js b/babel.config.js index d0a267d98c0..04700458b91 100644 --- a/babel.config.js +++ b/babel.config.js @@ -3,5 +3,8 @@ module.exports = { ['@babel/preset-env', { targets: { node: process.versions.node.split('.')[0] } }], '@babel/preset-typescript', ], - plugins: ['@babel/plugin-proposal-class-properties'], + plugins: [ + '@babel/plugin-proposal-class-properties', + '@babel/plugin-proposal-explicit-resource-management', + ], }; diff --git a/benchmark/compare.js b/benchmark/compare.js deleted file mode 100644 index 939052cb27d..00000000000 --- a/benchmark/compare.js +++ /dev/null @@ -1,39 +0,0 @@ -const fs = require('fs'); -const path = require('path'); -let [, , ...rawPointers] = process.argv; - -function createReport(pointer) { - const [name, file] = pointer.split(':'); - - const lines = fs.readFileSync(path.join(process.cwd(), file), 'utf-8').split('\n'); - - let sum = 0; - let count = 0; - - for (let line of lines) { - if (line.trim().length) { - const metric = JSON.parse(line); - - if ( - metric.type === 'Point' && - metric.metric === 'http_req_duration' && - metric.data.tags.status === '200' - ) { - count++; - sum += metric.data.value; - } - } - } - - return { - name, - file, - avg: sum / count, - }; -} - -const pointers = rawPointers.map(createReport); - -const stats = pointers.map(pointer => `${pointer.name}: ${pointer.avg.toFixed(2)} ms`).join('\n'); - -console.log(stats); diff --git a/benchmark/federation/.gitignore b/benchmark/federation/.gitignore deleted file mode 100644 index c624904298c..00000000000 --- a/benchmark/federation/.gitignore +++ /dev/null @@ -1,55 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# environment variables -.env - -yarn.lock diff --git a/benchmark/federation/CHANGELOG.md b/benchmark/federation/CHANGELOG.md deleted file mode 100644 index e48d1798c1d..00000000000 --- a/benchmark/federation/CHANGELOG.md +++ /dev/null @@ -1,1421 +0,0 @@ -# federation-benchmark - -## 0.0.175 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/federation@2.2.27 - - @graphql-tools/stitch@9.3.4 - -## 0.0.174 - -### Patch Changes - -- Updated dependencies - [[`d06afe3`](https://github.com/ardatan/graphql-tools/commit/d06afe3065edb15f4c58c1c155a230d8d542669f)]: - - @graphql-tools/federation@2.2.26 - -## 0.0.173 - -### Patch Changes - -- Updated dependencies - [[`342e044`](https://github.com/ardatan/graphql-tools/commit/342e044c7da74aaf5df6a90ce68973c525c9aa10)]: - - @graphql-tools/federation@2.2.25 - - @graphql-tools/stitch@9.3.3 - -## 0.0.172 - -### Patch Changes - -- Updated dependencies - [[`e9906eb`](https://github.com/ardatan/graphql-tools/commit/e9906eb311132ab902720e75bc787228d67c0e34)]: - - @graphql-tools/federation@2.2.24 - - @graphql-tools/stitch@9.3.2 - -## 0.0.171 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/federation@2.2.23 - - @graphql-tools/stitch@9.3.1 - -## 0.0.170 - -### Patch Changes - -- Updated dependencies - [[`2bb2adb`](https://github.com/ardatan/graphql-tools/commit/2bb2adbe81ab940e582ea2c779a766817c099c9c)]: - - @graphql-tools/stitch@9.3.0 - - @graphql-tools/federation@2.2.22 - -## 0.0.169 - -### Patch Changes - -- Updated dependencies - [[`5145fc4`](https://github.com/ardatan/graphql-tools/commit/5145fc4f4eed543219dbab5c0bd54e4636e1b952)]: - - @graphql-tools/federation@2.2.21 - -## 0.0.168 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/federation@2.2.20 - - @graphql-tools/stitch@9.2.17 - -## 0.0.167 - -### Patch Changes - -- Updated dependencies - [[`180f3f0`](https://github.com/ardatan/graphql-tools/commit/180f3f0c8362613eb3013ff12f2d5405cd987903)]: - - @graphql-tools/federation@2.2.19 - - @graphql-tools/stitch@9.2.16 - -## 0.0.166 - -### Patch Changes - -- Updated dependencies - [[`4deac7f`](https://github.com/ardatan/graphql-tools/commit/4deac7f3ac468334874f1d9e4ab41943fdf2818c)]: - - @graphql-tools/federation@2.2.18 - -## 0.0.165 - -### Patch Changes - -- Updated dependencies - [[`b1e002f`](https://github.com/ardatan/graphql-tools/commit/b1e002f16fe01f7d5d42f9a6b6c8d3ec67fe93ba)]: - - @graphql-tools/federation@2.2.17 - -## 0.0.164 - -### Patch Changes - -- Updated dependencies - [[`8effad4`](https://github.com/ardatan/graphql-tools/commit/8effad4ffb9be1bca098b8cb6ce41b84ac7d9b6b)]: - - @graphql-tools/federation@2.2.16 - - @graphql-tools/stitch@9.2.15 - -## 0.0.163 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/federation@2.2.15 - - @graphql-tools/stitch@9.2.14 - -## 0.0.162 - -### Patch Changes - -- Updated dependencies - [[`e0070c2`](https://github.com/ardatan/graphql-tools/commit/e0070c2327ca49bc2a87b88d6ff1066ac2078d2b)]: - - @graphql-tools/federation@2.2.14 - -## 0.0.161 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/federation@2.2.13 - - @graphql-tools/stitch@9.2.13 - -## 0.0.160 - -### Patch Changes - -- Updated dependencies - [[`7e2938d`](https://github.com/ardatan/graphql-tools/commit/7e2938d45c6d0a6eb6b18b89f9f80e9b5b5c08db)]: - - @graphql-tools/federation@2.2.12 - - @graphql-tools/stitch@9.2.12 - -## 0.0.159 - -### Patch Changes - -- Updated dependencies - [[`dcb3e27`](https://github.com/ardatan/graphql-tools/commit/dcb3e276cce59340596156542bcede9d8b143d44)]: - - @graphql-tools/stitch@9.2.11 - - @graphql-tools/federation@2.2.11 - -## 0.0.158 - -### Patch Changes - -- Updated dependencies - [[`a600be6`](https://github.com/ardatan/graphql-tools/commit/a600be627a6d619ef4c95a445a5c7801d166787b)]: - - @graphql-tools/federation@2.2.10 - -## 0.0.157 - -### Patch Changes - -- Updated dependencies - [[`0e87805`](https://github.com/ardatan/graphql-tools/commit/0e8780572fb1a852c8f4d7c8a59b064ae92bdd6b)]: - - @graphql-tools/federation@2.2.9 - -## 0.0.156 - -### Patch Changes - -- Updated dependencies - [[`52a69ed`](https://github.com/ardatan/graphql-tools/commit/52a69edb8979fd081d1caea90684f5d61dc9f6ec)]: - - @graphql-tools/federation@2.2.8 - -## 0.0.155 - -### Patch Changes - -- Updated dependencies - [[`3188051`](https://github.com/ardatan/graphql-tools/commit/3188051ae530772210e9f3a2c9615932ef13f497)]: - - @graphql-tools/federation@2.2.7 - -## 0.0.154 - -### Patch Changes - -- Updated dependencies - [[`b8bf584`](https://github.com/ardatan/graphql-tools/commit/b8bf584fde87d3064c204d8ac2f9da5b869249c0)]: - - @graphql-tools/federation@2.2.6 - -## 0.0.153 - -### Patch Changes - -- Updated dependencies - [[`dbb0516`](https://github.com/ardatan/graphql-tools/commit/dbb05162731b7a2baf08f4756d4a4de3dce0a951)]: - - @graphql-tools/federation@2.2.5 - -## 0.0.152 - -### Patch Changes - -- Updated dependencies - [[`3803897`](https://github.com/ardatan/graphql-tools/commit/3803897cef27b15bad1718819c5d75030afbe781)]: - - @graphql-tools/federation@2.2.4 - -## 0.0.151 - -### Patch Changes - -- Updated dependencies - [[`0d203ab`](https://github.com/ardatan/graphql-tools/commit/0d203ab57671cfa6d4417e60b08b3224a65bec91)]: - - @graphql-tools/federation@2.2.3 - -## 0.0.150 - -### Patch Changes - -- Updated dependencies - [[`63cab60`](https://github.com/ardatan/graphql-tools/commit/63cab60dca3f36614ff5cb26869e1e7d3e939c50)]: - - @graphql-tools/federation@2.2.2 - -## 0.0.149 - -### Patch Changes - -- Updated dependencies - [[`33e8146`](https://github.com/ardatan/graphql-tools/commit/33e8146e33aa17790ee76d14e52f62c684ee1b16)]: - - @graphql-tools/federation@2.2.1 - -## 0.0.148 - -### Patch Changes - -- Updated dependencies - [[`334d301`](https://github.com/ardatan/graphql-tools/commit/334d301007d4d73e09182f22a76bdce1937ec8af)]: - - @graphql-tools/federation@2.2.0 - -## 0.0.147 - -### Patch Changes - -- Updated dependencies - [[`167b47c`](https://github.com/ardatan/graphql-tools/commit/167b47cbc6ae31ce046cf6cc17365813d2481d4c)]: - - @graphql-tools/federation@2.1.4 - -## 0.0.146 - -### Patch Changes - -- Updated dependencies - [[`d54b21a`](https://github.com/ardatan/graphql-tools/commit/d54b21a235f9632d320a32f15594ecd70b5eae29)]: - - @graphql-tools/federation@2.1.3 - -## 0.0.145 - -### Patch Changes - -- Updated dependencies - [[`c6d175b`](https://github.com/ardatan/graphql-tools/commit/c6d175b2c1de640d2156ba0b2c69bf7e8884d98f)]: - - @graphql-tools/federation@2.1.2 - -## 0.0.144 - -### Patch Changes - -- Updated dependencies - [[`3f301dc`](https://github.com/ardatan/graphql-tools/commit/3f301dc74a99ea1db28fe75923fa26ba2736d9f7), - [`66c99d9`](https://github.com/ardatan/graphql-tools/commit/66c99d9c9e480cc4e1569b032952caea0ff69c0c), - [`3f301dc`](https://github.com/ardatan/graphql-tools/commit/3f301dc74a99ea1db28fe75923fa26ba2736d9f7), - [`66c99d9`](https://github.com/ardatan/graphql-tools/commit/66c99d9c9e480cc4e1569b032952caea0ff69c0c)]: - - @graphql-tools/federation@2.1.1 - - @graphql-tools/stitch@9.2.10 - -## 0.0.143 - -### Patch Changes - -- Updated dependencies - [[`d5dd794`](https://github.com/ardatan/graphql-tools/commit/d5dd794352878aec9b0d543dfe2e6995142dddff), - [`d5dd794`](https://github.com/ardatan/graphql-tools/commit/d5dd794352878aec9b0d543dfe2e6995142dddff), - [`d5dd794`](https://github.com/ardatan/graphql-tools/commit/d5dd794352878aec9b0d543dfe2e6995142dddff)]: - - @graphql-tools/federation@2.1.0 - -## 0.0.142 - -### Patch Changes - -- Updated dependencies - [[`0f7059b`](https://github.com/ardatan/graphql-tools/commit/0f7059beb218d0012c48e121c55e7db386796bee)]: - - @graphql-tools/federation@2.0.1 - -## 0.0.141 - -### Patch Changes - -- Updated dependencies - [[`db29280`](https://github.com/ardatan/graphql-tools/commit/db29280ef4b058857923ed8a207052fe06ba5fa0), - [`85c383f`](https://github.com/ardatan/graphql-tools/commit/85c383fbb44eeb2a0509480d84ca0b12811bc3ca)]: - - @graphql-tools/federation@2.0.0 - -## 0.0.140 - -### Patch Changes - -- Updated dependencies - [[`7368829`](https://github.com/ardatan/graphql-tools/commit/73688291af0c8cb2fe550fe8c74fd8af84cb360f), - [`0134f7f`](https://github.com/ardatan/graphql-tools/commit/0134f7ffe5383603961d69337bfa5bceefb3ed74), - [`eec9d3d`](https://github.com/ardatan/graphql-tools/commit/eec9d3d86a1a0a748321263ef9bc4db13fd3c35c), - [`03a47b1`](https://github.com/ardatan/graphql-tools/commit/03a47b181516e17f33c84f364df9482c2d1ba502), - [`dfccfbf`](https://github.com/ardatan/graphql-tools/commit/dfccfbfd6633dd576f660c648f3c6cecff3667a1), - [`e10c13a`](https://github.com/ardatan/graphql-tools/commit/e10c13a60e344b9217dc77a7cac50ec447feda7e), - [`e10c13a`](https://github.com/ardatan/graphql-tools/commit/e10c13a60e344b9217dc77a7cac50ec447feda7e), - [`0827497`](https://github.com/ardatan/graphql-tools/commit/08274975ccb1524d88fc8b95f42deb1cba05425d)]: - - @graphql-tools/federation@1.1.36 - - @graphql-tools/stitch@9.2.9 - -## 0.0.139 - -### Patch Changes - -- Updated dependencies - [[`a83da08`](https://github.com/ardatan/graphql-tools/commit/a83da087e24929ed0734a2cff63c97bd45cc9eb4), - [`fc9c71f`](https://github.com/ardatan/graphql-tools/commit/fc9c71fbc9057a8e32e0d8813b23819c631afa65), - [`cd962c1`](https://github.com/ardatan/graphql-tools/commit/cd962c1048b21c0a6f91c943860089b050ac5f5e), - [`04d5431`](https://github.com/ardatan/graphql-tools/commit/04d5431deccc42d75b6ae2ae8ed941dac4c3679a)]: - - @graphql-tools/stitch@9.2.8 - - @graphql-tools/federation@1.1.35 - -## 0.0.138 - -### Patch Changes - -- Updated dependencies - [[`508ae6b`](https://github.com/ardatan/graphql-tools/commit/508ae6bbe36248926b58719d71042c4d608782a1)]: - - @graphql-tools/federation@1.1.34 - -## 0.0.137 - -### Patch Changes - -- Updated dependencies - [[`361052a`](https://github.com/ardatan/graphql-tools/commit/361052a5fcc7f3bb00092efa3efd5767b9ac1ee6)]: - - @graphql-tools/federation@1.1.33 - -## 0.0.136 - -### Patch Changes - -- Updated dependencies - [[`680351e`](https://github.com/ardatan/graphql-tools/commit/680351ee2af39ffd6b4b0048a28954d0d4b8a926)]: - - @graphql-tools/federation@1.1.32 - - @graphql-tools/stitch@9.2.7 - -## 0.0.135 - -### Patch Changes - -- Updated dependencies - [[`98b2795`](https://github.com/ardatan/graphql-tools/commit/98b2795120e05dec1d91b57422f50d38c088b630)]: - - @graphql-tools/federation@1.1.31 - - @graphql-tools/stitch@9.2.6 - -## 0.0.134 - -### Patch Changes - -- Updated dependencies - [[`9238e14`](https://github.com/ardatan/graphql-tools/commit/9238e140862d33c6df072c42054fc642eda37840)]: - - @graphql-tools/federation@1.1.30 - - @graphql-tools/stitch@9.2.5 - -## 0.0.133 - -### Patch Changes - -- Updated dependencies - [[`67a9c49`](https://github.com/ardatan/graphql-tools/commit/67a9c4909b7676b69c4b425ab1a6cd5533c799ef)]: - - @graphql-tools/stitch@9.2.4 - -## 0.0.132 - -### Patch Changes - -- Updated dependencies - [[`074fad4`](https://github.com/ardatan/graphql-tools/commit/074fad4144095fbefe449ced397b7707963bd7aa), - [`074fad4`](https://github.com/ardatan/graphql-tools/commit/074fad4144095fbefe449ced397b7707963bd7aa)]: - - @graphql-tools/federation@1.1.29 - - @graphql-tools/stitch@9.2.3 - -## 0.0.131 - -### Patch Changes - -- Updated dependencies - [[`b281dd6`](https://github.com/ardatan/graphql-tools/commit/b281dd65276dd9df56a41cc2dbff5139281f02f9)]: - - @graphql-tools/stitch@9.2.2 - -## 0.0.130 - -### Patch Changes - -- Updated dependencies - [[`5567347`](https://github.com/ardatan/graphql-tools/commit/5567347217fdfb72e3f8b389ade6d5912dfb5c95), - [`5567347`](https://github.com/ardatan/graphql-tools/commit/5567347217fdfb72e3f8b389ade6d5912dfb5c95)]: - - @graphql-tools/stitch@9.2.1 - -## 0.0.129 - -### Patch Changes - -- Updated dependencies - [[`9bca9e0`](https://github.com/ardatan/graphql-tools/commit/9bca9e03915a2e12d164e355be9aed389b0de3a4), - [`9bca9e0`](https://github.com/ardatan/graphql-tools/commit/9bca9e03915a2e12d164e355be9aed389b0de3a4), - [`243c353`](https://github.com/ardatan/graphql-tools/commit/243c353412921cf0063f963ee46b9c63d2f33b41)]: - - @graphql-tools/stitch@9.2.0 - - @graphql-tools/federation@1.1.28 - -## 0.0.128 - -### Patch Changes - -- Updated dependencies - [[`f538e50`](https://github.com/ardatan/graphql-tools/commit/f538e503c3cdb152bd29f77804217100cac0f648)]: - - @graphql-tools/federation@1.1.27 - -## 0.0.127 - -### Patch Changes - -- Updated dependencies - [[`6d26702`](https://github.com/ardatan/graphql-tools/commit/6d267022eaf4b695b3791927912375f1b1d0f3a8)]: - - @graphql-tools/stitch@9.1.2 - -## 0.0.126 - -### Patch Changes - -- Updated dependencies - [[`c5df958`](https://github.com/ardatan/graphql-tools/commit/c5df95858c5b5a57a232740e8e4b667ce5d2da2c)]: - - @graphql-tools/stitch@9.1.1 - -## 0.0.125 - -### Patch Changes - -- Updated dependencies - [[`6cf507f`](https://github.com/ardatan/graphql-tools/commit/6cf507fc70d2474c71c8604ab117d01af76376e1)]: - - @graphql-tools/federation@1.1.26 - -## 0.0.124 - -### Patch Changes - -- Updated dependencies - [[`27b6f49`](https://github.com/ardatan/graphql-tools/commit/27b6f49c67d4b3fca26d90dcaaef37ff61fe9d0a)]: - - @graphql-tools/stitch@9.1.0 - -## 0.0.123 - -### Patch Changes - -- Updated dependencies - [[`e09c383`](https://github.com/ardatan/graphql-tools/commit/e09c383a540f84f56db141466b711f88fce8548d)]: - - @graphql-tools/federation@1.1.25 - -## 0.0.122 - -### Patch Changes - -- Updated dependencies - [[`458ef46`](https://github.com/ardatan/graphql-tools/commit/458ef46536db003edc399587feabfcee7b186830)]: - - @graphql-tools/federation@1.1.24 - -## 0.0.121 - -### Patch Changes - -- Updated dependencies - [[`2202768`](https://github.com/ardatan/graphql-tools/commit/220276800d271e7c6fbc43339eb779b618c82e68)]: - - @graphql-tools/federation@1.1.23 - -## 0.0.120 - -### Patch Changes - -- Updated dependencies - [[`4620bb2`](https://github.com/ardatan/graphql-tools/commit/4620bb2a352fd0e645950aaae8bb54cbc7c85ce7)]: - - @graphql-tools/federation@1.1.22 - -## 0.0.119 - -### Patch Changes - -- Updated dependencies - [[`14f4fae`](https://github.com/ardatan/graphql-tools/commit/14f4faec87b1423c5541dab16dc2c5c1298edcf7)]: - - @graphql-tools/federation@1.1.21 - -## 0.0.118 - -### Patch Changes - -- Updated dependencies - [[`b78ce7e`](https://github.com/ardatan/graphql-tools/commit/b78ce7e42c8d016d972b125a86508f5ab78d57a6)]: - - @graphql-tools/federation@1.1.20 - -## 0.0.117 - -### Patch Changes - -- Updated dependencies - [[`d4395dd`](https://github.com/ardatan/graphql-tools/commit/d4395dd7d21db3becdf51cc0508e35d246dcbe1e)]: - - @graphql-tools/federation@1.1.19 - -## 0.0.116 - -### Patch Changes - -- Updated dependencies - [[`107c021`](https://github.com/ardatan/graphql-tools/commit/107c021aa191f0654c45ed72b45d650993e2142f)]: - - @graphql-tools/federation@1.1.18 - -## 0.0.115 - -### Patch Changes - -- Updated dependencies - [[`83c0af0`](https://github.com/ardatan/graphql-tools/commit/83c0af0713ff2ce55ccfb97a1810ecfecfeab703), - [`83c0af0`](https://github.com/ardatan/graphql-tools/commit/83c0af0713ff2ce55ccfb97a1810ecfecfeab703)]: - - @graphql-tools/federation@1.1.17 - - @graphql-tools/stitch@9.0.5 - -## 0.0.114 - -### Patch Changes - -- Updated dependencies - [[`7f606ea`](https://github.com/ardatan/graphql-tools/commit/7f606ea4da035b220319fb702d6a2c9d5e5d35e9)]: - - @graphql-tools/stitch@9.0.4 - -## 0.0.113 - -### Patch Changes - -- Updated dependencies - [[`7583729`](https://github.com/ardatan/graphql-tools/commit/7583729718ffd528bba5d1c5c4ea087975102c1f)]: - - @graphql-tools/federation@1.1.16 - -## 0.0.112 - -### Patch Changes - -- Updated dependencies - [[`2d76909`](https://github.com/ardatan/graphql-tools/commit/2d76909908a918562a9f7599825b70ae60f91127)]: - - @graphql-tools/federation@1.1.15 - -## 0.0.111 - -### Patch Changes - -- Updated dependencies - [[`ba062ff`](https://github.com/ardatan/graphql-tools/commit/ba062ff4880f6922eaddfcbd746782275a8f689e)]: - - @graphql-tools/federation@1.1.14 - -## 0.0.110 - -### Patch Changes - -- Updated dependencies - [[`974df8a`](https://github.com/ardatan/graphql-tools/commit/974df8a1a1bca422bac5d971a3f8029cd9728efd)]: - - @graphql-tools/federation@1.1.13 - -## 0.0.109 - -### Patch Changes - -- Updated dependencies - [[`efedc590`](https://github.com/ardatan/graphql-tools/commit/efedc59018ea1d63f86973d0c6608b3c7ddc2e71)]: - - @graphql-tools/federation@1.1.12 - -## 0.0.108 - -### Patch Changes - -- Updated dependencies - [[`250715a1`](https://github.com/ardatan/graphql-tools/commit/250715a1e18f0c645240ea78bb80f7557ac81340), - [`250715a1`](https://github.com/ardatan/graphql-tools/commit/250715a1e18f0c645240ea78bb80f7557ac81340)]: - - @graphql-tools/federation@1.1.11 - -## 0.0.107 - -### Patch Changes - -- Updated dependencies - [[`a0a9c5e1`](https://github.com/ardatan/graphql-tools/commit/a0a9c5e1686508c32a45fc7c9bbda89cb046cbcf)]: - - @graphql-tools/stitch@9.0.3 - -## 0.0.106 - -### Patch Changes - -- Updated dependencies - [[`cda328c3`](https://github.com/ardatan/graphql-tools/commit/cda328c3e487ea51e13a3b18f0e2e494fd3275ca)]: - - @graphql-tools/federation@1.1.10 - - @graphql-tools/stitch@9.0.2 - -## 0.0.105 - -### Patch Changes - -- Updated dependencies - [[`3ed8cbd6`](https://github.com/ardatan/graphql-tools/commit/3ed8cbd68988492e8b220a82b3590bad2a1c672b)]: - - @graphql-tools/federation@1.1.9 - -## 0.0.104 - -### Patch Changes - -- Updated dependencies - [[`7fe63895`](https://github.com/ardatan/graphql-tools/commit/7fe63895c1b989de3ab433e90945cb318718ddac)]: - - @graphql-tools/federation@1.1.8 - -## 0.0.103 - -### Patch Changes - -- [`5eabbea2`](https://github.com/ardatan/graphql-tools/commit/5eabbea27c69b67a07cfc181d597098402ca5286) - Thanks [@ardatan](https://github.com/ardatan)! - Fix Fed v2 support - -## 0.0.102 - -### Patch Changes - -- Updated dependencies - [[`d30e8735`](https://github.com/ardatan/graphql-tools/commit/d30e8735682c3a7209cded3fc16dd889ddfa5ddf)]: - - @graphql-tools/federation@1.1.7 - -## 0.0.101 - -### Patch Changes - -- Updated dependencies - [[`9b404e83`](https://github.com/ardatan/graphql-tools/commit/9b404e8346af2831e3ed56326cd9e1e9f8582b42)]: - - @graphql-tools/federation@1.1.6 - -## 0.0.100 - -### Patch Changes - -- Updated dependencies - [[`61393975`](https://github.com/ardatan/graphql-tools/commit/61393975c535e45c108500feea1ceec461586c6e)]: - - @graphql-tools/federation@1.1.5 - -## 0.0.99 - -### Patch Changes - -- Updated dependencies - [[`ada5c56a`](https://github.com/ardatan/graphql-tools/commit/ada5c56af472e06d595e53a035c105e745490bfc)]: - - @graphql-tools/federation@1.1.4 - -## 0.0.98 - -### Patch Changes - -- Updated dependencies - [[`f31be313`](https://github.com/ardatan/graphql-tools/commit/f31be313b2af5a7c5bf893f1ce1dc7d36bf5340c), - [`f31be313`](https://github.com/ardatan/graphql-tools/commit/f31be313b2af5a7c5bf893f1ce1dc7d36bf5340c)]: - - @graphql-tools/federation@1.1.3 - - @graphql-tools/stitch@9.0.1 - -## 0.0.97 - -### Patch Changes - -- Updated dependencies - [[`de9e8a67`](https://github.com/ardatan/graphql-tools/commit/de9e8a678a0ab38e5fc1cbf6c1bf27c265cc0c01), - [`de9e8a67`](https://github.com/ardatan/graphql-tools/commit/de9e8a678a0ab38e5fc1cbf6c1bf27c265cc0c01)]: - - @graphql-tools/federation@1.1.2 - -## 0.0.96 - -### Patch Changes - -- Updated dependencies - [[`d593dfce`](https://github.com/ardatan/graphql-tools/commit/d593dfce52a895993c754903687043a9d5429803)]: - - @graphql-tools/federation@1.1.1 - -## 0.0.95 - -### Patch Changes - -- Updated dependencies - [[`d4de4a8e`](https://github.com/ardatan/graphql-tools/commit/d4de4a8e84f7dabbaab058b264a350a3592dd752)]: - - @graphql-tools/federation@1.1.0 - -## 0.0.94 - -### Patch Changes - -- Updated dependencies - [[`944a68e8`](https://github.com/ardatan/graphql-tools/commit/944a68e8becf9c86b4c97fd17c372d98a285b955)]: - - @graphql-tools/federation@1.0.0 - - @graphql-tools/stitch@9.0.0 - -## 0.0.93 - -### Patch Changes - -- Updated dependencies - [[`2bbbe1af`](https://github.com/ardatan/graphql-tools/commit/2bbbe1af0bb7d04685bdceab9252a5ded6809c78)]: - - @graphql-tools/stitch@8.7.50 - -## 0.0.92 - -### Patch Changes - -- Updated dependencies - [[`24c13616`](https://github.com/ardatan/graphql-tools/commit/24c136160fe675c08c1c1fe06bfb8883cdf0b466)]: - - @graphql-tools/federation@0.0.3 - -## 0.0.91 - -### Patch Changes - -- Updated dependencies - [[`0cd9e8c4`](https://github.com/ardatan/graphql-tools/commit/0cd9e8c4469d07e53ad8e7944ba144f58c4db34f), - [`88244048`](https://github.com/ardatan/graphql-tools/commit/882440487551abcb5bdd4f626f3b56ac2e886f11), - [`8e80b689`](https://github.com/ardatan/graphql-tools/commit/8e80b6893d2342353731610d5da9db633d806083)]: - - @graphql-tools/federation@0.0.2 - - @graphql-tools/stitch@8.7.49 - -## 0.0.90 - -### Patch Changes - -- Updated dependencies - [[`1c0e80a6`](https://github.com/ardatan/graphql-tools/commit/1c0e80a60827169eb3eb99fe5710b1e891b89740)]: - - @graphql-tools/federation@0.0.1 - -## 0.0.89 - -### Patch Changes - -- Updated dependencies - [[`1c95368a`](https://github.com/ardatan/graphql-tools/commit/1c95368aea868be537d956ba5e994cde58dfee41)]: - - @graphql-tools/stitching-directives@2.3.34 - - @graphql-tools/stitch@8.7.48 - -## 0.0.88 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.47 - - @graphql-tools/stitching-directives@2.3.33 - -## 0.0.87 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.46 - -## 0.0.86 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.45 - - @graphql-tools/stitching-directives@2.3.32 - -## 0.0.85 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.44 - -## 0.0.84 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.43 - -## 0.0.83 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.42 - - @graphql-tools/stitching-directives@2.3.31 - -## 0.0.82 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.41 - - @graphql-tools/stitching-directives@2.3.30 - -## 0.0.81 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.40 - - @graphql-tools/stitching-directives@2.3.29 - -## 0.0.80 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.39 - - @graphql-tools/stitching-directives@2.3.28 - -## 0.0.79 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.38 - - @graphql-tools/stitching-directives@2.3.27 - -## 0.0.78 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.37 - - @graphql-tools/stitching-directives@2.3.26 - -## 0.0.77 - -### Patch Changes - -- Updated dependencies - [[`fdb3e4c4`](https://github.com/ardatan/graphql-tools/commit/fdb3e4c4bbd004c92b52c55a0733793339822639)]: - - @graphql-tools/stitch@8.7.36 - -## 0.0.76 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.35 - - @graphql-tools/stitching-directives@2.3.25 - -## 0.0.75 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.34 - - @graphql-tools/stitching-directives@2.3.24 - -## 0.0.74 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.33 - -## 0.0.73 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.32 - - @graphql-tools/stitching-directives@2.3.23 - -## 0.0.72 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.31 - - @graphql-tools/stitching-directives@2.3.22 - -## 0.0.71 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.30 - - @graphql-tools/stitching-directives@2.3.21 - -## 0.0.70 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.29 - -## 0.0.69 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.28 - -## 0.0.68 - -### Patch Changes - -- Updated dependencies - [[`44fe1ef1`](https://github.com/ardatan/graphql-tools/commit/44fe1ef1ef371bfa71b9b015aedc4ee205b0f19f)]: - - @graphql-tools/stitch@8.7.27 - -## 0.0.67 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.26 - -## 0.0.66 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.25 - -## 0.0.65 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.24 - -## 0.0.64 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.23 - - @graphql-tools/stitching-directives@2.3.20 - -## 0.0.63 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.22 - - @graphql-tools/stitching-directives@2.3.19 - -## 0.0.62 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.21 - - @graphql-tools/stitching-directives@2.3.18 - -## 0.0.61 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.20 - -## 0.0.60 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.19 - - @graphql-tools/stitching-directives@2.3.17 - -## 0.0.59 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.18 - - @graphql-tools/stitching-directives@2.3.16 - -## 0.0.58 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.17 - - @graphql-tools/stitching-directives@2.3.15 - -## 0.0.57 - -### Patch Changes - -- Updated dependencies - [[`80836fa7`](https://github.com/ardatan/graphql-tools/commit/80836fa78af3c6e61c61fe4d3bc52831b2c58931)]: - - @graphql-tools/stitch@8.7.16 - - @graphql-tools/stitching-directives@2.3.14 - -## 0.0.56 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.15 - - @graphql-tools/stitching-directives@2.3.13 - -## 0.0.55 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.14 - - @graphql-tools/stitching-directives@2.3.12 - -## 0.0.54 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.13 - - @graphql-tools/stitching-directives@2.3.11 - -## 0.0.53 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.12 - - @graphql-tools/stitching-directives@2.3.10 - -## 0.0.52 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.11 - -## 0.0.51 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.10 - - @graphql-tools/stitching-directives@2.3.9 - -## 0.0.50 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.9 - -## 0.0.49 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.8 - - @graphql-tools/stitching-directives@2.3.8 - -## 0.0.48 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.7 - - @graphql-tools/stitching-directives@2.3.7 - -## 0.0.47 - -### Patch Changes - -- Updated dependencies - [[`27bdc237`](https://github.com/ardatan/graphql-tools/commit/27bdc23713a5176485ac940fc5431256b4f2de8d), - [`27bdc237`](https://github.com/ardatan/graphql-tools/commit/27bdc23713a5176485ac940fc5431256b4f2de8d)]: - - @graphql-tools/stitch@8.7.6 - - @graphql-tools/stitching-directives@2.3.6 - -## 0.0.46 - -### Patch Changes - -- Updated dependencies - [[`0555a972`](https://github.com/ardatan/graphql-tools/commit/0555a972f010d2b3ca93b9164b26474a78d0b20b)]: - - @graphql-tools/stitch@8.7.5 - - @graphql-tools/stitching-directives@2.3.5 - -## 0.0.45 - -### Patch Changes - -- Updated dependencies - [[`29ee7542`](https://github.com/ardatan/graphql-tools/commit/29ee7542649e9c938bdb9c751bd3a2f56d17cb55)]: - - @graphql-tools/stitch@8.7.4 - - @graphql-tools/stitching-directives@2.3.4 - -## 0.0.44 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/stitch@8.7.3 - - @graphql-tools/stitching-directives@2.3.3 - -## 0.0.43 - -### Patch Changes - -- Updated dependencies - [[`e3167edc`](https://github.com/ardatan/graphql-tools/commit/e3167edc98172fda88ce2306c10c7d4a23d91d67)]: - - @graphql-tools/stitch@8.7.2 - - @graphql-tools/stitching-directives@2.3.2 - -## 0.0.42 - -### Patch Changes - -- @graphql-tools/stitch@8.7.1 -- @graphql-tools/stitching-directives@2.3.1 - -## 0.0.41 - -### Patch Changes - -- Updated dependencies [d76a299c] - - @graphql-tools/stitch@8.7.0 - - @graphql-tools/stitching-directives@2.3.0 - -## 0.0.40 - -### Patch Changes - -- @graphql-tools/stitch@8.6.14 -- @graphql-tools/stitching-directives@2.2.19 - -## 0.0.39 - -### Patch Changes - -- Updated dependencies [041c5ba1] - - @graphql-tools/stitch@8.6.13 - - @graphql-tools/stitching-directives@2.2.18 - -## 0.0.38 - -### Patch Changes - -- @graphql-tools/stitch@8.6.12 -- @graphql-tools/stitching-directives@2.2.17 - -## 0.0.37 - -### Patch Changes - -- @graphql-tools/stitch@8.6.11 -- @graphql-tools/stitching-directives@2.2.16 - -## 0.0.36 - -### Patch Changes - -- @graphql-tools/stitch@8.6.10 -- @graphql-tools/stitching-directives@2.2.15 - -## 0.0.35 - -### Patch Changes - -- @graphql-tools/stitch@8.6.9 -- @graphql-tools/stitching-directives@2.2.14 - -## 0.0.34 - -### Patch Changes - -- @graphql-tools/stitch@8.6.8 -- @graphql-tools/stitching-directives@2.2.13 - -## 0.0.33 - -### Patch Changes - -- @graphql-tools/stitch@8.6.7 -- @graphql-tools/stitching-directives@2.2.12 - -## 0.0.32 - -### Patch Changes - -- Updated dependencies [0bbb1769] - - @graphql-tools/stitch@8.6.6 - - @graphql-tools/stitching-directives@2.2.11 - -## 0.0.31 - -### Patch Changes - -- @graphql-tools/stitch@8.6.5 -- @graphql-tools/stitching-directives@2.2.10 - -## 0.0.30 - -### Patch Changes - -- @graphql-tools/stitch@8.6.4 -- @graphql-tools/stitching-directives@2.2.9 - -## 0.0.29 - -### Patch Changes - -- @graphql-tools/stitch@8.6.3 -- @graphql-tools/stitching-directives@2.2.8 - -## 0.0.28 - -### Patch Changes - -- @graphql-tools/stitch@8.6.2 -- @graphql-tools/stitching-directives@2.2.7 - -## 0.0.27 - -### Patch Changes - -- @graphql-tools/stitch@8.6.1 -- @graphql-tools/stitching-directives@2.2.6 - -## 0.0.26 - -### Patch Changes - -- Updated dependencies [c40e801f] - - @graphql-tools/stitch@8.6.0 - - @graphql-tools/stitching-directives@2.2.5 - -## 0.0.25 - -### Patch Changes - -- Updated dependencies [0c0c6857] - - @graphql-tools/stitch@8.5.2 - - @graphql-tools/stitching-directives@2.2.4 - -## 0.0.24 - -### Patch Changes - -- Updated dependencies [3da3d66c] - - @graphql-tools/stitch@8.5.1 - - @graphql-tools/stitching-directives@2.2.3 - -## 0.0.23 - -### Patch Changes - -- Updated dependencies [70081f8f] - - @graphql-tools/stitch@8.5.0 - -## 0.0.22 - -### Patch Changes - -- Updated dependencies [18341363] - - @graphql-tools/stitch@8.4.4 - - @graphql-tools/stitching-directives@2.2.2 - -## 0.0.21 - -### Patch Changes - -- @graphql-tools/stitch@8.4.3 - -## 0.0.20 - -### Patch Changes - -- @graphql-tools/stitch@8.4.2 - -## 0.0.19 - -### Patch Changes - -- Updated dependencies [981eef80] -- Updated dependencies [4bfb3428] - - @graphql-tools/stitch@8.4.1 - - @graphql-tools/stitching-directives@2.2.1 - -## 0.0.18 - -### Patch Changes - -- Updated dependencies [149afddb] - - @graphql-tools/stitch@8.4.0 - - @graphql-tools/stitching-directives@2.2.0 - -## 0.0.17 - -### Patch Changes - -- Updated dependencies [320122ba] - - @graphql-tools/stitching-directives@2.1.1 - -## 0.0.16 - -### Patch Changes - -- Updated dependencies [d4918a78] - - @graphql-tools/stitch@8.3.1 - -## 0.0.15 - -### Patch Changes - -- Updated dependencies [c5b0719c] -- Updated dependencies [c5b0719c] -- Updated dependencies [c5b0719c] - - @graphql-tools/stitch@8.3.0 - - @graphql-tools/stitching-directives@2.1.0 - -## 0.0.14 - -### Patch Changes - -- Updated dependencies [c8c13ed1] - - @graphql-tools/stitch@8.2.1 - -## 0.0.13 - -### Patch Changes - -- Updated dependencies [631b11bd] -- Updated dependencies [e50852e6] - - @graphql-tools/stitch@8.2.0 - - @graphql-tools/stitching-directives@2.0.11 - -## 0.0.12 - -### Patch Changes - -- @graphql-tools/stitch@8.1.2 -- @graphql-tools/stitching-directives@2.0.10 - -## 0.0.11 - -### Patch Changes - -- Updated dependencies [9a13357c] - - @graphql-tools/stitch@8.1.1 - - @graphql-tools/stitching-directives@2.0.9 - -## 0.0.10 - -### Patch Changes - -- Updated dependencies [67691b78] - - @graphql-tools/stitch@8.1.0 - - @graphql-tools/stitching-directives@2.0.8 - -## 0.0.9 - -### Patch Changes - -- @graphql-tools/stitch@8.0.8 -- @graphql-tools/stitching-directives@2.0.7 - -## 0.0.8 - -### Patch Changes - -- @graphql-tools/stitch@8.0.7 -- @graphql-tools/stitching-directives@2.0.6 - -## 0.0.7 - -### Patch Changes - -- @graphql-tools/stitch@8.0.6 -- @graphql-tools/stitching-directives@2.0.5 - -## 0.0.6 - -### Patch Changes - -- @graphql-tools/stitch@8.0.5 - -## 0.0.5 - -### Patch Changes - -- @graphql-tools/stitch@8.0.4 -- @graphql-tools/stitching-directives@2.0.4 - -## 0.0.4 - -### Patch Changes - -- @graphql-tools/stitch@8.0.3 -- @graphql-tools/stitching-directives@2.0.3 - -## 0.0.3 - -### Patch Changes - -- @graphql-tools/stitch@8.0.2 -- @graphql-tools/stitching-directives@2.0.2 - -## 0.0.2 - -### Patch Changes - -- Updated dependencies [c36defbe] - - @graphql-tools/stitch@8.0.1 - - @graphql-tools/stitching-directives@2.0.1 - -## 0.0.1 - -### Patch Changes - -- Updated dependencies [91155ab6] -- Updated dependencies [7d3e3006] -- Updated dependencies [dae6dc7b] -- Updated dependencies [1b0ce2ae] -- Updated dependencies [74581cf3] -- Updated dependencies [70cd65eb] -- Updated dependencies [c0ca3190] - - @graphql-tools/stitch@8.0.0 - - @graphql-tools/stitching-directives@2.0.0 diff --git a/benchmark/federation/call.js b/benchmark/federation/call.js deleted file mode 100644 index 8d2a336a70b..00000000000 --- a/benchmark/federation/call.js +++ /dev/null @@ -1,54 +0,0 @@ -const { fetch } = require('@whatwg-node/fetch'); - -fetch('http://localhost:3000/stitching', { - method: 'POST', - headers: { - 'content-type': 'application/json', - }, - body: JSON.stringify({ - query: /* GraphQL */ ` - fragment User on User { - id - username - name - } - - fragment Review on Review { - id - body - } - - fragment Product on Product { - inStock - name - price - shippingEstimate - upc - weight - } - - query TestQuery { - users { - ...User - reviews { - ...Review - product { - ...Product - } - } - } - topProducts { - ...Product - reviews { - ...Review - author { - ...User - } - } - } - } - `, - }), -}) - .then(res => res.json()) - .then(data => console.log(JSON.stringify(data, null, 2))); diff --git a/benchmark/federation/federation.js b/benchmark/federation/federation.js deleted file mode 100644 index b282a47c552..00000000000 --- a/benchmark/federation/federation.js +++ /dev/null @@ -1,26 +0,0 @@ -const { ApolloGateway, LocalGraphQLDataSource } = require('@apollo/gateway'); - -const serviceMap = { - accounts: require('./services/accounts'), - inventory: require('./services/inventory'), - products: require('./services/products'), - reviews: require('./services/reviews'), -}; - -module.exports = async function () { - const gateway = new ApolloGateway({ - localServiceList: Object.entries(serviceMap).map(([name, { typeDefs }]) => ({ - name, - typeDefs, - })), - buildService: ({ name }) => new LocalGraphQLDataSource(serviceMap[name].schema), - }); - - const { schema, executor } = await gateway.load(); - - return { - schema, - executor, - stop: () => gateway.stop(), - }; -}; diff --git a/benchmark/federation/index.js b/benchmark/federation/index.js deleted file mode 100644 index 98873c53ad3..00000000000 --- a/benchmark/federation/index.js +++ /dev/null @@ -1,105 +0,0 @@ -const express = require('express'); -const runStitchingGateway = require('./stitching'); -const runApolloGateway = require('./federation'); -const makeMonolithSchema = require('./monolith'); -const { normalizedExecutor } = require('@graphql-tools/executor'); -const { parse } = require('graphql'); - -function memoize1(fn) { - const memoize1cache = new Map(); - return function memoized(a1) { - const cachedValue = memoize1cache.get(a1); - if (cachedValue === undefined) { - const newValue = fn(a1); - memoize1cache.set(a1, newValue); - return newValue; - } - - return cachedValue; - }; -} - -async function main() { - const scenarios = await Promise.all([ - runStitchingGateway(), - runApolloGateway(), - makeMonolithSchema(), - ]); - - const [stitching, federation, monolith] = scenarios; - const [stitchingParse, federationParse, monolithParse] = scenarios.map(() => memoize1(parse)); - - const app = express(); - - app.use(express.json()); - - app.post('/federation', (req, res) => { - try { - const result$ = federation.executor({ - document: federationParse(req.body.query), - request: { - query: req.body.query, - }, - cache: { - get: async () => undefined, - set: async () => {}, - delete: async () => true, - }, - schema: federation.schema, - context: {}, - }); - if (result$.then) { - return result$.then(result => res.json(result)).catch(error => res.status(500).send(error)); - } - res.json(result$); - } catch (error) { - res.status(500).send(error); - } - }); - - app.post('/stitching', (req, res) => { - try { - const result$ = normalizedExecutor({ - schema: stitching, - document: stitchingParse(req.body.query), - contextValue: {}, - }); - if (result$.then) { - return result$.then(result => res.json(result)).catch(error => res.status(500).send(error)); - } - res.json(result$); - } catch (error) { - res.status(500).send(error); - } - }); - - app.post('/monolith', (req, res) => { - try { - const result$ = normalizedExecutor({ - schema: monolith, - document: monolithParse(req.body.query), - contextValue: {}, - }); - if (result$.then) { - return result$.then(result => res.json(result)).catch(error => res.status(500).send(error)); - } - res.json(result$); - } catch (error) { - res.status(500).send(error); - } - }); - - const server = app.listen(3000, () => { - console.log('listening on 0.0.0.0:3000'); - }); - - process.once('SIGINT', () => { - console.log('Closing server'); - server.closeAllConnections(); - server.close(() => { - console.log('Closed server'); - }); - }); -} - -main(); diff --git a/benchmark/federation/k6.js b/benchmark/federation/k6.js deleted file mode 100644 index 69e8df0083c..00000000000 --- a/benchmark/federation/k6.js +++ /dev/null @@ -1,105 +0,0 @@ -import { textSummary } from 'https://jslib.k6.io/k6-summary/0.0.1/index.js'; -import { githubComment } from 'https://raw.githubusercontent.com/dotansimha/k6-github-pr-comment/master/lib.js'; -import { check } from 'k6'; -import { checkNoErrors, graphql } from '../utils.js'; - -const isPrinted = __ENV.GITHUB_TOKEN && __ENV.PRODUCTS_SIZE == 1000; - -export const options = { - vus: 1, - duration: '10s', -}; - -export function handleSummary(data) { - if (isPrinted) { - githubComment(data, { - token: __ENV.GITHUB_TOKEN, - commit: __ENV.GITHUB_SHA, - pr: __ENV.GITHUB_PR, - org: 'ardatan', - repo: 'graphql-tools', - renderTitle({ passes }) { - return passes ? 'โœ… Benchmark Results' : 'โŒ Benchmark Failed'; - }, - renderMessage({ passes, checks, thresholds }) { - const result = []; - - if (thresholds.failures) { - result.push( - `**Performance regression detected**: it seems like your Pull Request adds some extra latency to Schema Stitching`, - ); - } - - if (checks.failures) { - result.push('**Failed assertions detected**'); - } - - if (!passes) { - result.push( - `> If the performance regression is expected, please increase the failing threshold.`, - ); - } - - return result.join('\n'); - }, - }); - } - return { - stdout: textSummary(data, { indent: ' ', enableColors: true }), - }; -} - -export default function () { - const res = graphql({ - endpoint: `http://0.0.0.0:3000/${__ENV.ENDPOINT}`, - query: /* GraphQL */ ` - fragment User on User { - id - username - name - } - - fragment Review on Review { - id - body - } - - fragment Product on Product { - inStock - name - price - shippingEstimate - upc - weight - } - - query TestQuery { - users { - ...User - reviews { - ...Review - product { - ...Product - } - } - } - topProducts { - ...Product - reviews { - ...Review - author { - ...User - } - } - } - } - `, - variables: {}, - }); - - check(res, { - no_errors: checkNoErrors, - expected_result: resp => - 'reviews' in resp.json().data.users[0] && 'reviews' in resp.json().data.topProducts[0], - }); -} diff --git a/benchmark/federation/monolith.js b/benchmark/federation/monolith.js deleted file mode 100644 index dae01b06be5..00000000000 --- a/benchmark/federation/monolith.js +++ /dev/null @@ -1,161 +0,0 @@ -const { gql } = require('graphql-tag'); -const { makeExecutableSchema } = require('@graphql-tools/schema'); - -const typeDefs = gql` - type Query { - me: User - users: [User] - topProducts(first: Int): [Product] - } - type User { - id: ID! - name: String - username: String - reviews: [Review] - } - type Product { - upc: String! - weight: Int - price: Int - name: String - inStock: Boolean - shippingEstimate: Int - reviews: [Review] - } - type Review { - id: ID! - body: String - author: User - product: Product - } -`; - -const resolvers = { - Query: { - me() { - return users[0]; - }, - users() { - return users; - }, - topProducts(_, args) { - return args.first ? products.slice(0, args.first) : products; - }, - }, - User: { - reviews(user) { - return reviews.filter(review => review.authorID === user.id); - }, - username(user) { - const found = usernames.find(username => username.id === user.id); - return found ? found.username : null; - }, - }, - Product: { - shippingEstimate(object) { - // free for expensive items - if (object.price > 1000) return 0; - // estimate is based on weight - return object.weight * 0.5; - }, - reviews(product) { - return reviews.filter(review => review.productUpc === product.upc); - }, - inStock(product) { - return inventory.find(inv => inv.upc === product.upc)?.inStock; - }, - }, - Review: { - author(review) { - return users.find(user => user.id === review.authorID); - }, - product(review) { - return products.find(product => review.productUpc === product.upc); - }, - }, -}; - -module.exports = () => - makeExecutableSchema({ - typeDefs, - resolvers, - }); - -const users = [ - { - id: '1', - name: 'Ada Lovelace', - birthDate: '1815-12-10', - username: '@ada', - }, - { - id: '2', - name: 'Alan Turing', - birthDate: '1912-06-23', - username: '@complete', - }, -]; - -const inventory = [ - { upc: '1', inStock: true }, - { upc: '2', inStock: false }, - { upc: '3', inStock: true }, -]; - -const listSize = parseInt(process.env.PRODUCTS_SIZE || '3'); - -const definedProducts = [ - { - upc: '1', - name: 'Table', - price: 899, - weight: 100, - }, - { - upc: '2', - name: 'Couch', - price: 1299, - weight: 1000, - }, - { - upc: '3', - name: 'Chair', - price: 54, - weight: 50, - }, -]; -const products = Array(listSize) - .fill({}) - .map((_, index) => definedProducts[index % 3]); - -const usernames = [ - { id: '1', username: '@ada' }, - { id: '2', username: '@complete' }, -]; - -const reviews = [ - { - id: '1', - authorID: '1', - productUpc: '1', - body: 'Love it!', - }, - { - id: '2', - authorID: '1', - productUpc: '2', - body: 'Too expensive.', - }, - { - id: '3', - authorID: '2', - productUpc: '3', - body: 'Could be better.', - }, - { - id: '4', - authorID: '2', - productUpc: '1', - body: 'Prefer something else.', - }, -]; diff --git a/benchmark/federation/package.json b/benchmark/federation/package.json deleted file mode 100644 index 685ccfe4f3a..00000000000 --- a/benchmark/federation/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "federation-benchmark", - "version": "0.0.175", - "private": true, - "scripts": { - "loadtest:federation": "k6 -e ENDPOINT=federation run k6.js", - "loadtest:monolith": "k6 -e ENDPOINT=monolith run k6.js", - "loadtest:stitching": "k6 -e ENDPOINT=stitching run k6.js", - "start": "cross-env NODE_ENV=production node index.js" - }, - "dependencies": { - "@apollo/gateway": "2.9.3", - "@apollo/subgraph": "2.9.3", - "@graphql-tools/federation": "2.2.27", - "@graphql-tools/stitch": "9.3.4", - "cross-env": "7.0.3", - "express": "4.21.1", - "graphql": "16.9.0", - "graphql-tag": "2.12.6", - "wait-on": "8.0.1" - } -} diff --git a/benchmark/federation/services/accounts/index.js b/benchmark/federation/services/accounts/index.js deleted file mode 100644 index bc82695c28c..00000000000 --- a/benchmark/federation/services/accounts/index.js +++ /dev/null @@ -1,59 +0,0 @@ -const { gql } = require('graphql-tag'); -const { buildSubgraphSchema } = require('@apollo/subgraph'); - -const typeDefs = gql` - extend type Query { - me: User - users: [User] - } - - type User @key(fields: "id") { - id: ID! - name: String - username: String - } -`; - -const resolvers = { - Query: { - me() { - return users[0]; - }, - users() { - return users; - }, - }, - User: { - __resolveReference(object) { - return users.find(user => user.id === object.id); - }, - }, -}; - -const schema = buildSubgraphSchema([ - { - typeDefs, - resolvers, - }, -]); - -module.exports = { - typeDefs, - resolvers, - schema, -}; - -const users = [ - { - id: '1', - name: 'Ada Lovelace', - birthDate: '1815-12-10', - username: '@ada', - }, - { - id: '2', - name: 'Alan Turing', - birthDate: '1912-06-23', - username: '@complete', - }, -]; diff --git a/benchmark/federation/services/inventory/index.js b/benchmark/federation/services/inventory/index.js deleted file mode 100644 index 8626af8b408..00000000000 --- a/benchmark/federation/services/inventory/index.js +++ /dev/null @@ -1,48 +0,0 @@ -const { gql } = require('graphql-tag'); -const { buildSubgraphSchema } = require('@apollo/subgraph'); - -const typeDefs = gql` - extend type Product @key(fields: "upc") { - upc: String! @external - weight: Int @external - price: Int @external - inStock: Boolean - shippingEstimate: Int @requires(fields: "price weight") - } -`; - -const resolvers = { - Product: { - __resolveReference(object) { - return { - ...object, - ...inventory.find(product => product.upc === object.upc), - }; - }, - shippingEstimate(object) { - // free for expensive items - if (object.price > 1000) return 0; - // estimate is based on weight - return object.weight * 0.5; - }, - }, -}; - -const schema = buildSubgraphSchema([ - { - typeDefs, - resolvers, - }, -]); - -module.exports = { - typeDefs, - resolvers, - schema, -}; - -const inventory = [ - { upc: '1', inStock: true }, - { upc: '2', inStock: false }, - { upc: '3', inStock: true }, -]; diff --git a/benchmark/federation/services/products/index.js b/benchmark/federation/services/products/index.js deleted file mode 100644 index 165f0f60668..00000000000 --- a/benchmark/federation/services/products/index.js +++ /dev/null @@ -1,64 +0,0 @@ -const { gql } = require('graphql-tag'); -const { buildSubgraphSchema } = require('@apollo/subgraph'); - -const typeDefs = gql` - extend type Query { - topProducts(first: Int): [Product] - } - - type Product @key(fields: "upc") { - upc: String! - name: String - price: Int - weight: Int - } -`; - -const listSize = parseInt(process.env.PRODUCTS_SIZE || '3'); - -const definedProducts = [ - { - upc: '1', - name: 'Table', - price: 899, - weight: 100, - }, - { - upc: '2', - name: 'Couch', - price: 1299, - weight: 1000, - }, - { - upc: '3', - name: 'Chair', - price: 54, - weight: 50, - }, -]; -const products = [...Array(listSize)].map((_, index) => definedProducts[index % 3]); - -const resolvers = { - Product: { - __resolveReference(object) { - return products.find(product => product.upc === object.upc); - }, - }, - Query: { - topProducts(_, args) { - return args.first ? products.slice(0, args.first) : products; - }, - }, -}; -const schema = buildSubgraphSchema([ - { - typeDefs, - resolvers, - }, -]); - -module.exports = { - typeDefs, - resolvers, - schema, -}; diff --git a/benchmark/federation/services/reviews/index.js b/benchmark/federation/services/reviews/index.js deleted file mode 100644 index 336a700d95d..00000000000 --- a/benchmark/federation/services/reviews/index.js +++ /dev/null @@ -1,91 +0,0 @@ -const { gql } = require('graphql-tag'); -const { buildSubgraphSchema } = require('@apollo/subgraph'); - -const typeDefs = gql` - type Review @key(fields: "id") { - id: ID! - body: String - author: User @provides(fields: "username") - product: Product - } - - extend type User @key(fields: "id") { - id: ID! @external - username: String @external - reviews: [Review] - } - - extend type Product @key(fields: "upc") { - upc: String! @external - reviews: [Review] - } -`; - -const resolvers = { - Review: { - author(review) { - return { __typename: 'User', id: review.authorID }; - }, - }, - User: { - reviews(user) { - return reviews.filter(review => review.authorID === user.id); - }, - numberOfReviews(user) { - return reviews.filter(review => review.authorID === user.id).length; - }, - username(user) { - const found = usernames.find(username => username.id === user.id); - return found ? found.username : null; - }, - }, - Product: { - reviews(product) { - return reviews.filter(review => review.product.upc === product.upc); - }, - }, -}; - -const schema = buildSubgraphSchema([ - { - typeDefs, - resolvers, - }, -]); - -module.exports = { - typeDefs, - resolvers, - schema, -}; - -const usernames = [ - { id: '1', username: '@ada' }, - { id: '2', username: '@complete' }, -]; -const reviews = [ - { - id: '1', - authorID: '1', - product: { upc: '1' }, - body: 'Love it!', - }, - { - id: '2', - authorID: '1', - product: { upc: '2' }, - body: 'Too expensive.', - }, - { - id: '3', - authorID: '2', - product: { upc: '3' }, - body: 'Could be better.', - }, - { - id: '4', - authorID: '2', - product: { upc: '1' }, - body: 'Prefer something else.', - }, -]; diff --git a/benchmark/federation/stitching.js b/benchmark/federation/stitching.js deleted file mode 100644 index 85369fbe970..00000000000 --- a/benchmark/federation/stitching.js +++ /dev/null @@ -1,19 +0,0 @@ -const { stitchSchemas } = require('@graphql-tools/stitch'); -const { getSubschemaForFederationWithSchema } = require('@graphql-tools/federation'); - -const services = [ - require('./services/accounts'), - require('./services/inventory'), - require('./services/products'), - require('./services/reviews'), -]; - -async function makeGatewaySchema() { - return stitchSchemas({ - subschemas: await Promise.all( - services.map(service => getSubschemaForFederationWithSchema(service.schema)), - ), - }); -} - -module.exports = makeGatewaySchema; diff --git a/benchmark/utils.js b/benchmark/utils.js deleted file mode 100644 index 765f285780d..00000000000 --- a/benchmark/utils.js +++ /dev/null @@ -1,23 +0,0 @@ -import http from 'k6/http'; - -const params = { - headers: { - 'Content-Type': 'application/json', - }, -}; - -export function checkNoErrors(resp) { - return !('errors' in resp.json()); -} - -export function graphql({ query, operationName, variables, endpoint }) { - return http.post( - endpoint, - JSON.stringify({ - query, - operationName, - variables, - }), - params, - ); -} diff --git a/jest.config.js b/jest.config.js index a32eb63255b..555fbea2cf4 100644 --- a/jest.config.js +++ b/jest.config.js @@ -23,9 +23,9 @@ const externalToolsPackages = [ '@graphql-tools/batch-delegate', '@graphql-tools/batch-execute', '@graphql-tools/delegate', - '@graphql-tools/federation', '@graphql-tools/stitch', '@graphql-tools/wrap', + '@graphql-tools/executor-common', '@graphql-tools/executor-http', '@graphql-tools/executor-graphql-ws', ]; @@ -37,6 +37,7 @@ externalToolsPackages.forEach(mod => { }); module.exports = { + displayName: process.env.LEAK_TEST ? 'Leak Test' : 'Unit Test', testEnvironment: 'node', rootDir: ROOT_DIR, prettierPath: null, // disable prettier for inline snapshots diff --git a/package.json b/package.json index c10e066f182..f151020abd8 100644 --- a/package.json +++ b/package.json @@ -14,8 +14,7 @@ "packages/*", "packages/loaders/*", "packages/executors/*", - "website", - "benchmark/*" + "website" ], "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e", "keywords": [ @@ -30,66 +29,72 @@ ], "scripts": { "build": "bob build", - "build:api-docs": "ts-node --transpileOnly --compiler-options='{\"module\":\"commonjs\"}' scripts/build-api-docs", + "build:api-docs": "tsx scripts/build-api-docs", "ci:lint": "cross-env \"ESLINT_USE_FLAT_CONFIG=false\" eslint --ext .ts . --output-file eslint_report.json --format json", "clean-dist": "rimraf \"packages/**/dist\" && rimraf \".bob\"", "lint": "cross-env \"ESLINT_USE_FLAT_CONFIG=false\" eslint --ext .ts .", - "postbuild": "ts-node --compiler-options='{\"module\":\"commonjs\"}' scripts/postbuild.ts", + "postbuild": "tsx scripts/postbuild.ts", "postinstall": "patch-package && husky install", "prerelease": "yarn build", - "prettier": "prettier --cache --ignore-path .prettierignore --write --list-different .", - "prettier:check": "prettier --cache --ignore-path .prettierignore --check .", + "prettier": "prettier --cache --ignore-path .gitignore --ignore-path .prettierignore --write --list-different .", + "prettier:check": "prettier --cache --ignore-path .gitignore --ignore-path .prettierignore --check .", "release": "changeset publish", "test": "jest --no-watchman", - "test-fed-compat": "ts-node --transpileOnly --compiler-options='{\"module\":\"commonjs\"}' scripts/fetch-federation-tests && yarn test federation-compat", - "test:leaks": "cross-env \"LEAK_TEST=1\" jest --no-watchman --detectOpenHandles --detectLeaks --logHeapUsage", + "test:bun": "bun test", + "test:leaks": "cross-env \"LEAK_TEST=1\" jest --no-watchman --detectOpenHandles --detectLeaks --forceExit", "ts:check": "tsc --noEmit" }, "devDependencies": { - "@babel/core": "7.26.0", + "@apollo/client": "3.13.8", + "@babel/core": "7.27.1", "@babel/plugin-proposal-class-properties": "7.18.6", - "@babel/preset-env": "7.26.0", - "@babel/preset-typescript": "7.26.0", - "@changesets/changelog-github": "0.5.0", - "@changesets/cli": "2.27.9", - "@theguild/prettier-config": "2.0.7", - "@types/debug": "4.1.12", + "@babel/plugin-proposal-explicit-resource-management": "7.27.1", + "@babel/preset-env": "7.27.2", + "@babel/preset-typescript": "7.27.1", + "@changesets/changelog-github": "0.5.1", + "@changesets/cli": "2.29.4", + "@envelop/core": "5.2.3", + "@theguild/prettier-config": "3.0.1", "@types/jest": "29.5.14", - "@types/node": "22.9.0", - "@typescript-eslint/eslint-plugin": "8.14.0", - "@typescript-eslint/parser": "8.14.0", + "@types/node": "22.15.17", + "@typescript-eslint/eslint-plugin": "8.32.1", + "@typescript-eslint/parser": "8.32.1", + "@urql/core": "5.1.1", "babel-jest": "29.7.0", "bob-the-bundler": "7.0.1", - "chalk": "4.1.2", - "concurrently": "9.1.0", + "bun": "1.2.13", + "chalk": "5.4.1", + "concurrently": "9.1.2", "cross-env": "7.0.3", - "eslint": "9.14.0", - "eslint-config-prettier": "9.1.0", + "eslint": "9.26.0", + "eslint-config-prettier": "10.1.5", "eslint-config-standard": "17.1.0", "eslint-plugin-import": "2.31.0", - "eslint-plugin-n": "17.13.1", - "eslint-plugin-promise": "7.1.0", + "eslint-plugin-n": "17.18.0", + "eslint-plugin-promise": "7.2.1", "eslint-plugin-standard": "5.0.0", "globby": "11.1.0", - "graphql": "16.9.0", - "graphql-subscriptions": "2.0.0", - "husky": "9.1.6", + "graphql": "16.11.0", + "graphql-yoga": "5.13.4", + "husky": "9.1.7", "jest": "29.7.0", - "lint-staged": "15.2.10", + "lint-staged": "16.0.0", "patch-package": "8.0.0", - "prettier": "3.3.3", - "prettier-plugin-tailwindcss": "0.6.8", - "ts-jest": "29.2.5", - "ts-node": "10.9.2", + "prettier": "3.5.3", + "prettier-plugin-tailwindcss": "0.6.11", + "ts-jest": "29.3.2", + "tsx": "4.19.4", "typedoc": "0.25.13", - "typedoc-plugin-markdown": "3.16.0", - "typedoc-plugin-rename-defaults": "0.7.0", - "typescript": "5.4.5", - "weak-napi": "2.0.2" + "typedoc-plugin-markdown": "3.17.1", + "typedoc-plugin-rename-defaults": "0.7.3", + "typescript": "5.8.3", + "wonka": "6.3.5" }, "resolutions": { - "esbuild": "^0.24.0", - "graphql": "16.9.0" + "cookie": "1.0.2", + "esbuild": "0.25.4", + "estree-util-value-to-estree": "3.4.0", + "graphql": "16.11.0" }, "lint-staged": { "packages/**/src/**/*.{ts,tsx}": [ diff --git a/packages/documents/tests/print-executable-graphql-document.spec.ts b/packages/documents/tests/print-executable-graphql-document.spec.ts index 5aa163619c8..e7f42cc88e6 100644 --- a/packages/documents/tests/print-executable-graphql-document.spec.ts +++ b/packages/documents/tests/print-executable-graphql-document.spec.ts @@ -11,7 +11,7 @@ describe('printExecutableGraphQLDocument', () => { } `); const outputStr = printExecutableGraphQLDocument(inputDocument); - expect(outputStr).toMatchInlineSnapshot(`"query A { a b c }"`); + expect(outputStr).toBe(`query A { a b c }`); }); test('fragments are always before query operations', () => { @@ -37,8 +37,8 @@ describe('printExecutableGraphQLDocument', () => { } `); const outputStr = printExecutableGraphQLDocument(inputDocument); - expect(outputStr).toMatchInlineSnapshot( - `"fragment A on Query { a b c } fragment B on Query { a b c } query A { a b c ...A ...B }"`, + expect(outputStr).toBe( + `fragment A on Query { a b c } fragment B on Query { a b c } query A { a b c ...A ...B }`, ); }); @@ -54,7 +54,7 @@ describe('printExecutableGraphQLDocument', () => { } `); const outputStr = printExecutableGraphQLDocument(inputDocument); - expect(outputStr).toMatchInlineSnapshot(`"query A { ... on Query { a } ... on Query { b } }"`); + expect(outputStr).toBe(`query A { ... on Query { a } ... on Query { b } }`); }); test('inline fragments are sorted alphabetically based on the deep selection set', () => { @@ -79,8 +79,8 @@ describe('printExecutableGraphQLDocument', () => { } `); const outputStr = printExecutableGraphQLDocument(inputDocument); - expect(outputStr).toMatchInlineSnapshot( - `"fragment B on Query { c } query A { ... on Query { a { a ...B } } ... on Query { a { b ...B } } }"`, + expect(outputStr).toBe( + `fragment B on Query { c } query A { ... on Query { a { a ...B } } ... on Query { a { b ...B } } }`, ); }); @@ -105,8 +105,6 @@ describe('printExecutableGraphQLDocument', () => { } `); const outputStr = printExecutableGraphQLDocument(inputDocument); - expect(outputStr).toMatchInlineSnapshot( - `"mutation A { ... on Mutation { c b d } c { d e { a b } f } b a }"`, - ); + expect(outputStr).toBe(`mutation A { ... on Mutation { c b d } c { d e { a b } f } b a }`); }); }); diff --git a/packages/executor/CHANGELOG.md b/packages/executor/CHANGELOG.md index c3ccf4e8616..35809f213c0 100644 --- a/packages/executor/CHANGELOG.md +++ b/packages/executor/CHANGELOG.md @@ -1,5 +1,204 @@ # @graphql-tools/executor +## 1.4.7 + +### Patch Changes + +- [`cb864ad`](https://github.com/ardatan/graphql-tools/commit/cb864adc8f936c92a11e1e948d123f984e3b97fb) + Thanks [@ardatan](https://github.com/ardatan)! - Fix handling of AggregateError + +## 1.4.6 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + +## 1.4.5 + +### Patch Changes + +- [#6977](https://github.com/ardatan/graphql-tools/pull/6977) + [`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7) + Thanks [@ardatan](https://github.com/ardatan)! - In executor, do not use leaking + `registerAbortSignalListener`, and handle listeners inside the execution context +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + +## 1.4.4 + +### Patch Changes + +- [#7001](https://github.com/ardatan/graphql-tools/pull/7001) + [`746358f`](https://github.com/ardatan/graphql-tools/commit/746358f68e81c9a3cf1ccf4b1a599ae6eae404ca) + Thanks [@renovate](https://github.com/apps/renovate)! - Improve promise helpers usage + +## 1.4.3 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + +## 1.4.2 + +### Patch Changes + +- [#6971](https://github.com/ardatan/graphql-tools/pull/6971) + [`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285) + Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates: + + - Added dependency + [`@whatwg-node/promise-helpers@^1.0.0` โ†—๏ธŽ](https://www.npmjs.com/package/@whatwg-node/promise-helpers/v/1.0.0) + (to `dependencies`) + - Removed dependency + [`value-or-promise@^1.0.12` โ†—๏ธŽ](https://www.npmjs.com/package/value-or-promise/v/1.0.12) (from + `dependencies`) + +- [#6972](https://github.com/ardatan/graphql-tools/pull/6972) + [`68effb5`](https://github.com/ardatan/graphql-tools/commit/68effb5793299d25dde1d8644092d36bc8d391ef) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@whatwg-node/disposablestack@^0.0.6` โ†—๏ธŽ](https://www.npmjs.com/package/@whatwg-node/disposablestack/v/0.0.6) + (from `^0.0.5`, in `dependencies`) +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + +## 1.4.1 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + +## 1.4.0 + +### Minor Changes + +- [#6868](https://github.com/ardatan/graphql-tools/pull/6868) + [`b53941c`](https://github.com/ardatan/graphql-tools/commit/b53941cb16065dec2e721ebbad3247eea9dcfce4) + Thanks [@ardatan](https://github.com/ardatan)! - Use `extensions.code` to specify errors + +## 1.3.14 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + +## 1.3.13 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + +## 1.3.12 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + +## 1.3.11 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + +## 1.3.10 + +### Patch Changes + +- [#6789](https://github.com/ardatan/graphql-tools/pull/6789) + [`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641) + Thanks [@n1ru4l](https://github.com/n1ru4l)! - Surpress the "possible EventEmitter memory leak + detected." warning occuring on Node.js when passing a `AbortSignal` to `execute`. + + Each execution will now only set up a single listener on the supplied `AbortSignal`. While the + warning is harmless it can be misleading, which is the main motivation of this change. + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + +## 1.3.9 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + +## 1.3.8 + +### Patch Changes + +- [`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612) + Thanks [@ardatan](https://github.com/ardatan)! - \`AbortSignal\` in \`GraphQLResolveInfo\`, and + \`AbortSignal\` in \`ExecutionRequest\` + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + +## 1.3.7 + +### Patch Changes + +- [#6750](https://github.com/ardatan/graphql-tools/pull/6750) + [`000a320`](https://github.com/ardatan/graphql-tools/commit/000a320052111e653c74438eb4f1a07e922c64af) + Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates: + - Updated dependency + [`@graphql-typed-document-node/core@^3.2.0` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-typed-document-node/core/v/3.2.0) + (from `3.2.0`, in `dependencies`) + - Added dependency + [`@whatwg-node/disposablestack@^0.0.5` โ†—๏ธŽ](https://www.npmjs.com/package/@whatwg-node/disposablestack/v/0.0.5) + (to `dependencies`) + +## 1.3.6 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/utils@10.6.2 + +## 1.3.5 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + +## 1.3.4 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + ## 1.3.3 ### Patch Changes diff --git a/packages/executor/package.json b/packages/executor/package.json index f11f86202e5..c785f7f6c5b 100644 --- a/packages/executor/package.json +++ b/packages/executor/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/executor", - "version": "1.3.3", + "version": "1.4.7", "type": "module", "repository": { "type": "git", @@ -55,11 +55,12 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "dependencies": { - "@graphql-tools/utils": "^10.5.6", - "@graphql-typed-document-node/core": "3.2.0", + "@graphql-tools/utils": "^10.8.6", + "@graphql-typed-document-node/core": "^3.2.0", "@repeaterjs/repeater": "^3.0.4", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" + "@whatwg-node/disposablestack": "^0.0.6", + "@whatwg-node/promise-helpers": "^1.0.0", + "tslib": "^2.4.0" }, "devDependencies": { "cross-inspect": "1.0.1", diff --git a/packages/executor/src/__testUtils__/expectJSON.ts b/packages/executor/src/__testUtils__/expectJSON.ts index 12fed5cbb00..e9673b24e77 100644 --- a/packages/executor/src/__testUtils__/expectJSON.ts +++ b/packages/executor/src/__testUtils__/expectJSON.ts @@ -1,4 +1,6 @@ import { isObjectLike } from '@graphql-tools/utils'; +// eslint-disable-next-line import/no-extraneous-dependencies +import { expect } from '@jest/globals'; /** * Creates an object map with the same keys as `map` and values generated by diff --git a/packages/executor/src/execution/__tests__/abort-signal.test.ts b/packages/executor/src/execution/__tests__/abort-signal.test.ts index 920d7c95165..8f1a64e4c4f 100644 --- a/packages/executor/src/execution/__tests__/abort-signal.test.ts +++ b/packages/executor/src/execution/__tests__/abort-signal.test.ts @@ -7,9 +7,17 @@ import { assertAsyncIterable } from '../../../../loaders/url/tests/test-utils'; import { normalizedExecutor } from '../normalizedExecutor'; describe('Abort Signal', () => { + // Always make sure that listener is registered once or never + let controller: AbortController; + let spy: jest.SpyInstance; + beforeEach(() => { + controller = new AbortController(); + spy = jest.spyOn(controller.signal, 'addEventListener'); + }); + afterEach(() => { + expect(spy.mock.calls.length).toBeLessThanOrEqual(1); + }); it('should stop the subscription', async () => { - expect.assertions(2); - const controller = new AbortController(); let stopped = false; const schema = makeExecutableSchema({ typeDefs: /* GraphQL */ ` @@ -26,7 +34,7 @@ describe('Abort Signal', () => { subscribe() { return new Repeater(async (push, stop) => { let i = 0; - stop.then(() => { + stop.finally(() => { stopped = true; }); @@ -53,7 +61,7 @@ describe('Abort Signal', () => { signal: controller.signal, }); assertAsyncIterable(result); - const results = []; + const results: any[] = []; for await (const value of result) { results.push(value.data?.counter); if (value.data?.counter === 4) { @@ -64,7 +72,6 @@ describe('Abort Signal', () => { expect(results).toEqual([0, 1, 2, 3, 4]); }); it('pending subscription execution is canceled', async () => { - const controller = new AbortController(); const rootResolverGotInvokedD = createDeferred(); const requestGotCancelledD = createDeferred(); let aResolverGotInvoked = false; @@ -119,12 +126,10 @@ describe('Abort Signal', () => { const $next = iterator.next(); await rootResolverGotInvokedD.promise; controller.abort(); - await expect($next).rejects.toMatchInlineSnapshot(`DOMException {}`); + await expect($next).rejects.toBeInstanceOf(DOMException); expect(aResolverGotInvoked).toEqual(false); }); it('should stop the serial mutation execution', async () => { - const controller = new AbortController(); - let didInvokeFirstFn = false; let didInvokeSecondFn = false; let didInvokeThirdFn = false; @@ -157,24 +162,26 @@ describe('Abort Signal', () => { }, }, }); - const result$ = normalizedExecutor({ - schema, - document: parse(/* GraphQL */ ` - mutation { - first - second - third - } - `), - signal: controller.signal, - }); - expect(result$).rejects.toMatchInlineSnapshot(`DOMException {}`); + await expect( + Promise.resolve().then(() => + normalizedExecutor({ + schema, + document: parse(/* GraphQL */ ` + mutation { + first + second + third + } + `), + signal: controller.signal, + }), + ), + ).rejects.toBeInstanceOf(DOMException); expect(didInvokeFirstFn).toBe(true); expect(didInvokeSecondFn).toBe(true); expect(didInvokeThirdFn).toBe(false); }); it('should stop stream execution', async () => { - const controller = new AbortController(); let isAborted = false; const schema = makeExecutableSchema({ @@ -219,11 +226,10 @@ describe('Abort Signal', () => { `), signal: controller.signal, }); - await expect(result$).rejects.toMatchInlineSnapshot(`DOMException {}`); + await expect(result$).rejects.toBeInstanceOf(DOMException); expect(isAborted).toEqual(true); }); it('stops pending stream execution for incremental delivery (@stream)', async () => { - const controller = new AbortController(); const d = createDeferred(); let isReturnInvoked = false; @@ -281,11 +287,10 @@ describe('Abort Signal', () => { const next$ = iter.next(); controller.abort(); - await expect(next$).rejects.toMatchInlineSnapshot(`DOMException {}`); + await expect(next$).rejects.toBeInstanceOf(DOMException); expect(isReturnInvoked).toEqual(true); }); it('stops pending stream execution for parallel sources incremental delivery (@stream)', async () => { - const controller = new AbortController(); const d1 = createDeferred(); const d2 = createDeferred(); @@ -362,7 +367,7 @@ describe('Abort Signal', () => { const next$ = iter.next(); controller.abort(); - await expect(next$).rejects.toMatchInlineSnapshot(`DOMException {}`); + await expect(next$).rejects.toBeInstanceOf(DOMException); expect(isReturn1Invoked).toEqual(true); expect(isReturn2Invoked).toEqual(true); }); @@ -404,7 +409,6 @@ describe('Abort Signal', () => { }, }, }); - const controller = new AbortController(); const result = await normalizedExecutor({ schema, document: parse(/* GraphQL */ ` @@ -427,23 +431,20 @@ describe('Abort Signal', () => { const iterator = result[Symbol.asyncIterator](); const next = await iterator.next(); - expect(next.value).toMatchInlineSnapshot(` -{ - "data": { - "root": {}, - }, - "hasNext": true, -} -`); + expect(next.value).toEqual({ + data: { + root: {}, + }, + hasNext: true, + }); const next$ = iterator.next(); await aResolverGotInvokedD.promise; controller.abort(); requestGotCancelledD.resolve(); - await expect(next$).rejects.toThrow('This operation was aborted'); + await expect(next$).rejects.toThrow(/operation was aborted/); expect(bResolverGotInvoked).toBe(false); }); it('stops promise execution', async () => { - const controller = new AbortController(); const d = createDeferred(); const schema = makeExecutableSchema({ @@ -471,10 +472,9 @@ describe('Abort Signal', () => { expect(result$).toBeInstanceOf(Promise); controller.abort(); - await expect(result$).rejects.toMatchInlineSnapshot(`DOMException {}`); + await expect(result$).rejects.toBeInstanceOf(DOMException); }); it('does not even try to execute if the signal is already aborted', async () => { - const controller = new AbortController(); let resolverGotInvoked = false; const schema = makeExecutableSchema({ typeDefs: /* GraphQL */ ` @@ -502,7 +502,7 @@ describe('Abort Signal', () => { `), signal: controller.signal, }), - ).toThrowErrorMatchingInlineSnapshot(`"This operation was aborted"`); + ).toThrow(/operation was aborted/); expect(resolverGotInvoked).toBe(false); }); }); diff --git a/packages/executor/src/execution/__tests__/error-handling.test.ts b/packages/executor/src/execution/__tests__/error-handling.test.ts index b1db64d2b90..61c76edd361 100644 --- a/packages/executor/src/execution/__tests__/error-handling.test.ts +++ b/packages/executor/src/execution/__tests__/error-handling.test.ts @@ -35,20 +35,30 @@ describe('Error Handling', () => { expect(result.errors?.[0]?.message).toBe('This is not an error instance'); }); if (globalThis.fetch != null) { - let server: Server; - afterEach(done => { - if (!server) { - done(); + let server: Server | undefined; + afterEach(async () => { + if (!server?.listening) { return; } - server.closeAllConnections(); - server.close(done); + if (!globalThis.Bun) { + server.closeAllConnections(); + } + await new Promise((resolve, reject) => { + if (!server) { + return resolve(); + } + server.close(err => (err ? reject(err) : resolve())); + server = undefined; + }); }); it('handles undici fetch JSON parsing errors', async () => { server = createServer((_, res) => { res.end('{ "myData": "foo"'); }); await new Promise(resolve => { + if (!server) { + throw new Error('Server is not initialized'); + } server.listen(0, resolve); }); const serverPort = (server.address() as AddressInfo).port; @@ -80,7 +90,9 @@ describe('Error Handling', () => { throw new Error('Expected a result, but got an async iterable'); } const errorMessage = result.errors?.[0]?.message; - if (process.versions['node'].startsWith('18.')) { + if (globalThis.Bun) { + expect(errorMessage).toBeTruthy(); + } else if (process.versions['node'].startsWith('18.')) { expect(errorMessage).toBe('Unexpected end of JSON input'); } else { expect(errorMessage).toContain( @@ -89,4 +101,60 @@ describe('Error Handling', () => { } }); } + it('handles aggregated errors', async () => { + const schema = makeExecutableSchema({ + typeDefs: /* GraphQL */ ` + type Query { + throwMe: String + } + `, + resolvers: { + Query: { + throwMe: () => + new AggregateError( + [new Error('This is an error'), new Error('This is another error')], + 'This is an aggregated error', + ), + }, + }, + }); + const result = await normalizedExecutor({ + schema, + document: parse(/* GraphQL */ ` + query { + throwMe + } + `), + }); + if (isAsyncIterable(result)) { + throw new Error('Expected a result, but got an async iterable'); + } + expect(JSON.parse(JSON.stringify(result))).toEqual({ + data: { + throwMe: null, + }, + errors: [ + { + locations: [ + { + column: 11, + line: 3, + }, + ], + message: 'This is an error', + path: ['throwMe'], + }, + { + locations: [ + { + column: 11, + line: 3, + }, + ], + message: 'This is another error', + path: ['throwMe'], + }, + ], + }); + }); }); diff --git a/packages/executor/src/execution/__tests__/executor-test.ts b/packages/executor/src/execution/__tests__/executor-test.ts index 3d41467e43b..80d79c74e1b 100644 --- a/packages/executor/src/execution/__tests__/executor-test.ts +++ b/packages/executor/src/execution/__tests__/executor-test.ts @@ -195,7 +195,6 @@ describe('Execute: Handles basic execution tasks', () => { executeSync({ schema, document, rootValue, variableValues }); - // @ts-expect-error expect(Object.keys(resolvedInfo)).toEqual([ 'fieldName', 'fieldNodes', @@ -207,6 +206,7 @@ describe('Execute: Handles basic execution tasks', () => { 'rootValue', 'operation', 'variableValues', + 'signal', ]); const operation = document.definitions[0]; diff --git a/packages/executor/src/execution/__tests__/flattenAsyncIterable-test.ts b/packages/executor/src/execution/__tests__/flattenAsyncIterable-test.ts index adff7786eac..a2cf8dba89b 100644 --- a/packages/executor/src/execution/__tests__/flattenAsyncIterable-test.ts +++ b/packages/executor/src/execution/__tests__/flattenAsyncIterable-test.ts @@ -19,7 +19,7 @@ describe('flattenAsyncIterable', () => { const doubles = flattenAsyncIterable(source()); - const result = []; + const result: any[] = []; for await (const x of doubles) { result.push(x); } diff --git a/packages/executor/src/execution/__tests__/mutations-test.ts b/packages/executor/src/execution/__tests__/mutations-test.ts index c4b2d36f2dc..de62cee26ad 100644 --- a/packages/executor/src/execution/__tests__/mutations-test.ts +++ b/packages/executor/src/execution/__tests__/mutations-test.ts @@ -211,7 +211,7 @@ describe('Execute: Handles mutation execution ordering', () => { document, rootValue, }); - const patches = []; + const patches: any[] = []; expect('initialResult' in mutationResult).toBeTruthy(); // @ts-expect-error once we assert that initialResult is in mutationResult then it should work fine @@ -291,7 +291,7 @@ describe('Execute: Handles mutation execution ordering', () => { document, rootValue, }); - const patches = []; + const patches: any[] = []; expect('initialResult' in mutationResult).toBeTruthy(); // @ts-expect-error once we assert that initialResult is in mutationResult then it should work fine diff --git a/packages/executor/src/execution/__tests__/simplePubSub-test.ts b/packages/executor/src/execution/__tests__/simplePubSub-test.ts index 54a736e2320..0e3f35bc166 100644 --- a/packages/executor/src/execution/__tests__/simplePubSub-test.ts +++ b/packages/executor/src/execution/__tests__/simplePubSub-test.ts @@ -1,4 +1,4 @@ -import { SimplePubSub } from './simplePubSub.js'; +import { SimplePubSub } from '../../../../testing/simplePubSub.js'; describe('SimplePubSub', () => { it('subscribe async-iterator mock', async () => { diff --git a/packages/executor/src/execution/__tests__/stream-test.ts b/packages/executor/src/execution/__tests__/stream-test.ts index 183cbf8b05f..3a84acfe286 100644 --- a/packages/executor/src/execution/__tests__/stream-test.ts +++ b/packages/executor/src/execution/__tests__/stream-test.ts @@ -477,6 +477,11 @@ describe('Execute: stream directive', () => { }, ], }, + ], + hasNext: true, + }, + { + incremental: [ { items: [{ name: 'Leia', id: '3' }], path: ['friendList', 2], @@ -576,8 +581,9 @@ describe('Execute: stream directive', () => { path: ['friendList', 2], }, ], - hasNext: false, + hasNext: true, }, + { hasNext: false }, ]); }); @@ -645,10 +651,10 @@ describe('Execute: stream directive', () => { path: ['friendList', 2], }, ], - hasNext: false, + hasNext: true, }, }, - { done: true, value: undefined }, + { done: false, value: { hasNext: false } }, { done: true, value: undefined }, ]); }); diff --git a/packages/executor/src/execution/__tests__/subscribe.test.ts b/packages/executor/src/execution/__tests__/subscribe.test.ts index bf17d40dae7..ad5c737df49 100644 --- a/packages/executor/src/execution/__tests__/subscribe.test.ts +++ b/packages/executor/src/execution/__tests__/subscribe.test.ts @@ -12,9 +12,9 @@ import { ExecutionResult, isAsyncIterable, isPromise, MaybePromise } from '@grap import { expectJSON } from '../../__testUtils__/expectJSON.js'; import { resolveOnNextTick } from '../../__testUtils__/resolveOnNextTick.js'; import { assertAsyncIterable } from '../../../../loaders/url/tests/test-utils.js'; +import { SimplePubSub } from '../../../../testing/simplePubSub.js'; import { ExecutionArgs, subscribe } from '../execute.js'; import { normalizedExecutor } from '../normalizedExecutor.js'; -import { SimplePubSub } from './simplePubSub.js'; interface Email { from: string; diff --git a/packages/executor/src/execution/execute.ts b/packages/executor/src/execution/execute.ts index 1978e4bc4bc..840c8159851 100644 --- a/packages/executor/src/execution/execute.ts +++ b/packages/executor/src/execution/execute.ts @@ -13,35 +13,36 @@ import { GraphQLList, GraphQLObjectType, GraphQLOutputType, - GraphQLResolveInfo, GraphQLSchema, GraphQLTypeResolver, - isAbstractType, - isLeafType, - isListType, - isNonNullType, - isObjectType, Kind, locatedError, OperationDefinitionNode, SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef, + validateSchema, versionInfo, } from 'graphql'; -import { ValueOrPromise } from 'value-or-promise'; import { collectSubFields as _collectSubfields, addPath, collectFields, createGraphQLError, + fakePromise, getArgumentValues, getDefinedRootType, + GraphQLResolveInfo, GraphQLStreamDirective, inspect, + isAbstractType, isAsyncIterable, isIterableObject, + isLeafType, + isListType, + isNonNullType, isObjectLike, + isObjectType, isPromise, mapAsyncIterator, Maybe, @@ -53,6 +54,8 @@ import { promiseReduce, } from '@graphql-tools/utils'; import { TypedDocumentNode } from '@graphql-typed-document-node/core'; +import { DisposableSymbols } from '@whatwg-node/disposablestack'; +import { createDeferredPromise, handleMaybePromise } from '@whatwg-node/promise-helpers'; import { coerceError } from './coerceError.js'; import { flattenAsyncIterable } from './flattenAsyncIterable.js'; import { invariant } from './invariant.js'; @@ -123,6 +126,8 @@ export interface ExecutionContext { errors: Array; subsequentPayloads: Set; signal?: AbortSignal; + onSignalAbort?(handler: () => void): void; + signalPromise?: Promise; } export interface FormattedExecutionResult< @@ -272,7 +277,7 @@ export function execute( value: { ...e.extensions, http: { - ...e.extensions?.['http'], + ...(e.extensions?.['http'] || {}), status: 400, }, }, @@ -288,9 +293,7 @@ export function execute( function executeImpl( exeContext: ExecutionContext, ): MaybePromise | IncrementalExecutionResults> { - if (exeContext.signal?.aborted) { - throw exeContext.signal.reason; - } + exeContext.signal?.throwIfAborted(); // Return a Promise that will eventually resolve to the data described by // The "Response" section of the GraphQL specification. @@ -303,38 +306,33 @@ function executeImpl( // Errors from sub-fields of a NonNull type may propagate to the top level, // at which point we still log the error and null the parent field, which // in this case is the entire response. - const result = new ValueOrPromise(() => executeOperation(exeContext)) - .then( - data => { - const initialResult = buildResponse(data, exeContext.errors); - if (exeContext.subsequentPayloads.size > 0) { - return { - initialResult: { - ...initialResult, - hasNext: true, - }, - subsequentResults: yieldSubsequentPayloads(exeContext), - }; - } - - return initialResult; - }, - (error: any) => { - if (exeContext.signal?.aborted) { - throw exeContext.signal.reason; - } + return handleMaybePromise( + () => executeOperation(exeContext), + data => { + const initialResult = buildResponse(data, exeContext.errors); + if (exeContext.subsequentPayloads.size > 0) { + return { + initialResult: { + ...initialResult, + hasNext: true, + }, + subsequentResults: yieldSubsequentPayloads(exeContext), + }; + } - if (error.errors) { - exeContext.errors.push(...error.errors); - } else { - exeContext.errors.push(error); - } - return buildResponse(null, exeContext.errors); - }, - ) - .resolve()!; + return initialResult; + }, + (error: any) => { + exeContext.signal?.throwIfAborted(); - return result; + if (error.errors) { + exeContext.errors.push(...error.errors); + } else { + exeContext.errors.push(error); + } + return buildResponse(null, exeContext.errors); + }, + ); } /** @@ -399,6 +397,8 @@ export const getFragmentsFromDocument = memoize1(function getFragmentsFromDocume return fragments; }); +const validSchemas = new WeakSet(); + /** * Constructs a ExecutionContext object from the arguments passed to * execute, which we will pass throughout the other execution methods. @@ -424,8 +424,16 @@ export function buildExecutionContext = getFragmentsFromDocument(document); @@ -438,6 +446,11 @@ export function buildExecutionContext void>(); + const signalDeferred = createDeferredPromise(); + signalPromise = signalDeferred.promise; + const sharedListener = () => { + signalDeferred.reject(signal.reason); + signal.removeEventListener('abort', sharedListener); + }; + signal.addEventListener('abort', sharedListener, { once: true }); + signalPromise.catch(() => { + for (const listener of listeners) { + listener(); + } + listeners.clear(); + }); + onSignalAbort = handler => { + listeners.add(handler); + }; + } + return { schema, fragments, @@ -488,6 +538,8 @@ export function buildExecutionContext( fields, (results, [responseName, fieldNodes]) => { const fieldPath = addPath(path, responseName, parentType.name); - if (exeContext.signal?.aborted) { - throw exeContext.signal.reason; - } + exeContext.signal?.throwIfAborted(); - return new ValueOrPromise(() => - executeField(exeContext, parentType, sourceValue, fieldNodes, fieldPath), - ).then(result => { - if (result === undefined) { - return results; - } + return handleMaybePromise( + () => executeField(exeContext, parentType, sourceValue, fieldNodes, fieldPath), + result => { + if (result === undefined) { + return results; + } - results[responseName] = result; + results[responseName] = result; - return results; - }); + return results; + }, + ); }, Object.create(null), - ).resolve(); + ); } /** @@ -593,9 +644,7 @@ function executeFields( try { for (const [responseName, fieldNodes] of fields) { - if (exeContext.signal?.aborted) { - throw exeContext.signal.reason; - } + exeContext.signal?.throwIfAborted(); const fieldPath = addPath(path, responseName, parentType.name); const result = executeField( @@ -615,11 +664,17 @@ function executeFields( } } } catch (error) { - if (containsPromise) { + if (error !== exeContext.signal?.reason && containsPromise) { // Ensure that any promises returned by other fields are handled, as they may also reject. - return promiseForObject(results, exeContext.signal).finally(() => { - throw error; - }); + return handleMaybePromise( + () => promiseForObject(results, exeContext.signal), + () => { + throw error; + }, + () => { + throw error; + }, + ); } throw error; } @@ -632,7 +687,7 @@ function executeFields( // Otherwise, results is a map from field name to the result of resolving that // field, which is possibly a promise. Return a promise that will return this // same map, but with any promises replaced with the values they resolved to. - return promiseForObject(results, exeContext.signal); + return promiseForObject(results, exeContext.signal, exeContext.signalPromise); } /** @@ -662,6 +717,7 @@ function executeField( // Get the resolve function, regardless of if its result is normal or abrupt (error). try { + exeContext.signal?.throwIfAborted(); // Build a JS object of arguments from the field.arguments AST, using the // variables scope to fulfill any variable references. // TODO: find a way to memoize, in case this field is within a List type. @@ -696,15 +752,14 @@ function executeField( // to take a second callback for the error case. return completed.then(undefined, rawError => { if (rawError instanceof AggregateError) { - return new AggregateError( - rawError.errors.map(rawErrorItem => { - rawErrorItem = coerceError(rawErrorItem); - const error = locatedError(rawErrorItem, fieldNodes, pathToArray(path)); - const handledError = handleFieldError(error, returnType, errors); - filterSubsequentPayloads(exeContext, path, asyncPayloadRecord); - return handledError; - }), - ); + let result: unknown; + for (let rawErrorItem of rawError.errors) { + rawErrorItem = coerceError(rawErrorItem); + const error = locatedError(rawErrorItem, fieldNodes, pathToArray(path)); + result = handleFieldError(error, returnType, errors); + filterSubsequentPayloads(exeContext, path, asyncPayloadRecord); + } + return result; } rawError = coerceError(rawError); const error = locatedError(rawError, fieldNodes, pathToArray(path)); @@ -716,13 +771,14 @@ function executeField( return completed; } catch (rawError) { if (rawError instanceof AggregateError) { - return new AggregateError( - rawError.errors.map(rawErrorItem => { - const coercedError = coerceError(rawErrorItem); - const error = locatedError(coercedError, fieldNodes, pathToArray(path)); - return handleFieldError(error, returnType, errors); - }), - ); + let result: unknown; + for (let rawErrorItem of rawError.errors) { + rawErrorItem = coerceError(rawErrorItem); + const error = locatedError(rawErrorItem, fieldNodes, pathToArray(path)); + result = handleFieldError(error, returnType, errors); + filterSubsequentPayloads(exeContext, path, asyncPayloadRecord); + } + return result; } const coercedError = coerceError(rawError); const error = locatedError(coercedError, fieldNodes, pathToArray(path)); @@ -756,6 +812,7 @@ export function buildResolveInfo( rootValue: exeContext.rootValue, operation: exeContext.operation, variableValues: exeContext.variableValues, + signal: exeContext.signal, }; } @@ -955,9 +1012,13 @@ async function completeAsyncIteratorValue( iterator: AsyncIterator, asyncPayloadRecord?: AsyncPayloadRecord, ): Promise> { - exeContext.signal?.addEventListener('abort', () => { - iterator.return?.(); - }); + exeContext.signal?.throwIfAborted(); + if (iterator.return) { + exeContext.onSignalAbort?.(() => { + iterator.return?.(); + }); + } + const errors = asyncPayloadRecord?.errors ?? exeContext.errors; const stream = getStreamValues(exeContext, fieldNodes, path); let containsPromise = false; @@ -1432,7 +1493,7 @@ export const defaultTypeResolver: GraphQLTypeResolver = functi // Otherwise, test each possible type. const possibleTypes = info.schema.getPossibleTypes(abstractType); - const promisedIsTypeOfResults = []; + const promisedIsTypeOfResults: any[] = []; for (let i = 0; i < possibleTypes.length; i++) { const type = possibleTypes[i]; @@ -1532,19 +1593,15 @@ export function subscribe( // Return early errors if execution context failed. if (!('schema' in exeContext)) { + for (const error of exeContext) { + // @ts-expect-error - We are intentionally modifying the errors + const extensions = (error.extensions ||= {}); + const httpExtensions = (extensions['http'] ||= {}); + httpExtensions.status = 400; + error.extensions['code'] = 'BAD_USER_INPUT'; + } return { - errors: exeContext.map(e => { - Object.defineProperty(e, 'extensions', { - value: { - ...e.extensions, - http: { - ...e.extensions?.['http'], - status: 400, - }, - }, - }); - return e; - }), + errors: exeContext, }; } @@ -1559,6 +1616,12 @@ export function subscribe( return mapSourceToResponse(exeContext, resultOrStream); } +export function isIncrementalResults( + results: any, +): results is IncrementalExecutionResults { + return results?.initialResult; +} + export function flattenIncrementalResults( incrementalResults: IncrementalExecutionResults, ): AsyncGenerator< @@ -1575,16 +1638,13 @@ export function flattenIncrementalResults( }, next() { if (done) { - return Promise.resolve({ - value: undefined, - done, - }); + return fakePromise({ value: undefined, done }); } if (initialResultSent) { return subsequentIterator.next(); } initialResultSent = true; - return Promise.resolve({ + return fakePromise({ value: incrementalResults.initialResult, done, }); @@ -1597,6 +1657,10 @@ export function flattenIncrementalResults( done = true; return subsequentIterator.throw(error); }, + [DisposableSymbols.asyncDispose]() { + done = true; + return subsequentIterator?.[DisposableSymbols.asyncDispose]?.(); + }, }; } @@ -1642,8 +1706,11 @@ function mapSourceToResponse( return flattenAsyncIterable( mapAsyncIterator( resultOrStream, - async (payload: unknown) => - ensureAsyncIterable(await executeImpl(buildPerEventExecutionContext(exeContext, payload))), + (payload: unknown) => + handleMaybePromise( + () => executeImpl(buildPerEventExecutionContext(exeContext, payload)), + ensureAsyncIterable, + ), (error: Error) => { if (error instanceof AggregateError) { throw new AggregateError( @@ -1728,18 +1795,25 @@ function executeSubscription(exeContext: ExecutionContext): MaybePromise { - throw locatedError(error, fieldNodes, pathToArray(path)); - }); + return result + .then(result => assertEventStream(result, exeContext.signal, exeContext.onSignalAbort)) + .then(undefined, error => { + throw locatedError(error, fieldNodes, pathToArray(path)); + }); } - return assertEventStream(result, exeContext.signal); + return assertEventStream(result, exeContext.signal, exeContext.onSignalAbort); } catch (error) { throw locatedError(error, fieldNodes, pathToArray(path)); } } -function assertEventStream(result: unknown, signal?: AbortSignal): AsyncIterable { +function assertEventStream( + result: unknown, + signal?: AbortSignal, + onSignalAbort?: (handler: () => void) => void, +): AsyncIterable { + signal?.throwIfAborted(); if (result instanceof Error) { throw result; } @@ -1750,15 +1824,22 @@ function assertEventStream(result: unknown, signal?: AbortSignal): AsyncIterable 'Subscription field must return Async Iterable. ' + `Received: ${inspect(result)}.`, ); } - return { - [Symbol.asyncIterator]() { - const asyncIterator = result[Symbol.asyncIterator](); - signal?.addEventListener('abort', () => { - asyncIterator.return?.(); - }); - return asyncIterator; - }, - }; + if (onSignalAbort) { + return { + [Symbol.asyncIterator]() { + const asyncIterator = result[Symbol.asyncIterator](); + + if (asyncIterator.return) { + onSignalAbort?.(() => { + asyncIterator.return?.(); + }); + } + + return asyncIterator; + }, + }; + } + return result; } function executeDeferredFragment( @@ -2076,22 +2157,20 @@ function yieldSubsequentPayloads( ): AsyncGenerator { let isDone = false; - const abortPromise = new Promise((_, reject) => { - exeContext.signal?.addEventListener('abort', () => { - isDone = true; - reject(exeContext.signal?.reason); - }); - }); - async function next(): Promise> { if (isDone) { return { value: undefined, done: true }; } - await Promise.race([ - abortPromise, - ...Array.from(exeContext.subsequentPayloads).map(p => p.promise), - ]); + const subSequentPayloadPromises = Array.from(exeContext.subsequentPayloads).map( + record => record.promise, + ); + + if (exeContext.signalPromise) { + await Promise.race([exeContext.signalPromise, ...subSequentPayloadPromises]); + } else { + await Promise.race(subSequentPayloadPromises); + } if (isDone) { // a different call to next has exhausted all payloads @@ -2138,7 +2217,11 @@ function yieldSubsequentPayloads( async throw(error?: unknown): Promise> { await returnStreamIterators(); isDone = true; - return Promise.reject(error); + throw error; + }, + async [DisposableSymbols.asyncDispose]() { + await returnStreamIterators(); + isDone = true; }, }; } diff --git a/packages/executor/src/execution/flattenAsyncIterable.ts b/packages/executor/src/execution/flattenAsyncIterable.ts index e30e88c2542..c40e51a5d9a 100644 --- a/packages/executor/src/execution/flattenAsyncIterable.ts +++ b/packages/executor/src/execution/flattenAsyncIterable.ts @@ -1,3 +1,5 @@ +import { DisposableSymbols } from '@whatwg-node/disposablestack'; + type AsyncIterableOrGenerator = AsyncGenerator | AsyncIterable; /** @@ -89,5 +91,12 @@ export function flattenAsyncIterable( [Symbol.asyncIterator]() { return this; }, + async [DisposableSymbols.asyncDispose]() { + done = true; + await Promise.all([ + currentNestedIterator?.[DisposableSymbols.asyncDispose]?.(), + topIterator?.[DisposableSymbols.asyncDispose]?.(), + ]); + }, }; } diff --git a/packages/executor/src/execution/normalizedExecutor.ts b/packages/executor/src/execution/normalizedExecutor.ts index c6db16af4f3..3658d2e5514 100644 --- a/packages/executor/src/execution/normalizedExecutor.ts +++ b/packages/executor/src/execution/normalizedExecutor.ts @@ -1,7 +1,20 @@ -import { getOperationAST } from 'graphql'; -import { ValueOrPromise } from 'value-or-promise'; -import { ExecutionResult, MaybeAsyncIterable, MaybePromise } from '@graphql-tools/utils'; -import { execute, ExecutionArgs, flattenIncrementalResults, subscribe } from './execute.js'; +import { getOperationAST, GraphQLSchema } from 'graphql'; +import { + ExecutionRequest, + ExecutionResult, + Executor, + MaybeAsyncIterable, + MaybePromise, + memoize1, +} from '@graphql-tools/utils'; +import { handleMaybePromise } from '@whatwg-node/promise-helpers'; +import { + execute, + ExecutionArgs, + flattenIncrementalResults, + isIncrementalResults, + subscribe, +} from './execute.js'; export function normalizedExecutor( args: ExecutionArgs, @@ -13,12 +26,29 @@ export function normalizedExecutor execute(args)) - .then((result): MaybeAsyncIterable> => { - if ('initialResult' in result) { + return handleMaybePromise( + () => execute(args), + result => { + if (isIncrementalResults(result)) { return flattenIncrementalResults(result); } return result; - }) - .resolve()!; + }, + ); } + +export const executorFromSchema = memoize1(function executorFromSchema( + schema: GraphQLSchema, +): Executor { + return function schemaExecutor(request: ExecutionRequest) { + return normalizedExecutor({ + schema, + document: request.document, + variableValues: request.variables, + operationName: request.operationName, + rootValue: request.rootValue, + contextValue: request.context, + signal: request.signal || request.info?.signal, + }); + }; +}); diff --git a/packages/executor/src/execution/promiseForObject.ts b/packages/executor/src/execution/promiseForObject.ts index 4b9b512593c..c287270ae7d 100644 --- a/packages/executor/src/execution/promiseForObject.ts +++ b/packages/executor/src/execution/promiseForObject.ts @@ -1,3 +1,5 @@ +import { handleMaybePromise, isPromise, MaybePromise } from '@whatwg-node/promise-helpers'; + type ResolvedObject = { [TKey in keyof TData]: TData[TKey] extends Promise ? TValue : TData[TKey]; }; @@ -9,20 +11,31 @@ type ResolvedObject = { * This is akin to bluebird's `Promise.props`, but implemented only using * `Promise.all` so it will work with any implementation of ES6 promises. */ -export async function promiseForObject( +export function promiseForObject( object: TData, signal?: AbortSignal, -): Promise> { + signalPromise?: Promise, +): MaybePromise> { + signal?.throwIfAborted(); const resolvedObject = Object.create(null); - await new Promise((resolve, reject) => { - signal?.addEventListener('abort', () => { - reject(signal.reason); - }); - Promise.all( - Object.entries(object as any).map(async ([key, value]) => { - resolvedObject[key] = await value; - }), - ).then(() => resolve(), reject); - }); - return resolvedObject; + const promises: Promise[] = []; + for (const key in object) { + const valueSet$ = handleMaybePromise( + () => object[key], + resolvedValue => { + resolvedObject[key] = resolvedValue; + }, + ); + if (isPromise(valueSet$)) { + promises.push(valueSet$); + } + } + if (!promises.length) { + return resolvedObject; + } + const promiseAll = promises.length === 1 ? promises[0] : Promise.all(promises); + if (signalPromise) { + return Promise.race([signalPromise, promiseAll]).then(() => resolvedObject); + } + return promiseAll.then(() => resolvedObject); } diff --git a/packages/executor/src/execution/values.ts b/packages/executor/src/execution/values.ts index 712e8a23c0e..034c883b5de 100644 --- a/packages/executor/src/execution/values.ts +++ b/packages/executor/src/execution/values.ts @@ -2,15 +2,20 @@ import { coerceInputValue, GraphQLError, GraphQLSchema, - isInputType, - isNonNullType, NamedTypeNode, print, typeFromAST, valueFromAST, VariableDefinitionNode, } from 'graphql'; -import { createGraphQLError, hasOwnProperty, inspect, printPathArray } from '@graphql-tools/utils'; +import { + createGraphQLError, + hasOwnProperty, + inspect, + isInputType, + isNonNullType, + printPathArray, +} from '@graphql-tools/utils'; type CoercedVariableValues = | { errors: ReadonlyArray; coerced?: never } @@ -31,7 +36,7 @@ export function getVariableValues( inputs: { readonly [variable: string]: unknown }, options?: { maxErrors?: number }, ): CoercedVariableValues { - const errors = []; + const errors: any[] = []; const maxErrors = options?.maxErrors; try { const coerced = coerceVariableValues(schema, varDefNodes, inputs, error => { @@ -50,7 +55,6 @@ export function getVariableValues( errors.push(error); } - // @ts-expect-error - We know that errors is an array of GraphQLError. return { errors }; } diff --git a/packages/executors/apollo-link/CHANGELOG.md b/packages/executors/apollo-link/CHANGELOG.md index 578cf86236e..1beb74bb4ad 100644 --- a/packages/executors/apollo-link/CHANGELOG.md +++ b/packages/executors/apollo-link/CHANGELOG.md @@ -1,5 +1,148 @@ # @graphql-tools/executor-apollo-link +## 1.0.19 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + +## 1.0.18 + +### Patch Changes + +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + +## 1.0.17 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + +## 1.0.16 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + +## 1.0.15 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + +## 1.0.14 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + +## 1.0.13 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + +## 1.0.12 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + +## 1.0.11 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + +## 1.0.10 + +### Patch Changes + +- [#6794](https://github.com/ardatan/graphql-tools/pull/6794) + [`0ce1bd2`](https://github.com/ardatan/graphql-tools/commit/0ce1bd22168b45a1b695c5f89fdec748d5abc52a) + Thanks [@enisdenjo](https://github.com/enisdenjo)! - Dispose of subscription on cleanup even while + waiting for next event + +## 1.0.9 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + +## 1.0.8 + +### Patch Changes + +- [#6769](https://github.com/ardatan/graphql-tools/pull/6769) + [`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1) + Thanks [@ardatan](https://github.com/ardatan)! - Improvements for `fakePromise` so it can be used + without params to create a `void` Promise + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + +## 1.0.7 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + +## 1.0.6 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/utils@10.6.2 + +## 1.0.5 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + +## 1.0.4 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + ## 1.0.3 ### Patch Changes diff --git a/packages/executors/apollo-link/package.json b/packages/executors/apollo-link/package.json index 6672f1d1d7f..8e70983769f 100644 --- a/packages/executors/apollo-link/package.json +++ b/packages/executors/apollo-link/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/executor-apollo-link", - "version": "1.0.3", + "version": "1.0.19", "type": "module", "description": "A set of utils for faster development of GraphQL tools", "repository": { @@ -52,11 +52,11 @@ "graphql": "^15.2.0 || ^16.0.0" }, "dependencies": { - "@graphql-tools/utils": "^10.5.6", + "@graphql-tools/utils": "^10.8.6", "tslib": "^2.3.1" }, "devDependencies": { - "@apollo/client": "3.11.10" + "@apollo/client": "3.13.8" }, "publishConfig": { "directory": "dist", diff --git a/packages/executors/apollo-link/src/index.ts b/packages/executors/apollo-link/src/index.ts index c1b7b8685e2..016c05be1f6 100644 --- a/packages/executors/apollo-link/src/index.ts +++ b/packages/executors/apollo-link/src/index.ts @@ -4,38 +4,46 @@ import { ExecutionRequest, Executor, isAsyncIterable } from '@graphql-tools/util const apollo: typeof apolloImport = (apolloImport as any)?.default ?? apolloImport; function createApolloRequestHandler(executor: Executor): apolloImport.RequestHandler { - return function ApolloRequestHandler( - operation: apolloImport.Operation, - ): apolloImport.Observable { + return function ApolloRequestHandler(operation) { return new apollo.Observable(observer => { - Promise.resolve().then(async () => { - const executionRequest: ExecutionRequest = { - document: operation.query, - variables: operation.variables, - operationName: operation.operationName, - extensions: operation.extensions, - context: operation.getContext(), - }; - try { - const results = await executor(executionRequest); - if (isAsyncIterable(results)) { - for await (const result of results) { - if (observer.closed) { - return; - } + const executionRequest: ExecutionRequest = { + document: operation.query, + variables: operation.variables, + operationName: operation.operationName, + extensions: operation.extensions, + context: operation.getContext(), + }; + + let disposed = false; + let dispose = () => { + disposed = true; + }; + (async function execution() { + const results = await executor(executionRequest); + + // request couldve been disposed before getting results + if (disposed) return; + + if (isAsyncIterable(results)) { + const asyncIterator = results[Symbol.asyncIterator](); + dispose = () => { + asyncIterator.return?.(); + }; + try { + for await (const result of { [Symbol.asyncIterator]: () => asyncIterator }) { observer.next(result); } - observer.complete(); - } else if (!observer.closed) { - observer.next(results); - observer.complete(); - } - } catch (e) { - if (!observer.closed) { + } catch (e) { observer.error(e); } + } else { + observer.next(results); } - }); + })() + .then(() => observer.complete()) + .catch(e => observer.error(e)); + + return () => dispose(); }); }; } diff --git a/packages/executors/apollo-link/tests/apollo-link.spec.ts b/packages/executors/apollo-link/tests/apollo-link.spec.ts new file mode 100644 index 00000000000..6ef3dab542c --- /dev/null +++ b/packages/executors/apollo-link/tests/apollo-link.spec.ts @@ -0,0 +1,155 @@ +import { setTimeout } from 'timers/promises'; +import { parse } from 'graphql'; +import { createSchema, createYoga, DisposableSymbols, Repeater } from 'graphql-yoga'; +import { ApolloClient, FetchResult, InMemoryCache } from '@apollo/client/core'; +import { buildHTTPExecutor } from '@graphql-tools/executor-http'; +import { createDeferred } from '@graphql-tools/utils'; +import { testIf } from '../../../testing/utils.js'; +import { ExecutorLink } from '../src/index.js'; + +describe('Apollo Link', () => { + const { promise: waitForPingStop, resolve: pingStop } = createDeferred(); + const yoga = createYoga({ + logging: false, + maskedErrors: false, + schema: createSchema({ + typeDefs: /* GraphQL */ ` + scalar File + type Query { + hello: String + } + type Mutation { + readFile(file: File!): String! + } + type Subscription { + time: String + ping: String + } + `, + resolvers: { + Query: { + hello: () => 'Hello Apollo Client!', + }, + Mutation: { + readFile: (_, args: { file: File }) => args.file.text(), + }, + Subscription: { + time: { + async *subscribe() { + while (true) { + await setTimeout(300); + yield new Date().toISOString(); + } + }, + resolve: str => str, + }, + ping: { + subscribe: () => + new Repeater(async (_pull, stop) => { + await stop; + pingStop(); + }), + }, + }, + }, + }), + }); + + const executor = buildHTTPExecutor({ + endpoint: `http://localhost${yoga.graphqlEndpoint}`, + fetch: yoga.fetch, + File: yoga.fetchAPI.File, + FormData: yoga.fetchAPI.FormData, + }); + const client = new ApolloClient({ + link: new ExecutorLink(executor), + cache: new InMemoryCache(), + }); + + afterAll(async () => { + await executor[DisposableSymbols.asyncDispose](); + client.stop(); + await client.clearStore(); + }); + + it('should handle queries correctly', async () => { + const result = await client.query({ + query: parse(/* GraphQL */ ` + query Greetings { + hello + } + `), + }); + expect(result.error).toBeUndefined(); + expect(result.errors?.length).toBeFalsy(); + expect(result.data).toEqual({ + hello: 'Hello Apollo Client!', + }); + }); + testIf(!process.env['LEAK_TEST'] && !globalThis.Bun)( + 'should handle subscriptions correctly', + async () => { + expect.assertions(5); + const observable = client.subscribe({ + query: parse(/* GraphQL */ ` + subscription Time { + time + } + `), + }); + const collectedValues: string[] = []; + let i = 0; + await new Promise((resolve, reject) => { + const subscription = observable.subscribe((result: FetchResult) => { + collectedValues.push(result.data?.['time']); + i++; + if (i > 2) { + subscription.unsubscribe(); + resolve(); + } + }, reject); + }); + expect(collectedValues.length).toBe(3); + expect(i).toBe(3); + const now = new Date(); + for (const value of collectedValues) { + expect(new Date(value).getFullYear()).toBe(now.getFullYear()); + } + }, + ); + it('should handle file uploads correctly', async () => { + const result = await client.mutate({ + mutation: parse(/* GraphQL */ ` + mutation readFile($file: File!) { + readFile(file: $file) + } + `), + variables: { + file: new yoga.fetchAPI.File(['Hello World'], 'file.txt', { type: 'text/plain' }), + }, + }); + expect(result.errors?.length).toBeFalsy(); + expect(result.data).toEqual({ + readFile: 'Hello World', + }); + }); + testIf(!globalThis.Bun)( + 'should complete subscription even while waiting for events', + async () => { + const observable = client.subscribe({ + query: parse(/* GraphQL */ ` + subscription Ping { + ping + } + `), + }); + const sub = observable.subscribe({ + next: () => { + // noop + }, + }); + globalThis.setTimeout(() => sub.unsubscribe(), 0); + await waitForPingStop; + }, + ); +}); diff --git a/packages/executors/apollo-link/tests/browser-apollo-link.spec.ts b/packages/executors/apollo-link/tests/browser-apollo-link.spec.ts deleted file mode 100644 index 25767d9d588..00000000000 --- a/packages/executors/apollo-link/tests/browser-apollo-link.spec.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { parse } from 'graphql'; -import { createSchema, createYoga } from 'graphql-yoga'; -import { ApolloClient, FetchResult, InMemoryCache } from '@apollo/client/core'; -import { buildHTTPExecutor } from '@graphql-tools/executor-http'; -import { ExecutorLink } from '../src/index.js'; - -describe('Apollo Link', () => { - if (!process.env['TEST_BROWSER']) { - it('skips', () => {}); - return; - } - const yoga = createYoga({ - logging: false, - maskedErrors: false, - schema: createSchema({ - typeDefs: /* GraphQL */ ` - scalar File - type Query { - hello: String - } - type Mutation { - readFile(file: File!): String! - } - type Subscription { - time: String - } - `, - resolvers: { - Query: { - hello: () => 'Hello Apollo Client!', - }, - Mutation: { - readFile: (_, args: { file: File }) => args.file.text(), - }, - Subscription: { - time: { - async *subscribe() { - while (true) { - await new Promise(resolve => setTimeout(resolve, 1000)); - yield new Date().toISOString(); - } - }, - resolve: str => str, - }, - }, - }, - }), - }); - - const client = new ApolloClient({ - link: new ExecutorLink( - buildHTTPExecutor({ - fetch: yoga.fetch, - File: yoga.fetchAPI.File, - FormData: yoga.fetchAPI.FormData, - }), - ), - cache: new InMemoryCache(), - }); - - it('should handle queries correctly', async () => { - const result = await client.query({ - query: parse(/* GraphQL */ ` - query Greetings { - hello - } - `), - }); - expect(result.error).toBeUndefined(); - expect(result.errors?.length).toBeFalsy(); - expect(result.data).toEqual({ - hello: 'Hello Apollo Client!', - }); - }); - it('should handle subscriptions correctly', async () => { - expect.assertions(5); - const observable = client.subscribe({ - query: parse(/* GraphQL */ ` - subscription Time { - time - } - `), - }); - const collectedValues: string[] = []; - let i = 0; - await new Promise(resolve => { - const subscription = observable.subscribe((result: FetchResult) => { - collectedValues.push(result.data?.['time']); - i++; - if (i > 2) { - subscription.unsubscribe(); - resolve(); - } - }); - }); - expect(collectedValues.length).toBe(3); - expect(i).toBe(3); - const now = new Date(); - for (const value of collectedValues) { - expect(new Date(value).getFullYear()).toBe(now.getFullYear()); - } - }); - it('should handle file uploads correctly', async () => { - const result = await client.mutate({ - mutation: parse(/* GraphQL */ ` - mutation readFile($file: File!) { - readFile(file: $file) - } - `), - variables: { - file: new yoga.fetchAPI.File(['Hello World'], 'file.txt', { type: 'text/plain' }), - }, - }); - expect(result.errors?.length).toBeFalsy(); - expect(result.data).toEqual({ - readFile: 'Hello World', - }); - }); -}); diff --git a/packages/executors/envelop/CHANGELOG.md b/packages/executors/envelop/CHANGELOG.md index 0a987e9333b..082634e3ad8 100644 --- a/packages/executors/envelop/CHANGELOG.md +++ b/packages/executors/envelop/CHANGELOG.md @@ -1,5 +1,143 @@ # @graphql-tools/executor-envelop +## 3.0.27 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + +## 3.0.26 + +### Patch Changes + +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + +## 3.0.25 + +### Patch Changes + +- [#7001](https://github.com/ardatan/graphql-tools/pull/7001) + [`746358f`](https://github.com/ardatan/graphql-tools/commit/746358f68e81c9a3cf1ccf4b1a599ae6eae404ca) + Thanks [@renovate](https://github.com/apps/renovate)! - Improve logging the warning about + introspection failure + +## 3.0.24 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + +## 3.0.23 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + +## 3.0.22 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + +## 3.0.21 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + +## 3.0.20 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + +## 3.0.19 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + +## 3.0.18 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + +## 3.0.17 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + +## 3.0.16 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + +## 3.0.15 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + +## 3.0.14 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/utils@10.6.2 + +## 3.0.13 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + +## 3.0.12 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + ## 3.0.11 ### Patch Changes diff --git a/packages/executors/envelop/package.json b/packages/executors/envelop/package.json index 03f90c8c46b..6828ce7818e 100644 --- a/packages/executors/envelop/package.json +++ b/packages/executors/envelop/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/executor-envelop", - "version": "3.0.11", + "version": "3.0.27", "type": "module", "description": "A set of utils for faster development of GraphQL tools", "repository": { @@ -51,12 +51,12 @@ "@envelop/core": "^3.0.4 || ^4.0.0 || ^5.0.0" }, "dependencies": { - "@graphql-tools/utils": "^10.5.6", + "@graphql-tools/utils": "^10.8.6", "@graphql-tools/wrap": "^10.0.16", "tslib": "^2.3.1" }, "devDependencies": { - "@envelop/core": "5.0.2" + "@envelop/core": "5.2.3" }, "publishConfig": { "directory": "dist", diff --git a/packages/executors/envelop/src/index.ts b/packages/executors/envelop/src/index.ts index 5ab2403a62b..510f257efd8 100644 --- a/packages/executors/envelop/src/index.ts +++ b/packages/executors/envelop/src/index.ts @@ -1,4 +1,4 @@ -import { ExecutionArgs, Plugin } from '@envelop/core'; +import { ExecutionArgs, mapMaybePromise, Plugin } from '@envelop/core'; import { Executor, isPromise, MaybePromise } from '@graphql-tools/utils'; import { schemaFromExecutor } from '@graphql-tools/wrap'; @@ -7,12 +7,13 @@ type GraphQLSchema = any; export interface ExecutorPluginContext { schema$?: MaybePromise; schema?: GraphQLSchema; - schemaSetPromise$?: PromiseLike; + schemaSetPromise$?: Promise; skipIntrospection: boolean; } export type ExecutorPluginOpts = Parameters[2] & { polling?: number; + logWarn?(...args: any[]): void; }; export interface ExecutorPluginExtras { @@ -25,6 +26,7 @@ export function useExecutor>( executor: Executor, opts?: ExecutorPluginOpts, ): Plugin & ExecutorPluginExtras { + const logWarn = opts?.logWarn || (message => console.warn(message)); const EMPTY_ARRAY = Object.freeze([]); function executorToExecuteFn(executionArgs: ExecutionArgs) { return executor({ @@ -60,10 +62,7 @@ export function useExecutor>( pluginCtx.schema = newSchema; }) as Promise ).catch?.(err => { - console.warn( - `Introspection failed, skipping introspection due to the following errors;\n`, - err, - ); + logWarn(`Introspection failed, skipping introspection due to the errors`, err); pluginCtx.skipIntrospection = true; }); } else { @@ -72,10 +71,7 @@ export function useExecutor>( } } catch (err) { pluginCtx.skipIntrospection = true; - console.warn( - `Introspection failed, skipping introspection due to the following errors;\n`, - err, - ); + logWarn(`Introspection failed, skipping introspection due to the following errors`, err); } } return { @@ -97,12 +93,9 @@ export function useExecutor>( pluginCtx.schema$ = pluginCtx.schema; } ensureSchema(args.contextValue); - if (isPromise(pluginCtx.schemaSetPromise$)) { - return pluginCtx.schemaSetPromise$.then(() => { - setExecuteFn(executorToExecuteFn); - }) as Promise; - } - setExecuteFn(executorToExecuteFn); + return mapMaybePromise(pluginCtx.schemaSetPromise$, () => { + setExecuteFn(executorToExecuteFn); + }); }, onSubscribe({ args, setSubscribeFn }) { if (args.schema) { @@ -110,12 +103,9 @@ export function useExecutor>( pluginCtx.schema$ = pluginCtx.schema; } ensureSchema(args.contextValue); - if (isPromise(pluginCtx.schemaSetPromise$)) { - return pluginCtx.schemaSetPromise$.then(() => { - setSubscribeFn(executorToExecuteFn); - }) as Promise; - } - setSubscribeFn(executorToExecuteFn); + return mapMaybePromise(pluginCtx.schemaSetPromise$, () => { + setSubscribeFn(executorToExecuteFn); + }); }, onValidate({ params, context, setResult }) { if (params.schema) { diff --git a/packages/executors/envelop/tests/envelop.spec.ts b/packages/executors/envelop/tests/envelop.spec.ts index 9d73b3e14ba..61302a1b0a6 100644 --- a/packages/executors/envelop/tests/envelop.spec.ts +++ b/packages/executors/envelop/tests/envelop.spec.ts @@ -1,7 +1,7 @@ -import { buildSchema, parse } from 'graphql'; +import { buildSchema, parse, print, stripIgnoredCharacters } from 'graphql'; import { envelop } from '@envelop/core'; import { useExecutor } from '@graphql-tools/executor-envelop'; -import { Executor } from '@graphql-tools/utils'; +import { ExecutionRequest, ExecutionResult, Executor } from '@graphql-tools/utils'; describe('Envelop', () => { const schema = buildSchema(/* GraphQL */ ` @@ -9,11 +9,12 @@ describe('Envelop', () => { hello: String } `); - const document = parse(/* GraphQL */ ` + const query = /* GraphQL */ ` query Greetings { hello } - `); + `; + const document = parse(query); it('should pass the operation correctly with execute', async () => { const executor: Executor = jest.fn().mockImplementation(() => ({ data: { @@ -40,7 +41,9 @@ describe('Envelop', () => { }); }); it('should pass the operation correctly with subscribe', async () => { - const executor: Executor = jest.fn().mockImplementation(async function* () { + const executor = jest.fn(async function* ( + _req: ExecutionRequest, + ): AsyncIterable { for (let i = 0; i < 3; i++) { yield { data: { @@ -57,36 +60,34 @@ describe('Envelop', () => { const result = await subscribe({ schema, document, + contextValue: context, }); expect(result[Symbol.asyncIterator]).toBeDefined(); - const collectedResults = []; + const collectedResults: any[] = []; for await (const chunk of result as AsyncIterableIterator) { collectedResults.push(chunk); } - expect(collectedResults).toMatchInlineSnapshot(` - [ - { - "data": { - "count": 0, - }, + expect(collectedResults).toEqual([ + { + data: { + count: 0, }, - { - "data": { - "count": 1, - }, + }, + { + data: { + count: 1, }, - { - "data": { - "count": 2, - }, + }, + { + data: { + count: 2, }, - ] - `); - - expect(executor).toBeCalledWith({ - document, - context, - }); + }, + ]); + expect(stripIgnoredCharacters(print(executor.mock.calls[1][0].document))).toBe( + stripIgnoredCharacters(query), + ); + expect(executor.mock.calls[1][0].context).toBe(context); }); it('should skip validation if schema is not provided', async () => { const executor: Executor = jest.fn().mockImplementation(() => { diff --git a/packages/executors/legacy-ws/CHANGELOG.md b/packages/executors/legacy-ws/CHANGELOG.md index 70ab17e3edb..3d4a9df8701 100644 --- a/packages/executors/legacy-ws/CHANGELOG.md +++ b/packages/executors/legacy-ws/CHANGELOG.md @@ -1,5 +1,134 @@ # @graphql-tools/executor-legacy-ws +## 1.1.17 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + +## 1.1.16 + +### Patch Changes + +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + +## 1.1.15 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + +## 1.1.14 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + +## 1.1.13 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + +## 1.1.12 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + +## 1.1.11 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + +## 1.1.10 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + +## 1.1.9 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + +## 1.1.8 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + +## 1.1.7 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + +## 1.1.6 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + +## 1.1.5 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/utils@10.6.2 + +## 1.1.4 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + +## 1.1.3 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + ## 1.1.2 ### Patch Changes diff --git a/packages/executors/legacy-ws/package.json b/packages/executors/legacy-ws/package.json index 4352f7cc6cb..53c46dbc57e 100644 --- a/packages/executors/legacy-ws/package.json +++ b/packages/executors/legacy-ws/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/executor-legacy-ws", - "version": "1.1.2", + "version": "1.1.17", "type": "module", "description": "A set of utils for faster development of GraphQL tools", "repository": { @@ -51,7 +51,7 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "dependencies": { - "@graphql-tools/utils": "^10.5.6", + "@graphql-tools/utils": "^10.8.6", "@types/ws": "^8.0.0", "isomorphic-ws": "^5.0.0", "tslib": "^2.4.0", diff --git a/packages/executors/urql-exchange/CHANGELOG.md b/packages/executors/urql-exchange/CHANGELOG.md index 361e2ef1578..2f9dadab61e 100644 --- a/packages/executors/urql-exchange/CHANGELOG.md +++ b/packages/executors/urql-exchange/CHANGELOG.md @@ -1,5 +1,151 @@ # @graphql-tools/executor-urql-exchange +## 1.0.19 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + +## 1.0.18 + +### Patch Changes + +- [#7020](https://github.com/ardatan/graphql-tools/pull/7020) + [`1428da4`](https://github.com/ardatan/graphql-tools/commit/1428da4f494f2fb42ea45e95a25d7800fb183abb) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + + - Added dependency + [`@whatwg-node/promise-helpers@^1.2.4` โ†—๏ธŽ](https://www.npmjs.com/package/@whatwg-node/promise-helpers/v/1.2.4) + (to `dependencies`) + +- [#7020](https://github.com/ardatan/graphql-tools/pull/7020) + [`1428da4`](https://github.com/ardatan/graphql-tools/commit/1428da4f494f2fb42ea45e95a25d7800fb183abb) + Thanks [@renovate](https://github.com/apps/renovate)! - Fix sync execution for urql exchange + +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + +## 1.0.17 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + +## 1.0.16 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + +## 1.0.15 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + +## 1.0.14 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + +## 1.0.13 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + +## 1.0.12 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + +## 1.0.11 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + +## 1.0.10 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + +## 1.0.9 + +### Patch Changes + +- [#6769](https://github.com/ardatan/graphql-tools/pull/6769) + [`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1) + Thanks [@ardatan](https://github.com/ardatan)! - Improvements for `fakePromise` so it can be used + without params to create a `void` Promise + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + +## 1.0.8 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + +## 1.0.7 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/utils@10.6.2 + +## 1.0.6 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + +## 1.0.5 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + ## 1.0.4 ### Patch Changes diff --git a/packages/executors/urql-exchange/package.json b/packages/executors/urql-exchange/package.json index 04f6d61af02..27c6f124f94 100644 --- a/packages/executors/urql-exchange/package.json +++ b/packages/executors/urql-exchange/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/executor-urql-exchange", - "version": "1.0.4", + "version": "1.0.19", "type": "module", "description": "", "repository": { @@ -48,12 +48,13 @@ "wonka": "^6.0.0" }, "dependencies": { - "@graphql-tools/utils": "^10.5.6", + "@graphql-tools/utils": "^10.8.6", + "@whatwg-node/promise-helpers": "^1.2.4", "tslib": "^2.4.0" }, "devDependencies": { - "@urql/core": "5.0.8", - "wonka": "6.3.4" + "@urql/core": "5.1.1", + "wonka": "6.3.5" }, "publishConfig": { "directory": "dist", diff --git a/packages/executors/urql-exchange/src/index.ts b/packages/executors/urql-exchange/src/index.ts index f6f50f003cd..50e332ec07f 100644 --- a/packages/executors/urql-exchange/src/index.ts +++ b/packages/executors/urql-exchange/src/index.ts @@ -13,6 +13,7 @@ import { OperationContext, OperationResult, } from '@urql/core'; +import { handleMaybePromise } from '@whatwg-node/promise-helpers'; export function executorExchange(executor: Executor): Exchange { function makeYogaSource>( @@ -37,40 +38,53 @@ export function executorExchange(executor: Executor): Exchange { }; return make>(observer => { let ended = false; - Promise.resolve(executor(executionRequest)) - .then(async result => { + let iterator: AsyncIterator; + handleMaybePromise( + () => executor(executionRequest), + result => { if (ended || !result) { return; } if (!isAsyncIterable(result)) { observer.next(makeResult(operation, result as ExecutionResult)); + observer.complete(); } else { let prevResult: OperationResult | null = null; - for await (const value of result) { - if (value) { - if (prevResult && value.incremental) { - prevResult = mergeResultPatch(prevResult, value as ExecutionResult); - } else { - prevResult = makeResult(operation, value as ExecutionResult); - } - observer.next(prevResult); - } + iterator = result[Symbol.asyncIterator]() as AsyncIterator; + function iterate() { if (ended) { - break; + return; } + return iterator.next().then(({ value, done }) => { + if (done) { + return; + } + if (value) { + if (prevResult && value.incremental) { + prevResult = mergeResultPatch(prevResult, value as ExecutionResult); + } else { + prevResult = makeResult(operation, value as ExecutionResult); + } + observer.next(prevResult); + } + return iterate(); + }); } + return handleMaybePromise( + () => iterate(), + () => observer.complete(), + ); } - observer.complete(); - }) - .catch(error => { + }, + error => { observer.next(makeErrorResult(operation, error)); - }) - .finally(() => { ended = true; observer.complete(); - }); + }, + ); return () => { + iterator?.return?.(); ended = true; }; }); diff --git a/packages/executors/urql-exchange/tests/browser-urql-exchange.spec.ts b/packages/executors/urql-exchange/tests/urql-exchange.spec.ts similarity index 52% rename from packages/executors/urql-exchange/tests/browser-urql-exchange.spec.ts rename to packages/executors/urql-exchange/tests/urql-exchange.spec.ts index b00c42443a6..e67dcaf762a 100644 --- a/packages/executors/urql-exchange/tests/browser-urql-exchange.spec.ts +++ b/packages/executors/urql-exchange/tests/urql-exchange.spec.ts @@ -1,16 +1,15 @@ +import { setTimeout } from 'timers/promises'; import { createSchema, createYoga } from 'graphql-yoga'; import { pipe, toObservable } from 'wonka'; import { buildHTTPExecutor } from '@graphql-tools/executor-http'; import { ExecutionResult } from '@graphql-tools/utils'; import { createClient } from '@urql/core'; +import { AsyncDisposableStack } from '@whatwg-node/disposablestack'; +import { testIf } from '../../../testing/utils.js'; import { executorExchange } from '../src/index.js'; describe('URQL Yoga Exchange', () => { - if (!process.env['TEST_BROWSER']) { - it('skips', () => {}); - return; - } - const aCharCode = 'a'.charCodeAt(0); + const asyncDisposableStack = new AsyncDisposableStack(); const yoga = createYoga({ logging: false, maskedErrors: false, @@ -29,18 +28,19 @@ describe('URQL Yoga Exchange', () => { `, resolvers: { Query: { - hello: () => 'Hello Urql Client!', + hello: async () => 'Hello Urql Client!', }, Mutation: { - readFile: (_, args: { file: File }) => args.file.text(), + readFile: async (_, args: { file: File }) => args.file.text(), }, Subscription: { alphabet: { async *subscribe() { let i = 0; while (true) { + const aCharCode = 'a'.charCodeAt(0); yield String.fromCharCode(aCharCode + i); - await new Promise(resolve => setTimeout(resolve, 300)); + await setTimeout(300); i++; } }, @@ -50,20 +50,22 @@ describe('URQL Yoga Exchange', () => { }, }), }); + asyncDisposableStack.use(yoga); + const executor = buildHTTPExecutor({ + endpoint: 'http://localhost:4000/graphql', + fetch: yoga.fetch, + File: yoga.fetchAPI.File, + FormData: yoga.fetchAPI.FormData, + }); + asyncDisposableStack.use(executor); const client = createClient({ url: 'http://localhost:4000/graphql', - exchanges: [ - executorExchange( - buildHTTPExecutor({ - fetch: yoga.fetch, - File: yoga.fetchAPI.File, - FormData: yoga.fetchAPI.FormData, - }), - ), - ], + exchanges: [executorExchange(executor)], }); + afterAll(() => asyncDisposableStack.disposeAsync()); + it('should handle queries correctly', async () => { const result = await client .query( @@ -80,44 +82,46 @@ describe('URQL Yoga Exchange', () => { hello: 'Hello Urql Client!', }); }); - it('should handle subscriptions correctly', async () => { - const observable = pipe( - client.subscription( - /* GraphQL */ ` - subscription Alphabet { - alphabet - } - `, - {}, - ), - toObservable, - ); + testIf(!process.env['LEAK_TEST'] && !globalThis.Bun)( + 'should handle subscriptions correctly', + async () => { + const observable = pipe( + client.subscription( + /* GraphQL */ ` + subscription Alphabet { + alphabet + } + `, + {}, + ), + toObservable, + ); - const collectedValues: string[] = []; - let i = 0; - await new Promise((resolve, reject) => { - const subscription = observable.subscribe({ - next: (result: ExecutionResult) => { - collectedValues.push(result.data?.alphabet as string); - i++; - if (i > 2) { - subscription.unsubscribe(); + const collectedValues: string[] = []; + let i = 0; + await new Promise((resolve, reject) => { + const subscription = observable.subscribe({ + next: (result: ExecutionResult) => { + collectedValues.push(result.data?.alphabet as string); + i++; + if (i > 2) { + subscription.unsubscribe(); + resolve(); + } + }, + complete: () => { resolve(); - } - }, - complete: () => { - console.log('bitti'); - resolve(); - }, - error: (error: Error) => { - reject(error); - }, + }, + error: (error: Error) => { + reject(error); + }, + }); }); - }); - expect(collectedValues).toEqual(['a', 'b', 'c']); - expect(i).toBe(3); - }); - it('should handle file uploads correctly', async () => { + expect(collectedValues).toEqual(['a', 'b', 'c']); + expect(i).toBe(3); + }, + ); + test('should handle file uploads correctly', async () => { const query = /* GraphQL */ ` mutation readFile($file: File!) { readFile(file: $file) diff --git a/packages/executors/yoga/CHANGELOG.md b/packages/executors/yoga/CHANGELOG.md index 7eea1fed2a2..a3a6382c926 100644 --- a/packages/executors/yoga/CHANGELOG.md +++ b/packages/executors/yoga/CHANGELOG.md @@ -1,5 +1,166 @@ # @graphql-tools/executor-yoga +## 3.0.27 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + - @graphql-tools/executor-envelop@3.0.27 + +## 3.0.26 + +### Patch Changes + +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + - @graphql-tools/executor-envelop@3.0.26 + +## 3.0.25 + +### Patch Changes + +- [#7001](https://github.com/ardatan/graphql-tools/pull/7001) + [`746358f`](https://github.com/ardatan/graphql-tools/commit/746358f68e81c9a3cf1ccf4b1a599ae6eae404ca) + Thanks [@renovate](https://github.com/apps/renovate)! - Improve logging the warning about + introspection failure + +- Updated dependencies + [[`746358f`](https://github.com/ardatan/graphql-tools/commit/746358f68e81c9a3cf1ccf4b1a599ae6eae404ca)]: + - @graphql-tools/executor-envelop@3.0.25 + +## 3.0.24 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + - @graphql-tools/executor-envelop@3.0.24 + +## 3.0.23 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + - @graphql-tools/executor-envelop@3.0.23 + +## 3.0.22 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + - @graphql-tools/executor-envelop@3.0.22 + +## 3.0.21 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + - @graphql-tools/executor-envelop@3.0.21 + +## 3.0.20 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + - @graphql-tools/executor-envelop@3.0.20 + +## 3.0.19 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + - @graphql-tools/executor-envelop@3.0.19 + +## 3.0.18 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + - @graphql-tools/executor-envelop@3.0.18 + +## 3.0.17 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + - @graphql-tools/executor-envelop@3.0.17 + +## 3.0.16 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + - @graphql-tools/executor-envelop@3.0.16 + +## 3.0.15 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + - @graphql-tools/executor-envelop@3.0.15 + +## 3.0.14 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/executor-envelop@^3.0.13` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/executor-envelop/v/3.0.13) + (from `^3.0.12`, in `dependencies`) + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679), + [`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/executor-envelop@3.0.14 + - @graphql-tools/utils@10.6.2 + +## 3.0.13 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + - @graphql-tools/executor-envelop@3.0.13 + +## 3.0.12 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + - @graphql-tools/executor-envelop@3.0.12 + ## 3.0.11 ### Patch Changes diff --git a/packages/executors/yoga/package.json b/packages/executors/yoga/package.json index 5a7afd28aed..b01c103b743 100644 --- a/packages/executors/yoga/package.json +++ b/packages/executors/yoga/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/executor-yoga", - "version": "3.0.11", + "version": "3.0.27", "type": "module", "description": "A set of utils for faster development of GraphQL tools", "repository": { @@ -52,8 +52,8 @@ "graphql-yoga": "^3.5.1 || ^4.0.0 || ^5.0.0" }, "dependencies": { - "@graphql-tools/executor-envelop": "^3.0.11", - "@graphql-tools/utils": "^10.5.6", + "@graphql-tools/executor-envelop": "^3.0.27", + "@graphql-tools/utils": "^10.8.6", "tslib": "^2.3.1" }, "devDependencies": { diff --git a/packages/executors/yoga/src/index.ts b/packages/executors/yoga/src/index.ts index f4a41049b9f..a140f3659e6 100644 --- a/packages/executors/yoga/src/index.ts +++ b/packages/executors/yoga/src/index.ts @@ -1,4 +1,4 @@ -import { YogaInitialContext, type Plugin } from 'graphql-yoga'; +import { DisposableSymbols, YogaInitialContext, type Plugin } from 'graphql-yoga'; import { ExecutorPluginExtras, ExecutorPluginOpts, @@ -10,9 +10,24 @@ export function useExecutor( executor: Executor, opts?: ExecutorPluginOpts, ): Plugin & ExecutorPluginExtras { - const envelopPlugin = useEnvelopExecutor(executor, opts); + let logWarn = opts?.logWarn || ((message: any) => console.warn(message)); + const envelopPlugin = useEnvelopExecutor(executor, { + ...opts, + logWarn(...args) { + return logWarn(...args); + }, + }); + let disposableSymbol: typeof DisposableSymbols.asyncDispose | typeof DisposableSymbols.dispose; + if (executor[DisposableSymbols.asyncDispose]) { + disposableSymbol = DisposableSymbols.asyncDispose; + } else if (executor[DisposableSymbols.dispose]) { + disposableSymbol = DisposableSymbols.dispose; + } return { ...envelopPlugin, + onYogaInit({ yoga }) { + logWarn = (...args) => yoga.logger.warn(...args); + }, onRequestParse({ serverContext }) { return { onRequestParseDone() { @@ -23,5 +38,8 @@ export function useExecutor( }, }; }, + [disposableSymbol]() { + return executor[disposableSymbol](); + }, }; } diff --git a/packages/executors/yoga/tests/yoga.spec.ts b/packages/executors/yoga/tests/yoga.spec.ts index c1f055549f2..625da4b12d0 100644 --- a/packages/executors/yoga/tests/yoga.spec.ts +++ b/packages/executors/yoga/tests/yoga.spec.ts @@ -1,30 +1,34 @@ import { createSchema, createYoga } from 'graphql-yoga'; import { buildHTTPExecutor } from '@graphql-tools/executor-http'; import { useExecutor } from '@graphql-tools/executor-yoga'; +import { patchSymbols } from '@whatwg-node/disposablestack'; + +patchSymbols(); describe('Yoga Plugin', () => { - const actual = createYoga({ - logging: false, - schema: createSchema({ - typeDefs: /* GraphQL */ ` - type Query { - hello: String - } - `, - resolvers: { - Query: { - hello: () => 'Hello World!', - }, - }, - }), - }); - const executor = buildHTTPExecutor({ - fetch: actual.fetch, - }); - const proxy = createYoga({ - plugins: [useExecutor(executor)], - }); it('should pass the operation correctly', async () => { + await using actual = createYoga({ + logging: false, + schema: createSchema({ + typeDefs: /* GraphQL */ ` + type Query { + hello: String + } + `, + resolvers: { + Query: { + hello: () => 'Hello World!', + }, + }, + }), + }); + await using executor = buildHTTPExecutor({ + endpoint: 'http://yoga/graphql', + fetch: actual.fetch, + }); + await using proxy = createYoga({ + plugins: [useExecutor(executor)], + }); const result = await proxy.fetch('http://yoga/graphql', { method: 'POST', headers: { diff --git a/packages/graphql-tag-pluck/CHANGELOG.md b/packages/graphql-tag-pluck/CHANGELOG.md index 85c298cd0ac..c7f5831072d 100644 --- a/packages/graphql-tag-pluck/CHANGELOG.md +++ b/packages/graphql-tag-pluck/CHANGELOG.md @@ -1,5 +1,159 @@ # @graphql-tools/graphql-tag-pluck +## 8.3.19 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + +## 8.3.18 + +### Patch Changes + +- [#7023](https://github.com/ardatan/graphql-tools/pull/7023) + [`6bb35f4`](https://github.com/ardatan/graphql-tools/commit/6bb35f44d67638e222af9ec68f16a1762d373b0f) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@babel/core@^7.26.10` โ†—๏ธŽ](https://www.npmjs.com/package/@babel/core/v/7.26.10) (from + `^7.22.9`, in `dependencies`) + - Updated dependency + [`@babel/parser@^7.26.10` โ†—๏ธŽ](https://www.npmjs.com/package/@babel/parser/v/7.26.10) (from + `^7.16.8`, in `dependencies`) + - Updated dependency + [`@babel/plugin-syntax-import-assertions@^7.26.0` โ†—๏ธŽ](https://www.npmjs.com/package/@babel/plugin-syntax-import-assertions/v/7.26.0) + (from `^7.20.0`, in `dependencies`) + - Updated dependency + [`@babel/traverse@^7.26.10` โ†—๏ธŽ](https://www.npmjs.com/package/@babel/traverse/v/7.26.10) (from + `^7.16.8`, in `dependencies`) + - Updated dependency + [`@babel/types@^7.26.10` โ†—๏ธŽ](https://www.npmjs.com/package/@babel/types/v/7.26.10) (from + `^7.16.8`, in `dependencies`) +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + +## 8.3.17 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + +## 8.3.16 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + +## 8.3.15 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + +## 8.3.14 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + +## 8.3.13 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + +## 8.3.12 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + +## 8.3.11 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + +## 8.3.10 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + +## 8.3.9 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + +## 8.3.8 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + +## 8.3.7 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) + +- [#6667](https://github.com/ardatan/graphql-tools/pull/6667) + [`4fd0d3a`](https://github.com/ardatan/graphql-tools/commit/4fd0d3a335b39dc0c44e78a0416bb7dfe900c2ea) + Thanks [@renovate](https://github.com/apps/renovate)! - Support content-tag v3 and support older + versions + +- Updated dependencies + [[`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/utils@10.6.2 + +## 8.3.6 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + +## 8.3.5 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + ## 8.3.4 ### Patch Changes diff --git a/packages/graphql-tag-pluck/package.json b/packages/graphql-tag-pluck/package.json index 10cd8b7a93f..844c94d3b02 100644 --- a/packages/graphql-tag-pluck/package.json +++ b/packages/graphql-tag-pluck/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/graphql-tag-pluck", - "version": "8.3.4", + "version": "8.3.19", "type": "module", "description": "Pluck graphql-tag template literals", "repository": { @@ -50,25 +50,22 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "dependencies": { - "@babel/core": "^7.22.9", - "@babel/parser": "^7.16.8", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8", - "@graphql-tools/utils": "^10.5.6", + "@babel/core": "^7.26.10", + "@babel/parser": "^7.26.10", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/traverse": "^7.26.10", + "@babel/types": "^7.26.10", + "@graphql-tools/utils": "^10.8.6", "tslib": "^2.4.0" }, "devDependencies": { - "@astrojs/compiler": "^2.3.4", - "@babel/parser": "7.26.2", - "@babel/traverse": "7.25.9", - "@babel/types": "7.26.0", - "@types/babel__traverse": "7.20.6", - "@vue/compiler-sfc": "3.5.12", - "astrojs-compiler-sync": "^1.0.0", - "content-tag": "^2.0.1", - "svelte": "5.2.0", - "svelte2tsx": "0.7.24" + "@astrojs/compiler": "2.12.0", + "@types/babel__traverse": "7.20.7", + "@vue/compiler-sfc": "3.5.13", + "astrojs-compiler-sync": "1.1.1", + "content-tag": "4.0.0", + "svelte": "5.28.6", + "svelte2tsx": "0.7.37" }, "publishConfig": { "directory": "dist", diff --git a/packages/graphql-tag-pluck/src/index.ts b/packages/graphql-tag-pluck/src/index.ts index 90405b0cab6..5affe6b95b3 100644 --- a/packages/graphql-tag-pluck/src/index.ts +++ b/packages/graphql-tag-pluck/src/index.ts @@ -201,7 +201,12 @@ function parseWithAstroSync( function transformGlimmerFile(glimmerSyntax: typeof import('content-tag'), fileData: string) { const processor = new glimmerSyntax.Preprocessor(); - return processor.process(fileData); + // backwards compatibility with older versions of content-tag + const result = processor.process(fileData); + if (typeof result === 'string') { + return result; + } + return result.code; } /** diff --git a/packages/graphql-tag-pluck/src/visitor.ts b/packages/graphql-tag-pluck/src/visitor.ts index 111c0743c1b..35667f300e2 100644 --- a/packages/graphql-tag-pluck/src/visitor.ts +++ b/packages/graphql-tag-pluck/src/visitor.ts @@ -203,7 +203,7 @@ export default (code: string, out: any, options: GraphQLTagPluckOptions = {}) => identifier: mod.identifier && mod.identifier.toLowerCase(), }; }); - globalGqlIdentifierName = asArray(globalGqlIdentifierName).map(s => s!.toLowerCase()); + globalGqlIdentifierName = asArray(globalGqlIdentifierName ?? ''); const hooksOptions = { skipIndent, gqlMagicComment, modules, globalGqlIdentifierName }; diff --git a/packages/graphql-tag-pluck/tests/graphql-tag-pluck.test.ts b/packages/graphql-tag-pluck/tests/graphql-tag-pluck.test.ts index 1b711e3fcc9..568c4bfe7f7 100644 --- a/packages/graphql-tag-pluck/tests/graphql-tag-pluck.test.ts +++ b/packages/graphql-tag-pluck/tests/graphql-tag-pluck.test.ts @@ -1943,7 +1943,6 @@ describe('graphql-tag-pluck', () => { globalGqlIdentifierName: 'anothergql', }, ); - expect(sources.map(source => source.body).join('\n\n')).toEqual( freeText(` fragment Foo on FooType { @@ -1959,6 +1958,39 @@ describe('graphql-tag-pluck', () => { ); }); + it('should be able to specify the global GraphQL identifier name case sensitively', async () => { + const sources = await pluck( + 'tmp-XXXXXX.js', + freeText(` + const fragment = anotherGql(\` + fragment Foo on FooType { + id + } + \`) + + const doc = AnotherGql\` + query foo { + foo { + ...Foo + } + } + + \${fragment} + \` + `), + { + globalGqlIdentifierName: 'anotherGql', + }, + ); + + expect(sources.map(source => source.body).join('\n\n')).toEqual( + freeText(` + fragment Foo on FooType { + id + }`), + ); + }); + it('should be able to specify the GraphQL magic comment to look for', async () => { const sources = await pluck( 'tmp-XXXXXX.js', diff --git a/packages/graphql-tools/CHANGELOG.md b/packages/graphql-tools/CHANGELOG.md index cb1df68f136..6c5100392ca 100644 --- a/packages/graphql-tools/CHANGELOG.md +++ b/packages/graphql-tools/CHANGELOG.md @@ -1,5 +1,119 @@ # graphql-tools +## 9.0.18 + +### Patch Changes + +- Updated dependencies []: + - @graphql-tools/schema@10.0.23 + +## 9.0.17 + +### Patch Changes + +- Updated dependencies []: + - @graphql-tools/schema@10.0.22 + +## 9.0.16 + +### Patch Changes + +- Updated dependencies []: + - @graphql-tools/schema@10.0.21 + +## 9.0.15 + +### Patch Changes + +- Updated dependencies []: + - @graphql-tools/schema@10.0.20 + +## 9.0.14 + +### Patch Changes + +- Updated dependencies []: + - @graphql-tools/schema@10.0.19 + +## 9.0.13 + +### Patch Changes + +- Updated dependencies []: + - @graphql-tools/schema@10.0.18 + +## 9.0.12 + +### Patch Changes + +- Updated dependencies + [[`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/schema@10.0.17 + +## 9.0.11 + +### Patch Changes + +- Updated dependencies []: + - @graphql-tools/schema@10.0.16 + +## 9.0.10 + +### Patch Changes + +- Updated dependencies []: + - @graphql-tools/schema@10.0.15 + +## 9.0.9 + +### Patch Changes + +- Updated dependencies []: + - @graphql-tools/schema@10.0.14 + +## 9.0.8 + +### Patch Changes + +- Updated dependencies []: + - @graphql-tools/schema@10.0.13 + +## 9.0.7 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/schema@10.0.12 + +## 9.0.6 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/schema@^10.0.10` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/schema/v/10.0.10) + (from `^10.0.9`, in `dependencies`) +- Updated dependencies + [[`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679)]: + - @graphql-tools/schema@10.0.11 + +## 9.0.5 + +### Patch Changes + +- Updated dependencies []: + - @graphql-tools/schema@10.0.10 + +## 9.0.4 + +### Patch Changes + +- Updated dependencies []: + - @graphql-tools/schema@10.0.9 + ## 9.0.3 ### Patch Changes diff --git a/packages/graphql-tools/package.json b/packages/graphql-tools/package.json index a34766eac4e..23a07a36943 100644 --- a/packages/graphql-tools/package.json +++ b/packages/graphql-tools/package.json @@ -1,6 +1,6 @@ { "name": "graphql-tools", - "version": "9.0.3", + "version": "9.0.18", "type": "module", "description": "Useful tools to create and manipulate GraphQL schemas.", "repository": { @@ -50,11 +50,11 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "dependencies": { - "@graphql-tools/schema": "^10.0.8", + "@graphql-tools/schema": "^10.0.23", "tslib": "^2.4.0" }, "optionalDependencies": { - "@apollo/client": "~3.2.5 || ~3.3.0 || ~3.4.0 || ~3.5.0 || ~3.6.0 || ~3.7.0 || ~3.8.0 || ~3.9.0 || ~3.10.0 || ~3.11.0" + "@apollo/client": "~3.2.5 || ~3.3.0 || ~3.4.0 || ~3.5.0 || ~3.6.0 || ~3.7.0 || ~3.8.0 || ~3.9.0 || ~3.10.0 || ~3.11.0 || ~3.12.0 || ~3.13.0" }, "publishConfig": { "directory": "dist", diff --git a/packages/import/CHANGELOG.md b/packages/import/CHANGELOG.md index c58a71db6d4..77b790ce185 100644 --- a/packages/import/CHANGELOG.md +++ b/packages/import/CHANGELOG.md @@ -1,5 +1,138 @@ # @graphql-tools/import +## 7.0.18 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + +## 7.0.17 + +### Patch Changes + +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + +## 7.0.16 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + +## 7.0.15 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + +## 7.0.14 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + +## 7.0.13 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + +## 7.0.12 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + +## 7.0.11 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + +## 7.0.10 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + +## 7.0.9 + +### Patch Changes + +- [#6796](https://github.com/ardatan/graphql-tools/pull/6796) + [`ddfef2c`](https://github.com/ardatan/graphql-tools/commit/ddfef2c322ba66a8dd06f28a5c8006348f1dc0a9) + Thanks [@ardatan](https://github.com/ardatan)! - Avoid importing `process` and use it from + `globalThis`. In some cases, `cwd` is not exported with this name in the environment in ESM scope. +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + +## 7.0.8 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + +## 7.0.7 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + +## 7.0.6 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/utils@10.6.2 + +## 7.0.5 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + +## 7.0.4 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + ## 7.0.3 ### Patch Changes diff --git a/packages/import/package.json b/packages/import/package.json index bf14647f27d..f1ba434264c 100644 --- a/packages/import/package.json +++ b/packages/import/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/import", - "version": "7.0.3", + "version": "7.0.18", "type": "module", "description": "A set of utils for faster development of GraphQL tools", "repository": { @@ -51,7 +51,7 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "dependencies": { - "@graphql-tools/utils": "^10.5.6", + "@graphql-tools/utils": "^10.8.6", "resolve-from": "5.0.0", "tslib": "^2.4.0" }, diff --git a/packages/import/src/index.ts b/packages/import/src/index.ts index a3fd2b5fd0f..eabc98dea96 100644 --- a/packages/import/src/index.ts +++ b/packages/import/src/index.ts @@ -1,6 +1,5 @@ import { readFileSync, realpathSync } from 'fs'; import { dirname, isAbsolute, join } from 'path'; -import { cwd as cwdFactory } from 'process'; import { DefinitionNode, DirectiveDefinitionNode, @@ -68,7 +67,7 @@ export type VisitedFilesMap = Map>>; */ export function processImport( filePath: string, - cwd = cwdFactory(), + cwd = globalThis.process?.cwd(), predefinedImports: Record = {}, visitedFiles: VisitedFilesMap = new Map(), ): DocumentNode { diff --git a/packages/import/tests/schema/import-schema.spec.ts b/packages/import/tests/schema/import-schema.spec.ts index b7009c58bcf..524f4566e7d 100644 --- a/packages/import/tests/schema/import-schema.spec.ts +++ b/packages/import/tests/schema/import-schema.spec.ts @@ -422,21 +422,21 @@ describe('importSchema', () => { expect(importSchema('./fixtures/directive/c.graphql')).toBeSimilarGqlDoc(expectedSDL); }); - // TODO: later - test.skip('importSchema: multiple key directive', () => { - const expectedSDL = /* GraphQL */ ` - scalar UPC - - scalar SKU - - type Product @key(fields: "upc") @key(fields: "sku") { - upc: UPC! - sku: SKU! - name: String - } - `; - expect(importSchema('./fixtures/directive/e.graphql')).toBeSimilarGqlDoc(expectedSDL); - }); + // // TODO: later + // test.skip('importSchema: multiple key directive', () => { + // const expectedSDL = /* GraphQL */ ` + // scalar UPC + + // scalar SKU + + // type Product @key(fields: "upc") @key(fields: "sku") { + // upc: UPC! + // sku: SKU! + // name: String + // } + // `; + // expect(importSchema('./fixtures/directive/e.graphql')).toBeSimilarGqlDoc(expectedSDL); + // }); test('importSchema: external directive', () => { const expectedSDL = /* GraphQL */ ` diff --git a/packages/inspect/src/index.ts b/packages/inspect/src/index.ts index 1e8a35965e8..39191d52853 100644 --- a/packages/inspect/src/index.ts +++ b/packages/inspect/src/index.ts @@ -97,7 +97,7 @@ function formatArray(array: ReadonlyArray, seenValues: ReadonlyArray { - return Promise.resolve(object).then(resolvedObject => { + return mapMaybePromise(object, resolvedObject => { if (resolvedObject == null) { return resolvedObject; } diff --git a/packages/links/tests/upload.test.ts b/packages/links/tests/upload.test.ts index cfea03cd92b..bcbdd399596 100644 --- a/packages/links/tests/upload.test.ts +++ b/packages/links/tests/upload.test.ts @@ -11,6 +11,7 @@ import { SubschemaConfig } from '@graphql-tools/delegate'; import { execute } from '@graphql-tools/executor'; import { makeExecutableSchema } from '@graphql-tools/schema'; import { stitchSchemas } from '@graphql-tools/stitch'; +import { describeIf } from '../../../packages/testing/utils.js'; import { createServerHttpLink, linkToExecutor, @@ -74,7 +75,7 @@ function getBasicGraphQLMiddleware(schema: GraphQLSchema) { }; } -describe('graphql upload', () => { +describeIf(!globalThis.Bun)('graphql upload', () => { let remoteServer: Server; let remotePort: number; let gatewayServer: Server; diff --git a/packages/load-files/CHANGELOG.md b/packages/load-files/CHANGELOG.md index f46874ba3bf..35c0cb0b583 100644 --- a/packages/load-files/CHANGELOG.md +++ b/packages/load-files/CHANGELOG.md @@ -1,16 +1,31 @@ # @graphql-tools/load-files +## 7.0.1 + +### Patch Changes + +- [#6846](https://github.com/ardatan/graphql-tools/pull/6846) + [`72dc6a5`](https://github.com/ardatan/graphql-tools/commit/72dc6a527a14dc04f4590e88c6af7dfb63fa6663) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency [`unixify@^1.0.0` โ†—๏ธŽ](https://www.npmjs.com/package/unixify/v/1.0.0) (from + `1.0.0`, in `dependencies`) + ## 7.0.0 ### Major Changes -- [#5274](https://github.com/ardatan/graphql-tools/pull/5274) [`944a68e8`](https://github.com/ardatan/graphql-tools/commit/944a68e8becf9c86b4c97fd17c372d98a285b955) Thanks [@ardatan](https://github.com/ardatan)! - Drop Node 14 support. Require Node.js `>= 16` +- [#5274](https://github.com/ardatan/graphql-tools/pull/5274) + [`944a68e8`](https://github.com/ardatan/graphql-tools/commit/944a68e8becf9c86b4c97fd17c372d98a285b955) + Thanks [@ardatan](https://github.com/ardatan)! - Drop Node 14 support. Require Node.js `>= 16` ## 6.6.1 ### Patch Changes -- [#4624](https://github.com/ardatan/graphql-tools/pull/4624) [`e3167edc`](https://github.com/ardatan/graphql-tools/commit/e3167edc98172fda88ce2306c10c7d4a23d91d67) Thanks [@n1ru4l](https://github.com/n1ru4l)! - Fix CommonJS TypeScript resolution with `moduleResolution` `node16` or `nodenext` +- [#4624](https://github.com/ardatan/graphql-tools/pull/4624) + [`e3167edc`](https://github.com/ardatan/graphql-tools/commit/e3167edc98172fda88ce2306c10c7d4a23d91d67) + Thanks [@n1ru4l](https://github.com/n1ru4l)! - Fix CommonJS TypeScript resolution with + `moduleResolution` `node16` or `nodenext` ## 6.6.0 diff --git a/packages/load-files/package.json b/packages/load-files/package.json index 8e5ad48b58d..b3404694022 100644 --- a/packages/load-files/package.json +++ b/packages/load-files/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/load-files", - "version": "7.0.0", + "version": "7.0.1", "type": "module", "description": "A set of utils for faster development of GraphQL tools", "repository": { @@ -53,7 +53,7 @@ "dependencies": { "globby": "11.1.0", "tslib": "^2.4.0", - "unixify": "1.0.0" + "unixify": "^1.0.0" }, "publishConfig": { "directory": "dist", diff --git a/packages/load-files/src/index.ts b/packages/load-files/src/index.ts index b3132d913e9..aaae2c944c8 100644 --- a/packages/load-files/src/index.ts +++ b/packages/load-files/src/index.ts @@ -251,14 +251,16 @@ export async function loadFiles( const extractExports = execOptions.extractExports || DEFAULT_EXTRACT_EXPORTS_FACTORY(execOptions.exportNames ?? []); const defaultRequireMethod = (path: string) => - import(path).catch(importError => { - const cwdRequire = createRequire(join(options?.globOptions?.cwd || cwd(), 'noop.js')); - try { - return cwdRequire(path); - } catch (e) { - throw importError; - } - }); + import(path) + .catch(importError => { + const cwdRequire = createRequire(join(options?.globOptions?.cwd || cwd(), 'noop.js')); + try { + return cwdRequire(path); + } catch (e) { + throw importError; + } + }) + .then(m => m.default || m); const requireMethod = execOptions.requireMethod || defaultRequireMethod; return Promise.all( diff --git a/packages/load-files/tests/file-scanner.spec.ts b/packages/load-files/tests/file-scanner.spec.ts index 0fbf0eb8db2..f7e52779013 100644 --- a/packages/load-files/tests/file-scanner.spec.ts +++ b/packages/load-files/tests/file-scanner.spec.ts @@ -1,7 +1,6 @@ import { join } from 'path'; import { print } from 'graphql'; import { loadFiles, LoadFilesOptions, loadFilesSync } from '@graphql-tools/load-files'; -import { jest } from '@jest/globals'; const syncAndAsync = Object.entries({ SYNC: loadFilesSync, ASYNC: loadFiles }); @@ -26,13 +25,15 @@ function testSchemaDir({ path, expected, note, extensions, ignoreIndex }: TestDi expect(result.length).toBe(expected.length); expect( - result.map(res => { - if (res.kind === 'Document') { - res = print(res); - } - return stripWhitespaces(res); - }), - ).toEqual(expected.map(stripWhitespaces)); + result + .map(res => { + if (typeof res === 'object') { + res = print(res); + } + return stripWhitespaces(res); + }) + .sort(), + ).toEqual(expected.map(stripWhitespaces).sort()); }); }); } @@ -69,10 +70,12 @@ function testResolversDir({ it(`should return the correct resolvers results for path: ${path} (${note})`, async () => { const result = await loadFiles(path, options); - expect(result.length).toBe(expected.length); + expect.assertions(expected.length); if (compareValue) { - expect(result).toEqual(expected); + for (const elem of expected) { + expect(result).toContainEqual(elem); + } } }); }); diff --git a/packages/load/CHANGELOG.md b/packages/load/CHANGELOG.md index 8d8544fd9e1..586e907c03e 100644 --- a/packages/load/CHANGELOG.md +++ b/packages/load/CHANGELOG.md @@ -1,5 +1,165 @@ # @graphql-tools/load +## 8.1.0 + +### Minor Changes + +- [#7093](https://github.com/ardatan/graphql-tools/pull/7093) + [`4a33247`](https://github.com/ardatan/graphql-tools/commit/4a33247c159ebb0db27f0746a2b10c2b786ea8d5) + Thanks [@eddeee888](https://github.com/eddeee888)! - Throw NoTypeDefinitionsFound when cannot find + files, instead of the standard Error + + This helps libraries such as GraphQL Code Generator to handle loading error cases more flexibly. + +## 8.0.19 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + - @graphql-tools/schema@10.0.23 + +## 8.0.18 + +### Patch Changes + +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + - @graphql-tools/schema@10.0.22 + +## 8.0.17 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + - @graphql-tools/schema@10.0.21 + +## 8.0.16 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + - @graphql-tools/schema@10.0.20 + +## 8.0.15 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + - @graphql-tools/schema@10.0.19 + +## 8.0.14 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + - @graphql-tools/schema@10.0.18 + +## 8.0.13 + +### Patch Changes + +- Updated dependencies + [[`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5), + [`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/schema@10.0.17 + - @graphql-tools/utils@10.8.0 + +## 8.0.12 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + - @graphql-tools/schema@10.0.16 + +## 8.0.11 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + - @graphql-tools/schema@10.0.15 + +## 8.0.10 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + - @graphql-tools/schema@10.0.14 + +## 8.0.9 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + - @graphql-tools/schema@10.0.13 + +## 8.0.8 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/schema@10.0.12 + - @graphql-tools/utils@10.6.3 + +## 8.0.7 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/schema@^10.0.10` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/schema/v/10.0.10) + (from `^10.0.9`, in `dependencies`) + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679), + [`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/schema@10.0.11 + - @graphql-tools/utils@10.6.2 + +## 8.0.6 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + - @graphql-tools/schema@10.0.10 + +## 8.0.5 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + - @graphql-tools/schema@10.0.9 + ## 8.0.4 ### Patch Changes diff --git a/packages/load/package.json b/packages/load/package.json index ff4caf41cb9..88dff7ea1b3 100644 --- a/packages/load/package.json +++ b/packages/load/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/load", - "version": "8.0.4", + "version": "8.1.0", "type": "module", "description": "A set of utils for faster development of GraphQL tools", "repository": { @@ -51,8 +51,8 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "dependencies": { - "@graphql-tools/schema": "^10.0.8", - "@graphql-tools/utils": "^10.5.6", + "@graphql-tools/schema": "^10.0.23", + "@graphql-tools/utils": "^10.8.6", "p-limit": "3.1.0", "tslib": "^2.4.0" }, diff --git a/packages/load/src/load-typedefs.ts b/packages/load/src/load-typedefs.ts index 3d03f75fe43..49b9cfdabf3 100644 --- a/packages/load/src/load-typedefs.ts +++ b/packages/load/src/load-typedefs.ts @@ -135,13 +135,7 @@ function prepareResult({ const pointerList = Object.keys(pointerOptionMap); if (pointerList.length > 0 && validSources.length === 0) { - throw new Error(` - Unable to find any GraphQL type definitions for the following pointers: - ${pointerList.map( - p => ` - - ${p} - `, - )}`); + throw new NoTypeDefinitionsFound(pointerList); } const sortedResult = options.sort @@ -151,3 +145,16 @@ function prepareResult({ debugTimerEnd('@graphql-tools/load: prepareResult'); return sortedResult; } + +export class NoTypeDefinitionsFound extends Error { + constructor(pointerList: string[]) { + super(` + Unable to find any GraphQL type definitions for the following pointers: + ${pointerList.map( + p => ` + - ${p} + `, + )}`); + this.name = 'NoTypeDefinitionsFound'; + } +} diff --git a/packages/load/src/load-typedefs/collect-sources.ts b/packages/load/src/load-typedefs/collect-sources.ts index 3af2a0a2874..d96066bd496 100644 --- a/packages/load/src/load-typedefs/collect-sources.ts +++ b/packages/load/src/load-typedefs/collect-sources.ts @@ -1,12 +1,13 @@ import { createRequire } from 'module'; import { cwd } from 'process'; -import { isSchema, Kind } from 'graphql'; +import { Kind } from 'graphql'; import { asArray, debugTimerEnd, debugTimerStart, getDocumentNodeFromSchema, isDocumentString, + isSchema, parseGraphQLSDL, Source, } from '@graphql-tools/utils'; diff --git a/packages/load/tests/loaders/documents/documents-from-glob.spec.ts b/packages/load/tests/loaders/documents/documents-from-glob.spec.ts index 10696a1e88e..24533b88681 100644 --- a/packages/load/tests/loaders/documents/documents-from-glob.spec.ts +++ b/packages/load/tests/loaders/documents/documents-from-glob.spec.ts @@ -2,7 +2,7 @@ import { join } from 'path'; import { parse, separateOperations } from 'graphql'; import { CodeFileLoader } from '@graphql-tools/code-file-loader'; import { GraphQLFileLoader } from '@graphql-tools/graphql-file-loader'; -import { loadDocuments, loadDocumentsSync } from '@graphql-tools/load'; +import { loadDocuments, loadDocumentsSync, NoTypeDefinitionsFound } from '@graphql-tools/load'; import { runTests } from '../../../../testing/utils.js'; import '../../../../testing/to-be-similar-string'; import { readFileSync } from 'fs'; @@ -93,14 +93,22 @@ describe('documentsFromGlob', () => { }); test(`Should throw on empty files and empty result`, async () => { + expect.assertions(2); + + const glob1 = join(__dirname, 'test-files', '*.empty.graphql'); + const glob2 = join(__dirname, 'test-files', '*.empty2.graphql'); + try { - const glob = join(__dirname, 'test-files', '*.empty.graphql'); - await load(glob, { + await load([glob1, glob2], { loaders: [new GraphQLFileLoader()], }); - expect(true).toBeFalsy(); - } catch (e: any) { - expect(e).toBeDefined(); + } catch (err: any) { + expect(err instanceof NoTypeDefinitionsFound).toBe(true); + expect(err.message).toBeSimilarString(` + Unable to find any GraphQL type definitions for the following pointers: + - ${glob1} + - ${glob2} + `); } }); diff --git a/packages/load/tests/loaders/schema/integration.spec.ts b/packages/load/tests/loaders/schema/integration.spec.ts index a531a23f10d..f3045f57fbe 100644 --- a/packages/load/tests/loaders/schema/integration.spec.ts +++ b/packages/load/tests/loaders/schema/integration.spec.ts @@ -18,10 +18,11 @@ describe('loadSchema', () => { sync: loadSchemaSync, })(load => { test('should throw when all files are invalid and unable to load it', async () => { - const schemaPath = './tests/loaders/schema/test-files/error.ts'; + const schemaPath = './test-files/error.ts'; try { await load(schemaPath, { loaders: [new CodeFileLoader()], + cwd: __dirname, }); expect(true).toBeFalsy(); // should throw } catch (e: any) { @@ -30,8 +31,9 @@ describe('loadSchema', () => { }); test('should work with ts files and without globs correctly', async () => { - const schemaPath = './tests/loaders/schema/test-files/schema-dir/type-defs/graphql-tag.ts'; + const schemaPath = './test-files/schema-dir/type-defs/graphql-tag.ts'; const schema = await load(schemaPath, { + cwd: __dirname, loaders: [new CodeFileLoader()], }); expect(schema.getTypeMap()['User']).toBeDefined(); @@ -39,8 +41,9 @@ describe('loadSchema', () => { }); test('should work with graphql single file', async () => { - const schemaPath = './tests/loaders/schema/test-files/schema-dir/user.graphql'; + const schemaPath = './test-files/schema-dir/user.graphql'; const schema = await load(schemaPath, { + cwd: __dirname, loaders: [new GraphQLFileLoader()], }); @@ -48,9 +51,13 @@ describe('loadSchema', () => { }); test('import and merge Query types from few different files', async () => { - const schema = await load('../import/tests/schema/fixtures/multiple-root/*/schema.graphql', { - loaders: [new GraphQLFileLoader()], - }); + const schema = await load( + '../../../../import/tests/schema/fixtures/multiple-root/*/schema.graphql', + { + loaders: [new GraphQLFileLoader()], + cwd: __dirname, + }, + ); const schemaStr = printSchema(schema); expect(schemaStr).toBeSimilarGqlDoc(/* GraphQL */ ` @@ -75,8 +82,9 @@ describe('loadSchema', () => { }); test('should sort the final schema if "sort" option provided', async () => { - const schemaPath = './tests/loaders/schema/test-files/schema-dir/non-sorted.graphql'; + const schemaPath = './test-files/schema-dir/non-sorted.graphql'; const schema = await load(schemaPath, { + cwd: __dirname, loaders: [new GraphQLFileLoader()], sort: true, }); @@ -100,8 +108,9 @@ describe('loadSchema', () => { }); test('should add schemas from options.schemas to generated schema', async () => { - const schemaPath = './tests/loaders/schema/test-files/schema-dir/non-sorted.graphql'; + const schemaPath = './test-files/schema-dir/non-sorted.graphql'; const schema = await load(schemaPath, { + cwd: __dirname, loaders: [new GraphQLFileLoader()], sort: true, schemas: [ diff --git a/packages/load/tests/loaders/schema/schema-from-export.spec.ts b/packages/load/tests/loaders/schema/schema-from-export.spec.ts index 88d64bd273c..7d63d1fa0cc 100644 --- a/packages/load/tests/loaders/schema/schema-from-export.spec.ts +++ b/packages/load/tests/loaders/schema/schema-from-export.spec.ts @@ -1,4 +1,4 @@ -import { isSchema } from 'graphql'; +import { GraphQLSchema } from 'graphql'; import { CodeFileLoader } from '@graphql-tools/code-file-loader'; import { loadSchema, loadSchemaSync } from '@graphql-tools/load'; import { runTests, useMonorepo } from '../../../../testing/utils.js'; @@ -20,7 +20,7 @@ describe('Schema From Export', () => { async: loadSchema, sync: loadSchemaSync, })((load, mode) => { - test('should load the schema correctly from module.exports', async () => { + it('should load the schema correctly from module.exports', async () => { const result = await load( '../../../../loaders/code-file/tests/test-files/loaders/module-exports.js', { @@ -28,10 +28,10 @@ describe('Schema From Export', () => { cwd: __dirname, }, ); - expect(isSchema(result)).toBeTruthy(); + expect(result).toBeInstanceOf(GraphQLSchema); }); - test('should load the schema (with extend) correctly from module.exports', async () => { + it('should load the schema (with extend) correctly from module.exports', async () => { const result = await load( '../../../../loaders/code-file/tests/test-files/loaders/with-extend.js', { @@ -39,13 +39,13 @@ describe('Schema From Export', () => { cwd: __dirname, }, ); - expect(isSchema(result)).toBeTruthy(); + expect(result).toBeInstanceOf(GraphQLSchema); const QueryType = result.getQueryType(); assertNonMaybe(QueryType); expect(QueryType.getFields()['hello']).toBeDefined(); }); - test('should load the schema correctly from variable export', async () => { + it('should load the schema correctly from variable export', async () => { const result = await load( '../../../../loaders/code-file/tests/test-files/loaders/schema-export.js', { @@ -53,10 +53,10 @@ describe('Schema From Export', () => { cwd: __dirname, }, ); - expect(isSchema(result)).toBeTruthy(); + expect(result).toBeInstanceOf(GraphQLSchema); }); - test('should load the schema correctly from default export', async () => { + it('should load the schema correctly from default export', async () => { const result = await load( '../../../../loaders/code-file/tests/test-files/loaders/default-export.js', { @@ -64,11 +64,11 @@ describe('Schema From Export', () => { cwd: __dirname, }, ); - expect(isSchema(result)).toBeTruthy(); + expect(result).toBeInstanceOf(GraphQLSchema); }); if (mode === 'async') { - test('should load the schema correctly from promise export', async () => { + it('should load the schema correctly from promise export', async () => { const result = await load( '../../../../loaders/code-file/tests/test-files/loaders/promise-export.js', { @@ -76,10 +76,10 @@ describe('Schema From Export', () => { cwd: __dirname, }, ); - expect(isSchema(result)).toBeTruthy(); + expect(result).toBeInstanceOf(GraphQLSchema); }); - test('should load the schema correctly from promise export', async () => { + it('should load the schema correctly from promise export', async () => { const result = await load( '../../../../loaders/code-file/tests/test-files/loaders/promise-export.js', { @@ -87,14 +87,15 @@ describe('Schema From Export', () => { cwd: __dirname, }, ); - expect(isSchema(result)).toBeTruthy(); + expect(result).toBeInstanceOf(GraphQLSchema); }); } - test('should work with extensions (without schema definition)', async () => { - const schemaPath = './tests/loaders/schema/test-files/schema-dir/extensions/export-schema.js'; + it('should work with extensions (without schema definition)', async () => { + const schemaPath = './test-files/schema-dir/extensions/export-schema.js'; const schema = await load(schemaPath, { loaders: [new CodeFileLoader()], + cwd: __dirname, }); const QueryType = schema.getQueryType(); assertNonMaybe(QueryType); @@ -104,11 +105,11 @@ describe('Schema From Export', () => { expect(queryFields).toContain('bar'); }); - test('should work with extensions (with schema definition)', async () => { - const schemaPath = - './tests/loaders/schema/test-files/schema-dir/extensions/export-schema-with-def.js'; + it('should work with extensions (with schema definition)', async () => { + const schemaPath = './test-files/schema-dir/extensions/export-schema-with-def.js'; const schema = await load(schemaPath, { loaders: [new CodeFileLoader()], + cwd: __dirname, }); const QueryType = schema.getQueryType(); assertNonMaybe(QueryType); diff --git a/packages/load/tests/loaders/schema/schema-from-json.spec.ts b/packages/load/tests/loaders/schema/schema-from-json.spec.ts index 2701b741ff5..c7075eff988 100644 --- a/packages/load/tests/loaders/schema/schema-from-json.spec.ts +++ b/packages/load/tests/loaders/schema/schema-from-json.spec.ts @@ -1,6 +1,9 @@ -import { isSchema } from 'graphql'; +import { readFileSync } from 'fs'; +import { join } from 'path'; +import { GraphQLSchema } from 'graphql'; import { JsonFileLoader } from '@graphql-tools/json-file-loader'; import { loadSchema, loadSchemaSync } from '@graphql-tools/load'; +import { isSpecifiedScalarType } from '@graphql-tools/utils'; import { runTests, useMonorepo } from '../../../../testing/utils.js'; const monorepo = useMonorepo({ @@ -21,20 +24,26 @@ describe('Schema From Export', () => { sync: loadSchemaSync, })(load => { it('should load the schema correctly from an introspection file', async () => { - const schema = await load('./tests/loaders/schema/test-files/githunt.json', { + const schema = await load('./test-files/githunt.json', { loaders: [new JsonFileLoader()], + cwd: __dirname, }); - expect(isSchema(schema)).toBeTruthy(); + expect(schema).toBeInstanceOf(GraphQLSchema); }); it('should load the schema with correct descriptions', async () => { - const schema = await load('./tests/loaders/schema/test-files/githunt.json', { + const schema = await load('./test-files/githunt.json', { loaders: [new JsonFileLoader()], + cwd: __dirname, }); - expect(isSchema(schema)).toBeTruthy(); - const introspectionSchema = require('./test-files/githunt.json').__schema; + expect(schema).toBeInstanceOf(GraphQLSchema); for (const typeName in schema.getTypeMap()) { + const githuntJsonFile = readFileSync(join(__dirname, './test-files/githunt.json'), 'utf-8'); + const introspectionSchema = JSON.parse(githuntJsonFile).__schema; if (!typeName.startsWith('__')) { const type = schema.getType(typeName); + if (type != null && isSpecifiedScalarType(type)) { + continue; + } assertNonMaybe(type); const introspectionType = introspectionSchema.types.find( (t: { name: string }) => t.name === typeName, diff --git a/packages/load/tests/loaders/schema/schema-from-string.spec.ts b/packages/load/tests/loaders/schema/schema-from-string.spec.ts index 021f2368cc3..8971de34738 100644 --- a/packages/load/tests/loaders/schema/schema-from-string.spec.ts +++ b/packages/load/tests/loaders/schema/schema-from-string.spec.ts @@ -1,6 +1,7 @@ import '../../../../testing/to-be-similar-string'; import '../../../../testing/to-be-similar-gql-doc'; import { printSchema } from 'graphql'; +import { GraphQLFileLoader } from '@graphql-tools/graphql-file-loader'; import { loadSchema, loadSchemaSync } from '@graphql-tools/load'; import { printSchemaWithDirectives } from '@graphql-tools/utils'; import { runTests, useMonorepo } from '../../../../testing/utils.js'; @@ -76,5 +77,25 @@ describe('schema from string', () => { } `); }); + it('should throw parse error', async () => { + const schemaString = ` + extend type Query { + test(id: String!): Test + @resolveTo( + sourceName: "Test" + sourceTypeName: "Test" + sourceFieldName: "test" + requiredSelectionSet: "{ ...on Test { id name } }", + sourceArgs: { testId: {root.id} } + returnType: Test + ) + } + `; + await expect( + load(schemaString, { + loaders: [new GraphQLFileLoader()], + }), + ).rejects.toThrowError('Syntax Error'); + }); }); }); diff --git a/packages/load/tests/loaders/schema/schema-from-typedefs.spec.ts b/packages/load/tests/loaders/schema/schema-from-typedefs.spec.ts index 7c87df07418..f68a9a3c5c2 100644 --- a/packages/load/tests/loaders/schema/schema-from-typedefs.spec.ts +++ b/packages/load/tests/loaders/schema/schema-from-typedefs.spec.ts @@ -23,9 +23,10 @@ describe('schema from typedefs', () => { sync: loadSchemaSync, })(load => { it('should work with glob correctly', async () => { - const glob = './tests/loaders/schema/test-files/schema-dir/query.graphql'; + const glob = './test-files/schema-dir/query.graphql'; const schema = await load(glob, { loaders: [new GraphQLFileLoader()], + cwd: __dirname, }); expect(schema.getTypeMap()['User']).toBeDefined(); @@ -33,27 +34,29 @@ describe('schema from typedefs', () => { }); it('should ignore empty files when using glob expressions', async () => { - const glob = './tests/loaders/schema/test-files/schema-dir/*.empty.graphql'; + const glob = './test-files/schema-dir/*.empty.graphql'; try { await load(glob, { loaders: [new GraphQLFileLoader()], + cwd: __dirname, }); expect(true).toBeFalsy(); } catch (e: any) { expect(e.message).toContain( `Unable to find any GraphQL type definitions for the following pointers:`, ); - expect(e.message).toContain(`/tests/loaders/schema/test-files/schema-dir/*.empty.graphql`); + expect(e.message).toContain(`test-files/schema-dir/*.empty.graphql`); } }); it('should point to a broken file with parsing error message', async () => { - const glob = './tests/loaders/schema/test-files/schema-dir/*.broken.graphql'; + const glob = './test-files/schema-dir/*.broken.graphql'; try { const schema = await load(glob, { loaders: [new GraphQLFileLoader()], + cwd: __dirname, }); expect(schema).toBeFalsy(); } catch (e: any) { @@ -64,28 +67,28 @@ describe('schema from typedefs', () => { }); it('should ignore graphql documents when loading a schema', async () => { - const glob = './tests/loaders/schema/test-files/schema-dir/*.non-schema.graphql'; + const glob = './test-files/schema-dir/*.non-schema.graphql'; try { await load(glob, { loaders: [new GraphQLFileLoader()], + cwd: __dirname, }); expect(true).toBeFalsy(); } catch (e: any) { expect(e.message).toContain( `Unable to find any GraphQL type definitions for the following pointers:`, ); - expect(e.message).toContain( - `./tests/loaders/schema/test-files/schema-dir/*.non-schema.graphql`, - ); + expect(e.message).toContain(`./test-files/schema-dir/*.non-schema.graphql`); } }); it('should work with graphql-tag', async () => { - const schemaPath = './tests/loaders/schema/test-files/schema-dir/*.ts'; + const schemaPath = './test-files/schema-dir/*.ts'; const schema = await load(schemaPath, { loaders: [new CodeFileLoader()], + cwd: __dirname, }); expect(schema.getTypeMap()['User']).toBeDefined(); @@ -93,9 +96,10 @@ describe('schema from typedefs', () => { }); it('should work without globs correctly', async () => { - const schemaPath = './tests/loaders/schema/test-files/schema-dir/type-defs/graphql-tag.ts'; + const schemaPath = './test-files/schema-dir/type-defs/graphql-tag.ts'; const schema = await load(schemaPath, { loaders: [new CodeFileLoader()], + cwd: __dirname, }); expect(schema.getTypeMap()['User']).toBeDefined(); @@ -103,9 +107,10 @@ describe('schema from typedefs', () => { }); it('should work with import notations', async () => { - const schemaPath = './tests/loaders/schema/test-files/schema-dir/query.graphql'; + const schemaPath = './test-files/schema-dir/query.graphql'; const schema = await load(schemaPath, { loaders: [new GraphQLFileLoader()], + cwd: __dirname, }); expect(schema.getTypeMap()['User']).toBeDefined(); @@ -113,9 +118,10 @@ describe('schema from typedefs', () => { }); it('should work with import notations multiple levels', async () => { - const schemaPath = './tests/loaders/schema/test-files/level1.graphql'; + const schemaPath = './test-files/level1.graphql'; const schema = await load(schemaPath, { loaders: [new GraphQLFileLoader()], + cwd: __dirname, }); expect(schema.getTypeMap()['User']).toBeDefined(); @@ -123,10 +129,10 @@ describe('schema from typedefs', () => { }); it('should work with extensions (static graphql file)', async () => { - const schemaPath = - './tests/loaders/schema/test-files/schema-dir/extensions/schema-with-extend.graphql'; + const schemaPath = './test-files/schema-dir/extensions/schema-with-extend.graphql'; const schema = await load(schemaPath, { loaders: [new GraphQLFileLoader()], + cwd: __dirname, }); const QueryType = schema.getQueryType(); assertNonMaybe(QueryType); @@ -137,9 +143,10 @@ describe('schema from typedefs', () => { }); it('should work with extensions (multiple graphql files)', async () => { - const schemaPath = './tests/loaders/schema/test-files/schema-dir/extensions/*.graphql'; + const schemaPath = './test-files/schema-dir/extensions/*.graphql'; const schema = await load(schemaPath, { loaders: [new GraphQLFileLoader()], + cwd: __dirname, }); const QueryType = schema.getQueryType(); assertNonMaybe(QueryType); @@ -151,9 +158,10 @@ describe('schema from typedefs', () => { }); it('should work with extensions (static js file with typedefs)', async () => { - const schemaPath = './tests/loaders/schema/test-files/schema-dir/extensions/type-defs.js'; + const schemaPath = './test-files/schema-dir/extensions/type-defs.js'; const schema = await load(schemaPath, { loaders: [new CodeFileLoader()], + cwd: __dirname, }); const QueryType = schema.getQueryType(); assertNonMaybe(QueryType); @@ -164,9 +172,10 @@ describe('schema from typedefs', () => { }); it('should include sources on demand', async () => { - const glob = './tests/loaders/schema/test-files/schema-dir/query.graphql'; + const glob = './test-files/schema-dir/query.graphql'; const schemaWithSources = await load(glob, { loaders: [new GraphQLFileLoader()], + cwd: __dirname, includeSources: true, }); const sourcesFromExtensions = schemaWithSources.extensions?.['sources'] as any[]; @@ -174,12 +183,13 @@ describe('schema from typedefs', () => { expect(sourcesFromExtensions).toHaveLength(1); expect(sourcesFromExtensions[0]).toMatchObject( expect.objectContaining({ - name: path.resolve(process.cwd(), glob).replace(/\\/g, '/'), + name: path.resolve(__dirname, glob).replace(/\\/g, '/'), }), ); const schemaWithoutSources = await load(glob, { loaders: [new GraphQLFileLoader()], + cwd: __dirname, }); expect(schemaWithoutSources.extensions?.['sources']).not.toBeDefined(); }); @@ -187,12 +197,13 @@ describe('schema from typedefs', () => { it('should be able to exclude documents via negative glob', async () => { const result = await load( [ - './tests/loaders/schema/test-files/schema-dir/user.graphql', - './tests/loaders/schema/test-files/schema-dir/invalid.graphql', - '!./tests/loaders/schema/test-files/schema-dir/i*.graphql', + './test-files/schema-dir/user.graphql', + './test-files/schema-dir/invalid.graphql', + '!./test-files/schema-dir/i*.graphql', ], { loaders: [new GraphQLFileLoader()], + cwd: __dirname, includeSources: true, }, ); @@ -202,23 +213,25 @@ describe('schema from typedefs', () => { it('should be able to exclude documents via nested negative glob', async () => { await load( [ - './tests/loaders/schema/test-files/schema-dir/user.graphql', - './tests/loaders/schema/test-files/schema-dir/invalid.graphql', + './test-files/schema-dir/user.graphql', + './test-files/schema-dir/invalid.graphql', { - '!./tests/loaders/schema/test-files/schema-dir/i*.graphql': {}, + '!./test-files/schema-dir/i*.graphql': {}, }, ], { loaders: [new GraphQLFileLoader()], + cwd: __dirname, includeSources: true, }, ); }); it('should parse nested import types', async () => { - const glob = './tests/loaders/schema/test-files/nested-imports/query.graphql'; + const glob = './test-files/nested-imports/query.graphql'; const schema = await load(glob, { loaders: [new GraphQLFileLoader()], + cwd: __dirname, }); expect(schema.getTypeMap()['Query']).toBeDefined(); diff --git a/packages/loaders/apollo-engine/CHANGELOG.md b/packages/loaders/apollo-engine/CHANGELOG.md index f83e0b620f8..47436840228 100644 --- a/packages/loaders/apollo-engine/CHANGELOG.md +++ b/packages/loaders/apollo-engine/CHANGELOG.md @@ -1,5 +1,147 @@ # @graphql-tools/apollo-engine-loader +## 8.0.20 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + +## 8.0.19 + +### Patch Changes + +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + +## 8.0.18 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + +## 8.0.17 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + +## 8.0.16 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + +## 8.0.15 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + +## 8.0.14 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + +## 8.0.13 + +### Patch Changes + +- [#6831](https://github.com/ardatan/graphql-tools/pull/6831) + [`c59403d`](https://github.com/ardatan/graphql-tools/commit/c59403dedc2a5435452c9a3556f4846df6dee392) + Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates: + - Added dependency [`sync-fetch@0.6.0-2` โ†—๏ธŽ](https://www.npmjs.com/package/sync-fetch/v/0.6.0) + (to `dependencies`) + - Removed dependency + [`@ardatan/sync-fetch@^0.0.1` โ†—๏ธŽ](https://www.npmjs.com/package/@ardatan/sync-fetch/v/0.0.1) + (from `dependencies`) + +## 8.0.12 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + +## 8.0.11 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + +## 8.0.10 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + +## 8.0.9 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + +## 8.0.8 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + +## 8.0.7 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/utils@10.6.2 + +## 8.0.6 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + +## 8.0.5 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + ## 8.0.4 ### Patch Changes @@ -455,7 +597,7 @@ ### Patch Changes -- ef9c3853: fix: bump Node { }); expect(loadedSources?.length).toEqual(3); expect(loadedSources![0].rawSDL).toBeDefined(); - expect(loadedSources![0].rawSDL).toMatchInlineSnapshot(` -" + expect(loadedSources![0].rawSDL).toBe( + ` query Foo { Tweets { id } } -" -`); +`, + ); expect(loadedSources![1].rawSDL).toBeDefined(); - expect(loadedSources![1].rawSDL).toMatchInlineSnapshot(` -" + expect(loadedSources![1].rawSDL).toBe( + ` fragment Lel on Tweet { id body } -" -`); +`, + ); expect(loadedSources![2].rawSDL).toBeDefined(); - expect(loadedSources![2].rawSDL).toMatchInlineSnapshot(` -" + expect(loadedSources![2].rawSDL).toBe( + ` query Bar { Tweets { ...Lel } } -" -`); +`, + ); }); it('can inherit config options from constructor', () => { @@ -213,34 +213,34 @@ describe('loadFromCodeFileSync', () => { }); expect(loadedSources?.length).toEqual(3); expect(loadedSources![0].rawSDL).toBeDefined(); - expect(loadedSources![0].rawSDL).toMatchInlineSnapshot(` - " - query Foo { - Tweets { - id - } - } - " - `); + expect(loadedSources![0].rawSDL).toBe( + ` + query Foo { + Tweets { + id + } + } +`, + ); expect(loadedSources![1].rawSDL).toBeDefined(); - expect(loadedSources![1].rawSDL).toMatchInlineSnapshot(` - " - fragment Lel on Tweet { - id - body - } - " - `); + expect(loadedSources![1].rawSDL).toBe( + ` + fragment Lel on Tweet { + id + body + } +`, + ); expect(loadedSources![2].rawSDL).toBeDefined(); - expect(loadedSources![2].rawSDL).toMatchInlineSnapshot(` - " - query Bar { - Tweets { - ...Lel - } - } - " - `); + expect(loadedSources![2].rawSDL).toBe( + ` + query Bar { + Tweets { + ...Lel + } + } +`, + ); }); it('can merge config.pluckConfig options correctly', () => { @@ -255,34 +255,34 @@ describe('loadFromCodeFileSync', () => { }); expect(loadedSources?.length).toEqual(3); expect(loadedSources![0].rawSDL).toBeDefined(); - expect(loadedSources![0].rawSDL).toMatchInlineSnapshot(` - " - query Foo { - Tweets { - id - } - } - " - `); + expect(loadedSources![0].rawSDL).toBe( + ` + query Foo { + Tweets { + id + } + } +`, + ); expect(loadedSources![1].rawSDL).toBeDefined(); - expect(loadedSources![1].rawSDL).toMatchInlineSnapshot(` - " - fragment Lel on Tweet { - id - body - } - " - `); + expect(loadedSources![1].rawSDL).toBe( + ` + fragment Lel on Tweet { + id + body + } +`, + ); expect(loadedSources![2].rawSDL).toBeDefined(); - expect(loadedSources![2].rawSDL).toMatchInlineSnapshot(` - " - query Bar { - Tweets { - ...Lel - } - } - " - `); + expect(loadedSources![2].rawSDL).toBe( + ` + query Bar { + Tweets { + ...Lel + } + } +`, + ); }); it('does not try to load single file it cannot load', async () => { diff --git a/packages/loaders/git/CHANGELOG.md b/packages/loaders/git/CHANGELOG.md index a3fb135b0f9..4681b854534 100644 --- a/packages/loaders/git/CHANGELOG.md +++ b/packages/loaders/git/CHANGELOG.md @@ -1,5 +1,155 @@ # @graphql-tools/git-loader +## 8.0.24 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + - @graphql-tools/graphql-tag-pluck@8.3.19 + +## 8.0.23 + +### Patch Changes + +- Updated dependencies + [[`6bb35f4`](https://github.com/ardatan/graphql-tools/commit/6bb35f44d67638e222af9ec68f16a1762d373b0f), + [`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/graphql-tag-pluck@8.3.18 + - @graphql-tools/utils@10.8.5 + +## 8.0.22 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + - @graphql-tools/graphql-tag-pluck@8.3.17 + +## 8.0.21 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + - @graphql-tools/graphql-tag-pluck@8.3.16 + +## 8.0.20 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + - @graphql-tools/graphql-tag-pluck@8.3.15 + +## 8.0.19 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + - @graphql-tools/graphql-tag-pluck@8.3.14 + +## 8.0.18 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + - @graphql-tools/graphql-tag-pluck@8.3.13 + +## 8.0.17 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + - @graphql-tools/graphql-tag-pluck@8.3.12 + +## 8.0.16 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + - @graphql-tools/graphql-tag-pluck@8.3.11 + +## 8.0.15 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + - @graphql-tools/graphql-tag-pluck@8.3.10 + +## 8.0.14 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + - @graphql-tools/graphql-tag-pluck@8.3.9 + +## 8.0.13 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + - @graphql-tools/graphql-tag-pluck@8.3.8 + +## 8.0.12 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/graphql-tag-pluck@8.3.6` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/graphql-tag-pluck/v/8.3.6) + (from `8.3.5`, in `dependencies`) + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679), + [`4fd0d3a`](https://github.com/ardatan/graphql-tools/commit/4fd0d3a335b39dc0c44e78a0416bb7dfe900c2ea), + [`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/graphql-tag-pluck@8.3.7 + - @graphql-tools/utils@10.6.2 + +## 8.0.11 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + - @graphql-tools/graphql-tag-pluck@8.3.6 + +## 8.0.10 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + - @graphql-tools/graphql-tag-pluck@8.3.5 + ## 8.0.9 ### Patch Changes diff --git a/packages/loaders/git/package.json b/packages/loaders/git/package.json index 3919a5ee5ff..cb61eefca1a 100644 --- a/packages/loaders/git/package.json +++ b/packages/loaders/git/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/git-loader", - "version": "8.0.9", + "version": "8.0.24", "type": "module", "description": "A set of utils for faster development of GraphQL tools", "repository": { @@ -51,8 +51,8 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "dependencies": { - "@graphql-tools/graphql-tag-pluck": "8.3.4", - "@graphql-tools/utils": "^10.5.6", + "@graphql-tools/graphql-tag-pluck": "8.3.19", + "@graphql-tools/utils": "^10.8.6", "is-glob": "4.0.3", "micromatch": "^4.0.8", "tslib": "^2.4.0", diff --git a/packages/loaders/git/tests/__snapshots__/loader.spec.ts.snap b/packages/loaders/git/tests/__snapshots__/loader.spec.ts.snap deleted file mode 100644 index 55ff82c032f..00000000000 --- a/packages/loaders/git/tests/__snapshots__/loader.spec.ts.snap +++ /dev/null @@ -1,261 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`GitLoader load async should load type definitions from a pluckable file 1`] = ` -{ - "definitions": [ - { - "description": undefined, - "directives": [], - "fields": [ - { - "arguments": [], - "description": undefined, - "directives": [], - "kind": "FieldDefinition", - "loc": { - "end": 28, - "start": 15, - }, - "name": { - "kind": "Name", - "loc": { - "end": 20, - "start": 15, - }, - "value": "hello", - }, - "type": { - "kind": "NamedType", - "loc": { - "end": 28, - "start": 22, - }, - "name": { - "kind": "Name", - "loc": { - "end": 28, - "start": 22, - }, - "value": "String", - }, - }, - }, - ], - "interfaces": [], - "kind": "ObjectTypeDefinition", - "loc": { - "end": 30, - "start": 0, - }, - "name": { - "kind": "Name", - "loc": { - "end": 10, - "start": 5, - }, - "value": "Query", - }, - }, - ], - "kind": "Document", - "loc": { - "end": 30, - "start": 0, - }, -} -`; - -exports[`GitLoader load async should work when loading glob paths that start with './' 1`] = ` -{ - "definitions": [ - { - "description": undefined, - "directives": [], - "fields": [ - { - "arguments": [], - "description": undefined, - "directives": [], - "kind": "FieldDefinition", - "loc": { - "end": 28, - "start": 15, - }, - "name": { - "kind": "Name", - "loc": { - "end": 20, - "start": 15, - }, - "value": "hello", - }, - "type": { - "kind": "NamedType", - "loc": { - "end": 28, - "start": 22, - }, - "name": { - "kind": "Name", - "loc": { - "end": 28, - "start": 22, - }, - "value": "String", - }, - }, - }, - ], - "interfaces": [], - "kind": "ObjectTypeDefinition", - "loc": { - "end": 30, - "start": 0, - }, - "name": { - "kind": "Name", - "loc": { - "end": 10, - "start": 5, - }, - "value": "Query", - }, - }, - ], - "kind": "Document", - "loc": { - "end": 31, - "start": 0, - }, -} -`; - -exports[`GitLoader load sync should load type definitions from a pluckable file 1`] = ` -{ - "definitions": [ - { - "description": undefined, - "directives": [], - "fields": [ - { - "arguments": [], - "description": undefined, - "directives": [], - "kind": "FieldDefinition", - "loc": { - "end": 28, - "start": 15, - }, - "name": { - "kind": "Name", - "loc": { - "end": 20, - "start": 15, - }, - "value": "hello", - }, - "type": { - "kind": "NamedType", - "loc": { - "end": 28, - "start": 22, - }, - "name": { - "kind": "Name", - "loc": { - "end": 28, - "start": 22, - }, - "value": "String", - }, - }, - }, - ], - "interfaces": [], - "kind": "ObjectTypeDefinition", - "loc": { - "end": 30, - "start": 0, - }, - "name": { - "kind": "Name", - "loc": { - "end": 10, - "start": 5, - }, - "value": "Query", - }, - }, - ], - "kind": "Document", - "loc": { - "end": 30, - "start": 0, - }, -} -`; - -exports[`GitLoader load sync should work when loading glob paths that start with './' 1`] = ` -{ - "definitions": [ - { - "description": undefined, - "directives": [], - "fields": [ - { - "arguments": [], - "description": undefined, - "directives": [], - "kind": "FieldDefinition", - "loc": { - "end": 28, - "start": 15, - }, - "name": { - "kind": "Name", - "loc": { - "end": 20, - "start": 15, - }, - "value": "hello", - }, - "type": { - "kind": "NamedType", - "loc": { - "end": 28, - "start": 22, - }, - "name": { - "kind": "Name", - "loc": { - "end": 28, - "start": 22, - }, - "value": "String", - }, - }, - }, - ], - "interfaces": [], - "kind": "ObjectTypeDefinition", - "loc": { - "end": 30, - "start": 0, - }, - "name": { - "kind": "Name", - "loc": { - "end": 10, - "start": 5, - }, - "value": "Query", - }, - }, - ], - "kind": "Document", - "loc": { - "end": 31, - "start": 0, - }, -} -`; diff --git a/packages/loaders/git/tests/loader.spec.ts b/packages/loaders/git/tests/loader.spec.ts index c5932f9fee7..cef042bc89e 100644 --- a/packages/loaders/git/tests/loader.spec.ts +++ b/packages/loaders/git/tests/loader.spec.ts @@ -51,7 +51,68 @@ describe('GitLoader', () => { it('should load type definitions from a pluckable file', async () => { const [result] = await load(getPointer('pluckable.ts'), {}); - expect(result.document).toMatchSnapshot(); + expect(result.document).toMatchObject({ + definitions: [ + { + description: undefined, + directives: [], + fields: [ + { + arguments: [], + description: undefined, + directives: [], + kind: 'FieldDefinition', + loc: { + end: 28, + start: 15, + }, + name: { + kind: 'Name', + loc: { + end: 20, + start: 15, + }, + value: 'hello', + }, + type: { + kind: 'NamedType', + loc: { + end: 28, + start: 22, + }, + name: { + kind: 'Name', + loc: { + end: 28, + start: 22, + }, + value: 'String', + }, + }, + }, + ], + interfaces: [], + kind: 'ObjectTypeDefinition', + loc: { + end: 30, + start: 0, + }, + name: { + kind: 'Name', + loc: { + end: 10, + start: 5, + }, + value: 'Query', + }, + }, + ], + kind: 'Document', + loc: { + end: 30, + start: 0, + }, + }); }); it('should throw when the file does not exist', async () => { @@ -70,7 +131,68 @@ describe('GitLoader', () => { process.chdir(path.resolve(__dirname, 'test-files', 'a')); const [result] = await load(`git:${lastCommit}:./**/*.graphql`, {}); - expect(result.document).toMatchSnapshot(); + expect(result.document).toMatchObject({ + definitions: [ + { + description: undefined, + directives: [], + fields: [ + { + arguments: [], + description: undefined, + directives: [], + kind: 'FieldDefinition', + loc: { + end: 28, + start: 15, + }, + name: { + kind: 'Name', + loc: { + end: 20, + start: 15, + }, + value: 'hello', + }, + type: { + kind: 'NamedType', + loc: { + end: 28, + start: 22, + }, + name: { + kind: 'Name', + loc: { + end: 28, + start: 22, + }, + value: 'String', + }, + }, + }, + ], + interfaces: [], + kind: 'ObjectTypeDefinition', + loc: { + end: 30, + start: 0, + }, + name: { + kind: 'Name', + loc: { + end: 10, + start: 5, + }, + value: 'Query', + }, + }, + ], + kind: 'Document', + loc: { + end: 31, + start: 0, + }, + }); process.chdir(saveCwd); }); diff --git a/packages/loaders/github/CHANGELOG.md b/packages/loaders/github/CHANGELOG.md index 44934c4f8c2..f50135d0e1d 100644 --- a/packages/loaders/github/CHANGELOG.md +++ b/packages/loaders/github/CHANGELOG.md @@ -1,5 +1,174 @@ # @graphql-tools/github-loader +## 8.0.20 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + - @graphql-tools/graphql-tag-pluck@8.3.19 + +## 8.0.19 + +### Patch Changes + +- Updated dependencies + [[`6bb35f4`](https://github.com/ardatan/graphql-tools/commit/6bb35f44d67638e222af9ec68f16a1762d373b0f), + [`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/graphql-tag-pluck@8.3.18 + - @graphql-tools/utils@10.8.5 + +## 8.0.18 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + - @graphql-tools/graphql-tag-pluck@8.3.17 + +## 8.0.17 + +### Patch Changes + +- [#6971](https://github.com/ardatan/graphql-tools/pull/6971) + [`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285) + Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates: + - Added dependency + [`@whatwg-node/promise-helpers@^1.0.0` โ†—๏ธŽ](https://www.npmjs.com/package/@whatwg-node/promise-helpers/v/1.0.0) + (to `dependencies`) +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + - @graphql-tools/graphql-tag-pluck@8.3.16 + +## 8.0.16 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + - @graphql-tools/graphql-tag-pluck@8.3.15 + +## 8.0.15 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + - @graphql-tools/graphql-tag-pluck@8.3.14 + +## 8.0.14 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + - @graphql-tools/graphql-tag-pluck@8.3.13 + +## 8.0.13 + +### Patch Changes + +- [#6831](https://github.com/ardatan/graphql-tools/pull/6831) + [`c59403d`](https://github.com/ardatan/graphql-tools/commit/c59403dedc2a5435452c9a3556f4846df6dee392) + Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates: + - Added dependency [`sync-fetch@0.6.0-2` โ†—๏ธŽ](https://www.npmjs.com/package/sync-fetch/v/0.6.0) + (to `dependencies`) + - Removed dependency + [`@ardatan/sync-fetch@^0.0.1` โ†—๏ธŽ](https://www.npmjs.com/package/@ardatan/sync-fetch/v/0.0.1) + (from `dependencies`) + +## 8.0.12 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + - @graphql-tools/graphql-tag-pluck@8.3.12 + +## 8.0.11 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + - @graphql-tools/graphql-tag-pluck@8.3.11 + +## 8.0.10 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + - @graphql-tools/graphql-tag-pluck@8.3.10 + +## 8.0.9 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + - @graphql-tools/graphql-tag-pluck@8.3.9 + +## 8.0.8 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + - @graphql-tools/graphql-tag-pluck@8.3.8 + +## 8.0.7 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/graphql-tag-pluck@^8.3.6` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/graphql-tag-pluck/v/8.3.6) + (from `^8.3.5`, in `dependencies`) + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679), + [`4fd0d3a`](https://github.com/ardatan/graphql-tools/commit/4fd0d3a335b39dc0c44e78a0416bb7dfe900c2ea), + [`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/graphql-tag-pluck@8.3.7 + - @graphql-tools/utils@10.6.2 + +## 8.0.6 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + - @graphql-tools/graphql-tag-pluck@8.3.6 + +## 8.0.5 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + - @graphql-tools/graphql-tag-pluck@8.3.5 + ## 8.0.4 ### Patch Changes @@ -361,9 +530,9 @@ - c50d8568: Fix Github loader responding with 401 with invalid credentials Running the GitHub loader on a private repository with a missing or invalid GitHub token masks the - real error as [object Object]. This happens because the GitHub GraphQL api returns 401 unauthorized - if the token is not valid. After some debugging the only http status code i could find that triggers - this is 401. With the returned payload being: + real error as [object Object]. This happens because the GitHub GraphQL api returns 401 + unauthorized if the token is not valid. After some debugging the only http status code i could + find that triggers this is 401. With the returned payload being: This update fixes the problem for 401 by passing status to `handleResponse` and checking if that is 401 and reporting the correct message returned from Github. The response from github being: @@ -580,7 +749,7 @@ ### Patch Changes -- ef9c3853: fix: bump Node { pointer: string, options: GithubLoaderOptions, fetchFn: FetchFn, - ): Promise | Source[] { + ): MaybePromise { if (!this.canLoadSync(pointer)) { return []; } const { owner, name, ref, path } = extractData(pointer); - return new ValueOrPromise(() => - fetchFn( - 'https://api.github.com/graphql', - this.prepareRequest({ owner, ref, path, name, options }), - ), - ) - .then(response => { - const contentType = response.headers.get('content-type'); - if (contentType && contentType.includes('application/json')) { - return response.json(); - } else { - return response.text(); - } - }) - .then(response => { + return handleMaybePromise( + () => + handleMaybePromise( + () => + fetchFn( + 'https://api.github.com/graphql', + this.prepareRequest({ owner, ref, path, name, options }), + ), + response => { + const contentType = response.headers.get('content-type'); + if (contentType && contentType.includes('application/json')) { + return response.json(); + } else { + return response.text(); + } + }, + ), + response => { const status = response.status; return this.handleResponse({ pointer, path, options, response, status }); - }) - .resolve(); + }, + ); } load(pointer: string, options: GithubLoaderOptions): Promise { diff --git a/packages/loaders/graphql-file/CHANGELOG.md b/packages/loaders/graphql-file/CHANGELOG.md index cc4ff4e423d..d3a3a5d2382 100644 --- a/packages/loaders/graphql-file/CHANGELOG.md +++ b/packages/loaders/graphql-file/CHANGELOG.md @@ -1,5 +1,163 @@ # @graphql-tools/graphql-file-loader +## 8.0.19 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + - @graphql-tools/import@7.0.18 + +## 8.0.18 + +### Patch Changes + +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + - @graphql-tools/import@7.0.17 + +## 8.0.17 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + - @graphql-tools/import@7.0.16 + +## 8.0.16 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + - @graphql-tools/import@7.0.15 + +## 8.0.15 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + - @graphql-tools/import@7.0.14 + +## 8.0.14 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + - @graphql-tools/import@7.0.13 + +## 8.0.13 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + - @graphql-tools/import@7.0.12 + +## 8.0.12 + +### Patch Changes + +- [#6846](https://github.com/ardatan/graphql-tools/pull/6846) + [`72dc6a5`](https://github.com/ardatan/graphql-tools/commit/72dc6a527a14dc04f4590e88c6af7dfb63fa6663) + Thanks [@renovate](https://github.com/apps/renovate)! - Fix on Windows and new version of + `fast-glob` + +## 8.0.11 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + - @graphql-tools/import@7.0.11 + +## 8.0.10 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + - @graphql-tools/import@7.0.10 + +## 8.0.9 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641), + [`ddfef2c`](https://github.com/ardatan/graphql-tools/commit/ddfef2c322ba66a8dd06f28a5c8006348f1dc0a9)]: + - @graphql-tools/utils@10.7.0 + - @graphql-tools/import@7.0.9 + +## 8.0.8 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + - @graphql-tools/import@7.0.8 + +## 8.0.7 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + - @graphql-tools/import@7.0.7 + +## 8.0.6 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/import@7.0.5` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/import/v/7.0.5) + (from `7.0.4`, in `dependencies`) + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679), + [`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/import@7.0.6 + - @graphql-tools/utils@10.6.2 + +## 8.0.5 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + - @graphql-tools/import@7.0.5 + +## 8.0.4 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + - @graphql-tools/import@7.0.4 + ## 8.0.3 ### Patch Changes diff --git a/packages/loaders/graphql-file/package.json b/packages/loaders/graphql-file/package.json index b381c6780bf..7e8ab6c377e 100644 --- a/packages/loaders/graphql-file/package.json +++ b/packages/loaders/graphql-file/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/graphql-file-loader", - "version": "8.0.3", + "version": "8.0.19", "type": "module", "description": "A set of utils for faster development of GraphQL tools", "repository": { @@ -51,8 +51,8 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "dependencies": { - "@graphql-tools/import": "7.0.3", - "@graphql-tools/utils": "^10.5.6", + "@graphql-tools/import": "7.0.18", + "@graphql-tools/utils": "^10.8.6", "globby": "^11.0.3", "tslib": "^2.4.0", "unixify": "^1.0.0" diff --git a/packages/loaders/graphql-file/src/index.ts b/packages/loaders/graphql-file/src/index.ts index c6a9681f8da..876befe6c23 100644 --- a/packages/loaders/graphql-file/src/index.ts +++ b/packages/loaders/graphql-file/src/index.ts @@ -18,6 +18,14 @@ const { readFile, access } = fsPromises; const FILE_EXTENSIONS = ['.gql', '.gqls', '.graphql', '.graphqls']; +function unixifyWithDriverLetter(path: string): string { + if (path.match(/^[A-Z]:\\/)) { + const driveLetter = path[0].toLowerCase(); + return `${driveLetter}:${unixify(path)}`; + } + return unixify(path); +} + /** * Additional options for loading from a GraphQL file */ @@ -95,7 +103,10 @@ export class GraphQLFileLoader implements Loader { private _buildGlobs(glob: string, options: GraphQLFileLoaderOptions) { const ignores = asArray(options.ignore || []); - const globs = [unixify(glob), ...ignores.map(v => buildIgnoreGlob(unixify(v)))]; + const globs = [ + unixifyWithDriverLetter(glob), + ...ignores.map(v => buildIgnoreGlob(unixifyWithDriverLetter(v))), + ]; return globs; } diff --git a/packages/loaders/json-file/CHANGELOG.md b/packages/loaders/json-file/CHANGELOG.md index 6bea0686db9..97ff4cb85d7 100644 --- a/packages/loaders/json-file/CHANGELOG.md +++ b/packages/loaders/json-file/CHANGELOG.md @@ -1,5 +1,134 @@ # @graphql-tools/json-file-loader +## 8.0.18 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + +## 8.0.17 + +### Patch Changes + +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + +## 8.0.16 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + +## 8.0.15 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + +## 8.0.14 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + +## 8.0.13 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + +## 8.0.12 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + +## 8.0.11 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + +## 8.0.10 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + +## 8.0.9 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + +## 8.0.8 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + +## 8.0.7 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + +## 8.0.6 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/utils@10.6.2 + +## 8.0.5 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + +## 8.0.4 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + ## 8.0.3 ### Patch Changes diff --git a/packages/loaders/json-file/package.json b/packages/loaders/json-file/package.json index 38acc1fc364..d166b1fdd6f 100644 --- a/packages/loaders/json-file/package.json +++ b/packages/loaders/json-file/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/json-file-loader", - "version": "8.0.3", + "version": "8.0.18", "type": "module", "description": "A set of utils for faster development of GraphQL tools", "repository": { @@ -51,7 +51,7 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "dependencies": { - "@graphql-tools/utils": "^10.5.6", + "@graphql-tools/utils": "^10.8.6", "globby": "^11.0.3", "tslib": "^2.4.0", "unixify": "^1.0.0" diff --git a/packages/loaders/module/CHANGELOG.md b/packages/loaders/module/CHANGELOG.md index a034ce390ff..90a5c483e4c 100644 --- a/packages/loaders/module/CHANGELOG.md +++ b/packages/loaders/module/CHANGELOG.md @@ -1,5 +1,134 @@ # @graphql-tools/module-loader +## 8.0.18 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + +## 8.0.17 + +### Patch Changes + +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + +## 8.0.16 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + +## 8.0.15 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + +## 8.0.14 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + +## 8.0.13 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + +## 8.0.12 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + +## 8.0.11 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + +## 8.0.10 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + +## 8.0.9 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + +## 8.0.8 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + +## 8.0.7 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + +## 8.0.6 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/utils@10.6.2 + +## 8.0.5 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + +## 8.0.4 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + ## 8.0.3 ### Patch Changes diff --git a/packages/loaders/module/package.json b/packages/loaders/module/package.json index 0568b5c6792..3b7f7622950 100644 --- a/packages/loaders/module/package.json +++ b/packages/loaders/module/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/module-loader", - "version": "8.0.3", + "version": "8.0.18", "type": "module", "description": "A set of utils for faster development of GraphQL tools", "repository": { @@ -51,7 +51,7 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "dependencies": { - "@graphql-tools/utils": "^10.5.6", + "@graphql-tools/utils": "^10.8.6", "tslib": "^2.4.0" }, "publishConfig": { diff --git a/packages/loaders/prisma/CHANGELOG.md b/packages/loaders/prisma/CHANGELOG.md deleted file mode 100644 index 56b0ea45920..00000000000 --- a/packages/loaders/prisma/CHANGELOG.md +++ /dev/null @@ -1,1158 +0,0 @@ -# @graphql-tools/prisma-loader - -## 8.0.17 - -### Patch Changes - -- Updated dependencies - [[`dc5043b`](https://github.com/ardatan/graphql-tools/commit/dc5043bb7c9afaca907c242eb6bf65e8019d79c4)]: - - @graphql-tools/utils@10.5.6 - - @graphql-tools/url-loader@8.0.15 - -## 8.0.16 - -### Patch Changes - -- [#6663](https://github.com/ardatan/graphql-tools/pull/6663) - [`d06afe3`](https://github.com/ardatan/graphql-tools/commit/d06afe3065edb15f4c58c1c155a230d8d542669f) - Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - - Updated dependency - [`@whatwg-node/fetch@^0.10.0` โ†—๏ธŽ](https://www.npmjs.com/package/@whatwg-node/fetch/v/0.10.0) - (from `^0.9.0`, in `dependencies`) -- Updated dependencies - [[`d06afe3`](https://github.com/ardatan/graphql-tools/commit/d06afe3065edb15f4c58c1c155a230d8d542669f)]: - - @graphql-tools/url-loader@8.0.14 - -## 8.0.15 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@8.0.13 - -## 8.0.14 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@8.0.12 - -## 8.0.13 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@8.0.11 - -## 8.0.12 - -### Patch Changes - -- Updated dependencies - [[`218422e`](https://github.com/ardatan/graphql-tools/commit/218422e9b93e9ea461043686907b18076bfaccc2)]: - - @graphql-tools/url-loader@8.0.10 - -## 8.0.11 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@8.0.9 - -## 8.0.10 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@8.0.8 - -## 8.0.9 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@8.0.7 - -## 8.0.8 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@8.0.6 - -## 8.0.7 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@8.0.5 - -## 8.0.6 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@8.0.4 - -## 8.0.5 - -### Patch Changes - -- Updated dependencies - [[`cf2ce5e`](https://github.com/ardatan/graphql-tools/commit/cf2ce5ed4773087cc324599f2812f4fb91398b21)]: - - @graphql-tools/utils@10.5.5 - - @graphql-tools/url-loader@8.0.3 - -## 8.0.4 - -### Patch Changes - -- [#6100](https://github.com/ardatan/graphql-tools/pull/6100) - [`4e72868`](https://github.com/ardatan/graphql-tools/commit/4e728689b70a563b6fa1eb0d52289974231f4251) - Thanks [@JohanBrorson](https://github.com/JohanBrorson)! - Remove unused dependencies - `json-stable-stringify` and `@types/json-stable-stringify`. - -## 8.0.3 - -### Patch Changes - -- [#5913](https://github.com/ardatan/graphql-tools/pull/5913) - [`83c0af0`](https://github.com/ardatan/graphql-tools/commit/83c0af0713ff2ce55ccfb97a1810ecfecfeab703) - Thanks [@enisdenjo](https://github.com/enisdenjo)! - dependencies updates: - - Updated dependency - [`@graphql-tools/utils@^10.0.13` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.0.13) - (from `^10.0.8`, in `dependencies`) -- Updated dependencies - [[`83c0af0`](https://github.com/ardatan/graphql-tools/commit/83c0af0713ff2ce55ccfb97a1810ecfecfeab703)]: - - @graphql-tools/url-loader@8.0.2 - -## 8.0.2 - -### Patch Changes - -- [#5664](https://github.com/ardatan/graphql-tools/pull/5664) - [`75a94362`](https://github.com/ardatan/graphql-tools/commit/75a94362346f4c260c1ab7472e1e4d7c0401e567) - Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - - Updated dependency [`jose@^5.0.0` โ†—๏ธŽ](https://www.npmjs.com/package/jose/v/5.0.0) (from - `^4.11.4`, in `dependencies`) -- Updated dependencies - [[`accd58fd`](https://github.com/ardatan/graphql-tools/commit/accd58fdcf2698422f7e99173206168a84fe17a8)]: - - @graphql-tools/utils@10.0.8 - -## 8.0.1 - -### Patch Changes - -- [#5304](https://github.com/ardatan/graphql-tools/pull/5304) - [`a97b78f2`](https://github.com/ardatan/graphql-tools/commit/a97b78f2bef939c3bd34953f9ad41a618b2a2376) - Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - - - Updated dependency - [`http-proxy-agent@^7.0.0` โ†—๏ธŽ](https://www.npmjs.com/package/http-proxy-agent/v/7.0.0) (from - `^6.0.0`, in `dependencies`) - -- [#5305](https://github.com/ardatan/graphql-tools/pull/5305) - [`cfd44c61`](https://github.com/ardatan/graphql-tools/commit/cfd44c6105276b6e93d6a13e5035b5093a71c326) - Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - - Updated dependency - [`https-proxy-agent@^7.0.0` โ†—๏ธŽ](https://www.npmjs.com/package/https-proxy-agent/v/7.0.0) (from - `^6.0.0`, in `dependencies`) - -## 8.0.0 - -### Major Changes - -- [#5274](https://github.com/ardatan/graphql-tools/pull/5274) - [`944a68e8`](https://github.com/ardatan/graphql-tools/commit/944a68e8becf9c86b4c97fd17c372d98a285b955) - Thanks [@ardatan](https://github.com/ardatan)! - Drop Node 14 support. Require Node.js `>= 16` - -### Patch Changes - -- [#5274](https://github.com/ardatan/graphql-tools/pull/5274) - [`944a68e8`](https://github.com/ardatan/graphql-tools/commit/944a68e8becf9c86b4c97fd17c372d98a285b955) - Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates: - - Updated dependency - [`@whatwg-node/fetch@^0.9.0` โ†—๏ธŽ](https://www.npmjs.com/package/@whatwg-node/fetch/v/0.9.0) - (from `^0.8.2`, in `dependencies`) -- Updated dependencies - [[`944a68e8`](https://github.com/ardatan/graphql-tools/commit/944a68e8becf9c86b4c97fd17c372d98a285b955), - [`944a68e8`](https://github.com/ardatan/graphql-tools/commit/944a68e8becf9c86b4c97fd17c372d98a285b955), - [`944a68e8`](https://github.com/ardatan/graphql-tools/commit/944a68e8becf9c86b4c97fd17c372d98a285b955)]: - - @graphql-tools/url-loader@8.0.0 - - @graphql-tools/utils@10.0.0 - -## 7.2.72 - -### Patch Changes - -- [#5251](https://github.com/ardatan/graphql-tools/pull/5251) - [`58a18e4d`](https://github.com/ardatan/graphql-tools/commit/58a18e4d60dfb43dff2ebdeca2865da0bbaa1c16) - Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - - - Updated dependency - [`http-proxy-agent@^6.0.0` โ†—๏ธŽ](https://www.npmjs.com/package/http-proxy-agent/v/6.0.0) (from - `^5.0.0`, in `dependencies`) - -- [#5252](https://github.com/ardatan/graphql-tools/pull/5252) - [`8f79ded2`](https://github.com/ardatan/graphql-tools/commit/8f79ded25b82f68b8950ef326c90d4414f780912) - Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - - Updated dependency - [`https-proxy-agent@^6.0.0` โ†—๏ธŽ](https://www.npmjs.com/package/https-proxy-agent/v/6.0.0) (from - `^5.0.0`, in `dependencies`) - -## 7.2.71 - -### Patch Changes - -- [`bba3d32f`](https://github.com/ardatan/graphql-tools/commit/bba3d32f6c60c32530ba2e48aadb9baaf985978c) - Thanks [@ardatan](https://github.com/ardatan)! - Unpin url loader - -## 7.2.70 - -### Patch Changes - -- [#5166](https://github.com/ardatan/graphql-tools/pull/5166) - [`807c9b54`](https://github.com/ardatan/graphql-tools/commit/807c9b547369903575c1182f891e9a89aadbaeb8) - Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - - - Updated dependency - [`graphql-request@^6.0.0` โ†—๏ธŽ](https://www.npmjs.com/package/graphql-request/v/6.0.0) (from - `^5.0.0`, in `dependencies`) - -- [`1c95368a`](https://github.com/ardatan/graphql-tools/commit/1c95368aea868be537d956ba5e994cde58dfee41) - Thanks [@ardatan](https://github.com/ardatan)! - Use ranged versions for dependencies - -- Updated dependencies []: - - @graphql-tools/url-loader@7.17.18 - -## 7.2.69 - -### Patch Changes - -- Updated dependencies - [[`07589ae9`](https://github.com/ardatan/graphql-tools/commit/07589ae97499a4668b0bd24caa1e52ef8fcfd0e5)]: - - @graphql-tools/url-loader@7.17.17 - -## 7.2.68 - -### Patch Changes - -- Updated dependencies - [[`58414b26`](https://github.com/ardatan/graphql-tools/commit/58414b2606c13c77f2d3a3015b9931c587272b6b)]: - - @graphql-tools/url-loader@7.17.16 - -## 7.2.67 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.17.15 - -## 7.2.66 - -### Patch Changes - -- [`6df5c021`](https://github.com/ardatan/graphql-tools/commit/6df5c021c18e9ec10f700c910e79e7cae5558ce2) - Thanks [@ardatan](https://github.com/ardatan)! - Replace isomorphic-fetch with @whatwg-node/fetch - -## 7.2.65 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.17.14 - -## 7.2.64 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.17.13 - -## 7.2.63 - -### Patch Changes - -- Updated dependencies - [[`1b948acc`](https://github.com/ardatan/graphql-tools/commit/1b948accf76366f45f69fe212e0d600a85eb6a89)]: - - @graphql-tools/url-loader@7.17.12 - -## 7.2.62 - -### Patch Changes - -- Updated dependencies - [[`ab4cf86b`](https://github.com/ardatan/graphql-tools/commit/ab4cf86bf1330deacd95ecea2fcca54dd6590da1)]: - - @graphql-tools/url-loader@7.17.11 - -## 7.2.61 - -### Patch Changes - -- Updated dependencies - [[`b09ea282`](https://github.com/ardatan/graphql-tools/commit/b09ea282f0945fb19f354af57aabddcd23b2a155), - [`b5c8f640`](https://github.com/ardatan/graphql-tools/commit/b5c8f6407b74466ed0d2989000458cb59239e9af)]: - - @graphql-tools/url-loader@7.17.10 - - @graphql-tools/utils@9.2.1 - -## 7.2.60 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.17.9 - -## 7.2.59 - -### Patch Changes - -- Updated dependencies - [[`a94217e9`](https://github.com/ardatan/graphql-tools/commit/a94217e920c5d6237471ab6ad4d96cf230984177), - [`62d074be`](https://github.com/ardatan/graphql-tools/commit/62d074be48779b1e096e056ca1233822c421dc99)]: - - @graphql-tools/utils@9.2.0 - - @graphql-tools/url-loader@7.17.8 - -## 7.2.58 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.17.7 - -## 7.2.57 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.17.6 - -## 7.2.56 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.17.5 - -## 7.2.55 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.17.4 - -## 7.2.54 - -### Patch Changes - -- Updated dependencies - [[`1c291f33`](https://github.com/ardatan/graphql-tools/commit/1c291f33ba5e42126b5335530c1ac4cd6b3eaf6a)]: - - @graphql-tools/url-loader@7.17.3 - -## 7.2.53 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.17.2 - -## 7.2.52 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.17.1 - -## 7.2.51 - -### Patch Changes - -- [#4930](https://github.com/ardatan/graphql-tools/pull/4930) - [`cbc2fa8b`](https://github.com/ardatan/graphql-tools/commit/cbc2fa8b9f057f32f56088742c02e7b6628d84cb) - Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - - Updated dependency - [`@types/jsonwebtoken@^9.0.0` โ†—๏ธŽ](https://www.npmjs.com/package/@types/jsonwebtoken/v/9.0.0) - (from `^8.5.0`, in `dependencies`) -- Updated dependencies - [[`0e5d250c`](https://github.com/ardatan/graphql-tools/commit/0e5d250cbac7ab003c45020b5ea464a8924eed01), - [`1c4853cb`](https://github.com/ardatan/graphql-tools/commit/1c4853cb8563d83c0d862d3c11257c48c7d1469c), - [`499365aa`](https://github.com/ardatan/graphql-tools/commit/499365aa3f33148a47e708351416b6a54c17655a), - [`e3ec35ed`](https://github.com/ardatan/graphql-tools/commit/e3ec35ed27d4a329739c8da6be06ce74c8f25591)]: - - @graphql-tools/url-loader@7.17.0 - - @graphql-tools/utils@9.1.4 - -## 7.2.50 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.29 - -## 7.2.49 - -### Patch Changes - -- [#4923](https://github.com/ardatan/graphql-tools/pull/4923) - [`c10d688b`](https://github.com/ardatan/graphql-tools/commit/c10d688b33f1ba46a2269b589cea7bab1b05d283) - Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - - Updated dependency - [`jsonwebtoken@^9.0.0` โ†—๏ธŽ](https://www.npmjs.com/package/jsonwebtoken/v/9.0.0) (from `^8.5.1`, - in `dependencies`) - -## 7.2.48 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.28 - -## 7.2.47 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.27 - -## 7.2.46 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.26 - -## 7.2.45 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.25 - -## 7.2.44 - -### Patch Changes - -- Updated dependencies - [[`904fe770`](https://github.com/ardatan/graphql-tools/commit/904fe770a355ee3d79464c3bbf0375d2dcd64759)]: - - @graphql-tools/utils@9.1.3 - - @graphql-tools/url-loader@7.16.24 - -## 7.2.43 - -### Patch Changes - -- Updated dependencies - [[`13c24883`](https://github.com/ardatan/graphql-tools/commit/13c24883004d5330f7402cb20566e37535c5729b)]: - - @graphql-tools/utils@9.1.2 - - @graphql-tools/url-loader@7.16.23 - -## 7.2.42 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.22 - -## 7.2.41 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.21 - -## 7.2.40 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.20 - -## 7.2.39 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.19 - -## 7.2.38 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.18 - -## 7.2.37 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.17 - -## 7.2.36 - -### Patch Changes - -- Updated dependencies - [[`7411a5e7`](https://github.com/ardatan/graphql-tools/commit/7411a5e71a8138d9ccfe907b1fb01e62fcbb0cdb)]: - - @graphql-tools/utils@9.1.1 - - @graphql-tools/url-loader@7.16.16 - -## 7.2.35 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.15 - -## 7.2.34 - -### Patch Changes - -- Updated dependencies - [[`e2fc041e`](https://github.com/ardatan/graphql-tools/commit/e2fc041e6f751c70efc20e8a02cbf88da0b905d2)]: - - @graphql-tools/url-loader@7.16.14 - -## 7.2.33 - -### Patch Changes - -- Updated dependencies - [[`61812ccb`](https://github.com/ardatan/graphql-tools/commit/61812ccb97d6e179e74d72661dd0736f6ca0a7ff), - [`61812ccb`](https://github.com/ardatan/graphql-tools/commit/61812ccb97d6e179e74d72661dd0736f6ca0a7ff)]: - - @graphql-tools/url-loader@7.16.13 - -## 7.2.32 - -### Patch Changes - -- Updated dependencies - [[`c0639dd0`](https://github.com/ardatan/graphql-tools/commit/c0639dd0065db1b5bcedaabf58b11945714bab8d)]: - - @graphql-tools/utils@9.1.0 - - @graphql-tools/url-loader@7.16.12 - -## 7.2.31 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.11 - -## 7.2.30 - -### Patch Changes - -- Updated dependencies - [[`d83b1960`](https://github.com/ardatan/graphql-tools/commit/d83b19605be71481ccf8effd80d5254423ea811a)]: - - @graphql-tools/url-loader@7.16.10 - - @graphql-tools/utils@9.0.1 - -## 7.2.29 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.9 - -## 7.2.28 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.8 - -## 7.2.27 - -### Patch Changes - -- Updated dependencies - [[`80836fa7`](https://github.com/ardatan/graphql-tools/commit/80836fa78af3c6e61c61fe4d3bc52831b2c58931), - [`8f6d3efc`](https://github.com/ardatan/graphql-tools/commit/8f6d3efc92b25236f5a3a761ea7ba2f0a7c7f550), - [`80836fa7`](https://github.com/ardatan/graphql-tools/commit/80836fa78af3c6e61c61fe4d3bc52831b2c58931), - [`80836fa7`](https://github.com/ardatan/graphql-tools/commit/80836fa78af3c6e61c61fe4d3bc52831b2c58931), - [`80836fa7`](https://github.com/ardatan/graphql-tools/commit/80836fa78af3c6e61c61fe4d3bc52831b2c58931)]: - - @graphql-tools/utils@9.0.0 - - @graphql-tools/url-loader@7.16.7 - -## 7.2.26 - -### Patch Changes - -- Updated dependencies - [[`f7daf777`](https://github.com/ardatan/graphql-tools/commit/f7daf7777cc214801886e4a45c0389bc5837d175)]: - - @graphql-tools/utils@8.13.1 - - @graphql-tools/url-loader@7.16.6 - -## 7.2.25 - -### Patch Changes - -- Updated dependencies - [[`884c7ef7`](https://github.com/ardatan/graphql-tools/commit/884c7ef7bc549421fad6cbf38616d4a9eb9f8738), - [`df5848b8`](https://github.com/ardatan/graphql-tools/commit/df5848b85102827f004f23aded7cf802cdcde00f), - [`df5848b8`](https://github.com/ardatan/graphql-tools/commit/df5848b85102827f004f23aded7cf802cdcde00f), - [`df5848b8`](https://github.com/ardatan/graphql-tools/commit/df5848b85102827f004f23aded7cf802cdcde00f)]: - - @graphql-tools/url-loader@7.16.5 - - @graphql-tools/utils@8.13.0 - -## 7.2.24 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.4 - -## 7.2.23 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.3 - -## 7.2.22 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.16.2 - -## 7.2.21 - -### Patch Changes - -- Updated dependencies - [[`43c736bd`](https://github.com/ardatan/graphql-tools/commit/43c736bd1865c00898966a7ed14060496c9e6a0c)]: - - @graphql-tools/utils@8.12.0 - - @graphql-tools/url-loader@7.16.1 - -## 7.2.20 - -### Patch Changes - -- [#4678](https://github.com/ardatan/graphql-tools/pull/4678) - [`1b0988a4`](https://github.com/ardatan/graphql-tools/commit/1b0988a42ca83a21e5a30284f83bd78ecbaf2e90) - Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: - - - Updated dependency - [`graphql-request@^5.0.0` โ†—๏ธŽ](https://www.npmjs.com/package/graphql-request/v/null) (from - `^4.0.0`, in `dependencies`) - -- Updated dependencies - [[`939e07ca`](https://github.com/ardatan/graphql-tools/commit/939e07cae38ff179e00c2ff2a23b70f6259971ef), - [`dd8886d1`](https://github.com/ardatan/graphql-tools/commit/dd8886d1534fdf73b7cfb6d54b13a3db5812b38b), - [`dd8886d1`](https://github.com/ardatan/graphql-tools/commit/dd8886d1534fdf73b7cfb6d54b13a3db5812b38b), - [`dd8886d1`](https://github.com/ardatan/graphql-tools/commit/dd8886d1534fdf73b7cfb6d54b13a3db5812b38b), - [`dd8886d1`](https://github.com/ardatan/graphql-tools/commit/dd8886d1534fdf73b7cfb6d54b13a3db5812b38b)]: - - @graphql-tools/url-loader@7.16.0 - -## 7.2.19 - -### Patch Changes - -- Updated dependencies - [[`2926a270`](https://github.com/ardatan/graphql-tools/commit/2926a27098a94469306664add1f8c232ac6de6e7)]: - - @graphql-tools/url-loader@7.15.0 - -## 7.2.18 - -### Patch Changes - -- Updated dependencies - [[`71cb4fae`](https://github.com/ardatan/graphql-tools/commit/71cb4faeb0833a228520a7bc2beed8ac7274443f), - [`403ed450`](https://github.com/ardatan/graphql-tools/commit/403ed4507eff7cd509f410f7542a702da72e1a9a)]: - - @graphql-tools/utils@8.11.0 - - @graphql-tools/url-loader@7.14.3 - -## 7.2.17 - -### Patch Changes - -- Updated dependencies - [[`f8610d24`](https://github.com/ardatan/graphql-tools/commit/f8610d240083a621852c21342139c12d736ac6af)]: - - @graphql-tools/url-loader@7.14.2 - -## 7.2.16 - -### Patch Changes - -- Updated dependencies - [[`5e9b1c06`](https://github.com/ardatan/graphql-tools/commit/5e9b1c066ed02fcac54cd79080c89e327d8d2f53), - [`4fe3d9c0`](https://github.com/ardatan/graphql-tools/commit/4fe3d9c037e9c138bd8a9b04b3977d74eba32c97)]: - - @graphql-tools/url-loader@7.14.1 - - @graphql-tools/utils@8.10.1 - -## 7.2.15 - -### Patch Changes - -- Updated dependencies - [[`768432c8`](https://github.com/ardatan/graphql-tools/commit/768432c8f75a5684de802988bed1df814a9ef191)]: - - @graphql-tools/url-loader@7.14.0 - -## 7.2.14 - -### Patch Changes - -- Updated dependencies - [[`b6f1f5ce`](https://github.com/ardatan/graphql-tools/commit/b6f1f5ce847cc1e12da29f7adc1be298c32d1162)]: - - @graphql-tools/url-loader@7.13.9 - -## 7.2.13 - -### Patch Changes - -- [#4640](https://github.com/ardatan/graphql-tools/pull/4640) - [`27bdc237`](https://github.com/ardatan/graphql-tools/commit/27bdc23713a5176485ac940fc5431256b4f2de8d) - Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates: - - - Updated dependency - [`@graphql-tools/url-loader@7.13.7` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/url-loader/v/7.13.7) - (was `7.13.6`, in `dependencies`) - -- Updated dependencies - [[`27bdc237`](https://github.com/ardatan/graphql-tools/commit/27bdc23713a5176485ac940fc5431256b4f2de8d), - [`27bdc237`](https://github.com/ardatan/graphql-tools/commit/27bdc23713a5176485ac940fc5431256b4f2de8d), - [`27bdc237`](https://github.com/ardatan/graphql-tools/commit/27bdc23713a5176485ac940fc5431256b4f2de8d)]: - - @graphql-tools/url-loader@7.13.8 - -## 7.2.12 - -### Patch Changes - -- [`0555a972`](https://github.com/ardatan/graphql-tools/commit/0555a972f010d2b3ca93b9164b26474a78d0b20b) - Thanks [@ardatan](https://github.com/ardatan)! - Bump versions - -- Updated dependencies - [[`0555a972`](https://github.com/ardatan/graphql-tools/commit/0555a972f010d2b3ca93b9164b26474a78d0b20b)]: - - @graphql-tools/url-loader@7.13.7 - -## 7.2.11 - -### Patch Changes - -- Updated dependencies []: - - @graphql-tools/url-loader@7.13.6 - -## 7.2.10 - -### Patch Changes - -- Updated dependencies - [[`2609d71f`](https://github.com/ardatan/graphql-tools/commit/2609d71f7c3a0ef2b381c51d9ce60b0de49f9b27)]: - - @graphql-tools/utils@8.10.0 - - @graphql-tools/url-loader@7.13.5 - -## 7.2.9 - -### Patch Changes - -- [#4624](https://github.com/ardatan/graphql-tools/pull/4624) - [`e3167edc`](https://github.com/ardatan/graphql-tools/commit/e3167edc98172fda88ce2306c10c7d4a23d91d67) - Thanks [@n1ru4l](https://github.com/n1ru4l)! - Fix CommonJS TypeScript resolution with - `moduleResolution` `node16` or `nodenext` - -- Updated dependencies - [[`e3167edc`](https://github.com/ardatan/graphql-tools/commit/e3167edc98172fda88ce2306c10c7d4a23d91d67)]: - - @graphql-tools/url-loader@7.13.4 - - @graphql-tools/utils@8.9.1 - -## 7.2.8 - -### Patch Changes - -- Updated dependencies [4dc7c3a0] - - @graphql-tools/url-loader@7.13.3 - -## 7.2.7 - -### Patch Changes - -- 49ced0e7: Replace and remove unnecessary `replaceall` dependency -- Updated dependencies [3c8fb360] - - @graphql-tools/url-loader@7.13.2 - -## 7.2.6 - -### Patch Changes - -- Updated dependencies [2a3b45e3] - - @graphql-tools/utils@8.9.0 - - @graphql-tools/url-loader@7.13.1 - -## 7.2.5 - -### Patch Changes - -- Updated dependencies [e98c84a3] - - @graphql-tools/url-loader@7.13.0 - -## 7.2.3 - -### Patch Changes - -- Updated dependencies [eda0da95] - - @graphql-tools/url-loader@7.12.2 - -## 7.2.2 - -### Patch Changes - -- Updated dependencies [ead60ca3] - - @graphql-tools/url-loader@7.12.1 - -## 7.2.1 - -### Patch Changes - -- Updated dependencies [adbf372c] - - @graphql-tools/url-loader@7.12.0 - -## 7.2.0 - -### Minor Changes - -- d76a299c: Support TypeScript module resolution. - -### Patch Changes - -- Updated dependencies [a0abbbcd] -- Updated dependencies [d76a299c] - - @graphql-tools/utils@8.8.0 - - @graphql-tools/url-loader@7.11.0 - -## 7.1.25 - -### Patch Changes - -- Updated dependencies [4914970b] -- Updated dependencies [4914970b] - - @graphql-tools/utils@8.7.0 - - @graphql-tools/url-loader@7.10.0 - -## 7.1.24 - -### Patch Changes - -- Updated dependencies [05218bfe] - - @graphql-tools/url-loader@7.9.25 - -## 7.1.23 - -### Patch Changes - -- 041c5ba1: Use caret range for the tslib dependency -- Updated dependencies [041c5ba1] - - @graphql-tools/url-loader@7.9.24 - - @graphql-tools/utils@8.6.13 - -## 7.1.22 - -### Patch Changes - -- Updated dependencies [da7ad43b] - - @graphql-tools/utils@8.6.12 - - @graphql-tools/url-loader@7.9.23 - -## 7.1.21 - -### Patch Changes - -- Updated dependencies [c0762ee3] - - @graphql-tools/utils@8.6.11 - - @graphql-tools/url-loader@7.9.22 - -## 7.1.20 - -### Patch Changes - -- Updated dependencies [0fc510cb] - - @graphql-tools/utils@8.6.10 - - @graphql-tools/url-loader@7.9.21 - -## 7.1.19 - -### Patch Changes - -- Updated dependencies [ab0549cc] - - @graphql-tools/url-loader@7.9.20 - -## 7.1.18 - -### Patch Changes - -- Updated dependencies [627565a8] - - @graphql-tools/url-loader@7.9.19 - -## 7.1.17 - -### Patch Changes - -- Updated dependencies [84ae31ea] - - @graphql-tools/url-loader@7.9.18 - -## 7.1.16 - -### Patch Changes - -- Updated dependencies [3d89a26e] - - @graphql-tools/url-loader@7.9.17 - -## 7.1.15 - -### Patch Changes - -- Updated dependencies [4b70d2be] - - @graphql-tools/url-loader@7.9.16 - -## 7.1.14 - -### Patch Changes - -- Updated dependencies [dd8563f1] - - @graphql-tools/url-loader@7.9.15 - -## 7.1.13 - -### Patch Changes - -- Updated dependencies [31a33e2b] - - @graphql-tools/utils@8.6.9 - - @graphql-tools/url-loader@7.9.14 - -## 7.1.12 - -### Patch Changes - -- Updated dependencies [8d9f48bc] - - @graphql-tools/url-loader@7.9.13 - -## 7.1.11 - -### Patch Changes - -- Updated dependencies [cb238877] -- Updated dependencies [43758d61] - - @graphql-tools/utils@8.6.8 - - @graphql-tools/url-loader@7.9.12 - -## 7.1.10 - -### Patch Changes - -- Updated dependencies [0bbb1769] - - @graphql-tools/url-loader@7.9.11 - - @graphql-tools/utils@8.6.7 - -## 7.1.9 - -### Patch Changes - -- Updated dependencies [fe9402af] - - @graphql-tools/url-loader@7.9.10 - -## 7.1.8 - -### Patch Changes - -- Updated dependencies [904c0847] - - @graphql-tools/utils@8.6.6 - - @graphql-tools/url-loader@7.9.9 - -## 7.1.7 - -### Patch Changes - -- @graphql-tools/url-loader@7.9.8 - -## 7.1.6 - -### Patch Changes - -- @graphql-tools/url-loader@7.9.7 - -## 7.1.5 - -### Patch Changes - -- Updated dependencies [be2c02d7] - - @graphql-tools/utils@8.6.5 - - @graphql-tools/url-loader@7.9.6 - -## 7.1.4 - -### Patch Changes - -- Updated dependencies [d36d530b] - - @graphql-tools/utils@8.6.4 - - @graphql-tools/url-loader@7.9.5 - -## 7.1.3 - -### Patch Changes - -- 0c0c6857: fix - align versions -- Updated dependencies [0c0c6857] - - @graphql-tools/url-loader@7.9.4 - -## 7.1.2 - -### Patch Changes - -- 18341363: feat(visitResult): ignore if field not present in visited object -- Updated dependencies [18341363] - - @graphql-tools/url-loader@7.7.2 - - @graphql-tools/utils@8.6.2 - -## 7.1.1 - -### Patch Changes - -- 4bfb3428: enhance: use ^ for tslib dependency -- Updated dependencies [981eef80] -- Updated dependencies [4bfb3428] - - @graphql-tools/url-loader@7.4.2 - - @graphql-tools/utils@8.5.1 - -## 7.1.0 - -### Minor Changes - -- c5b0719c: feat: GraphQL v16 support - -### Patch Changes - -- Updated dependencies [c5b0719c] -- Updated dependencies [c5b0719c] -- Updated dependencies [c5b0719c] -- Updated dependencies [c5b0719c] -- Updated dependencies [c5b0719c] - - @graphql-tools/utils@8.2.0 - - @graphql-tools/url-loader@7.1.0 - -## 7.0.6 - -### Patch Changes - -- e50852e6: use version ranges instead of a fixed version for the graphql-tools package versions -- Updated dependencies [e50852e6] - - @graphql-tools/url-loader@7.0.11 - -## 7.0.5 - -### Patch Changes - -- Updated dependencies [2c807ddb] - - @graphql-tools/utils@8.1.1 - - @graphql-tools/url-loader@7.0.10 - -## 7.0.4 - -### Patch Changes - -- Updated dependencies [b9684631] -- Updated dependencies [9ede806a] -- Updated dependencies [67691b78] - - @graphql-tools/utils@8.1.0 - - @graphql-tools/url-loader@7.0.8 - -## 7.0.3 - -### Patch Changes - -- Updated dependencies [04830049] - - @graphql-tools/utils@8.0.2 - - @graphql-tools/url-loader@7.0.4 - -## 7.0.2 - -### Patch Changes - -- 118b3ca5: fix imports for ESM - -## 7.0.1 - -### Patch Changes - -- Updated dependencies [b823dbaf] - - @graphql-tools/utils@8.0.1 - - @graphql-tools/url-loader@7.0.3 - -## 7.0.0 - -### Major Changes - -- 1c039fd3: BREAKING CHANGE - - - Now each loader handles glob patterns internally and returns an array of `Source` object instead - of single `Source` - - - GraphQL Tag Pluck now respects code locations and returns graphql-js `Source` objects for each - found code block - - - Thanks to the one above, `CodeFileLoader` now returns different `Source` objects for each found - SDL code block. - -## 6.3.1 - -### Patch Changes - -- Updated dependencies [af9a78de] -- Updated dependencies [9c26b847] -- Updated dependencies [7d3e3006] -- Updated dependencies [614c08cc] -- Updated dependencies [7d3e3006] -- Updated dependencies [dae6dc7b] -- Updated dependencies [a31f9593] -- Updated dependencies [6877b913] -- Updated dependencies [c42e811d] -- Updated dependencies [7d3e3006] -- Updated dependencies [8c8d4fc0] -- Updated dependencies [7d3e3006] -- Updated dependencies [7d3e3006] -- Updated dependencies [74581cf3] -- Updated dependencies [c0ca3190] -- Updated dependencies [982c8f53] -- Updated dependencies [7d3e3006] -- Updated dependencies [fd81e800] -- Updated dependencies [7d3e3006] -- Updated dependencies [7d3e3006] - - @graphql-tools/url-loader@7.0.0 - - @graphql-tools/utils@8.0.0 - -## 6.3.0 - -### Minor Changes - -- de05971c: Use native Promise instead of Bluebird - -### Patch Changes - -- Updated dependencies [50bc2178] - - @graphql-tools/url-loader@6.8.2 - -## 6.2.7 - -### Patch Changes - -- eacf0dc3: Replace fs-extra with native methods - -## 6.2.6 - -### Patch Changes - -- 07548058: Don't initialize env vars with an empty object, so it can fall back on process.env - -## 6.2.5 - -### Patch Changes - -- Updated dependencies [be1a1575] - - @graphql-tools/utils@7.0.0 - - @graphql-tools/url-loader@6.3.1 - -## 6.2.4 - -### Patch Changes - -- 533d6d53: Bump all packages to allow adjustments -- Updated dependencies [32c3c4f8] -- Updated dependencies [533d6d53] - - @graphql-tools/utils@6.2.4 - - @graphql-tools/url-loader@6.2.4 diff --git a/packages/loaders/prisma/package.json b/packages/loaders/prisma/package.json deleted file mode 100644 index b3ccaa9873b..00000000000 --- a/packages/loaders/prisma/package.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "name": "@graphql-tools/prisma-loader", - "version": "8.0.17", - "type": "module", - "description": "A set of utils for faster development of GraphQL tools", - "repository": { - "type": "git", - "url": "ardatan/graphql-tools", - "directory": "packages/loaders/prisma" - }, - "author": "Dotan Simha ", - "license": "MIT", - "engines": { - "node": ">=16.0.0" - }, - "main": "dist/cjs/index.js", - "module": "dist/esm/index.js", - "exports": { - ".": { - "require": { - "types": "./dist/typings/index.d.cts", - "default": "./dist/cjs/index.js" - }, - "import": { - "types": "./dist/typings/index.d.ts", - "default": "./dist/esm/index.js" - }, - "default": { - "types": "./dist/typings/index.d.ts", - "default": "./dist/esm/index.js" - } - }, - "./*": { - "require": { - "types": "./dist/typings/*.d.cts", - "default": "./dist/cjs/*.js" - }, - "import": { - "types": "./dist/typings/*.d.ts", - "default": "./dist/esm/*.js" - }, - "default": { - "types": "./dist/typings/*.d.ts", - "default": "./dist/esm/*.js" - } - }, - "./package.json": "./package.json" - }, - "typings": "dist/typings/index.d.ts", - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - }, - "dependencies": { - "@graphql-tools/url-loader": "^8.0.15", - "@graphql-tools/utils": "^10.5.6", - "@types/js-yaml": "^4.0.0", - "@whatwg-node/fetch": "^0.10.0", - "chalk": "^4.1.0", - "debug": "^4.3.1", - "dotenv": "^16.0.0", - "graphql-request": "^6.0.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "jose": "^5.0.0", - "js-yaml": "^4.0.0", - "lodash": "^4.17.20", - "scuid": "^1.1.0", - "tslib": "^2.4.0", - "yaml-ast-parser": "^0.0.43" - }, - "publishConfig": { - "directory": "dist", - "access": "public" - }, - "sideEffects": false, - "typescript": { - "definition": "dist/typings/index.d.ts" - } -} diff --git a/packages/loaders/prisma/src/index.ts b/packages/loaders/prisma/src/index.ts deleted file mode 100644 index 9dc19da22f4..00000000000 --- a/packages/loaders/prisma/src/index.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { promises as fsPromises } from 'fs'; -import { homedir } from 'os'; -import { join } from 'path'; -import { cwd } from 'process'; -import { LoadFromUrlOptions, UrlLoader } from '@graphql-tools/url-loader'; -import { Environment, PrismaDefinitionClass } from './prisma-yml/index.js'; - -const { access } = fsPromises; - -/** - * additional options for loading from a `prisma.yml` file - */ -export interface PrismaLoaderOptions extends LoadFromUrlOptions { - envVars?: { [key: string]: string }; - graceful?: boolean; - cwd?: string; -} - -/** - * This loader loads a schema from a `prisma.yml` file - */ -export class PrismaLoader extends UrlLoader { - canLoadSync() { - return false; - } - - async canLoad(prismaConfigFilePath: string, options: PrismaLoaderOptions): Promise { - if (typeof prismaConfigFilePath === 'string' && prismaConfigFilePath.endsWith('prisma.yml')) { - const joinedYmlPath = join(options.cwd || cwd(), prismaConfigFilePath); - try { - await access(joinedYmlPath); - return true; - } catch { - return false; - } - } - return false; - } - - async load(prismaConfigFilePath: string, options: PrismaLoaderOptions) { - if (!(await this.canLoad(prismaConfigFilePath, options))) { - return []; - } - const { graceful, envVars } = options; - const home = homedir(); - const env = new Environment(home); - await env.load(); - const joinedYmlPath = join(options.cwd || cwd(), prismaConfigFilePath); - const definition = new PrismaDefinitionClass(env, joinedYmlPath, envVars); - await definition.load({}, undefined, graceful); - const serviceName = definition.service!; - const stage = definition.stage!; - const clusterName = definition.cluster; - if (!clusterName) { - throw new Error(`No cluster set. Please set the "cluster" property in your prisma.yml`); - } - const cluster = await definition.getCluster(); - if (!cluster) { - throw new Error( - `Cluster ${clusterName} provided in prisma.yml could not be found in global ~/.prisma/config.yml. - Please check in ~/.prisma/config.yml, if the cluster exists. - You can use \`docker-compose up -d\` to start a new cluster.`, - ); - } - const token = await definition.getToken(serviceName, stage); - const url = cluster.getApiEndpoint(serviceName, stage, definition.getWorkspace() || undefined); - const headers = token - ? { - Authorization: `Bearer ${token}`, - } - : undefined; - return super.load(url, { headers }); - } -} diff --git a/packages/loaders/prisma/src/prisma-yml/Cluster.test.ts b/packages/loaders/prisma/src/prisma-yml/Cluster.test.ts deleted file mode 100644 index 4db70c01caf..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/Cluster.test.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Cluster, Output } from './index.js'; - -describe('cluster endpoint generation', () => { - test('local cluster', () => { - const cluster = new Cluster(new Output(), 'local', 'http://localhost:4466', undefined, true); - expect(cluster.getApiEndpoint('default', 'default')).toMatchSnapshot(); - expect(cluster.getApiEndpoint('dev', 'default')).toMatchSnapshot(); - expect(cluster.getApiEndpoint('default', 'dev')).toMatchSnapshot(); - expect(cluster.getApiEndpoint('default', 'dev', 'ignore-me')).toMatchSnapshot(); - }); - test('private cluster', () => { - const cluster = new Cluster( - new Output(), - 'test01', - 'https://test01_workspace.prisma.sh', - undefined, - false, - false, - true, - ); - expect(cluster.getApiEndpoint('default', 'default', 'workspace')).toMatchSnapshot(); - expect(cluster.getApiEndpoint('dev', 'default', 'workspace')).toMatchSnapshot(); - expect(cluster.getApiEndpoint('default', 'dev', 'workspace')).toMatchSnapshot(); - }); - test('sandbox cluster', () => { - const cluster = new Cluster( - new Output(), - 'prisma-eu1', - 'https://eu1.prisma.sh', - undefined, - false, - true, - false, - ); - expect(cluster.getApiEndpoint('default', 'default', 'workspace')).toMatchSnapshot(); - expect(cluster.getApiEndpoint('dev', 'default', 'workspace')).toMatchSnapshot(); - expect(cluster.getApiEndpoint('default', 'dev', 'workspace')).toMatchSnapshot(); - }); -}); diff --git a/packages/loaders/prisma/src/prisma-yml/Cluster.ts b/packages/loaders/prisma/src/prisma-yml/Cluster.ts deleted file mode 100644 index 68dc4ba3c0a..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/Cluster.ts +++ /dev/null @@ -1,296 +0,0 @@ -import { Buffer } from 'buffer'; -import { createPrivateKey } from 'crypto'; -import chalk from 'chalk'; -import debugPkg from 'debug'; -import { GraphQLClient } from 'graphql-request'; -import { SignJWT } from 'jose'; -import { fetch } from '@whatwg-node/fetch'; -import { cloudApiEndpoint } from './constants.js'; -import { IOutput } from './Output.js'; -import { getProxyAgent } from './utils/getProxyAgent.js'; - -const debug = debugPkg('Environment'); - -export class Cluster { - name: string; - baseUrl: string; - local: boolean; - shared: boolean; - clusterSecret?: string; - requiresAuth: boolean | undefined; - out: IOutput; - isPrivate: boolean; - workspaceSlug?: string; - private cachedToken?: string; - hasOldDeployEndpoint: boolean; - custom?: boolean; - constructor( - out: IOutput, - name: string, - baseUrl: string, - clusterSecret?: string, - local = true, - shared = false, - isPrivate = false, - workspaceSlug?: string, - ) { - this.out = out; - this.name = name; - - // All `baseUrl` extension points in this class - // adds a trailing slash. Here we remove it from - // the passed `baseUrl` in order to avoid double - // slashes. - this.baseUrl = baseUrl.replace(/\/$/, ''); - this.clusterSecret = clusterSecret; - this.local = local; - this.shared = shared; - this.isPrivate = isPrivate; - this.workspaceSlug = workspaceSlug; - this.hasOldDeployEndpoint = false; - } - - async getToken( - serviceName: string, - workspaceSlug?: string, - stageName?: string, - ): Promise { - // public clusters just take the token - - const needsAuth = await this.needsAuth(); - debug({ needsAuth }); - if (!needsAuth) { - return null; - } - - if (this.name === 'shared-public-demo') { - return ''; - } - if (this.isPrivate && process.env['PRISMA_MANAGEMENT_API_SECRET']) { - return this.getLocalToken(); - } - if (this.shared || (this.isPrivate && !process.env['PRISMA_MANAGEMENT_API_SECRET'])) { - return this.generateClusterToken(serviceName, workspaceSlug, stageName); - } else { - return this.getLocalToken(); - } - } - - async getLocalToken(): Promise { - if (!this.clusterSecret && !process.env['PRISMA_MANAGEMENT_API_SECRET']) { - return null; - } - if (!this.cachedToken) { - const grants = [{ target: `*/*`, action: '*' }]; - const secret = process.env['PRISMA_MANAGEMENT_API_SECRET'] || this.clusterSecret; - - if (!secret) { - throw new Error( - `Could not generate token for cluster ${chalk.bold( - this.getDeployEndpoint(), - )}. Did you provide the env var PRISMA_MANAGEMENT_API_SECRET?`, - ); - } - - try { - const algorithm = process.env['PRISMA_MANAGEMENT_API_SECRET'] ? 'HS256' : 'RS256'; - this.cachedToken = await new SignJWT({ grants }) - .setProtectedHeader({ alg: algorithm, typ: 'JWT' }) - .setExpirationTime('5y') - .setIssuedAt() - .sign(algorithm === 'HS256' ? Buffer.from(secret) : createPrivateKey(secret)); - } catch (e: any) { - throw new Error( - `Could not generate token for cluster ${chalk.bold(this.getDeployEndpoint())}. -Original error: ${e.message}`, - ); - } - } - - return this.cachedToken!; - } - - get cloudClient() { - return new GraphQLClient(cloudApiEndpoint, { - headers: { - Authorization: `Bearer ${this.clusterSecret}`, - }, - agent: getProxyAgent(cloudApiEndpoint), - } as any); - } - - async generateClusterToken( - serviceName: string, - workspaceSlug: string = this.workspaceSlug || '*', - stageName?: string, - ): Promise { - const query = /* GraphQL */ ` - mutation ($input: GenerateClusterTokenRequest!) { - generateClusterToken(input: $input) { - clusterToken - } - } - `; - - const { - generateClusterToken: { clusterToken }, - } = await this.cloudClient.request<{ - generateClusterToken: { - clusterToken: string; - }; - }>(query, { - input: { - workspaceSlug, - clusterName: this.name, - serviceName, - stageName, - }, - }); - - return clusterToken; - } - - async addServiceToCloudDBIfMissing( - serviceName: string, - workspaceSlug: string = this.workspaceSlug!, - stageName?: string, - ): Promise { - const query = /* GraphQL */ ` - mutation ($input: GenerateClusterTokenRequest!) { - addServiceToCloudDBIfMissing(input: $input) - } - `; - - const serviceCreated = await this.cloudClient.request<{ - addServiceToCloudDBIfMissing: boolean; - }>(query, { - input: { - workspaceSlug, - clusterName: this.name, - serviceName, - stageName, - }, - }); - - return serviceCreated.addServiceToCloudDBIfMissing; - } - - getApiEndpoint(service: string, stage: string, workspaceSlug?: string | null) { - if (!this.shared && service === 'default' && stage === 'default') { - return this.baseUrl; - } - if (!this.shared && stage === 'default') { - return `${this.baseUrl}/${service}`; - } - if (this.isPrivate || this.local) { - return `${this.baseUrl}/${service}/${stage}`; - } - const workspaceString = workspaceSlug ? `${workspaceSlug}/` : ''; - return `${this.baseUrl}/${workspaceString}${service}/${stage}`; - } - - getWSEndpoint(service: string, stage: string, workspaceSlug?: string | null) { - return this.getApiEndpoint(service, stage, workspaceSlug).replace(/^http/, 'ws'); - } - - getImportEndpoint(service: string, stage: string, workspaceSlug?: string | null) { - return this.getApiEndpoint(service, stage, workspaceSlug) + `/import`; - } - - getExportEndpoint(service: string, stage: string, workspaceSlug?: string | null) { - return this.getApiEndpoint(service, stage, workspaceSlug) + `/export`; - } - - getDeployEndpoint() { - return `${this.baseUrl}/${this.hasOldDeployEndpoint ? 'cluster' : 'management'}`; - } - - async isOnline(): Promise { - const version = await this.getVersion(); - return typeof version === 'string'; - } - - async getVersion(): Promise { - // first try new api - try { - const result = await this.request(`{ - serverInfo { - version - } - }`); - - const res = await result.json(); - const { data, errors } = res; - if (errors && errors[0].code === 3016 && errors[0].message.includes('management@default')) { - this.hasOldDeployEndpoint = true; - return await this.getVersion(); - } - if (data && data.serverInfo) { - return data.serverInfo.version; - } - } catch (e: any) { - debug(e); - } - - // if that doesn't work, try the old one - try { - const result = await this.request(`{ - serverInfo { - version - } - }`); - - const res = await result.json(); - const { data } = res; - return data.serverInfo.version; - } catch (e: any) { - debug(e); - } - - return null; - } - - request(query: string, variables?: any) { - return fetch(this.getDeployEndpoint(), { - method: 'post', - headers: { - 'Content-Type': 'application/json', - } as any, - body: JSON.stringify({ - query, - variables, - }), - } as any); - } - - async needsAuth(): Promise { - try { - const result = await this.request(`{ - listProjects { - name - } - }`); - const data = await result.json(); - if (data.errors && data.errors.length > 0) { - return true; - } - return false; - } catch (e: any) { - debug('Assuming that the server needs authentication'); - debug(e.toString()); - return true; - } - } - - toJSON() { - return { - name: this.name, - baseUrl: this.baseUrl, - local: this.local, - clusterSecret: this.clusterSecret, - shared: this.shared, - isPrivate: this.isPrivate, - workspaceSlug: this.workspaceSlug, - }; - } -} diff --git a/packages/loaders/prisma/src/prisma-yml/Environment.test.ts b/packages/loaders/prisma/src/prisma-yml/Environment.test.ts deleted file mode 100644 index 2b0b5394622..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/Environment.test.ts +++ /dev/null @@ -1,60 +0,0 @@ -import * as fs from 'fs'; -import { Cluster } from './Cluster.js'; -import { Environment } from './Environment.js'; -import { Output } from './Output.js'; -import { getTmpDir } from './test/getTmpDir.js'; - -export function makeEnv(_?: string) { - const tmpDir = getTmpDir(); - return new Environment(tmpDir); -} - -const out = new Output(); - -describe('Environment', () => { - test('non-existent global prisma rc', async () => { - const env = makeEnv(); - await env.load(); - expect(env.clusters).toMatchSnapshot(); - }); - test('persists .prisma correctly', async () => { - const env = makeEnv(); - await env.load(); - const cluster = new Cluster(out, 'cluster', `http://localhost:60000`, ''); - env.addCluster(cluster); - env.saveGlobalRC(); - expect(fs.readFileSync(env.rcPath, 'utf-8')).toMatchSnapshot(); - expect(env.clusters).toMatchSnapshot(); - }); - test('empty global prisma rc', async () => { - const env = makeEnv(''); - await env.load(); - expect(env.clusters).toMatchSnapshot(); - }); - test('sets the platform token correctly', async () => { - const env = makeEnv(`platformToken: asdf`); - await env.load(); - expect(env.clusters).toMatchSnapshot(); - }); - test('interpolates env vars', async () => { - process.env['SPECIAL_TEST_ENV_VAR'] = 'this-is-so-special'; - const env = makeEnv(`platformToken: \${env:SPECIAL_TEST_ENV_VAR}`); - await env.load(); - expect(env.clusters).toMatchSnapshot(); - }); - test('loads multiple cluster definitions correctly + gives cluster by name', async () => { - const rc = `clusters: - local: - host: 'http://localhost:60000' - remote: - host: 'https://remote.graph.cool' - clusterSecret: 'here-is-a-token' - `; - const env = makeEnv(rc); - await env.load(); - expect(env.clusters).toMatchSnapshot(); - - const cluster = env.clusterByName('remote'); - expect(cluster).toMatchSnapshot(); - }); -}); diff --git a/packages/loaders/prisma/src/prisma-yml/Environment.ts b/packages/loaders/prisma/src/prisma-yml/Environment.ts deleted file mode 100644 index 198d0ddfd34..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/Environment.ts +++ /dev/null @@ -1,296 +0,0 @@ -import * as fs from 'fs'; -import * as path from 'path'; -// eslint-disable-next-line -// @ts-ignore -import debugPkg from 'debug'; -import { decodeJwt } from 'jose'; -import * as yaml from 'js-yaml'; -import { fetch } from '@whatwg-node/fetch'; -import { Cluster } from './Cluster.js'; -import { clusterEndpointMap } from './constants.js'; -import { ClusterNotFound } from './errors/ClusterNotFound.js'; -import { ClusterNotSet } from './errors/ClusterNotSet.js'; -import { RC } from './index.js'; -import { IOutput, Output } from './Output.js'; -import { Args } from './types/common.js'; -import { Variables } from './Variables.js'; - -const debug = debugPkg('Environment'); - -export class Environment { - sharedClusters: string[] = ['prisma-eu1', 'prisma-us1']; - clusterEndpointMap = clusterEndpointMap; - args: Args | undefined; - activeCluster: Cluster | undefined; - globalRC: RC = {}; - clusters: Cluster[] | undefined; - out: IOutput; - home: string; - rcPath: string; - clustersFetched = false; - version?: string; - constructor(home: string, out: IOutput = new Output(), version?: string) { - this.out = out; - this.home = home; - this.version = version; - - this.rcPath = path.join(this.home, '.prisma/config.yml'); - fs.mkdirSync(path.dirname(this.rcPath), { recursive: true }); - } - - private _getClusters() { - const clusters = this.clusters; - if (clusters === undefined) { - throw new Error(`Cannot get clusters. Did you forget to call "Environment.load()"?`); - } - return clusters; - } - - async load() { - await this.loadGlobalRC(); - } - - get cloudSessionKey(): string | undefined { - return process.env['PRISMA_CLOUD_SESSION_KEY'] || this.globalRC.cloudSessionKey; - } - - async renewToken() { - if (this.cloudSessionKey) { - const data = decodeJwt(this.cloudSessionKey); - if (!data.exp) { - return; - } - const timeLeft = data.exp * 1000 - Date.now(); - if (timeLeft < 1000 * 60 * 60 * 24 && timeLeft > 0) { - try { - const res = await this.requestCloudApi(` - mutation { - renewToken - } - `); - if (res.renewToken) { - this.globalRC.cloudSessionKey = res.renewToken; - this.saveGlobalRC(); - } - } catch (e: any) { - debug(e); - } - } - } - } - - async fetchClusters() { - if (!this.clustersFetched && this.cloudSessionKey) { - const renewPromise = this.renewToken(); - try { - const res = (await Promise.race([ - this.requestCloudApi(` - query prismaCliGetClusters { - me { - memberships { - workspace { - id - slug - clusters { - id - name - connectInfo { - endpoint - } - customConnectionInfo { - endpoint - } - } - } - } - } - } - `), - // eslint-disable-next-line - new Promise((_, r) => setTimeout(() => r(), 6000)), - ])) as any; - if (!res) { - return; - } - if (res.me && res.me.memberships && Array.isArray(res.me.memberships)) { - // clean up all prisma-eu1 and prisma-us1 clusters if they already exist - this.clusters = this._getClusters().filter( - c => c.name !== 'prisma-eu1' && c.name !== 'prisma-us1', - ); - - for (const m of res.me.memberships) { - for (const cluster of m.workspace.clusters) { - const endpoint = cluster.connectInfo - ? cluster.connectInfo.endpoint - : cluster.customConnectionInfo - ? cluster.customConnectionInfo.endpoint - : this.clusterEndpointMap[cluster.name]; - this.addCluster( - new Cluster( - this.out, - cluster.name, - endpoint, - this.globalRC.cloudSessionKey, - false, - ['prisma-eu1', 'prisma-us1'].includes(cluster.name), - !['prisma-eu1', 'prisma-us1'].includes(cluster.name), - m.workspace.slug, - ), - ); - } - } - } - } catch (e: any) { - debug(e); - } - await renewPromise; - } - } - - clusterByName(name: string, throws = false): Cluster | undefined { - if (!this.clusters) { - return; - } - const cluster = this.clusters.find(c => c.name === name); - if (!throws) { - return cluster; - } - - if (!cluster) { - if (!name) { - throw new ClusterNotSet(); - } - throw new ClusterNotFound(name); - } - - return cluster; - } - - setToken(token: string | undefined) { - this.globalRC.cloudSessionKey = token; - } - - addCluster(cluster: Cluster) { - const clusters = this._getClusters(); - const existingClusterIndex = clusters.findIndex(c => { - if (cluster.workspaceSlug) { - return c.workspaceSlug === cluster.workspaceSlug && c.name === cluster.name; - } else { - return c.name === cluster.name; - } - }); - if (existingClusterIndex > -1) { - clusters.splice(existingClusterIndex, 1); - } - clusters.push(cluster); - } - - removeCluster(name: string) { - this.clusters = this._getClusters().filter(c => c.name !== name); - } - - saveGlobalRC() { - const rc = { - cloudSessionKey: this.globalRC.cloudSessionKey - ? this.globalRC.cloudSessionKey.trim() - : undefined, - clusters: this.getLocalClusterConfig(), - }; - // parse & stringify to rm undefined for yaml parser - const rcString = yaml.dump(JSON.parse(JSON.stringify(rc))); - fs.writeFileSync(this.rcPath, rcString); - } - - setActiveCluster(cluster: Cluster) { - this.activeCluster = cluster; - } - - async loadGlobalRC(): Promise { - if (this.rcPath) { - try { - fs.accessSync(this.rcPath); - const globalFile = fs.readFileSync(this.rcPath, 'utf-8'); - await this.parseGlobalRC(globalFile); - } catch { - await this.parseGlobalRC(); - } - } else { - await this.parseGlobalRC(); - } - } - - async parseGlobalRC(globalFile?: string): Promise { - if (globalFile) { - this.globalRC = await this.loadYaml(globalFile, this.rcPath); - } - this.clusters = this.initClusters(this.globalRC); - } - - private async loadYaml(file: string | null, filePath: string | null = null): Promise { - if (file) { - let content; - try { - content = yaml.load(file); - } catch (e: any) { - throw new Error(`Yaml parsing error in ${filePath}: ${e.message}`); - } - const variables = new Variables(filePath || 'no filepath provided', this.args, this.out); - content = await variables.populateJson(content); - - return content; - } else { - return {}; - } - } - - private initClusters(rc: RC): Cluster[] { - const sharedClusters = this.getSharedClusters(rc); - return [...sharedClusters]; - } - - private getSharedClusters(rc: RC): Cluster[] { - return this.sharedClusters.map(clusterName => { - return new Cluster( - this.out, - clusterName, - this.clusterEndpointMap[clusterName], - rc && rc.cloudSessionKey, - false, - true, - ); - }); - } - - private getLocalClusterConfig() { - return this._getClusters() - .filter(c => !c.shared && c.clusterSecret !== this.cloudSessionKey && !c.isPrivate) - .reduce((acc, cluster) => { - return { - ...acc, - [cluster.name]: { - host: cluster.baseUrl, - clusterSecret: cluster.clusterSecret, - }, - }; - }, {}); - } - - private async requestCloudApi(query: string) { - const res = await fetch('https://api.cloud.prisma.sh', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${this.cloudSessionKey}`, - 'X-Cli-Version': this.version, - } as any, - body: JSON.stringify({ - query, - }), - } as any); - const json = await res.json(); - return json.data; - } -} - -export const isLocal = (hostname: any) => - hostname.includes('localhost') || hostname.includes('127.0.0.1'); diff --git a/packages/loaders/prisma/src/prisma-yml/Output.ts b/packages/loaders/prisma/src/prisma-yml/Output.ts deleted file mode 100644 index 0ae96666a68..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/Output.ts +++ /dev/null @@ -1,39 +0,0 @@ -export class Output { - log(...args: any) { - console.log(args); - } - - warn(...args: any) { - console.warn(args); - } - - getErrorPrefix(fileName: string, type: 'error' | 'warning' = 'error') { - return `[${type.toUpperCase()}] in ${fileName}: `; - } -} - -export class TestOutput { - output: string[]; - - constructor() { - this.output = []; - } - - log(...args: any) { - this.output = this.output.concat(args); - } - - warn(...args: any) { - this.output = this.output.concat(args); - } - - getErrorPrefix(fileName: string, type: 'error' | 'warning' = 'error') { - return `[${type.toUpperCase()}] in ${fileName}: `; - } -} - -export interface IOutput { - warn: (...args: any) => void; - log: (...args: any) => void; - getErrorPrefix: (fileName: string, type?: 'error' | 'warning') => string; -} diff --git a/packages/loaders/prisma/src/prisma-yml/PrismaDefinition.test.ts b/packages/loaders/prisma/src/prisma-yml/PrismaDefinition.test.ts deleted file mode 100644 index 46a94538f8d..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/PrismaDefinition.test.ts +++ /dev/null @@ -1,317 +0,0 @@ -import * as fs from 'fs'; -import * as path from 'path'; -import { makeEnv } from './Environment.test.js'; -import { PrismaDefinitionClass } from './PrismaDefinition.js'; -import { getTmpDir } from './test/getTmpDir.js'; -import { Args } from './types/common.js'; - -const defaultGlobalRC = `prisma-1.0: - clusters: - local: - host: 'http://localhost:4466' - remote: - host: 'https://remote.graph.cool' - clusterSecret: 'here-is-a-token' -`; - -function makeDefinition( - yml: string, - datamodel: string, - _: Args = {}, - __: string = defaultGlobalRC, - envVars: any = process.env, -) { - const definitionDir = getTmpDir(); - const definitionPath = path.join(definitionDir, 'prisma.yml'); - const modelPath = path.join(definitionDir, 'datamodel.prisma'); - const env = makeEnv(defaultGlobalRC); - - const definition = new PrismaDefinitionClass(env, definitionPath, envVars); - - fs.writeFileSync(modelPath, datamodel); - fs.writeFileSync(definitionPath, yml); - - return { env, definition }; -} - -async function loadDefinition( - yml: string, - datamodel: string, - args: Args = {}, - envPath?: string, - globalRC: string = defaultGlobalRC, -) { - const { env, definition } = makeDefinition(yml, datamodel, args, globalRC); - await env.load(); - await definition.load(args, envPath); - return { env, definition }; -} - -describe('prisma definition', () => { - test('load basic yml, provide cluster', async () => { - const yml = `\ -service: jj -stage: dev -cluster: local - -datamodel: -- datamodel.prisma - -secret: some-secret - -schema: schemas/database.graphql - `; - const datamodel = ` -type User @model { - id: ID! @isUnique - name: String! - lol: Int - what: String -} -`; - try { - await loadDefinition(yml, datamodel); - } catch (e: any) { - expect(e).toMatchSnapshot(); - } - }); - test('load yml with secret and env var', async () => { - const secret = 'this-is-a-long-secret'; - process.env['MY_TEST_SECRET'] = secret; - const yml = `\ -service: jj -stage: dev -cluster: local - -datamodel: -- datamodel.prisma - -secret: \${env:MY_TEST_SECRET} - -schema: schemas/database.graphql - `; - const datamodel = ` -type User @model { - id: ID! @isUnique - name: String! - lol: Int - what: String -} -`; - - try { - await loadDefinition(yml, datamodel); - } catch (e: any) { - expect(e).toMatchSnapshot(); - } - }); - test('load yml with secret and env var in .env', async () => { - const yml = `\ -service: jj -stage: dev -cluster: local - -datamodel: -- datamodel.prisma - -secret: \${env:MY_DOT_ENV_SECRET} - -schema: schemas/database.graphql - `; - const datamodel = ` -type User @model { - id: ID! @isUnique - name: String! - lol: Int - what: String -} -`; - const { definition, env } = makeDefinition(yml, datamodel, {}); - const envPath = path.join(definition.definitionDir!, '.env'); - - fs.mkdirSync(path.dirname(envPath), { recursive: true }); - fs.writeFileSync(envPath, `MY_DOT_ENV_SECRET=this-is-very-secret,and-comma,seperated`); - - await env.load(); - - try { - await loadDefinition(yml, datamodel); - } catch (e: any) { - expect(e).toMatchSnapshot(); - } - }); - test('load yml with injected env var', async () => { - const yml = `\ -service: jj -stage: dev -cluster: local - -datamodel: -- datamodel.prisma - -secret: \${env:MY_INJECTED_ENV_SECRET} - -schema: schemas/database.graphql - `; - const datamodel = ` -type User @model { - id: ID! @isUnique - name: String! - lol: Int - what: String -} -`; - const envVars = { - MY_INJECTED_ENV_SECRET: 'some-secret', - }; - - const { env } = makeDefinition(yml, datamodel, {}, defaultGlobalRC, envVars); - - await env.load(); - try { - await loadDefinition(yml, datamodel); - } catch (e: any) { - expect(e).toMatchSnapshot(); - } - }); - /** - * This test ensures, that GRAPHCOOL_SECRET can't be injected anymore - */ - test(`don't load yml with secret and env var in args`, async () => { - const yml = `\ -service: jj -stage: dev -cluster: local - -datamodel: -- datamodel.prisma - -schema: schemas/database.graphql - `; - const datamodel = ` -type User @model { - id: ID! @isUnique - name: String! - lol: Int - what: String -} -`; - - const definitionDir = getTmpDir(); - const definitionPath = path.join(definitionDir, 'prisma.yml'); - const modelPath = path.join(definitionDir, 'datamodel.prisma'); - const env = makeEnv(defaultGlobalRC); - - const definition = new PrismaDefinitionClass(env, definitionPath, { - GRAPHCOOL_SECRET: 'this-is-secret', - }); - - fs.writeFileSync(modelPath, datamodel); - fs.writeFileSync(definitionPath, yml); - - let error; - try { - await env.load(); - await definition.load({}); - } catch (e: any) { - error = e; - } - - expect(error).toMatchSnapshot(); - }); - test('load yml with disableAuth: true', async () => { - const yml = `\ -service: jj -stage: dev -cluster: local - -datamodel: -- datamodel.prisma - -disableAuth: true - -schema: schemas/database.graphql - `; - const datamodel = ` -type User @model { - id: ID! @isUnique - name: String! - lol: Int - what: String -} -`; - const { definition, env } = makeDefinition(yml, datamodel); - const envPath = path.join(definition.definitionDir!, '.env'); - - fs.mkdirSync(path.dirname(envPath), { recursive: true }); - fs.writeFileSync(envPath, `MY_DOT_ENV_SECRET=this-is-very-secret,and-comma,seperated`); - - await env.load(); - try { - await loadDefinition(yml, datamodel); - } catch (e: any) { - expect(e).toMatchSnapshot(); - } - }); - test('throw when no secret or disable auth provided', async () => { - const yml = `\ -service: jj -stage: dev -cluster: local - -datamodel: -- datamodel.prisma - -schema: schemas/database.graphql - `; - const datamodel = ` -type User @model { - id: ID! @isUnique - name: String! - lol: Int - what: String -} -`; - - let error; - try { - await loadDefinition(yml, datamodel); - } catch (e: any) { - error = e; - } - - expect(error).toMatchSnapshot(); - }); - test('throws when stages key apparent', async () => { - const yml = `\ -service: jj -stage: dev -cluster: local - -datamodel: -- datamodel.prisma - -schema: schemas/database.graphql - -stages: - dev: local - `; - const datamodel = ` -type User @model { - id: ID! @isUnique - name: String! - lol: Int - what: String -} -`; - - let error; - try { - await loadDefinition(yml, datamodel); - } catch (e: any) { - error = e; - } - - expect(error).toMatchSnapshot(); - }); -}); diff --git a/packages/loaders/prisma/src/prisma-yml/PrismaDefinition.ts b/packages/loaders/prisma/src/prisma-yml/PrismaDefinition.ts deleted file mode 100644 index aba5bd458a2..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/PrismaDefinition.ts +++ /dev/null @@ -1,405 +0,0 @@ -import { Buffer } from 'buffer'; -import * as fs from 'fs'; -import * as path from 'path'; -import chalk from 'chalk'; -import * as dotenv from 'dotenv'; -import { SignJWT } from 'jose'; -import { Cluster } from './Cluster.js'; -import { Environment } from './Environment.js'; -import { IOutput } from './Output.js'; -import { PrismaDefinition } from './prisma-json-schema.js'; -// eslint-disable-next-line -// @ts-ignore -import { Args } from './types/common.js'; -import { FunctionInput, Header } from './types/rc.js'; -import { parseEndpoint, ParseEndpointResult } from './utils/parseEndpoint.js'; -import { replaceYamlValue } from './utils/yamlComment.js'; -import { readDefinition } from './yaml.js'; - -export interface EnvVars { - [key: string]: string | undefined; -} - -export type HookType = 'post-deploy'; - -export class PrismaDefinitionClass { - definition?: PrismaDefinition; - rawJson?: any; - typesString?: string; - secrets: string[] | null; - definitionPath?: string | null; - definitionDir: string | undefined; - env: Environment; - out?: IOutput; - envVars: any; - rawEndpoint?: string; - private definitionString: string | undefined; - constructor( - env: Environment, - definitionPath?: string | null, - envVars: EnvVars = process.env, - out?: IOutput, - ) { - this.secrets = null; - this.definitionPath = definitionPath; - if (definitionPath) { - this.definitionDir = path.dirname(definitionPath); - } - this.env = env; - this.out = out; - this.envVars = envVars; - } - - async load(args: Args, envPath?: string, graceful?: boolean) { - if (args['project']) { - const flagPath = path.resolve(String(args['project'])); - - try { - fs.accessSync(flagPath); - } catch { - throw new Error( - `Prisma definition path specified by --project '${flagPath}' does not exist`, - ); - } - - this.definitionPath = flagPath; - this.definitionDir = path.dirname(flagPath); - await this.loadDefinition(args, graceful); - - this.validate(); - return; - } - - if (envPath) { - try { - fs.accessSync(envPath); - } catch { - envPath = path.join(process.cwd(), envPath); - } - - try { - fs.accessSync(envPath); - } catch { - throw new Error(`--env-file path '${envPath}' does not exist`); - } - } - dotenv.config({ path: envPath }); - if (this.definitionPath) { - await this.loadDefinition(args, graceful); - - this.validate(); - } else { - throw new Error(`Couldnโ€™t find \`prisma.yml\` file. Are you in the right directory?`); - } - } - - private async loadDefinition(args: any, graceful?: boolean) { - const { definition, rawJson } = await readDefinition( - this.definitionPath!, - args, - this.out, - this.envVars, - graceful, - ); - this.rawEndpoint = rawJson.endpoint; - this.definition = definition; - this.rawJson = rawJson; - this.definitionString = fs.readFileSync(this.definitionPath!, 'utf-8'); - this.typesString = this.getTypesString(this.definition); - const secrets = this.definition.secret; - this.secrets = secrets ? secrets.replace(/\s/g, '').split(',') : null; - } - - get endpoint(): string | undefined { - return ( - (this.definition && this.definition.endpoint) || process.env['PRISMA_MANAGEMENT_API_ENDPOINT'] - ); - } - - get clusterBaseUrl(): string | undefined { - if (!this.definition || !this.endpoint) { - return undefined; - } - const { clusterBaseUrl } = parseEndpoint(this.endpoint); - return clusterBaseUrl; - } - - get service(): string | undefined { - if (!this.definition) { - return undefined; - } - if (!this.endpoint) { - return undefined; - } - const { service } = parseEndpoint(this.endpoint); - return service; - } - - get stage(): string | undefined { - if (!this.definition) { - return undefined; - } - if (!this.endpoint) { - return undefined; - } - const { stage } = parseEndpoint(this.endpoint); - return stage; - } - - get cluster(): string | undefined { - if (!this.definition) { - return undefined; - } - if (!this.endpoint) { - return undefined; - } - const { clusterName } = parseEndpoint(this.endpoint); - return clusterName; - } - - validate() { - // shared clusters need a workspace - const clusterName = this.getClusterName(); - const cluster = this.env.clusterByName(clusterName!)!; - if ( - this.definition && - clusterName && - cluster && - cluster.shared && - !cluster.isPrivate && - !this.getWorkspace() && - clusterName !== 'shared-public-demo' - ) { - throw new Error( - `Your \`cluster\` property in the prisma.yml is missing the workspace slug. -Make sure that your \`cluster\` property looks like this: ${chalk.bold( - '/', - )}. You can also remove the cluster property from the prisma.yml -and execute ${chalk.bold.green('prisma deploy')} again, to get that value auto-filled.`, - ); - } - if ( - this.definition && - this.definition.endpoint && - clusterName && - cluster && - cluster.shared && - !cluster.isPrivate && - !this.getWorkspace() && - clusterName !== 'shared-public-demo' - ) { - throw new Error( - `The provided endpoint ${this.definition.endpoint} points to a demo cluster, but is missing the workspace slug. A valid demo endpoint looks like this: https://eu1.prisma.sh/myworkspace/service-name/stage-name`, - ); - } - if ( - this.definition && - this.definition.endpoint && - !this.definition.endpoint.startsWith('http') - ) { - throw new Error( - `${chalk.bold( - this.definition.endpoint, - )} is not a valid endpoint. It must start with http:// or https://`, - ); - } - } - - async getToken(serviceName: string, stageName: string): Promise { - if (this.secrets) { - const data = { - data: { - service: `${serviceName}@${stageName}`, - roles: ['admin'], - }, - }; - return new SignJWT(data) - .setProtectedHeader({ alg: 'HS256', typ: 'JWT' }) - .setIssuedAt() - .setExpirationTime('7d') - .sign(Buffer.from(this.secrets[0])); - } - - return undefined; - } - - async getCluster(_ = false): Promise { - if (this.definition && this.endpoint) { - const clusterData = parseEndpoint(this.endpoint); - const cluster = await this.getClusterByEndpoint(clusterData); - this.env.removeCluster(clusterData.clusterName); - this.env.addCluster(cluster); - return cluster; - } - - return undefined; - } - - findClusterByBaseUrl(baseUrl: string) { - return this.env.clusters?.find(c => c.baseUrl.toLowerCase() === baseUrl); - } - - async getClusterByEndpoint(data: ParseEndpointResult) { - if (data.clusterBaseUrl && !process.env['PRISMA_MANAGEMENT_API_SECRET']) { - const cluster = this.findClusterByBaseUrl(data.clusterBaseUrl); - if (cluster) { - return cluster; - } - } - - const { clusterName, clusterBaseUrl, isPrivate, local, shared, workspaceSlug } = data; - - // if the cluster could potentially be served by the cloud api, fetch the available - // clusters from the cloud api - if (!local) { - await this.env.fetchClusters(); - const cluster = this.findClusterByBaseUrl(data.clusterBaseUrl); - if (cluster) { - return cluster; - } - } - - return new Cluster( - this.out!, - clusterName, - clusterBaseUrl, - shared || isPrivate ? this.env.cloudSessionKey : undefined, - local, - shared, - isPrivate, - workspaceSlug!, - ); - } - - getTypesString(definition: PrismaDefinition) { - const typesPaths = definition.datamodel - ? Array.isArray(definition.datamodel) - ? definition.datamodel - : [definition.datamodel] - : []; - - let allTypes = ''; - for (const unresolvedTypesPath of typesPaths) { - const typesPath = path.join(this.definitionDir!, unresolvedTypesPath!); - try { - fs.accessSync(typesPath); - const types = fs.readFileSync(typesPath, 'utf-8'); - allTypes += types + '\n'; - } catch { - throw new Error(`The types definition file "${typesPath}" could not be found.`); - } - } - - return allTypes; - } - - getClusterName(): string | null { - return this.cluster || null; - } - - getWorkspace(): string | null { - if (this.definition && this.endpoint) { - const { workspaceSlug } = parseEndpoint(this.endpoint); - if (workspaceSlug) { - return workspaceSlug; - } - } - - return null; - } - - async getDeployName() { - const cluster = await this.getCluster(); - return concatName(cluster!, this.service!, this.getWorkspace()); - } - - getSubscriptions(): FunctionInput[] { - if (this.definition && this.definition.subscriptions) { - return Object.entries(this.definition!.subscriptions!).map(([name, subscription]) => { - const url = - typeof subscription.webhook === 'string' - ? subscription.webhook - : subscription.webhook.url; - const headers = - typeof subscription.webhook === 'string' - ? [] - : transformHeaders(subscription.webhook.headers); - - let query = subscription.query; - if (subscription.query.endsWith('.graphql')) { - const queryPath = path.join(this.definitionDir!, subscription.query); - try { - fs.accessSync(queryPath); - } catch { - throw new Error( - `Subscription query ${queryPath} provided in subscription "${name}" in prisma.yml does not exist.`, - ); - } - query = fs.readFileSync(queryPath, 'utf-8'); - } - - return { - name, - query, - headers, - url, - }; - }); - } - return []; - } - - replaceEndpoint(newEndpoint: any) { - this.definitionString = replaceYamlValue(this.definitionString, 'endpoint', newEndpoint); - fs.writeFileSync(this.definitionPath!, this.definitionString); - } - - addDatamodel(datamodel: any) { - this.definitionString += `\ndatamodel: ${datamodel}`; - fs.writeFileSync(this.definitionPath!, this.definitionString!); - this.definition!.datamodel = datamodel; - } - - async getEndpoint(serviceInput?: string, stageInput?: string) { - const cluster = await this.getCluster(); - const service = serviceInput || this.service; - const stage = stageInput || this.stage; - const workspace = this.getWorkspace(); - - if (service && stage && cluster) { - return cluster!.getApiEndpoint(service, stage, workspace); - } - - return null; - } - - getHooks(hookType: HookType): string[] { - if (this.definition && this.definition.hooks && this.definition.hooks[hookType]) { - const hooks = this.definition.hooks[hookType]; - if (typeof hooks !== 'string' && !Array.isArray(hooks)) { - throw new Error( - `Hook ${hookType} provided in prisma.yml must be string or an array of strings.`, - ); - } - return typeof hooks === 'string' ? [hooks] : hooks; - } - - return []; - } -} - -export function concatName(cluster: Cluster, name: string, workspace: string | null) { - if (cluster.shared) { - const workspaceString = workspace ? `${workspace}~` : ''; - return `${workspaceString}${name}`; - } - - return name; -} - -function transformHeaders(headers?: { [key: string]: string }): Header[] { - if (!headers) { - return []; - } - return Object.entries(headers).map(([name, value]) => ({ name, value })); -} diff --git a/packages/loaders/prisma/src/prisma-yml/Variables.ts b/packages/loaders/prisma/src/prisma-yml/Variables.ts deleted file mode 100644 index 6af83cf2d64..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/Variables.ts +++ /dev/null @@ -1,266 +0,0 @@ -import _ from 'lodash'; -import { IOutput, Output } from './Output.js'; -import { Args } from './types/common.js'; - -export class Variables { - json: any; - overwriteSyntax = /,/g; - envRefSyntax = /^env:/g; - selfRefSyntax = /^self:/g; - stringRefSyntax = /('.*')|(".*")/g; - optRefSyntax = /^opt:/g; - // eslint-disable-next-line - variableSyntax = new RegExp( - // eslint-disable-next-line - '\\${([ ~:a-zA-Z0-9._\'",\\-\\/\\(\\)]+?)}', - 'g', - ); - - fileName: string; - options: Args; - out: Output; - envVars: any; - - constructor(fileName: string, options: Args = {}, out: IOutput = new Output(), envVars?: any) { - this.out = out; - this.fileName = fileName; - this.options = options; - this.envVars = envVars || process.env; - } - - populateJson(json: any): Promise { - this.json = json; - return this.populateObject(this.json).then(() => { - return Promise.resolve(this.json); - }); - } - - public populateObject(objectToPopulate: any) { - const populateAll: any[] = []; - const deepMapValues = (object: any, callback: any, propertyPath?: string[]): any => { - const deepMapValuesIteratee = (value: any, key: any) => - deepMapValues(value, callback, propertyPath ? propertyPath.concat(key) : [key]); - if (_.isArray(object)) { - return _.map(object, deepMapValuesIteratee); - } else if (_.isObject(object) && !_.isDate(object) && !_.isFunction(object)) { - return _.extend({}, object, _.mapValues(object, deepMapValuesIteratee)); - } - return callback(object, propertyPath); - }; - - deepMapValues(objectToPopulate, (property: any, propertyPath: any) => { - if (typeof property === 'string') { - const populateSingleProperty = this.populateProperty(property, true).then( - (newProperty: any) => _.set(objectToPopulate, propertyPath, newProperty), - ); - populateAll.push(populateSingleProperty); - } - }); - - return Promise.all(populateAll).then(() => objectToPopulate); - } - - populateProperty(propertyParam: any, populateInPlace?: boolean): any { - let property = populateInPlace ? propertyParam : _.cloneDeep(propertyParam); - const allValuesToPopulate: any[] = []; - let warned = false; - - if (typeof property === 'string' && property.match(this.variableSyntax)) { - const matchedStrings = property.match(this.variableSyntax); - if (matchedStrings) { - for (const matchedString of matchedStrings) { - const variableString = matchedString - .replace(this.variableSyntax, (_, varName) => varName.trim()) - .replace(/\s/g, ''); - - let singleValueToPopulate: Promise | null = null; - if (variableString.match(this.overwriteSyntax)) { - singleValueToPopulate = this.overwrite(variableString); - } else { - singleValueToPopulate = this.getValueFromSource(variableString).then( - (valueToPopulate: any) => { - if (typeof valueToPopulate === 'object') { - return this.populateObject(valueToPopulate); - } - return valueToPopulate; - }, - ); - } - - singleValueToPopulate = singleValueToPopulate!.then(valueToPopulate => { - if (this.warnIfNotFound(variableString, valueToPopulate)) { - warned = true; - } - return this.populateVariable(property, matchedString, valueToPopulate).then( - (newProperty: any) => { - property = newProperty; - return Promise.resolve(property); - }, - ); - }); - - allValuesToPopulate.push(singleValueToPopulate); - } - } - return Promise.all(allValuesToPopulate).then(() => { - if ((property as any) !== (this.json as any) && !warned) { - return this.populateProperty(property); - } - return Promise.resolve(property); - }); - } - return Promise.resolve(property); - } - - populateVariable(propertyParam: any, matchedString: any, valueToPopulate: any) { - let property = propertyParam; - if (typeof valueToPopulate === 'string') { - // TODO: Replace `split` and `join` with `replaceAll` once Node v14 is no longer supported - property = (property as string).split(matchedString).join(valueToPopulate); - } else { - if (property !== matchedString) { - if (typeof valueToPopulate === 'number') { - // TODO: Replace `split` and `join` with `replaceAll` once Node v14 is no longer supported - property = (property as string).split(matchedString).join(String(valueToPopulate)); - } else { - const errorMessage = [ - 'Trying to populate non string value into', - ` a string for variable ${matchedString}.`, - ' Please make sure the value of the property is a string.', - ].join(''); - this.out.warn(this.out.getErrorPrefix(this.fileName, 'warning') + errorMessage); - } - return Promise.resolve(property); - } - property = valueToPopulate; - } - return Promise.resolve(property); - } - - overwrite(variableStringsString: any) { - let finalValue: any; - const variableStringsArray = variableStringsString.split(','); - const allValuesFromSource = variableStringsArray.map((variableString: any) => - this.getValueFromSource(variableString), - ); - return Promise.all(allValuesFromSource).then((valuesFromSources: any) => { - valuesFromSources.find((valueFromSource: any) => { - finalValue = valueFromSource; - return ( - finalValue !== null && - typeof finalValue !== 'undefined' && - !(typeof finalValue === 'object' && _.isEmpty(finalValue)) - ); - }); - return Promise.resolve(finalValue); - }); - } - - getValueFromSource(variableString: any) { - if (variableString.match(this.envRefSyntax)) { - return this.getValueFromEnv(variableString); - } else if (variableString.match(this.optRefSyntax)) { - return this.getValueFromOptions(variableString); - } else if (variableString.match(this.selfRefSyntax)) { - return this.getValueFromSelf(variableString); - } else if (variableString.match(this.stringRefSyntax)) { - return this.getValueFromString(variableString); - } - const errorMessage = [ - `Invalid variable reference syntax for variable ${variableString}.`, - ' You can only reference env vars, options, & files.', - ' You can check our docs for more info.', - ].join(''); - this.out.warn(this.out.getErrorPrefix(this.fileName, 'warning') + errorMessage); - return Promise.resolve(); - } - - getValueFromEnv(variableString: any) { - const requestedEnvVar = variableString.split(':')[1]; - const valueToPopulate = - requestedEnvVar !== '' || '' in this.envVars ? this.envVars[requestedEnvVar] : this.envVars; - return Promise.resolve(valueToPopulate); - } - - getValueFromString(variableString: any) { - const valueToPopulate = variableString.replace(/^['"]|['"]$/g, ''); - return Promise.resolve(valueToPopulate); - } - - getValueFromOptions(variableString: any) { - const requestedOption = variableString.split(':')[1]; - const valueToPopulate = - requestedOption !== '' || '' in this.options ? this.options[requestedOption] : this.options; - return Promise.resolve(valueToPopulate); - } - - getValueFromSelf(variableString: any) { - const valueToPopulate = this.json; - const deepProperties = variableString.split(':')[1].split('.'); - return this.getDeepValue(deepProperties, valueToPopulate); - } - - getDeepValue(deepProperties: any, valueToPopulate: any) { - return promiseReduce( - deepProperties, - (computedValueToPopulateParam: any, subProperty: any) => { - let computedValueToPopulate = computedValueToPopulateParam; - if (typeof computedValueToPopulate === 'undefined') { - computedValueToPopulate = {}; - } else if (subProperty !== '' || '' in computedValueToPopulate) { - computedValueToPopulate = computedValueToPopulate[subProperty]; - } - if ( - typeof computedValueToPopulate === 'string' && - computedValueToPopulate.match(this.variableSyntax) - ) { - return this.populateProperty(computedValueToPopulate); - } - return Promise.resolve(computedValueToPopulate); - }, - valueToPopulate, - ); - } - - warnIfNotFound(variableString: any, valueToPopulate: any): boolean { - if ( - valueToPopulate === null || - typeof valueToPopulate === 'undefined' || - (typeof valueToPopulate === 'object' && _.isEmpty(valueToPopulate)) - ) { - let varType; - if (variableString.match(this.envRefSyntax)) { - varType = 'environment variable'; - } else if (variableString.match(this.optRefSyntax)) { - varType = 'option'; - } else if (variableString.match(this.selfRefSyntax)) { - varType = 'self reference'; - } - this.out.warn( - this.out.getErrorPrefix(this.fileName, 'warning') + - `A valid ${varType} to satisfy the declaration '${variableString}' could not be found.`, - ); - return true; - } - - return false; - } -} - -function promiseReduce( - values: readonly T[], - callback: (u: U, t: T) => Promise, - initialValue: Promise, -): Promise { - return values.reduce( - (previous, value) => - isPromise(previous) - ? previous.then(resolved => callback(resolved, value)) - : callback(previous, value), - initialValue, - ); -} - -function isPromise(value: T | Promise): value is Promise { - return typeof (value as any)?.then === 'function'; -} diff --git a/packages/loaders/prisma/src/prisma-yml/__snapshots__/Cluster.test.ts.snap b/packages/loaders/prisma/src/prisma-yml/__snapshots__/Cluster.test.ts.snap deleted file mode 100644 index d77bdeb52c2..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/__snapshots__/Cluster.test.ts.snap +++ /dev/null @@ -1,21 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`cluster endpoint generation local cluster 1`] = `"http://localhost:4466"`; - -exports[`cluster endpoint generation local cluster 2`] = `"http://localhost:4466/dev"`; - -exports[`cluster endpoint generation local cluster 3`] = `"http://localhost:4466/default/dev"`; - -exports[`cluster endpoint generation local cluster 4`] = `"http://localhost:4466/default/dev"`; - -exports[`cluster endpoint generation private cluster 1`] = `"https://test01_workspace.prisma.sh"`; - -exports[`cluster endpoint generation private cluster 2`] = `"https://test01_workspace.prisma.sh/dev"`; - -exports[`cluster endpoint generation private cluster 3`] = `"https://test01_workspace.prisma.sh/default/dev"`; - -exports[`cluster endpoint generation sandbox cluster 1`] = `"https://eu1.prisma.sh/workspace/default/default"`; - -exports[`cluster endpoint generation sandbox cluster 2`] = `"https://eu1.prisma.sh/workspace/dev/default"`; - -exports[`cluster endpoint generation sandbox cluster 3`] = `"https://eu1.prisma.sh/workspace/default/dev"`; diff --git a/packages/loaders/prisma/src/prisma-yml/__snapshots__/Environment.test.ts.snap b/packages/loaders/prisma/src/prisma-yml/__snapshots__/Environment.test.ts.snap deleted file mode 100644 index 350f4c7ce40..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/__snapshots__/Environment.test.ts.snap +++ /dev/null @@ -1,158 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Environment empty global prisma rc 1`] = ` -[ - { - "baseUrl": "https://eu1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-eu1", - "shared": true, - "workspaceSlug": undefined, - }, - { - "baseUrl": "https://us1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-us1", - "shared": true, - "workspaceSlug": undefined, - }, -] -`; - -exports[`Environment interpolates env vars 1`] = ` -[ - { - "baseUrl": "https://eu1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-eu1", - "shared": true, - "workspaceSlug": undefined, - }, - { - "baseUrl": "https://us1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-us1", - "shared": true, - "workspaceSlug": undefined, - }, -] -`; - -exports[`Environment loads multiple cluster definitions correctly + gives cluster by name 1`] = ` -[ - { - "baseUrl": "https://eu1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-eu1", - "shared": true, - "workspaceSlug": undefined, - }, - { - "baseUrl": "https://us1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-us1", - "shared": true, - "workspaceSlug": undefined, - }, -] -`; - -exports[`Environment loads multiple cluster definitions correctly + gives cluster by name 2`] = `undefined`; - -exports[`Environment non-existent global prisma rc 1`] = ` -[ - { - "baseUrl": "https://eu1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-eu1", - "shared": true, - "workspaceSlug": undefined, - }, - { - "baseUrl": "https://us1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-us1", - "shared": true, - "workspaceSlug": undefined, - }, -] -`; - -exports[`Environment persists .prisma correctly 1`] = ` -"clusters: - cluster: - host: http://localhost:60000 - clusterSecret: '' -" -`; - -exports[`Environment persists .prisma correctly 2`] = ` -[ - { - "baseUrl": "https://eu1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-eu1", - "shared": true, - "workspaceSlug": undefined, - }, - { - "baseUrl": "https://us1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-us1", - "shared": true, - "workspaceSlug": undefined, - }, - { - "baseUrl": "http://localhost:60000", - "clusterSecret": "", - "isPrivate": false, - "local": true, - "name": "cluster", - "shared": false, - "workspaceSlug": undefined, - }, -] -`; - -exports[`Environment sets the platform token correctly 1`] = ` -[ - { - "baseUrl": "https://eu1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-eu1", - "shared": true, - "workspaceSlug": undefined, - }, - { - "baseUrl": "https://us1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-us1", - "shared": true, - "workspaceSlug": undefined, - }, -] -`; diff --git a/packages/loaders/prisma/src/prisma-yml/__snapshots__/PrismaDefinition.test.ts.snap b/packages/loaders/prisma/src/prisma-yml/__snapshots__/PrismaDefinition.test.ts.snap deleted file mode 100644 index afc31156470..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/__snapshots__/PrismaDefinition.test.ts.snap +++ /dev/null @@ -1,164 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Environment empty global prisma rc 1`] = ` -[ - { - "baseUrl": "https://eu1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-eu1", - "shared": true, - "workspaceSlug": undefined, - }, - { - "baseUrl": "https://us1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-us1", - "shared": true, - "workspaceSlug": undefined, - }, -] -`; - -exports[`Environment interpolates env vars 1`] = ` -[ - { - "baseUrl": "https://eu1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-eu1", - "shared": true, - "workspaceSlug": undefined, - }, - { - "baseUrl": "https://us1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-us1", - "shared": true, - "workspaceSlug": undefined, - }, -] -`; - -exports[`Environment loads multiple cluster definitions correctly + gives cluster by name 1`] = ` -[ - { - "baseUrl": "https://eu1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-eu1", - "shared": true, - "workspaceSlug": undefined, - }, - { - "baseUrl": "https://us1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-us1", - "shared": true, - "workspaceSlug": undefined, - }, -] -`; - -exports[`Environment loads multiple cluster definitions correctly + gives cluster by name 2`] = `undefined`; - -exports[`Environment non-existent global prisma rc 1`] = ` -[ - { - "baseUrl": "https://eu1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-eu1", - "shared": true, - "workspaceSlug": undefined, - }, - { - "baseUrl": "https://us1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-us1", - "shared": true, - "workspaceSlug": undefined, - }, -] -`; - -exports[`Environment persists .prisma correctly 1`] = ` -"clusters: - cluster: - host: http://localhost:60000 - clusterSecret: '' -" -`; - -exports[`Environment persists .prisma correctly 2`] = ` -[ - { - "baseUrl": "https://eu1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-eu1", - "shared": true, - "workspaceSlug": undefined, - }, - { - "baseUrl": "https://us1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-us1", - "shared": true, - "workspaceSlug": undefined, - }, - { - "baseUrl": "http://localhost:60000", - "clusterSecret": "", - "isPrivate": false, - "local": true, - "name": "cluster", - "shared": false, - "workspaceSlug": undefined, - }, -] -`; - -exports[`Environment sets the platform token correctly 1`] = ` -[ - { - "baseUrl": "https://eu1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-eu1", - "shared": true, - "workspaceSlug": undefined, - }, - { - "baseUrl": "https://us1.prisma.sh", - "clusterSecret": undefined, - "isPrivate": false, - "local": false, - "name": "prisma-us1", - "shared": true, - "workspaceSlug": undefined, - }, -] -`; - -exports[`prisma definition don't load yml with secret and env var in args 1`] = `undefined`; - -exports[`prisma definition throw when no secret or disable auth provided 1`] = `undefined`; - -exports[`prisma definition throws when stages key apparent 1`] = `undefined`; diff --git a/packages/loaders/prisma/src/prisma-yml/constants.ts b/packages/loaders/prisma/src/prisma-yml/constants.ts deleted file mode 100644 index 93832914b50..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/constants.ts +++ /dev/null @@ -1,10 +0,0 @@ -import _ from 'lodash'; - -export const cloudApiEndpoint = process.env['CLOUD_API_ENDPOINT'] || 'https://api.cloud.prisma.sh'; - -export const clusterEndpointMap: { [key: string]: string } = { - 'prisma-eu1': 'https://eu1.prisma.sh', - 'prisma-us1': 'https://us1.prisma.sh', -}; - -export const clusterEndpointMapReverse: { [key: string]: string } = _.invert(clusterEndpointMap); diff --git a/packages/loaders/prisma/src/prisma-yml/errors/ClusterNotFound.ts b/packages/loaders/prisma/src/prisma-yml/errors/ClusterNotFound.ts deleted file mode 100644 index b37d71675ab..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/errors/ClusterNotFound.ts +++ /dev/null @@ -1,7 +0,0 @@ -export class ClusterNotFound extends Error { - constructor(name: string) { - super( - `Cluster '${name}' is neither a known shared cluster nor defined in your global .prismarc.`, - ); - } -} diff --git a/packages/loaders/prisma/src/prisma-yml/errors/ClusterNotSet.ts b/packages/loaders/prisma/src/prisma-yml/errors/ClusterNotSet.ts deleted file mode 100644 index e7e8a47e74d..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/errors/ClusterNotSet.ts +++ /dev/null @@ -1,7 +0,0 @@ -export class ClusterNotSet extends Error { - constructor() { - super( - `No cluster set. In order to run this command, please set the "cluster" property in your prisma.yml`, - ); - } -} diff --git a/packages/loaders/prisma/src/prisma-yml/errors/StageNotFound.ts b/packages/loaders/prisma/src/prisma-yml/errors/StageNotFound.ts deleted file mode 100644 index 929c161df0a..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/errors/StageNotFound.ts +++ /dev/null @@ -1,9 +0,0 @@ -export class StageNotFound extends Error { - constructor(name?: string) { - if (name) { - super(`Stage '${name}' could not be found in the local prisma.yml`); - } else { - super(`No stage provided and no default stage set`); - } - } -} diff --git a/packages/loaders/prisma/src/prisma-yml/index.ts b/packages/loaders/prisma/src/prisma-yml/index.ts deleted file mode 100644 index 2867871cbe4..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -export { parseEndpoint } from './utils/parseEndpoint.js'; -export { Cluster } from './Cluster.js'; -export { PrismaDefinitionClass } from './PrismaDefinition.js'; -export { Environment } from './Environment.js'; -export { Args } from './types/common.js'; -export { ClusterNotFound } from './errors/ClusterNotFound.js'; -export { ClusterNotSet } from './errors/ClusterNotSet.js'; -export { StageNotFound } from './errors/StageNotFound.js'; -export { Output, IOutput } from './Output.js'; -export { Variables } from './Variables.js'; -export { RC, Clusters, ClusterConfig, FunctionInput } from './types/rc.js'; -export { getProxyAgent } from './utils/getProxyAgent.js'; diff --git a/packages/loaders/prisma/src/prisma-yml/prisma-json-schema.ts b/packages/loaders/prisma/src/prisma-yml/prisma-json-schema.ts deleted file mode 100644 index eed29b83a8e..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/prisma-json-schema.ts +++ /dev/null @@ -1,44 +0,0 @@ -export interface PrismaDefinition { - datamodel?: string | string[]; - subscriptions?: SubscriptionMap; - custom?: any; - secret?: string; - disableAuth?: boolean; - seed?: Seed; - endpoint?: string; - hooks?: any; - generate?: Generate[]; - databaseType?: DatabaseType; -} - -export type DatabaseType = 'relational' | 'document'; - -export interface Generate { - generator: string; - output: string; -} - -export interface Seed { - import?: string; - run?: string; -} - -export interface SubscriptionMap { - [subscriptionName: string]: SubscriptionDefinition; -} - -export interface SubscriptionDefinition { - query: string; - webhook: FunctionHandlerWebhookSource; -} - -export type FunctionHandlerWebhookSource = string | FunctionHandlerWebhookWithHeaders; - -export interface FunctionHandlerWebhookWithHeaders { - url: string; - headers?: Headers; -} - -export interface Headers { - [key: string]: string; -} diff --git a/packages/loaders/prisma/src/prisma-yml/test/getTmpDir.ts b/packages/loaders/prisma/src/prisma-yml/test/getTmpDir.ts deleted file mode 100644 index 443bb8a350e..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/test/getTmpDir.ts +++ /dev/null @@ -1,12 +0,0 @@ -import * as fs from 'fs'; -import * as os from 'os'; -import * as path from 'path'; -// eslint-disable-next-line -// @ts-ignore -import cuid from 'scuid'; - -export const getTmpDir = () => { - const dir = path.join(os.tmpdir(), cuid() + '/'); - fs.mkdirSync(dir, { recursive: true }); - return dir; -}; diff --git a/packages/loaders/prisma/src/prisma-yml/types/common.ts b/packages/loaders/prisma/src/prisma-yml/types/common.ts deleted file mode 100644 index 24d91e0158a..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/types/common.ts +++ /dev/null @@ -1,3 +0,0 @@ -export interface Args { - [name: string]: string | boolean; -} diff --git a/packages/loaders/prisma/src/prisma-yml/types/rc.ts b/packages/loaders/prisma/src/prisma-yml/types/rc.ts deleted file mode 100644 index 22d6f8c4287..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/types/rc.ts +++ /dev/null @@ -1,25 +0,0 @@ -export interface RC { - cloudSessionKey?: string; - clusters?: Clusters; -} - -export interface Clusters { - [name: string]: ClusterConfig; -} - -export interface ClusterConfig { - host: string; - clusterSecret: string; -} - -export interface Header { - name: string; - value: string; -} - -export interface FunctionInput { - name: string; - query: string; - url: string; - headers: Header[]; -} diff --git a/packages/loaders/prisma/src/prisma-yml/utils/__snapshots__/parseEndpoint.test.ts.snap b/packages/loaders/prisma/src/prisma-yml/utils/__snapshots__/parseEndpoint.test.ts.snap deleted file mode 100644 index a46e18a37a0..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/utils/__snapshots__/parseEndpoint.test.ts.snap +++ /dev/null @@ -1,131 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`parseEndpoint custom hosted url as ip in internet 1`] = ` -{ - "clusterBaseUrl": "http://13.228.39.83:4466", - "clusterName": "default", - "isPrivate": true, - "local": false, - "service": "default", - "shared": false, - "stage": "default", - "workspaceSlug": null, -} -`; - -exports[`parseEndpoint custom hosted url in internet 1`] = ` -{ - "clusterBaseUrl": "https://api-prisma.divyendusingh.com", - "clusterName": "default", - "isPrivate": true, - "local": false, - "service": "zebra-4069", - "shared": false, - "stage": "dev", - "workspaceSlug": null, -} -`; - -exports[`parseEndpoint local behind a proxy 1`] = ` -{ - "clusterBaseUrl": "http://local.dev", - "clusterName": "default", - "isPrivate": true, - "local": false, - "service": "default", - "shared": false, - "stage": "default", - "workspaceSlug": null, -} -`; - -exports[`parseEndpoint private url 1`] = ` -{ - "clusterBaseUrl": "https://test1_workspace.prisma.sh", - "clusterName": "test1", - "isPrivate": true, - "local": false, - "service": "tessst", - "shared": false, - "stage": "dev", - "workspaceSlug": "workspace", -} -`; - -exports[`parseEndpoint shared url 1`] = ` -{ - "clusterBaseUrl": "https://eu1.prisma.sh", - "clusterName": "prisma-eu1", - "isPrivate": false, - "local": false, - "service": "tessst", - "shared": true, - "stage": "dev", - "workspaceSlug": "workspace-name", -} -`; - -exports[`parseEndpoint url on a subdomain 1`] = ` -{ - "clusterBaseUrl": "https://db.cloud.prisma.sh", - "clusterName": "db.cloud.prisma.sh", - "isPrivate": true, - "local": false, - "service": "test-token", - "shared": false, - "stage": "test", - "workspaceSlug": null, -} -`; - -exports[`parseEndpoint work for minimal docker url 1`] = ` -{ - "clusterBaseUrl": "http://prisma:4466", - "clusterName": "default", - "isPrivate": false, - "local": true, - "service": "default", - "shared": false, - "stage": "default", - "workspaceSlug": null, -} -`; - -exports[`parseEndpoint work for minimal url 1`] = ` -{ - "clusterBaseUrl": "http://localhost:4466", - "clusterName": "local", - "isPrivate": false, - "local": true, - "service": "default", - "shared": false, - "stage": "default", - "workspaceSlug": null, -} -`; - -exports[`parseEndpoint work for url with service 1`] = ` -{ - "clusterBaseUrl": "http://localhost:4466", - "clusterName": "local", - "isPrivate": false, - "local": true, - "service": "service-name", - "shared": false, - "stage": "default", - "workspaceSlug": null, -} -`; - -exports[`parseEndpoint work for url with service and stage 1`] = ` -{ - "clusterBaseUrl": "http://localhost:4466", - "clusterName": "local", - "isPrivate": false, - "local": true, - "service": "service-name", - "shared": false, - "stage": "stage", - "workspaceSlug": null, -} -`; diff --git a/packages/loaders/prisma/src/prisma-yml/utils/__snapshots__/yamlComment.test.ts.snap b/packages/loaders/prisma/src/prisma-yml/utils/__snapshots__/yamlComment.test.ts.snap deleted file mode 100644 index 569009a18c9..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/utils/__snapshots__/yamlComment.test.ts.snap +++ /dev/null @@ -1,86 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`migrateToEndpoint ignore when endpoint present 1`] = ` -{ - "input": "endpoint: https://eu1.prisma.sh/public-asdf/my-service/dev -datamodel: datamodel.prisma", - "output": "#endpoint: https://eu1.prisma.sh/public-asdf/my-service/dev -endpoint: -datamodel: datamodel.prisma", -} -`; - -exports[`migrateToEndpoint work in simple case 1`] = ` -{ - "input": "service: my-service -stage: dev -cluster: public-asdf/prisma-eu1 -datamodel: datamodel.prisma", - "output": "#service: my-service -#stage: dev -#cluster: public-asdf/prisma-eu1 -datamodel: datamodel.prisma -endpoint: https://eu1.prisma.sh/public-asdf/my-service/dev -", -} -`; - -exports[`migrateToEndpoint work with different order and respect comments 1`] = ` -{ - "input": "# don't delete me -stage: dev -cluster: public-asdf/prisma-eu1 - -service: my-service - - - -datamodel: datamodel.prisma", - "output": "# don't delete me -#stage: dev -#cluster: public-asdf/prisma-eu1 - -#service: my-service - - - -datamodel: datamodel.prisma -endpoint: https://eu1.prisma.sh/public-asdf/my-service/dev -", -} -`; - -exports[`replaceYamlValue when comments already exist 1`] = ` -{ - "input": "#anothercomment: asdasd -endpoint: https://eu1.prisma.sh/public-asdf/my-service/dev - -#endpoint: asdasd -datamodel: datamodel.prisma", - "output": "#anothercomment: asdasd -#endpoint: https://eu1.prisma.sh/public-asdf/my-service/dev -endpoint: http://localhost:4466 - -#endpoint: asdasd -datamodel: datamodel.prisma", -} -`; - -exports[`replaceYamlValue when document is clean 1`] = ` -{ - "input": "endpoint: https://eu1.prisma.sh/public-asdf/my-service/dev -datamodel: datamodel.prisma", - "output": "#endpoint: https://eu1.prisma.sh/public-asdf/my-service/dev -endpoint: http://localhost:4466 -datamodel: datamodel.prisma", -} -`; - -exports[`replaceYamlValue when key does not yet exist 1`] = ` -{ - "input": "datamodel: datamodel.prisma", - "output": "datamodel: datamodel.prisma -endpoint: http://localhost:4466 -", -} -`; diff --git a/packages/loaders/prisma/src/prisma-yml/utils/getProxyAgent.ts b/packages/loaders/prisma/src/prisma-yml/utils/getProxyAgent.ts deleted file mode 100644 index 1fc7b629608..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/utils/getProxyAgent.ts +++ /dev/null @@ -1,108 +0,0 @@ -'use strict'; - -import { Agent as HttpAgent } from 'http'; -import { Agent as HttpsAgent } from 'https'; -import HttpProxyAgent from 'http-proxy-agent'; -import HttpsProxyAgent from 'https-proxy-agent'; - -// code from https://raw.githubusercontent.com/request/request/5ba8eb44da7cd639ca21070ea9be20d611b85f66/lib/getProxyFromURI.js - -function formatHostname(hostname: any) { - // canonicalize the hostname, so that 'oogle.com' won't match 'google.com' - return hostname.replace(/^\.*/, '.').toLowerCase(); -} - -function parseNoProxyZone(zone: any) { - zone = zone.trim().toLowerCase(); - - const zoneParts = zone.split(':', 2); - const zoneHost = formatHostname(zoneParts[0]); - const zonePort = zoneParts[1]; - const hasPort = zone.indexOf(':') > -1; - - return { hostname: zoneHost, port: zonePort, hasPort }; -} - -function uriInNoProxy(uri: any, noProxy: any) { - const port = uri.port || (uri.protocol === 'https:' ? '443' : '80'); - const hostname = formatHostname(uri.hostname); - const noProxyList = noProxy.split(','); - - // iterate through the noProxyList until it finds a match. - return noProxyList.map(parseNoProxyZone).some(function (noProxyZone: any) { - const isMatchedAt = hostname.indexOf(noProxyZone.hostname); - const hostnameMatched = - isMatchedAt > -1 && isMatchedAt === hostname.length - noProxyZone.hostname.length; - - if (noProxyZone.hasPort) { - return port === noProxyZone.port && hostnameMatched; - } - - return hostnameMatched; - }); -} - -function getProxyFromURI(uri: any) { - // Decide the proper request proxy to use based on the request URI object and the - // environmental variables (NO_PROXY, HTTP_PROXY, etc.) - // respect NO_PROXY environment variables (see: http://lynx.isc.org/current/breakout/lynx_help/keystrokes/environments.html) - - const noProxy = process.env['NO_PROXY'] || process.env['no_proxy'] || ''; - - // if the noProxy is a wildcard then return null - - if (noProxy === '*') { - return null; - } - - // if the noProxy is not empty and the uri is found return null - - if (noProxy !== '' && uriInNoProxy(uri, noProxy)) { - return null; - } - - // Check for HTTP or HTTPS Proxy in environment Else default to null - - if (uri.protocol === 'http:') { - return process.env['HTTP_PROXY'] || process.env['http_proxy'] || null; - } - - if (uri.protocol === 'https:') { - return ( - process.env['HTTPS_PROXY'] || - process.env['https_proxy'] || - process.env['HTTP_PROXY'] || - process.env['http_proxy'] || - null - ); - } - - // if none of that works, return null - // (What uri protocol are you using then?) - - return null; -} - -export function getProxyAgent(url: string): HttpAgent | HttpsAgent | undefined { - const uri = new URL(url); - const proxy = getProxyFromURI(uri); - if (!proxy) { - return undefined; - } - - const proxyUri = new URL(proxy); - - if (proxyUri.protocol === 'http:') { - // eslint-disable-next-line - // @ts-ignore - return new HttpProxyAgent(proxy) as HttpAgent; - } - - if (proxyUri.protocol === 'https:') { - // eslint-disable-next-line - // @ts-ignore - return new HttpsProxyAgent(proxy) as HttpsAgent; - } - - return undefined; -} diff --git a/packages/loaders/prisma/src/prisma-yml/utils/parseEndpoint.test.ts b/packages/loaders/prisma/src/prisma-yml/utils/parseEndpoint.test.ts deleted file mode 100644 index a8a46d6f210..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/utils/parseEndpoint.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { parseEndpoint } from './parseEndpoint.js'; - -describe('parseEndpoint', () => { - test('work for minimal url', () => { - expect(parseEndpoint('http://localhost:4466')).toMatchSnapshot(); - }); - test('work for minimal docker url', () => { - expect(parseEndpoint('http://prisma:4466')).toMatchSnapshot(); - }); - test('local behind a proxy', () => { - // This snapshot will be incorrect for now as URL does not have enough - // information to determine if something is truly local - expect(parseEndpoint('http://local.dev')).toMatchSnapshot(); - }); - test('work for url with service', () => { - expect(parseEndpoint('http://localhost:4466/service-name')).toMatchSnapshot(); - }); - test('work for url with service and stage', () => { - expect(parseEndpoint('http://localhost:4466/service-name/stage')).toMatchSnapshot(); - }); - test('private url', () => { - expect(parseEndpoint('https://test1_workspace.prisma.sh/tessst/dev')).toMatchSnapshot(); - }); - test('shared url', () => { - expect(parseEndpoint('https://eu1.prisma.sh/workspace-name/tessst/dev')).toMatchSnapshot(); - }); - test('custom hosted url in internet', () => { - expect(parseEndpoint('https://api-prisma.divyendusingh.com/zebra-4069/dev')).toMatchSnapshot(); - }); - test('custom hosted url as ip in internet', () => { - expect(parseEndpoint('http://13.228.39.83:4466')).toMatchSnapshot(); - }); - test('url on a subdomain', () => { - expect(parseEndpoint('https://db.cloud.prisma.sh/test-token/test')).toMatchSnapshot(); - }); -}); diff --git a/packages/loaders/prisma/src/prisma-yml/utils/parseEndpoint.ts b/packages/loaders/prisma/src/prisma-yml/utils/parseEndpoint.ts deleted file mode 100644 index 48b5d14b42b..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/utils/parseEndpoint.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { URL } from 'url'; -import { clusterEndpointMapReverse } from '../constants.js'; - -function getClusterName(origin: any): string { - if (clusterEndpointMapReverse[origin]) { - return clusterEndpointMapReverse[origin]; - } - - if (origin.endsWith('prisma.sh')) { - return origin.split('_')[0].replace(/https?:\/\//, ''); - } - - if (isLocal(origin)) { - return 'local'; - } - - return 'default'; -} - -const getWorkspaceFromPrivateOrigin = (origin: string) => { - const split = origin.split('_'); - if (split.length > 1) { - return split[1].split('.')[0]; - } - - return null; -}; - -const isLocal = (origin: any) => origin.includes('localhost') || origin.includes('127.0.0.1'); - -export interface ParseEndpointResult { - service: string; - clusterBaseUrl: string; - stage: string; - isPrivate: boolean; - local: boolean; - shared: boolean; - workspaceSlug: string | null; - clusterName: string; -} - -export function parseEndpoint(endpoint: string): ParseEndpointResult { - /* - Terminology: - local - hosted locally using docker and accessed using localhost or prisma or local web proxy like domain.dev - shared - demo server - isPrivate - private hosted by Prisma or private and self-hosted, important that in our terminology a local server is not private - */ - - const url = new URL(endpoint); - const splittedPath = url.pathname.split('/'); - // assuming, that the pathname always starts with a leading /, we always can ignore the first element of the split array - const service = splittedPath.length > 3 ? splittedPath[2] : splittedPath[1] || 'default'; - const stage = splittedPath.length > 3 ? splittedPath[3] : splittedPath[2] || 'default'; - - // This logic might break for self-hosted servers incorrectly yielding a "workspace" simply if the UX has - // enough "/"es like if https://custom.dev/not-a-workspace/ is the base Prisma URL then for default/default service/stage - // pair. This function would incorrectly return not-a-workspace as a workspace. - let workspaceSlug = splittedPath.length > 3 ? splittedPath[1] : null; - - const shared = ['eu1.prisma.sh', 'us1.prisma.sh'].includes(url.host); - - // When using localAliases, do an exact match because of 'prisma' option which is added for local docker networking access - const localAliases = ['localhost', '127.0.0.1', 'prisma']; - const isPrivate = !shared && !localAliases.includes(url.hostname); - const local = !shared && !isPrivate && !workspaceSlug; - - if (isPrivate && !workspaceSlug) { - workspaceSlug = getWorkspaceFromPrivateOrigin(url.origin); - } - - return { - clusterBaseUrl: url.origin, - service, - stage, - local, - isPrivate, - shared, - workspaceSlug, - clusterName: getClusterName(url.origin), - }; -} diff --git a/packages/loaders/prisma/src/prisma-yml/utils/yamlComment.test.ts b/packages/loaders/prisma/src/prisma-yml/utils/yamlComment.test.ts deleted file mode 100644 index 6b5a0ecd79d..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/utils/yamlComment.test.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { migrateToEndpoint, replaceYamlValue } from './yamlComment.js'; - -describe('replaceYamlValue', () => { - test('when document is clean', () => { - const input = `\ -endpoint: https://eu1.prisma.sh/public-asdf/my-service/dev -datamodel: datamodel.prisma`; - - const output = replaceYamlValue(input, 'endpoint', 'http://localhost:4466'); - - expect({ input, output }).toMatchSnapshot(); - }); - - test('when comments already exist', () => { - const input = `\ -#anothercomment: asdasd -endpoint: https://eu1.prisma.sh/public-asdf/my-service/dev - -#endpoint: asdasd -datamodel: datamodel.prisma`; - - const output = replaceYamlValue(input, 'endpoint', 'http://localhost:4466'); - - expect({ input, output }).toMatchSnapshot(); - }); - - test('when key does not yet exist', () => { - const input = `\ -datamodel: datamodel.prisma`; - - const output = replaceYamlValue(input, 'endpoint', 'http://localhost:4466'); - - expect({ input, output }).toMatchSnapshot(); - }); -}); - -describe('migrateToEndpoint', () => { - test('ignore when endpoint present', () => { - const input = `\ -endpoint: https://eu1.prisma.sh/public-asdf/my-service/dev -datamodel: datamodel.prisma`; - - const output = migrateToEndpoint(input, ''); - - expect({ input, output }).toMatchSnapshot(); - }); - - test('work in simple case', () => { - const input = `\ -service: my-service -stage: dev -cluster: public-asdf/prisma-eu1 -datamodel: datamodel.prisma`; - - const output = migrateToEndpoint(input, 'https://eu1.prisma.sh/public-asdf/my-service/dev'); - - expect({ input, output }).toMatchSnapshot(); - }); - - test('work with different order and respect comments', () => { - const input = `\ -# don't delete me -stage: dev -cluster: public-asdf/prisma-eu1 - -service: my-service - - - -datamodel: datamodel.prisma`; - - const output = migrateToEndpoint(input, 'https://eu1.prisma.sh/public-asdf/my-service/dev'); - - expect({ input, output }).toMatchSnapshot(); - }); -}); diff --git a/packages/loaders/prisma/src/prisma-yml/utils/yamlComment.ts b/packages/loaders/prisma/src/prisma-yml/utils/yamlComment.ts deleted file mode 100644 index e335170fbde..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/utils/yamlComment.ts +++ /dev/null @@ -1,53 +0,0 @@ -import * as yamlParser from 'yaml-ast-parser'; - -/** - * Comments out the current entry of a specific key in a yaml document and creates a new value next to it - * @param key key in yaml document to comment out - * @param newValue new value to add in the document - */ -export function replaceYamlValue(input: any, key: any, newValue: any) { - const ast = yamlParser.safeLoad(input); - const position = getPosition(ast, key); - const newEntry = `${key}: ${newValue}\n`; - if (!position) { - return input + '\n' + newEntry; - } - - return ( - input.slice(0, position.start) + - '#' + - input.slice(position.start, position.end) + - newEntry + - input.slice(position.end) - ); -} - -function getPosition(ast: any, key: string): { start: number; end: number } | undefined { - const mapping = ast.mappings.find((m: any) => m.key.value === key); - if (!mapping) { - return undefined; - } - return { - start: mapping.startPosition, - end: mapping.endPosition + 1, - }; -} - -function commentOut(input: string, keys: string[]) { - let output = input; - for (const key of keys) { - const ast = yamlParser.safeLoad(output); - const position = getPosition(ast, key); - - if (position) { - output = output.slice(0, position.start) + '#' + output.slice(position.start); - } - } - - return output; -} - -export function migrateToEndpoint(input: any, endpoint: any) { - const output = commentOut(input, ['service', 'stage', 'cluster']); - return replaceYamlValue(output, 'endpoint', endpoint); -} diff --git a/packages/loaders/prisma/src/prisma-yml/yaml.ts b/packages/loaders/prisma/src/prisma-yml/yaml.ts deleted file mode 100644 index ebf56b6d8e0..00000000000 --- a/packages/loaders/prisma/src/prisma-yml/yaml.ts +++ /dev/null @@ -1,38 +0,0 @@ -import * as fs from 'fs'; -import * as yaml from 'js-yaml'; -import { IOutput, Output } from './Output.js'; -import { PrismaDefinition } from './prisma-json-schema.js'; -import { Args } from './types/common.js'; -import { Variables } from './Variables.js'; - -const cache: Record = {}; - -export async function readDefinition( - filePath: string, - args: Args, - out: IOutput = new Output(), - envVars?: any, - _graceful?: boolean, -): Promise<{ definition: PrismaDefinition; rawJson: any }> { - try { - fs.accessSync(filePath); - } catch { - throw new Error(`${filePath} could not be found.`); - } - const file = fs.readFileSync(filePath, 'utf-8'); - const json = yaml.load(file) as PrismaDefinition; - // we need this copy because populateJson runs inplace - const jsonCopy = { ...json }; - - const vars = new Variables(filePath, args, out, envVars); - const populatedJson = await vars.populateJson(json); - if (populatedJson.custom) { - delete populatedJson.custom; - } - - cache[file] = populatedJson; - return { - definition: populatedJson, - rawJson: jsonCopy, - }; -} diff --git a/packages/loaders/url/.gitignore b/packages/loaders/url/.gitignore deleted file mode 100644 index 043f8173475..00000000000 --- a/packages/loaders/url/.gitignore +++ /dev/null @@ -1 +0,0 @@ -tests/webpack.js diff --git a/packages/loaders/url/CHANGELOG.md b/packages/loaders/url/CHANGELOG.md index 755a690b093..daf8343cca9 100644 --- a/packages/loaders/url/CHANGELOG.md +++ b/packages/loaders/url/CHANGELOG.md @@ -1,5 +1,181 @@ # @graphql-tools/url-loader +## 8.0.31 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + - @graphql-tools/executor-legacy-ws@1.1.17 + +## 8.0.30 + +### Patch Changes + +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + - @graphql-tools/executor-legacy-ws@1.1.16 + +## 8.0.29 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + - @graphql-tools/executor-legacy-ws@1.1.15 + +## 8.0.28 + +### Patch Changes + +- [#6971](https://github.com/ardatan/graphql-tools/pull/6971) + [`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285) + Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates: + - Added dependency + [`@whatwg-node/promise-helpers@^1.0.0` โ†—๏ธŽ](https://www.npmjs.com/package/@whatwg-node/promise-helpers/v/1.0.0) + (to `dependencies`) +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + - @graphql-tools/executor-legacy-ws@1.1.14 + +## 8.0.27 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + - @graphql-tools/executor-legacy-ws@1.1.13 + +## 8.0.26 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + - @graphql-tools/executor-legacy-ws@1.1.12 + +## 8.0.25 + +### Patch Changes + +- [#6921](https://github.com/ardatan/graphql-tools/pull/6921) + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/executor-graphql-ws@^2.0.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/executor-graphql-ws/v/2.0.1) + (from `^1.3.2`, in `dependencies`) + - Removed dependency + [`value-or-promise@^1.0.11` โ†—๏ธŽ](https://www.npmjs.com/package/value-or-promise/v/1.0.11) (from + `dependencies`) +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + - @graphql-tools/executor-legacy-ws@1.1.11 + +## 8.0.24 + +### Patch Changes + +- [#6831](https://github.com/ardatan/graphql-tools/pull/6831) + [`c59403d`](https://github.com/ardatan/graphql-tools/commit/c59403dedc2a5435452c9a3556f4846df6dee392) + Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates: + - Added dependency [`sync-fetch@0.6.0-2` โ†—๏ธŽ](https://www.npmjs.com/package/sync-fetch/v/0.6.0) + (to `dependencies`) + - Removed dependency + [`@ardatan/sync-fetch@^0.0.1` โ†—๏ธŽ](https://www.npmjs.com/package/@ardatan/sync-fetch/v/0.0.1) + (from `dependencies`) + +## 8.0.23 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + - @graphql-tools/executor-legacy-ws@1.1.10 + +## 8.0.22 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + - @graphql-tools/executor-legacy-ws@1.1.9 + +## 8.0.21 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + - @graphql-tools/executor-legacy-ws@1.1.8 + +## 8.0.20 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + - @graphql-tools/executor-legacy-ws@1.1.7 + +## 8.0.19 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + - @graphql-tools/executor-legacy-ws@1.1.6 + +## 8.0.18 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/executor-legacy-ws@^1.1.4` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/executor-legacy-ws/v/1.1.4) + (from `^1.1.3`, in `dependencies`) + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679), + [`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/executor-legacy-ws@1.1.5 + - @graphql-tools/utils@10.6.2 + +## 8.0.17 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + - @graphql-tools/executor-legacy-ws@1.1.4 + +## 8.0.16 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + - @graphql-tools/executor-legacy-ws@1.1.3 + ## 8.0.15 ### Patch Changes @@ -1331,7 +1507,7 @@ ### Patch Changes -- ef9c3853: fix: bump Node { - return fetch(input, init); -}; +export const defaultAsyncFetch: AsyncFetchFn = fetch; diff --git a/packages/loaders/url/src/defaultSyncFetch.ts b/packages/loaders/url/src/defaultSyncFetch.ts index 053dde8c008..e5c08065551 100644 --- a/packages/loaders/url/src/defaultSyncFetch.ts +++ b/packages/loaders/url/src/defaultSyncFetch.ts @@ -1,4 +1,4 @@ -import syncFetchImported from '@ardatan/sync-fetch'; +import syncFetchImported from 'sync-fetch'; import { SyncFetchFn, SyncResponse } from '@graphql-tools/executor-http'; export const defaultSyncFetch: SyncFetchFn = ( diff --git a/packages/loaders/url/src/index.ts b/packages/loaders/url/src/index.ts index 4884254c657..907e0c479b5 100644 --- a/packages/loaders/url/src/index.ts +++ b/packages/loaders/url/src/index.ts @@ -1,14 +1,13 @@ import { buildASTSchema, buildSchema, IntrospectionOptions } from 'graphql'; import WebSocket from 'isomorphic-ws'; -import { ValueOrPromise } from 'value-or-promise'; import { buildGraphQLWSExecutor } from '@graphql-tools/executor-graphql-ws'; import { - AsyncFetchFn, buildHTTPExecutor, - FetchFn, HTTPExecutorOptions, isLiveQueryOperationDefinitionNode, - SyncFetchFn, + type AsyncFetchFn, + type FetchFn, + type SyncFetchFn, } from '@graphql-tools/executor-http'; import { buildWSLegacyExecutor } from '@graphql-tools/executor-legacy-ws'; import { @@ -17,12 +16,15 @@ import { ExecutionRequest, Executor, getOperationASTFromRequest, + isUrl, Loader, + MaybePromise, parseGraphQLSDL, Source, SyncExecutor, } from '@graphql-tools/utils'; import { schemaFromExecutor, wrapSchema } from '@graphql-tools/wrap'; +import { handleMaybePromise } from '@whatwg-node/promise-helpers'; import { defaultAsyncFetch } from './defaultAsyncFetch.js'; import { defaultSyncFetch } from './defaultSyncFetch.js'; @@ -104,12 +106,10 @@ export interface LoadFromUrlOptions const acceptableProtocols = ['http:', 'https:', 'ws:', 'wss:']; function isCompatibleUri(uri: string): boolean { - try { - const url = new URL(uri); - return acceptableProtocols.includes(url.protocol); - } catch { - return false; + if (acceptableProtocols.some(protocol => uri.startsWith(protocol))) { + return isUrl(uri); } + return false; } /** @@ -139,7 +139,7 @@ export class UrlLoader implements Loader { buildHTTPExecutor( initialEndpoint: string, - fetchFn: FetchFn, + fetchFn: SyncFetchFn | AsyncFetchFn, options?: LoadFromUrlOptions, ): Executor { const HTTP_URL = switchProtocols(initialEndpoint, { @@ -163,11 +163,12 @@ export class UrlLoader implements Loader { https: 'wss', http: 'ws', }); - return buildGraphQLWSExecutor({ + const opts = { url: WS_URL, webSocketImpl, connectionParams, - }); + }; + return buildGraphQLWSExecutor(opts); } buildWSLegacyExecutor( @@ -197,9 +198,10 @@ export class UrlLoader implements Loader { if (customFetch) { if (typeof customFetch === 'string') { const [moduleName, fetchFnName] = customFetch.split('#'); - return new ValueOrPromise(() => importFn(moduleName)) - .then(module => (fetchFnName ? (module as Record)[fetchFnName] : module)) - .resolve(); + return handleMaybePromise( + () => importFn(moduleName), + module => (fetchFnName ? (module as Record)[fetchFnName] : module), + ); } else if (typeof customFetch === 'function') { return customFetch; } @@ -234,11 +236,10 @@ export class UrlLoader implements Loader { ): typeof WebSocket | PromiseLike { if (typeof options?.webSocketImpl === 'string') { const [moduleName, webSocketImplName] = options.webSocketImpl.split('#'); - return new ValueOrPromise(() => importFn(moduleName)) - .then(importedModule => - webSocketImplName ? importedModule[webSocketImplName] : importedModule, - ) - .resolve(); + return handleMaybePromise( + () => importFn(moduleName), + importedModule => (webSocketImplName ? importedModule[webSocketImplName] : importedModule), + ); } else { const websocketImpl = options?.webSocketImpl || WebSocket; return websocketImpl; @@ -266,28 +267,34 @@ export class UrlLoader implements Loader { options?: LoadFromUrlOptions, ): Executor { if (options?.subscriptionsProtocol === SubscriptionProtocol.SSE) { - return this.buildHTTPExecutor(subscriptionsEndpoint, fetch as any, options); + return this.buildHTTPExecutor(subscriptionsEndpoint, fetch as AsyncFetchFn, options); } else if (options?.subscriptionsProtocol === SubscriptionProtocol.GRAPHQL_SSE) { if (!options?.subscriptionsEndpoint) { // when no custom subscriptions endpoint is specified, // graphql-sse is recommended to be used on `/graphql/stream` subscriptionsEndpoint += '/stream'; } - return this.buildHTTPExecutor(subscriptionsEndpoint, fetch as any, options); + return this.buildHTTPExecutor(subscriptionsEndpoint, fetch as AsyncFetchFn, options); } else { - const webSocketImpl$ = new ValueOrPromise(() => this.getWebSocketImpl(importFn, options)); - const executor$ = webSocketImpl$.then(webSocketImpl => { - if (options?.subscriptionsProtocol === SubscriptionProtocol.LEGACY_WS) { - return this.buildWSLegacyExecutor(subscriptionsEndpoint, webSocketImpl, options); - } else { - return this.buildWSExecutor( - subscriptionsEndpoint, - webSocketImpl, - options?.connectionParams, - ); - } - }); - return request => executor$.then(executor => executor(request)).resolve(); + return request => + handleMaybePromise( + () => + handleMaybePromise( + () => this.getWebSocketImpl(importFn, options), + webSocketImpl => { + if (options?.subscriptionsProtocol === SubscriptionProtocol.LEGACY_WS) { + return this.buildWSLegacyExecutor(subscriptionsEndpoint, webSocketImpl, options); + } else { + return this.buildWSExecutor( + subscriptionsEndpoint, + webSocketImpl, + options?.connectionParams, + ); + } + }, + ), + executor => executor(request), + ); } } @@ -308,22 +315,30 @@ export class UrlLoader implements Loader { importFn: AsyncImportFn | SyncImportFn, options?: Omit, ): Executor { - const fetch$ = new ValueOrPromise(() => this.getFetch(options?.customFetch, importFn)); + let fetch$: MaybePromise> | undefined; + const getHttpExecutor = () => { + return handleMaybePromise( + () => (fetch$ ||= this.getFetch(options?.customFetch, importFn)), + fetch => this.buildHTTPExecutor(endpoint, fetch, options), + ); + }; + const getSetHttpExecutor$ = () => (httpExecutor$ ||= getHttpExecutor()); - const httpExecutor$ = fetch$.then(fetch => { - return this.buildHTTPExecutor(endpoint, fetch, options); - }); + let httpExecutor$: ReturnType | undefined; if ( options?.subscriptionsEndpoint != null || options?.subscriptionsProtocol !== SubscriptionProtocol.SSE ) { - const subscriptionExecutor$ = fetch$.then(fetch => { - const subscriptionsEndpoint = options?.subscriptionsEndpoint || endpoint; - return this.buildSubscriptionExecutor(subscriptionsEndpoint, fetch, importFn, options); - }); - - function getExecutorByRequest(request: ExecutionRequest): ValueOrPromise { + const subscriptionExecutor$ = handleMaybePromise( + () => (fetch$ ||= this.getFetch(options?.customFetch, importFn)), + fetch => { + const subscriptionsEndpoint = options?.subscriptionsEndpoint || endpoint; + return this.buildSubscriptionExecutor(subscriptionsEndpoint, fetch, importFn, options); + }, + ); + + function getExecutorByRequest(request: ExecutionRequest): MaybePromise { request.operationType = request.operationType || getOperationASTFromRequest(request)?.operation; if ( @@ -335,16 +350,17 @@ export class UrlLoader implements Loader { if (request.operationType === 'subscription') { return subscriptionExecutor$; } else { - return httpExecutor$; + return getSetHttpExecutor$(); } } return request => - getExecutorByRequest(request) - .then(executor => executor(request)) - .resolve(); + handleMaybePromise( + () => getExecutorByRequest(request), + executor => executor(request), + ); } else { - return request => httpExecutor$.then(executor => executor(request)).resolve(); + return request => handleMaybePromise(getSetHttpExecutor$, executor => executor(request)); } } @@ -361,21 +377,20 @@ export class UrlLoader implements Loader { handleSDL(pointer: string, fetch: SyncFetchFn, options: LoadFromUrlOptions): Source; handleSDL(pointer: string, fetch: AsyncFetchFn, options: LoadFromUrlOptions): Promise; - handleSDL( - pointer: string, - fetch: FetchFn, - options: LoadFromUrlOptions, - ): Source | Promise { + handleSDL(pointer: string, fetch: FetchFn, options: LoadFromUrlOptions): MaybePromise { const defaultMethod = this.getDefaultMethodFromOptions(options?.method, 'GET'); - return new ValueOrPromise(() => - fetch(pointer, { - method: defaultMethod, - headers: typeof options?.headers === 'function' ? options.headers() : options?.headers, - }), - ) - .then(response => response.text()) - .then(schemaString => parseGraphQLSDL(pointer, schemaString, options)) - .resolve(); + return handleMaybePromise( + () => + fetch(pointer, { + method: defaultMethod, + headers: typeof options?.headers === 'function' ? options.headers() : options?.headers, + }), + res => + handleMaybePromise( + () => res.text(), + schemaString => parseGraphQLSDL(pointer, schemaString, options), + ), + ); } async load(pointer: string, options: LoadFromUrlOptions): Promise { diff --git a/packages/loaders/url/tests/sync.spec.ts b/packages/loaders/url/tests/sync.spec.ts index 19f3155dfd8..3b173227988 100644 --- a/packages/loaders/url/tests/sync.spec.ts +++ b/packages/loaders/url/tests/sync.spec.ts @@ -3,1024 +3,1019 @@ import { printSchemaWithDirectives } from '@graphql-tools/utils'; import { UrlLoader } from '../src'; describe('sync', () => { + const TEST_API = `https://swapi-graphql.netlify.app/graphql`; const loader = new UrlLoader(); it('should handle introspection', () => { - const [{ schema }] = loader.loadSync( - `https://swapi-graphql.netlify.app/.netlify/functions/index`, - {}, - ); + const [{ schema }] = loader.loadSync(TEST_API, {}); expect(schema).toBeInstanceOf(GraphQLSchema); - expect(printSchemaWithDirectives(schema!).trim()).toMatchInlineSnapshot(` - "schema { - query: Root - } + expect(printSchemaWithDirectives(schema!).trim()).toBe( + `schema { + query: Root +} - type Root { - allFilms(after: String, first: Int, before: String, last: Int): FilmsConnection - film(id: ID, filmID: ID): Film - allPeople(after: String, first: Int, before: String, last: Int): PeopleConnection - person(id: ID, personID: ID): Person - allPlanets(after: String, first: Int, before: String, last: Int): PlanetsConnection - planet(id: ID, planetID: ID): Planet - allSpecies(after: String, first: Int, before: String, last: Int): SpeciesConnection - species(id: ID, speciesID: ID): Species - allStarships(after: String, first: Int, before: String, last: Int): StarshipsConnection - starship(id: ID, starshipID: ID): Starship - allVehicles(after: String, first: Int, before: String, last: Int): VehiclesConnection - vehicle(id: ID, vehicleID: ID): Vehicle - """Fetches an object given its ID""" - node( - """The ID of an object""" - id: ID! - ): Node - } +type Root { + allFilms(after: String, first: Int, before: String, last: Int): FilmsConnection + film(id: ID, filmID: ID): Film + allPeople(after: String, first: Int, before: String, last: Int): PeopleConnection + person(id: ID, personID: ID): Person + allPlanets(after: String, first: Int, before: String, last: Int): PlanetsConnection + planet(id: ID, planetID: ID): Planet + allSpecies(after: String, first: Int, before: String, last: Int): SpeciesConnection + species(id: ID, speciesID: ID): Species + allStarships(after: String, first: Int, before: String, last: Int): StarshipsConnection + starship(id: ID, starshipID: ID): Starship + allVehicles(after: String, first: Int, before: String, last: Int): VehiclesConnection + vehicle(id: ID, vehicleID: ID): Vehicle + """Fetches an object given its ID""" + node( + """The ID of an object""" + id: ID! + ): Node +} - """A connection to a list of items.""" - type FilmsConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [FilmsEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - films: [Film] - } +"""A connection to a list of items.""" +type FilmsConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [FilmsEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + films: [Film] +} - """Information about pagination in a connection.""" - type PageInfo { - """When paginating forwards, are there more items?""" - hasNextPage: Boolean! - """When paginating backwards, are there more items?""" - hasPreviousPage: Boolean! - """When paginating backwards, the cursor to continue.""" - startCursor: String - """When paginating forwards, the cursor to continue.""" - endCursor: String - } +"""Information about pagination in a connection.""" +type PageInfo { + """When paginating forwards, are there more items?""" + hasNextPage: Boolean! + """When paginating backwards, are there more items?""" + hasPreviousPage: Boolean! + """When paginating backwards, the cursor to continue.""" + startCursor: String + """When paginating forwards, the cursor to continue.""" + endCursor: String +} - """An edge in a connection.""" - type FilmsEdge { - """The item at the end of the edge""" - node: Film - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type FilmsEdge { + """The item at the end of the edge""" + node: Film + """A cursor for use in pagination""" + cursor: String! +} - """A single film.""" - type Film implements Node { - """The title of this film.""" - title: String - """The episode number of this film.""" - episodeID: Int - """The opening paragraphs at the beginning of this film.""" - openingCrawl: String - """The name of the director of this film.""" - director: String - """The name(s) of the producer(s) of this film.""" - producers: [String] - """The ISO 8601 date format of film release at original creator country.""" - releaseDate: String - speciesConnection(after: String, first: Int, before: String, last: Int): FilmSpeciesConnection - starshipConnection(after: String, first: Int, before: String, last: Int): FilmStarshipsConnection - vehicleConnection(after: String, first: Int, before: String, last: Int): FilmVehiclesConnection - characterConnection(after: String, first: Int, before: String, last: Int): FilmCharactersConnection - planetConnection(after: String, first: Int, before: String, last: Int): FilmPlanetsConnection - """The ISO 8601 date format of the time that this resource was created.""" - created: String - """The ISO 8601 date format of the time that this resource was edited.""" - edited: String - """The ID of an object""" - id: ID! - } +"""A single film.""" +type Film implements Node { + """The title of this film.""" + title: String + """The episode number of this film.""" + episodeID: Int + """The opening paragraphs at the beginning of this film.""" + openingCrawl: String + """The name of the director of this film.""" + director: String + """The name(s) of the producer(s) of this film.""" + producers: [String] + """The ISO 8601 date format of film release at original creator country.""" + releaseDate: String + speciesConnection(after: String, first: Int, before: String, last: Int): FilmSpeciesConnection + starshipConnection(after: String, first: Int, before: String, last: Int): FilmStarshipsConnection + vehicleConnection(after: String, first: Int, before: String, last: Int): FilmVehiclesConnection + characterConnection(after: String, first: Int, before: String, last: Int): FilmCharactersConnection + planetConnection(after: String, first: Int, before: String, last: Int): FilmPlanetsConnection + """The ISO 8601 date format of the time that this resource was created.""" + created: String + """The ISO 8601 date format of the time that this resource was edited.""" + edited: String + """The ID of an object""" + id: ID! +} - """An object with an ID""" - interface Node { - """The id of the object.""" - id: ID! - } +"""An object with an ID""" +interface Node { + """The id of the object.""" + id: ID! +} - """A connection to a list of items.""" - type FilmSpeciesConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [FilmSpeciesEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - species: [Species] - } +"""A connection to a list of items.""" +type FilmSpeciesConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [FilmSpeciesEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + species: [Species] +} - """An edge in a connection.""" - type FilmSpeciesEdge { - """The item at the end of the edge""" - node: Species - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type FilmSpeciesEdge { + """The item at the end of the edge""" + node: Species + """A cursor for use in pagination""" + cursor: String! +} - """A type of person or character within the Star Wars Universe.""" - type Species implements Node { - """The name of this species.""" - name: String - """The classification of this species, such as "mammal" or "reptile".""" - classification: String - """The designation of this species, such as "sentient".""" - designation: String - """The average height of this species in centimeters.""" - averageHeight: Float - """The average lifespan of this species in years, null if unknown.""" - averageLifespan: Int - """ - Common eye colors for this species, null if this species does not typically - have eyes. - """ - eyeColors: [String] - """ - Common hair colors for this species, null if this species does not typically - have hair. - """ - hairColors: [String] - """ - Common skin colors for this species, null if this species does not typically - have skin. - """ - skinColors: [String] - """The language commonly spoken by this species.""" - language: String - """A planet that this species originates from.""" - homeworld: Planet - personConnection(after: String, first: Int, before: String, last: Int): SpeciesPeopleConnection - filmConnection(after: String, first: Int, before: String, last: Int): SpeciesFilmsConnection - """The ISO 8601 date format of the time that this resource was created.""" - created: String - """The ISO 8601 date format of the time that this resource was edited.""" - edited: String - """The ID of an object""" - id: ID! - } +"""A type of person or character within the Star Wars Universe.""" +type Species implements Node { + """The name of this species.""" + name: String + """The classification of this species, such as "mammal" or "reptile".""" + classification: String + """The designation of this species, such as "sentient".""" + designation: String + """The average height of this species in centimeters.""" + averageHeight: Float + """The average lifespan of this species in years, null if unknown.""" + averageLifespan: Int + """ + Common eye colors for this species, null if this species does not typically + have eyes. + """ + eyeColors: [String] + """ + Common hair colors for this species, null if this species does not typically + have hair. + """ + hairColors: [String] + """ + Common skin colors for this species, null if this species does not typically + have skin. + """ + skinColors: [String] + """The language commonly spoken by this species.""" + language: String + """A planet that this species originates from.""" + homeworld: Planet + personConnection(after: String, first: Int, before: String, last: Int): SpeciesPeopleConnection + filmConnection(after: String, first: Int, before: String, last: Int): SpeciesFilmsConnection + """The ISO 8601 date format of the time that this resource was created.""" + created: String + """The ISO 8601 date format of the time that this resource was edited.""" + edited: String + """The ID of an object""" + id: ID! +} - """ - A large mass, planet or planetoid in the Star Wars Universe, at the time of - 0 ABY. - """ - type Planet implements Node { - """The name of this planet.""" - name: String - """The diameter of this planet in kilometers.""" - diameter: Int - """ - The number of standard hours it takes for this planet to complete a single - rotation on its axis. - """ - rotationPeriod: Int - """ - The number of standard days it takes for this planet to complete a single orbit - of its local star. - """ - orbitalPeriod: Int - """ - A number denoting the gravity of this planet, where "1" is normal or 1 standard - G. "2" is twice or 2 standard Gs. "0.5" is half or 0.5 standard Gs. - """ - gravity: String - """The average population of sentient beings inhabiting this planet.""" - population: Float - """The climates of this planet.""" - climates: [String] - """The terrains of this planet.""" - terrains: [String] - """ - The percentage of the planet surface that is naturally occurring water or bodies - of water. - """ - surfaceWater: Float - residentConnection(after: String, first: Int, before: String, last: Int): PlanetResidentsConnection - filmConnection(after: String, first: Int, before: String, last: Int): PlanetFilmsConnection - """The ISO 8601 date format of the time that this resource was created.""" - created: String - """The ISO 8601 date format of the time that this resource was edited.""" - edited: String - """The ID of an object""" - id: ID! - } +""" +A large mass, planet or planetoid in the Star Wars Universe, at the time of +0 ABY. +""" +type Planet implements Node { + """The name of this planet.""" + name: String + """The diameter of this planet in kilometers.""" + diameter: Int + """ + The number of standard hours it takes for this planet to complete a single + rotation on its axis. + """ + rotationPeriod: Int + """ + The number of standard days it takes for this planet to complete a single orbit + of its local star. + """ + orbitalPeriod: Int + """ + A number denoting the gravity of this planet, where "1" is normal or 1 standard + G. "2" is twice or 2 standard Gs. "0.5" is half or 0.5 standard Gs. + """ + gravity: String + """The average population of sentient beings inhabiting this planet.""" + population: Float + """The climates of this planet.""" + climates: [String] + """The terrains of this planet.""" + terrains: [String] + """ + The percentage of the planet surface that is naturally occurring water or bodies + of water. + """ + surfaceWater: Float + residentConnection(after: String, first: Int, before: String, last: Int): PlanetResidentsConnection + filmConnection(after: String, first: Int, before: String, last: Int): PlanetFilmsConnection + """The ISO 8601 date format of the time that this resource was created.""" + created: String + """The ISO 8601 date format of the time that this resource was edited.""" + edited: String + """The ID of an object""" + id: ID! +} - """A connection to a list of items.""" - type PlanetResidentsConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [PlanetResidentsEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - residents: [Person] - } +"""A connection to a list of items.""" +type PlanetResidentsConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [PlanetResidentsEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + residents: [Person] +} - """An edge in a connection.""" - type PlanetResidentsEdge { - """The item at the end of the edge""" - node: Person - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type PlanetResidentsEdge { + """The item at the end of the edge""" + node: Person + """A cursor for use in pagination""" + cursor: String! +} - """An individual person or character within the Star Wars universe.""" - type Person implements Node { - """The name of this person.""" - name: String - """ - The birth year of the person, using the in-universe standard of BBY or ABY - - Before the Battle of Yavin or After the Battle of Yavin. The Battle of Yavin is - a battle that occurs at the end of Star Wars episode IV: A New Hope. - """ - birthYear: String - """ - The eye color of this person. Will be "unknown" if not known or "n/a" if the - person does not have an eye. - """ - eyeColor: String - """ - The gender of this person. Either "Male", "Female" or "unknown", - "n/a" if the person does not have a gender. - """ - gender: String - """ - The hair color of this person. Will be "unknown" if not known or "n/a" if the - person does not have hair. - """ - hairColor: String - """The height of the person in centimeters.""" - height: Int - """The mass of the person in kilograms.""" - mass: Float - """The skin color of this person.""" - skinColor: String - """A planet that this person was born on or inhabits.""" - homeworld: Planet - filmConnection(after: String, first: Int, before: String, last: Int): PersonFilmsConnection - """The species that this person belongs to, or null if unknown.""" - species: Species - starshipConnection(after: String, first: Int, before: String, last: Int): PersonStarshipsConnection - vehicleConnection(after: String, first: Int, before: String, last: Int): PersonVehiclesConnection - """The ISO 8601 date format of the time that this resource was created.""" - created: String - """The ISO 8601 date format of the time that this resource was edited.""" - edited: String - """The ID of an object""" - id: ID! - } +"""An individual person or character within the Star Wars universe.""" +type Person implements Node { + """The name of this person.""" + name: String + """ + The birth year of the person, using the in-universe standard of BBY or ABY - + Before the Battle of Yavin or After the Battle of Yavin. The Battle of Yavin is + a battle that occurs at the end of Star Wars episode IV: A New Hope. + """ + birthYear: String + """ + The eye color of this person. Will be "unknown" if not known or "n/a" if the + person does not have an eye. + """ + eyeColor: String + """ + The gender of this person. Either "Male", "Female" or "unknown", + "n/a" if the person does not have a gender. + """ + gender: String + """ + The hair color of this person. Will be "unknown" if not known or "n/a" if the + person does not have hair. + """ + hairColor: String + """The height of the person in centimeters.""" + height: Int + """The mass of the person in kilograms.""" + mass: Float + """The skin color of this person.""" + skinColor: String + """A planet that this person was born on or inhabits.""" + homeworld: Planet + filmConnection(after: String, first: Int, before: String, last: Int): PersonFilmsConnection + """The species that this person belongs to, or null if unknown.""" + species: Species + starshipConnection(after: String, first: Int, before: String, last: Int): PersonStarshipsConnection + vehicleConnection(after: String, first: Int, before: String, last: Int): PersonVehiclesConnection + """The ISO 8601 date format of the time that this resource was created.""" + created: String + """The ISO 8601 date format of the time that this resource was edited.""" + edited: String + """The ID of an object""" + id: ID! +} - """A connection to a list of items.""" - type PersonFilmsConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [PersonFilmsEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - films: [Film] - } +"""A connection to a list of items.""" +type PersonFilmsConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [PersonFilmsEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + films: [Film] +} - """An edge in a connection.""" - type PersonFilmsEdge { - """The item at the end of the edge""" - node: Film - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type PersonFilmsEdge { + """The item at the end of the edge""" + node: Film + """A cursor for use in pagination""" + cursor: String! +} - """A connection to a list of items.""" - type PersonStarshipsConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [PersonStarshipsEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - starships: [Starship] - } +"""A connection to a list of items.""" +type PersonStarshipsConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [PersonStarshipsEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + starships: [Starship] +} - """An edge in a connection.""" - type PersonStarshipsEdge { - """The item at the end of the edge""" - node: Starship - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type PersonStarshipsEdge { + """The item at the end of the edge""" + node: Starship + """A cursor for use in pagination""" + cursor: String! +} - """A single transport craft that has hyperdrive capability.""" - type Starship implements Node { - """The name of this starship. The common name, such as "Death Star".""" - name: String - """ - The model or official name of this starship. Such as "T-65 X-wing" or "DS-1 - Orbital Battle Station". - """ - model: String - """ - The class of this starship, such as "Starfighter" or "Deep Space Mobile - Battlestation" - """ - starshipClass: String - """The manufacturers of this starship.""" - manufacturers: [String] - """The cost of this starship new, in galactic credits.""" - costInCredits: Float - """The length of this starship in meters.""" - length: Float - """The number of personnel needed to run or pilot this starship.""" - crew: String - """The number of non-essential people this starship can transport.""" - passengers: String - """ - The maximum speed of this starship in atmosphere. null if this starship is - incapable of atmosphering flight. - """ - maxAtmospheringSpeed: Int - """The class of this starships hyperdrive.""" - hyperdriveRating: Float - """ - The Maximum number of Megalights this starship can travel in a standard hour. - A "Megalight" is a standard unit of distance and has never been defined before - within the Star Wars universe. This figure is only really useful for measuring - the difference in speed of starships. We can assume it is similar to AU, the - distance between our Sun (Sol) and Earth. - """ - MGLT: Int - """The maximum number of kilograms that this starship can transport.""" - cargoCapacity: Float - """ - The maximum length of time that this starship can provide consumables for its - entire crew without having to resupply. - """ - consumables: String - pilotConnection(after: String, first: Int, before: String, last: Int): StarshipPilotsConnection - filmConnection(after: String, first: Int, before: String, last: Int): StarshipFilmsConnection - """The ISO 8601 date format of the time that this resource was created.""" - created: String - """The ISO 8601 date format of the time that this resource was edited.""" - edited: String - """The ID of an object""" - id: ID! - } +"""A single transport craft that has hyperdrive capability.""" +type Starship implements Node { + """The name of this starship. The common name, such as "Death Star".""" + name: String + """ + The model or official name of this starship. Such as "T-65 X-wing" or "DS-1 + Orbital Battle Station". + """ + model: String + """ + The class of this starship, such as "Starfighter" or "Deep Space Mobile + Battlestation" + """ + starshipClass: String + """The manufacturers of this starship.""" + manufacturers: [String] + """The cost of this starship new, in galactic credits.""" + costInCredits: Float + """The length of this starship in meters.""" + length: Float + """The number of personnel needed to run or pilot this starship.""" + crew: String + """The number of non-essential people this starship can transport.""" + passengers: String + """ + The maximum speed of this starship in atmosphere. null if this starship is + incapable of atmosphering flight. + """ + maxAtmospheringSpeed: Int + """The class of this starships hyperdrive.""" + hyperdriveRating: Float + """ + The Maximum number of Megalights this starship can travel in a standard hour. + A "Megalight" is a standard unit of distance and has never been defined before + within the Star Wars universe. This figure is only really useful for measuring + the difference in speed of starships. We can assume it is similar to AU, the + distance between our Sun (Sol) and Earth. + """ + MGLT: Int + """The maximum number of kilograms that this starship can transport.""" + cargoCapacity: Float + """ + The maximum length of time that this starship can provide consumables for its + entire crew without having to resupply. + """ + consumables: String + pilotConnection(after: String, first: Int, before: String, last: Int): StarshipPilotsConnection + filmConnection(after: String, first: Int, before: String, last: Int): StarshipFilmsConnection + """The ISO 8601 date format of the time that this resource was created.""" + created: String + """The ISO 8601 date format of the time that this resource was edited.""" + edited: String + """The ID of an object""" + id: ID! +} - """A connection to a list of items.""" - type StarshipPilotsConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [StarshipPilotsEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - pilots: [Person] - } +"""A connection to a list of items.""" +type StarshipPilotsConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [StarshipPilotsEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + pilots: [Person] +} - """An edge in a connection.""" - type StarshipPilotsEdge { - """The item at the end of the edge""" - node: Person - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type StarshipPilotsEdge { + """The item at the end of the edge""" + node: Person + """A cursor for use in pagination""" + cursor: String! +} - """A connection to a list of items.""" - type StarshipFilmsConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [StarshipFilmsEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - films: [Film] - } +"""A connection to a list of items.""" +type StarshipFilmsConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [StarshipFilmsEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + films: [Film] +} - """An edge in a connection.""" - type StarshipFilmsEdge { - """The item at the end of the edge""" - node: Film - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type StarshipFilmsEdge { + """The item at the end of the edge""" + node: Film + """A cursor for use in pagination""" + cursor: String! +} - """A connection to a list of items.""" - type PersonVehiclesConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [PersonVehiclesEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - vehicles: [Vehicle] - } +"""A connection to a list of items.""" +type PersonVehiclesConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [PersonVehiclesEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + vehicles: [Vehicle] +} - """An edge in a connection.""" - type PersonVehiclesEdge { - """The item at the end of the edge""" - node: Vehicle - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type PersonVehiclesEdge { + """The item at the end of the edge""" + node: Vehicle + """A cursor for use in pagination""" + cursor: String! +} - """A single transport craft that does not have hyperdrive capability""" - type Vehicle implements Node { - """ - The name of this vehicle. The common name, such as "Sand Crawler" or "Speeder - bike". - """ - name: String - """ - The model or official name of this vehicle. Such as "All-Terrain Attack - Transport". - """ - model: String - """The class of this vehicle, such as "Wheeled" or "Repulsorcraft".""" - vehicleClass: String - """The manufacturers of this vehicle.""" - manufacturers: [String] - """The cost of this vehicle new, in Galactic Credits.""" - costInCredits: Float - """The length of this vehicle in meters.""" - length: Float - """The number of personnel needed to run or pilot this vehicle.""" - crew: String - """The number of non-essential people this vehicle can transport.""" - passengers: String - """The maximum speed of this vehicle in atmosphere.""" - maxAtmospheringSpeed: Int - """The maximum number of kilograms that this vehicle can transport.""" - cargoCapacity: Float - """ - The maximum length of time that this vehicle can provide consumables for its - entire crew without having to resupply. - """ - consumables: String - pilotConnection(after: String, first: Int, before: String, last: Int): VehiclePilotsConnection - filmConnection(after: String, first: Int, before: String, last: Int): VehicleFilmsConnection - """The ISO 8601 date format of the time that this resource was created.""" - created: String - """The ISO 8601 date format of the time that this resource was edited.""" - edited: String - """The ID of an object""" - id: ID! - } +"""A single transport craft that does not have hyperdrive capability""" +type Vehicle implements Node { + """ + The name of this vehicle. The common name, such as "Sand Crawler" or "Speeder + bike". + """ + name: String + """ + The model or official name of this vehicle. Such as "All-Terrain Attack + Transport". + """ + model: String + """The class of this vehicle, such as "Wheeled" or "Repulsorcraft".""" + vehicleClass: String + """The manufacturers of this vehicle.""" + manufacturers: [String] + """The cost of this vehicle new, in Galactic Credits.""" + costInCredits: Float + """The length of this vehicle in meters.""" + length: Float + """The number of personnel needed to run or pilot this vehicle.""" + crew: String + """The number of non-essential people this vehicle can transport.""" + passengers: String + """The maximum speed of this vehicle in atmosphere.""" + maxAtmospheringSpeed: Int + """The maximum number of kilograms that this vehicle can transport.""" + cargoCapacity: Float + """ + The maximum length of time that this vehicle can provide consumables for its + entire crew without having to resupply. + """ + consumables: String + pilotConnection(after: String, first: Int, before: String, last: Int): VehiclePilotsConnection + filmConnection(after: String, first: Int, before: String, last: Int): VehicleFilmsConnection + """The ISO 8601 date format of the time that this resource was created.""" + created: String + """The ISO 8601 date format of the time that this resource was edited.""" + edited: String + """The ID of an object""" + id: ID! +} - """A connection to a list of items.""" - type VehiclePilotsConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [VehiclePilotsEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - pilots: [Person] - } +"""A connection to a list of items.""" +type VehiclePilotsConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [VehiclePilotsEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + pilots: [Person] +} - """An edge in a connection.""" - type VehiclePilotsEdge { - """The item at the end of the edge""" - node: Person - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type VehiclePilotsEdge { + """The item at the end of the edge""" + node: Person + """A cursor for use in pagination""" + cursor: String! +} - """A connection to a list of items.""" - type VehicleFilmsConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [VehicleFilmsEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - films: [Film] - } +"""A connection to a list of items.""" +type VehicleFilmsConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [VehicleFilmsEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + films: [Film] +} - """An edge in a connection.""" - type VehicleFilmsEdge { - """The item at the end of the edge""" - node: Film - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type VehicleFilmsEdge { + """The item at the end of the edge""" + node: Film + """A cursor for use in pagination""" + cursor: String! +} - """A connection to a list of items.""" - type PlanetFilmsConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [PlanetFilmsEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - films: [Film] - } +"""A connection to a list of items.""" +type PlanetFilmsConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [PlanetFilmsEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + films: [Film] +} - """An edge in a connection.""" - type PlanetFilmsEdge { - """The item at the end of the edge""" - node: Film - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type PlanetFilmsEdge { + """The item at the end of the edge""" + node: Film + """A cursor for use in pagination""" + cursor: String! +} - """A connection to a list of items.""" - type SpeciesPeopleConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [SpeciesPeopleEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - people: [Person] - } +"""A connection to a list of items.""" +type SpeciesPeopleConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [SpeciesPeopleEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + people: [Person] +} - """An edge in a connection.""" - type SpeciesPeopleEdge { - """The item at the end of the edge""" - node: Person - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type SpeciesPeopleEdge { + """The item at the end of the edge""" + node: Person + """A cursor for use in pagination""" + cursor: String! +} - """A connection to a list of items.""" - type SpeciesFilmsConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [SpeciesFilmsEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - films: [Film] - } +"""A connection to a list of items.""" +type SpeciesFilmsConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [SpeciesFilmsEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + films: [Film] +} - """An edge in a connection.""" - type SpeciesFilmsEdge { - """The item at the end of the edge""" - node: Film - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type SpeciesFilmsEdge { + """The item at the end of the edge""" + node: Film + """A cursor for use in pagination""" + cursor: String! +} - """A connection to a list of items.""" - type FilmStarshipsConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [FilmStarshipsEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - starships: [Starship] - } +"""A connection to a list of items.""" +type FilmStarshipsConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [FilmStarshipsEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + starships: [Starship] +} - """An edge in a connection.""" - type FilmStarshipsEdge { - """The item at the end of the edge""" - node: Starship - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type FilmStarshipsEdge { + """The item at the end of the edge""" + node: Starship + """A cursor for use in pagination""" + cursor: String! +} - """A connection to a list of items.""" - type FilmVehiclesConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [FilmVehiclesEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - vehicles: [Vehicle] - } +"""A connection to a list of items.""" +type FilmVehiclesConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [FilmVehiclesEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + vehicles: [Vehicle] +} - """An edge in a connection.""" - type FilmVehiclesEdge { - """The item at the end of the edge""" - node: Vehicle - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type FilmVehiclesEdge { + """The item at the end of the edge""" + node: Vehicle + """A cursor for use in pagination""" + cursor: String! +} - """A connection to a list of items.""" - type FilmCharactersConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [FilmCharactersEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - characters: [Person] - } +"""A connection to a list of items.""" +type FilmCharactersConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [FilmCharactersEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + characters: [Person] +} - """An edge in a connection.""" - type FilmCharactersEdge { - """The item at the end of the edge""" - node: Person - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type FilmCharactersEdge { + """The item at the end of the edge""" + node: Person + """A cursor for use in pagination""" + cursor: String! +} - """A connection to a list of items.""" - type FilmPlanetsConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [FilmPlanetsEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - planets: [Planet] - } +"""A connection to a list of items.""" +type FilmPlanetsConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [FilmPlanetsEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + planets: [Planet] +} - """An edge in a connection.""" - type FilmPlanetsEdge { - """The item at the end of the edge""" - node: Planet - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type FilmPlanetsEdge { + """The item at the end of the edge""" + node: Planet + """A cursor for use in pagination""" + cursor: String! +} - """A connection to a list of items.""" - type PeopleConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [PeopleEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - people: [Person] - } +"""A connection to a list of items.""" +type PeopleConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [PeopleEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + people: [Person] +} - """An edge in a connection.""" - type PeopleEdge { - """The item at the end of the edge""" - node: Person - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type PeopleEdge { + """The item at the end of the edge""" + node: Person + """A cursor for use in pagination""" + cursor: String! +} - """A connection to a list of items.""" - type PlanetsConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [PlanetsEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - planets: [Planet] - } +"""A connection to a list of items.""" +type PlanetsConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [PlanetsEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + planets: [Planet] +} - """An edge in a connection.""" - type PlanetsEdge { - """The item at the end of the edge""" - node: Planet - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type PlanetsEdge { + """The item at the end of the edge""" + node: Planet + """A cursor for use in pagination""" + cursor: String! +} - """A connection to a list of items.""" - type SpeciesConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [SpeciesEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - species: [Species] - } +"""A connection to a list of items.""" +type SpeciesConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [SpeciesEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + species: [Species] +} - """An edge in a connection.""" - type SpeciesEdge { - """The item at the end of the edge""" - node: Species - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type SpeciesEdge { + """The item at the end of the edge""" + node: Species + """A cursor for use in pagination""" + cursor: String! +} - """A connection to a list of items.""" - type StarshipsConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [StarshipsEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - starships: [Starship] - } +"""A connection to a list of items.""" +type StarshipsConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [StarshipsEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + starships: [Starship] +} - """An edge in a connection.""" - type StarshipsEdge { - """The item at the end of the edge""" - node: Starship - """A cursor for use in pagination""" - cursor: String! - } +"""An edge in a connection.""" +type StarshipsEdge { + """The item at the end of the edge""" + node: Starship + """A cursor for use in pagination""" + cursor: String! +} - """A connection to a list of items.""" - type VehiclesConnection { - """Information to aid in pagination.""" - pageInfo: PageInfo! - """A list of edges.""" - edges: [VehiclesEdge] - """ - A count of the total number of objects in this connection, ignoring pagination. - This allows a client to fetch the first five objects by passing "5" as the - argument to "first", then fetch the total count so it could display "5 of 83", - for example. - """ - totalCount: Int - """ - A list of all of the objects returned in the connection. This is a convenience - field provided for quickly exploring the API; rather than querying for - "{ edges { node } }" when no edge data is needed, this field can be be used - instead. Note that when clients like Relay need to fetch the "cursor" field on - the edge to enable efficient pagination, this shortcut cannot be used, and the - full "{ edges { node } }" version should be used instead. - """ - vehicles: [Vehicle] - } +"""A connection to a list of items.""" +type VehiclesConnection { + """Information to aid in pagination.""" + pageInfo: PageInfo! + """A list of edges.""" + edges: [VehiclesEdge] + """ + A count of the total number of objects in this connection, ignoring pagination. + This allows a client to fetch the first five objects by passing "5" as the + argument to "first", then fetch the total count so it could display "5 of 83", + for example. + """ + totalCount: Int + """ + A list of all of the objects returned in the connection. This is a convenience + field provided for quickly exploring the API; rather than querying for + "{ edges { node } }" when no edge data is needed, this field can be be used + instead. Note that when clients like Relay need to fetch the "cursor" field on + the edge to enable efficient pagination, this shortcut cannot be used, and the + full "{ edges { node } }" version should be used instead. + """ + vehicles: [Vehicle] +} - """An edge in a connection.""" - type VehiclesEdge { - """The item at the end of the edge""" - node: Vehicle - """A cursor for use in pagination""" - cursor: String! - }" - `); +"""An edge in a connection.""" +type VehiclesEdge { + """The item at the end of the edge""" + node: Vehicle + """A cursor for use in pagination""" + cursor: String! +}`, + ); }); it('should handle queries', () => { - const [{ schema }] = loader.loadSync( - `https://swapi-graphql.netlify.app/.netlify/functions/index`, - {}, - ); + const [{ schema }] = loader.loadSync(TEST_API, {}); const result = graphqlSync({ schema: schema!, source: /* GraphQL */ ` @@ -1031,14 +1026,12 @@ describe('sync', () => { } `, }); - expect(result).toMatchInlineSnapshot(` - { - "data": { - "allFilms": { - "totalCount": 6, - }, + expect(result).toEqual({ + data: { + allFilms: { + totalCount: 6, }, - } - `); + }, + }); }); }); diff --git a/packages/loaders/url/tests/test-utils.ts b/packages/loaders/url/tests/test-utils.ts index 73cb53ba369..e21915d96d6 100644 --- a/packages/loaders/url/tests/test-utils.ts +++ b/packages/loaders/url/tests/test-utils.ts @@ -110,6 +110,7 @@ export const testResolvers = { testMessage: { subscribe: async function* () { for (let i = 0; i < 3; i++) { + await sleep(100); yield { number: i }; } }, diff --git a/packages/loaders/url/tests/url-loader-browser.spec.ts b/packages/loaders/url/tests/url-loader-browser.spec.ts index 59bcc0c91d5..d33e5b3c61c 100644 --- a/packages/loaders/url/tests/url-loader-browser.spec.ts +++ b/packages/loaders/url/tests/url-loader-browser.spec.ts @@ -1,115 +1,135 @@ import fs from 'fs'; import http from 'http'; -import path from 'path'; +import { AddressInfo, Socket } from 'net'; +import { platform, tmpdir } from 'os'; +import path, { join } from 'path'; +import { setTimeout } from 'timers/promises'; import { parse } from 'graphql'; -import { createSchema, createYoga } from 'graphql-yoga'; +import { createSchema, createYoga, Repeater } from 'graphql-yoga'; import puppeteer, { Browser, Page } from 'puppeteer'; import webpack, { Stats } from 'webpack'; import { useEngine } from '@envelop/core'; import { normalizedExecutor } from '@graphql-tools/executor'; -import { ExecutionResult } from '@graphql-tools/utils'; +import { createDeferred, ExecutionResult } from '@graphql-tools/utils'; import { useDeferStream } from '@graphql-yoga/plugin-defer-stream'; +import { describeIf, testIf } from '../../../testing/utils.js'; import type * as UrlLoaderModule from '../src/index.js'; -import { sleep } from './test-utils.js'; - -describe('[url-loader] webpack bundle compat', () => { - if (process.env['TEST_BROWSER']) { - let httpServer: http.Server; - let browser: Browser; - let page: Page; - let resolveOnReturn: VoidFunction; - const timeouts = new Set(); - const fakeAsyncIterable = { - [Symbol.asyncIterator]() { - return this; - }, - next: () => - sleep(300, timeout => timeouts.add(timeout)).then(() => ({ value: true, done: false })), - return: () => { - resolveOnReturn(); - timeouts.forEach(clearTimeout); - return Promise.resolve({ done: true }); - }, - }; - const port = 8712; - const httpAddress = 'http://localhost:8712'; - const webpackBundlePath = path.resolve(__dirname, 'webpack.js'); - const yoga = createYoga({ - schema: createSchema({ - typeDefs: /* GraphQL */ ` - type Query { - foo: Boolean - countdown(from: Int): [Int] - fakeStream: [Boolean] - } - type Subscription { - foo: Boolean - } - `, - resolvers: { - Query: { - foo: () => new Promise(resolve => setTimeout(() => resolve(true), 300)), - countdown: async function* (_, { from }) { - for (let i = from; i >= 0; i--) { - yield i; - await new Promise(resolve => setTimeout(resolve, 100)); - } - }, - fakeStream: () => fakeAsyncIterable, + +declare global { + interface Window { + GraphQLToolsUrlLoader: typeof UrlLoaderModule; + } +} + +describeIf(platform() !== 'win32')('[url-loader] webpack bundle compat', () => { + let httpServer: http.Server; + let browser: Browser; + let page: Page; + const fakeAsyncIterableReturnDeferred = createDeferred(); + const yoga = createYoga({ + schema: createSchema({ + typeDefs: /* GraphQL */ ` + type Query { + foo: Boolean + countdown(from: Int): [Int] + fakeStream: [Boolean] + } + type Subscription { + foo: Boolean + } + `, + resolvers: { + Query: { + foo: () => setTimeout(300).then(() => true), + countdown: async function* (_, { from }) { + for (let i = from; i >= 0; i--) { + yield i; + await setTimeout(100); + } }, - Subscription: { - foo: { - async *subscribe() { - await new Promise(resolve => setTimeout(resolve, 300)); - yield { foo: true }; - await new Promise(resolve => setTimeout(resolve, 300)); - yield { foo: false }; - }, + fakeStream: () => + new Repeater(function (push, stop) { + let timeout: ReturnType; + function tick() { + push(true).finally(() => { + timeout = globalThis.setTimeout(tick, 300); + }); + } + tick(); + stop.finally(() => { + if (timeout) { + clearTimeout(timeout); + } + fakeAsyncIterableReturnDeferred.resolve(); + }); + }), + }, + Subscription: { + foo: { + async *subscribe() { + await setTimeout(300); + yield { foo: true }; + await setTimeout(300); + yield { foo: false }; }, }, }, + }, + }), + plugins: [ + useEngine({ + execute: normalizedExecutor, + subscribe: normalizedExecutor, }), - plugins: [ - useEngine({ - execute: normalizedExecutor, - subscribe: normalizedExecutor, - }), - useDeferStream(), - ], - }); - - beforeAll(async () => { - // bundle webpack js - const stats = await new Promise((resolve, reject) => { - webpack( - { - mode: 'development', - entry: path.resolve(__dirname, '..', 'dist', 'esm', 'index.js'), - output: { - path: path.resolve(__dirname), - filename: 'webpack.js', - libraryTarget: 'umd', - library: 'GraphQLToolsUrlLoader', - umdNamedDefine: true, - }, - plugins: [ - new webpack.DefinePlugin({ - setImmediate: 'setTimeout', - }), - ], + useDeferStream(), + ], + }); + + let httpAddress: string; + + const sockets = new Set(); + + const webpackBundleFileName = 'webpack.js'; + const webpackBundleDir = join(tmpdir(), 'graphql-tools-url-loader'); + const webpackBundleFullPath = path.resolve(webpackBundleDir, webpackBundleFileName); + + beforeAll(async () => { + // bundle webpack js + const stats = await new Promise((resolve, reject) => { + const compiler = webpack( + { + mode: 'development', + entry: path.resolve(__dirname, '..', 'dist', 'esm', 'index.js'), + output: { + path: webpackBundleDir, + filename: webpackBundleFileName, + libraryTarget: 'umd', + library: 'GraphQLToolsUrlLoader', + umdNamedDefine: true, }, - (err, stats) => { - if (err) return reject(err); - resolve(stats); - }, - ); - }); + }, + (err, stats) => { + if (err) { + reject(err); + } else { + compiler.close(err => { + if (err) { + reject(err); + } else { + resolve(stats); + } + }); + } + }, + ); + }); - if (stats?.hasErrors()) { - console.error(stats.toString({ colors: true })); - } + if (stats?.hasErrors()) { + throw stats.toString({ colors: true }); + } - httpServer = http.createServer((req, res) => { + httpServer = http + .createServer((req, res) => { if (req.method === 'GET' && req.url === '/') { res.statusCode = 200; res.writeHead(200, { @@ -120,7 +140,7 @@ describe('[url-loader] webpack bundle compat', () => { Url Loader Test - + `); @@ -128,258 +148,295 @@ describe('[url-loader] webpack bundle compat', () => { return; } - if (req.method === 'GET' && req.url === '/webpack.js') { - const stat = fs.statSync(webpackBundlePath); + if (req.method === 'GET' && req.url === '/' + webpackBundleFileName) { + const stat = fs.statSync(webpackBundleFullPath); res.writeHead(200, { 'Content-Type': 'application/javascript', 'Content-Length': stat.size, }); - const readStream = fs.createReadStream(webpackBundlePath); + const readStream = fs.createReadStream(webpackBundleFullPath); readStream.pipe(res); return; } yoga(req, res); + }) + .on('connection', socket => { + sockets.add(socket); + socket.once('close', () => { + sockets.delete(socket); + }); }); - await new Promise(resolve => { - httpServer.listen(port, () => { - resolve(); - }); + const { port } = await new Promise(resolve => { + httpServer.listen(0, () => { + resolve(httpServer.address() as AddressInfo); }); - browser = await puppeteer.launch({ - // headless: false, - args: ['--no-sandbox', '--disable-setuid-sandbox'], + }); + httpAddress = `http://localhost:${port}`; + browser = await puppeteer.launch({ + // headless: false, + args: ['--no-sandbox', '--disable-setuid-sandbox', '--incognito'], + }); + page = await browser.newPage(); + await page.goto(httpAddress); + }); + + afterAll(async () => { + if (page) { + await page.close().catch(e => { + console.warn('Error closing page', e, 'ignoring'); }); - page = await browser.newPage(); - await page.goto(httpAddress); - }, 90_000); - - afterAll(async () => { + } + if (browser) { await browser.close(); - await new Promise((resolve, reject) => { + } + await new Promise((resolve, reject) => { + for (const socket of sockets) { + socket.destroy(); + } + if (httpServer) { + if (!globalThis.Bun) { + httpServer.closeAllConnections(); + } httpServer.close(err => { if (err) return reject(err); resolve(); }); - }); - await fs.promises.unlink(webpackBundlePath); + } else { + resolve(); + } }); - - it('can be exposed as a global', async () => { - const result = await page.evaluate(async () => { - return typeof (window as any)['GraphQLToolsUrlLoader']; - }); - expect(result).toEqual('object'); + if (fs.existsSync(webpackBundleFullPath)) { + await fs.promises.unlink(webpackBundleFullPath); + } + }); + + it('can be exposed as a global', async () => { + const result = await page.evaluate(() => { + return typeof window.GraphQLToolsUrlLoader; }); + expect(result).toEqual('object'); + }); - it('can be used for executing a basic http query operation', async () => { - const expectedData = { - data: { - foo: true, - }, - }; - const document = parse(/* GraphQL */ ` - query { + it('can be used for executing a basic http query operation', async () => { + const expectedData = { + data: { + foo: true, + }, + }; + const document = parse(/* GraphQL */ ` + query { + foo + } + `); + + const result = await page.evaluate( + (httpAddress, document) => { + const module = window.GraphQLToolsUrlLoader; + const loader = new module.UrlLoader(); + const executor = loader.getExecutorAsync(httpAddress + '/graphql'); + return executor({ + document, + }); + }, + httpAddress, + document, + ); + expect(result).toStrictEqual(expectedData); + }); + + it('handles executing a @defer operation using multipart responses', async () => { + const document = parse(/* GraphQL */ ` + query { + ... on Query @defer { foo } - `); - - const result = await page.evaluate( - async (httpAddress, document) => { - const module = (window as any)['GraphQLToolsUrlLoader'] as typeof UrlLoaderModule; - const loader = new module.UrlLoader(); - const executor = loader.getExecutorAsync(httpAddress + '/graphql'); - const result = await executor({ - document, - }); - return result; - }, - httpAddress, - document as any, - ); - expect(result).toStrictEqual(expectedData); - }); - - it('handles executing a @defer operation using multipart responses', async () => { - const document = parse(/* GraphQL */ ` - query { - ... on Query @defer { - foo - } + } + `); + + const results = await page.evaluate( + async (httpAddress, document) => { + const module = window.GraphQLToolsUrlLoader; + const loader = new module.UrlLoader(); + const executor = loader.getExecutorAsync(httpAddress + '/graphql'); + const result = await executor({ + document, + }); + if (!(Symbol.asyncIterator in result)) { + throw new Error('Expected an async iterator'); } - `); - - const results = await page.evaluate( - async (httpAddress, document) => { - const module = (window as any)['GraphQLToolsUrlLoader'] as typeof UrlLoaderModule; - const loader = new module.UrlLoader(); - const executor = loader.getExecutorAsync(httpAddress + '/graphql'); - const result = await executor({ - document, - }); - const results = []; - for await (const currentResult of result as any[]) { - if (currentResult) { - results.push(JSON.parse(JSON.stringify(currentResult))); - } + const results: ExecutionResult[] = []; + for await (const currentResult of result) { + if (currentResult) { + results.push(JSON.parse(JSON.stringify(currentResult))); } - return results; - }, - httpAddress, - document as any, - ); - expect(results).toEqual([{ data: {} }, { data: { foo: true } }]); - }); - - it('handles executing a @stream operation using multipart responses', async () => { - const document = parse(/* GraphQL */ ` - query { - countdown(from: 3) @stream } - `); - - const results = await page.evaluate( - async (httpAddress, document) => { - const module = (window as any)['GraphQLToolsUrlLoader'] as typeof UrlLoaderModule; - const loader = new module.UrlLoader(); - const executor = loader.getExecutorAsync(httpAddress + '/graphql'); - const result = await executor({ - document, - }); - const results = []; - for await (const currentResult of result as any[]) { - if (currentResult) { - results.push(JSON.parse(JSON.stringify(currentResult))); - } + return results; + }, + httpAddress, + document, + ); + expect(results).toEqual([{ data: {} }, { data: { foo: true } }]); + }); + + it('handles executing a @stream operation using multipart responses', async () => { + const document = parse(/* GraphQL */ ` + query { + countdown(from: 3) @stream + } + `); + + const results = await page.evaluate( + async (httpAddress, document) => { + const module = window.GraphQLToolsUrlLoader; + const loader = new module.UrlLoader(); + const executor = loader.getExecutorAsync(httpAddress + '/graphql'); + const result = await executor({ + document, + }); + if (!(Symbol.asyncIterator in result)) { + throw new Error('Expected an async iterator'); + } + const results: ExecutionResult[] = []; + for await (const currentResult of result) { + if (currentResult) { + results.push(JSON.parse(JSON.stringify(currentResult))); } - return results; - }, - httpAddress, - document as any, - ); - - expect(results[0]).toEqual({ data: { countdown: [] } }); - expect(results[1]).toEqual({ data: { countdown: [3] } }); - expect(results[2]).toEqual({ data: { countdown: [3, 2] } }); - expect(results[3]).toEqual({ data: { countdown: [3, 2, 1] } }); - expect(results[4]).toEqual({ data: { countdown: [3, 2, 1, 0] } }); - }); + } + return results; + }, + httpAddress, + document, + ); + + expect(results[0]).toEqual({ data: { countdown: [] } }); + expect(results[1]).toEqual({ data: { countdown: [3] } }); + expect(results[2]).toEqual({ data: { countdown: [3, 2] } }); + expect(results[3]).toEqual({ data: { countdown: [3, 2, 1] } }); + expect(results[4]).toEqual({ data: { countdown: [3, 2, 1, 0] } }); + }); + + it('handles SSE subscription operations', async () => { + const expectedDatas = [{ data: { foo: true } }, { data: { foo: false } }]; + + const document = parse(/* GraphQL */ ` + subscription { + foo + } + `); + + const result = await page.evaluate( + async (httpAddress, document) => { + const module = window.GraphQLToolsUrlLoader; + const loader = new module.UrlLoader(); + const executor = loader.getExecutorAsync(httpAddress + '/graphql', { + subscriptionsProtocol: module.SubscriptionProtocol.SSE, + }); + const result = await executor({ + document, + }); + if (!(Symbol.asyncIterator in result)) { + throw new Error('Expected an async iterator'); + } + const results: ExecutionResult[] = []; + for await (const currentResult of result) { + results.push(currentResult); + } + return results; + }, + httpAddress, + document, + ); + expect(result).toStrictEqual(expectedDatas); + }); + it('terminates SSE subscriptions when calling return on the AsyncIterator', async () => { + const sentDatas = [{ data: { foo: true } }, { data: { foo: false } }, { data: { foo: true } }]; + + const document = parse(/* GraphQL */ ` + subscription { + foo + } + `); - it('handles SSE subscription operations', async () => { - const expectedDatas = [{ data: { foo: true } }, { data: { foo: false } }]; + const pageerrorFn = jest.fn(); + page.on('pageerror', pageerrorFn); - const document = parse(/* GraphQL */ ` - subscription { - foo + const result = await page.evaluate( + async (httpAddress, document) => { + const module = window.GraphQLToolsUrlLoader; + const loader = new module.UrlLoader(); + const executor = loader.getExecutorAsync(httpAddress + '/graphql', { + subscriptionsProtocol: module.SubscriptionProtocol.SSE, + }); + const result = await executor({ + document, + }); + if (!(Symbol.asyncIterator in result)) { + throw new Error('Expected an async iterator'); } - `); - - const result = await page.evaluate( - async (httpAddress, document) => { - const module = (window as any)['GraphQLToolsUrlLoader'] as typeof UrlLoaderModule; - const loader = new module.UrlLoader(); - const executor = loader.getExecutorAsync(httpAddress + '/graphql', { - subscriptionsProtocol: module.SubscriptionProtocol.SSE, - }); - const result = await executor({ - document, - }); - const results = []; - for await (const currentResult of result as AsyncIterable) { - results.push(currentResult); + const results: ExecutionResult[] = []; + for await (const currentResult of result) { + results.push(currentResult); + if (results.length === 2) { + break; } - return results; - }, - httpAddress, - document as any, - ); - expect(result).toStrictEqual(expectedDatas); - }); - it('terminates SSE subscriptions when calling return on the AsyncIterator', async () => { - const sentDatas = [ - { data: { foo: true } }, - { data: { foo: false } }, - { data: { foo: true } }, - ]; - - const document = parse(/* GraphQL */ ` - subscription { - foo } - `); - - const pageerrorFn = jest.fn(); - page.on('pageerror', pageerrorFn); - - const result = await page.evaluate( - async (httpAddress, document) => { - const module = (window as any)['GraphQLToolsUrlLoader'] as typeof UrlLoaderModule; - const loader = new module.UrlLoader(); - const executor = loader.getExecutorAsync(httpAddress + '/graphql', { - subscriptionsProtocol: module.SubscriptionProtocol.SSE, - }); - const result = (await executor({ - document, - })) as AsyncIterableIterator; - const results = []; - for await (const currentResult of result) { - results.push(currentResult); - if (results.length === 2) { - break; - } + return results; + }, + httpAddress, + document, + ); + + expect(result).toStrictEqual(sentDatas.slice(0, 2)); + + // no uncaught errors should be reported (browsers raise errors when canceling requests) + expect(pageerrorFn).not.toBeCalled(); + }); + testIf(!globalThis.Bun)('terminates stream correctly', async () => { + const document = parse(/* GraphQL */ ` + query { + fakeStream @stream + } + `); + + const pageerrorFn = jest.fn(); + page.once('pageerror', pageerrorFn); + + const currentResult: ExecutionResult = await page.evaluate( + async (httpAddress, document) => { + const module = window.GraphQLToolsUrlLoader; + const loader = new module.UrlLoader(); + const executor = loader.getExecutorAsync(httpAddress + '/graphql'); + const result = await executor({ + document, + }); + if (!(Symbol.asyncIterator in result)) { + throw new Error('Expected an async iterator'); + } + for await (const currentResult of result) { + if (currentResult?.data?.fakeStream?.length > 1) { + return JSON.parse(JSON.stringify(currentResult)); } - return results; - }, - httpAddress, - document as any, - ); - - expect(result).toStrictEqual(sentDatas.slice(0, 2)); - - // no uncaught errors should be reported (browsers raise errors when canceling requests) - expect(pageerrorFn).not.toBeCalled(); - }); - it('terminates stream correctly', async () => { - const document = parse(/* GraphQL */ ` - query { - fakeStream @stream } - `); + }, + httpAddress, + document, + ); - const pageerrorFn = jest.fn(); - page.on('pageerror', pageerrorFn); + await fakeAsyncIterableReturnDeferred.promise; - const returnPromise$ = new Promise(resolve => { - resolveOnReturn = resolve; - }); + page.off('pageerror', pageerrorFn); - await page.evaluate( - async (httpAddress, document) => { - const module = (window as any)['GraphQLToolsUrlLoader'] as typeof UrlLoaderModule; - const loader = new module.UrlLoader(); - const executor = loader.getExecutorAsync(httpAddress + '/graphql'); - const result = (await executor({ - document, - })) as AsyncIterableIterator; - for await (const currentResult of result) { - if (currentResult?.data?.fakeStream?.length > 1) { - break; - } - } - }, - httpAddress, - document as any, - ); + // no uncaught errors should be reported (browsers raise errors when canceling requests) + expect(pageerrorFn).not.toHaveBeenCalled(); - await returnPromise$; - - // no uncaught errors should be reported (browsers raise errors when canceling requests) - expect(pageerrorFn).not.toBeCalled(); + expect(currentResult).toEqual({ + data: { + fakeStream: [true, true], + }, }); - } else { - it('dummy', () => {}); - } + }); }); diff --git a/packages/loaders/url/tests/url-loader.spec.ts b/packages/loaders/url/tests/url-loader.spec.ts index 5d76c56fcc4..c69ecad0c3d 100644 --- a/packages/loaders/url/tests/url-loader.spec.ts +++ b/packages/loaders/url/tests/url-loader.spec.ts @@ -1,5 +1,6 @@ import '../../../testing/to-be-similar-gql-doc'; import http from 'http'; +import { AddressInfo } from 'net'; import { getIntrospectionQuery, getOperationAST, @@ -8,11 +9,11 @@ import { print, } from 'graphql'; import { createHandler } from 'graphql-sse/lib/use/http'; -import { useServer } from 'graphql-ws/lib/use/ws'; +import { useServer } from 'graphql-ws/use/ws'; import { SubscriptionServer } from 'subscriptions-transport-ws'; -import { Server as WSServer } from 'ws'; +import { WebSocketServer } from 'ws'; import { execute, isIncrementalResult, subscribe } from '@graphql-tools/executor'; -import { AsyncFetchFn } from '@graphql-tools/executor-http'; +import type { AsyncFetchFn } from '@graphql-tools/executor-http'; import { loadSchema } from '@graphql-tools/load'; import { ExecutionResult, printSchemaWithDirectives } from '@graphql-tools/utils'; import { Headers, Response } from '@whatwg-node/fetch'; @@ -33,6 +34,7 @@ describe('Schema URL Loader', () => { afterEach(async () => { if (httpServer !== undefined) { + httpServer.closeAllConnections(); await new Promise(resolve => httpServer.close(() => resolve())); } }); @@ -365,7 +367,7 @@ describe('Schema URL Loader', () => { res.end(); }); - const wsServer = new WSServer({ + const wsServer = new WebSocketServer({ server: httpServer, path: '/graphql', }); @@ -472,19 +474,21 @@ describe('Schema URL Loader', () => { subscriptionServer.close(); }); it('should handle subscriptions - graphql-sse', async () => { - const testUrl = 'http://localhost:8081/graphql'; + httpServer = http.createServer( + createHandler({ + schema: testSchema, + }), + ); + await new Promise(resolve => httpServer.listen(0, resolve)); + + const port = (httpServer.address() as AddressInfo).port; + + const testUrl = `http://localhost:${port}/graphql`; const customFetch: AsyncFetchFn = async (url, options) => { if (String(options?.body).includes('IntrospectionQuery')) { - return new Response( - JSON.stringify({ - data: introspectionFromSchema(testSchema), - }), - { - headers: { - 'content-type': 'application/json', - }, - }, - ); + return Response.json({ + data: introspectionFromSchema(testSchema), + }); } return defaultAsyncFetch(url, options); }; @@ -493,14 +497,6 @@ describe('Schema URL Loader', () => { customFetch, subscriptionsProtocol: SubscriptionProtocol.GRAPHQL_SSE, }); - - httpServer = http.createServer( - createHandler({ - schema: testSchema, - }), - ); - await new Promise(resolve => httpServer.listen(8081, resolve)); - assertNonMaybe(schema); const asyncIterable = (await subscribe({ schema, @@ -577,18 +573,18 @@ describe('Schema URL Loader', () => { expect(result?.data?.['foo']?.bar?.[0]?.id).toBe('BAR'); }); it('should return errors correctly if fetch fails', async () => { - const executor = loader.getExecutorAsync('http://127.0.0.1:9777/graphql'); + const executor = loader.getExecutorAsync('http://test.test/graphql'); - const result = (await executor({ + const result = await executor({ document: parse(/* GraphQL */ ` query TestQuery { a } `), - })) as ExecutionResult; - expect(result.data).toBeUndefined(); - expect(result.errors).toBeDefined(); - expect(result.errors?.[0].message).toContain('127.0.0.1:9777'); + }); + expect(result).toEqual({ + errors: expect.any(Array), + }); }); it('should not accept invalid protocols', async () => { const testUrl = 'myprotocol://localhost:8081/graphql'; diff --git a/packages/loaders/url/tests/yoga-compat.spec.ts b/packages/loaders/url/tests/yoga-compat.spec.ts index 6ba26d36149..1eacf4d8ba7 100644 --- a/packages/loaders/url/tests/yoga-compat.spec.ts +++ b/packages/loaders/url/tests/yoga-compat.spec.ts @@ -1,4 +1,5 @@ import http, { createServer } from 'http'; +import { Socket } from 'net'; import { parse } from 'graphql'; import { createSchema, createYoga } from 'graphql-yoga'; import { useEngine } from '@envelop/core'; @@ -8,19 +9,10 @@ import { ExecutionResult } from '@graphql-tools/utils'; import { useDeferStream } from '@graphql-yoga/plugin-defer-stream'; import { LiveExecutionResult } from '@n1ru4l/graphql-live-query'; import { InMemoryLiveQueryStore } from '@n1ru4l/in-memory-live-query-store'; +import { testIf } from '../../../../packages/testing/utils'; import { SubscriptionProtocol, UrlLoader } from '../src'; import { assertAsyncIterable, sleep } from './test-utils'; -if (!globalThis.DOMException) { - // @ts-expect-error DOMException is not defined in NodeJS 16 - globalThis.DOMException = class DOMException extends Error { - constructor(message: string, name: string) { - super(message); - this.name = name; - } - }; -} - describe('Yoga Compatibility', () => { jest.setTimeout(10000); const loader = new UrlLoader(); @@ -73,6 +65,7 @@ describe('Yoga Compatibility', () => { return Promise.resolve({ done: true }); }, }; + const sockets = new Set(); beforeAll(async () => { const yoga = createYoga({ schema: createSchema({ @@ -155,12 +148,22 @@ describe('Yoga Compatibility', () => { } } active = true; + httpServer.on('connection', socket => { + sockets.add(socket); + socket.on('close', () => { + sockets.delete(socket); + }); + }); pump(); }); afterAll(async () => { active = false; + for (const socket of sockets) { + socket.destroy(); + } if (httpServer !== undefined) { + httpServer.closeAllConnections(); await new Promise(resolve => httpServer.close(() => resolve())); } await sleep(1000); @@ -314,7 +317,7 @@ describe('Yoga Compatibility', () => { } } }); - it('terminates stream queries correctly', async () => { + testIf(!globalThis.Bun)('terminates stream queries correctly', async () => { const executor = loader.getExecutorAsync(serverPath); const result = await executor({ document: parse(/* GraphQL */ ` diff --git a/packages/merge/CHANGELOG.md b/packages/merge/CHANGELOG.md index a51285aac7e..a44d20fc86f 100644 --- a/packages/merge/CHANGELOG.md +++ b/packages/merge/CHANGELOG.md @@ -1,5 +1,138 @@ # @graphql-tools/merge +## 9.0.24 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + +## 9.0.23 + +### Patch Changes + +- [#7028](https://github.com/ardatan/graphql-tools/pull/7028) + [`4899c62`](https://github.com/ardatan/graphql-tools/commit/4899c62ee4365c518df7f8cd2a897c6132f09f45) + Thanks [@ardatan](https://github.com/ardatan)! - Prevent prototype polluting assignment + +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + +## 9.0.22 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + +## 9.0.21 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + +## 9.0.20 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + +## 9.0.19 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + +## 9.0.18 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + +## 9.0.17 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + +## 9.0.16 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + +## 9.0.15 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + +## 9.0.14 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + +## 9.0.13 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + +## 9.0.12 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/utils@10.6.2 + +## 9.0.11 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + +## 9.0.10 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + ## 9.0.9 ### Patch Changes diff --git a/packages/merge/package.json b/packages/merge/package.json index b8644dab926..1e1b578c0e7 100644 --- a/packages/merge/package.json +++ b/packages/merge/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/merge", - "version": "9.0.9", + "version": "9.0.24", "type": "module", "description": "A set of utils for faster development of GraphQL tools", "repository": { @@ -51,9 +51,12 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "dependencies": { - "@graphql-tools/utils": "^10.5.6", + "@graphql-tools/utils": "^10.8.6", "tslib": "^2.4.0" }, + "devDependencies": { + "@graphql-tools/stitch": "^9.3.4" + }, "publishConfig": { "directory": "dist", "access": "public" diff --git a/packages/merge/src/merge-resolvers.ts b/packages/merge/src/merge-resolvers.ts index 1fde68390ef..e240864f5b3 100644 --- a/packages/merge/src/merge-resolvers.ts +++ b/packages/merge/src/merge-resolvers.ts @@ -72,6 +72,12 @@ export function mergeResolvers( if (options?.exclusions) { for (const exclusion of options.exclusions) { const [typeName, fieldName] = exclusion.split('.'); + if ( + ['__proto__', 'constructor', 'prototype'].includes(typeName) || + ['__proto__', 'constructor', 'prototype'].includes(fieldName) + ) { + continue; + } if (!fieldName || fieldName === '*') { delete result[typeName]; } else if (result[typeName]) { diff --git a/packages/merge/src/typedefs-mergers/utils.ts b/packages/merge/src/typedefs-mergers/utils.ts index c370f589c25..b8474691c9e 100644 --- a/packages/merge/src/typedefs-mergers/utils.ts +++ b/packages/merge/src/typedefs-mergers/utils.ts @@ -5,7 +5,7 @@ export function isStringTypes(types: any): types is string { } export function isSourceTypes(types: any): types is Source { - return types instanceof Source; + return types?.[Symbol.toStringTag] === 'Source'; } export function extractType(type: TypeNode): NamedTypeNode { diff --git a/packages/mock/CHANGELOG.md b/packages/mock/CHANGELOG.md index fcd71ccc7db..9f96a8b7d39 100644 --- a/packages/mock/CHANGELOG.md +++ b/packages/mock/CHANGELOG.md @@ -1,5 +1,173 @@ # @graphql-tools/mock +## 9.0.22 + +### Patch Changes + +- [`6d69ede`](https://github.com/ardatan/graphql-tools/commit/6d69ede7a79521b5c132e33fcfc0f6ce2183ede7) + Thanks [@ardatan](https://github.com/ardatan)! - Fix prototype polluting assignment + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + - @graphql-tools/schema@10.0.23 + +## 9.0.21 + +### Patch Changes + +- [#7026](https://github.com/ardatan/graphql-tools/pull/7026) + [`ece7732`](https://github.com/ardatan/graphql-tools/commit/ece7732308b355972190f21372371ba3ae3a6296) + Thanks [@ardatan](https://github.com/ardatan)! - Prevent prototype polluting assignment + +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + - @graphql-tools/schema@10.0.22 + +## 9.0.20 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + - @graphql-tools/schema@10.0.21 + +## 9.0.19 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + - @graphql-tools/schema@10.0.20 + +## 9.0.18 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + - @graphql-tools/schema@10.0.19 + +## 9.0.17 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + - @graphql-tools/schema@10.0.18 + +## 9.0.16 + +### Patch Changes + +- Updated dependencies + [[`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5), + [`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/schema@10.0.17 + - @graphql-tools/utils@10.8.0 + +## 9.0.15 + +### Patch Changes + +- [#6865](https://github.com/ardatan/graphql-tools/pull/6865) + [`309748d`](https://github.com/ardatan/graphql-tools/commit/309748d599c352076e2ead3b428d99118e267c32) + Thanks [@mkrl](https://github.com/mkrl)! - Fixed typos in the documentation + +## 9.0.14 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + - @graphql-tools/schema@10.0.16 + +## 9.0.13 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + - @graphql-tools/schema@10.0.15 + +## 9.0.12 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + - @graphql-tools/schema@10.0.14 + +## 9.0.11 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + - @graphql-tools/schema@10.0.13 + +## 9.0.10 + +### Patch Changes + +- [`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612) + Thanks [@ardatan](https://github.com/ardatan)! - \`AbortSignal\` in \`GraphQLResolveInfo\`, and + \`AbortSignal\` in \`ExecutionRequest\` + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/schema@10.0.12 + - @graphql-tools/utils@10.6.3 + +## 9.0.9 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/schema@^10.0.10` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/schema/v/10.0.10) + (from `^10.0.9`, in `dependencies`) + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679), + [`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/schema@10.0.11 + - @graphql-tools/utils@10.6.2 + +## 9.0.8 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + - @graphql-tools/schema@10.0.10 + +## 9.0.7 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + - @graphql-tools/schema@10.0.9 + ## 9.0.6 ### Patch Changes diff --git a/packages/mock/package.json b/packages/mock/package.json index 0f4681eaf43..3d63e548309 100644 --- a/packages/mock/package.json +++ b/packages/mock/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/mock", - "version": "9.0.6", + "version": "9.0.22", "type": "module", "description": "A set of utils for faster development of GraphQL tools", "repository": { @@ -50,8 +50,8 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "dependencies": { - "@graphql-tools/schema": "^10.0.8", - "@graphql-tools/utils": "^10.5.6", + "@graphql-tools/schema": "^10.0.23", + "@graphql-tools/utils": "^10.8.6", "fast-json-stable-stringify": "^2.1.0", "tslib": "^2.4.0" }, diff --git a/packages/mock/src/MockStore.ts b/packages/mock/src/MockStore.ts index fe656c3314c..47e5bf91f55 100644 --- a/packages/mock/src/MockStore.ts +++ b/packages/mock/src/MockStore.ts @@ -1,9 +1,7 @@ import stringify from 'fast-json-stable-stringify'; +import { GraphQLOutputType, GraphQLSchema, GraphQLString } from 'graphql'; import { getNullableType, - GraphQLOutputType, - GraphQLSchema, - GraphQLString, isAbstractType, isCompositeType, isEnumType, @@ -12,7 +10,7 @@ import { isNullableType, isObjectType, isScalarType, -} from 'graphql'; +} from '@graphql-tools/utils'; import { deepResolveMockList, isMockList } from './MockList.js'; import { assertIsRef, @@ -263,10 +261,18 @@ export class MockStore implements IMockStore { value = deepResolveMockList(value); } + if (typeName === '__proto__' || typeName === 'constructor' || typeName === 'prototype') { + throw new Error(`Invalid typeName: ${typeName}`); + } + if (this.store[typeName] === undefined) { this.store[typeName] = {}; } + if (key === '__proto__' || key === 'constructor' || key === 'prototype') { + throw new Error(`Invalid key: ${key}`); + } + if (this.store[typeName][key] === undefined) { this.store[typeName][key] = {}; } @@ -424,10 +430,18 @@ export class MockStore implements IMockStore { }); } + if (typeName === '__proto__' || typeName === 'constructor' || typeName === 'prototype') { + throw new Error(`Invalid typeName: ${typeName}`); + } + if (this.store[typeName] === undefined) { this.store[typeName] = {}; } + if (key === '__proto__' || key === 'constructor' || key === 'prototype') { + throw new Error(`Invalid key: ${key}`); + } + if (this.store[typeName][key] === undefined) { this.store[typeName][key] = {}; } @@ -676,9 +690,9 @@ function assertIsDefined(value: T, message?: string): asserts value is NonNul /** * Will create `MockStore` for the given `schema`. * - * A `MockStore` will generate mock values for the given schem when queried. + * A `MockStore` will generate mock values for the given schema when queried. * - * It will stores generated mocks, so that, provided with same arguments + * It will store generated mocks, so that, provided with same arguments * the returned values will be the same. * * Its API also allows to modify the stored values. diff --git a/packages/mock/src/addMocksToSchema.ts b/packages/mock/src/addMocksToSchema.ts index 3c0acef18e9..ff790ef61b3 100644 --- a/packages/mock/src/addMocksToSchema.ts +++ b/packages/mock/src/addMocksToSchema.ts @@ -6,10 +6,9 @@ import { GraphQLTypeResolver, GraphQLUnionType, isSchema, - isUnionType, } from 'graphql'; import { addResolversToSchema } from '@graphql-tools/schema'; -import { IResolvers, MapperKind, mapSchema } from '@graphql-tools/utils'; +import { IResolvers, isUnionType, MapperKind, mapSchema } from '@graphql-tools/utils'; import { createMockStore } from './MockStore.js'; import { IMocks, IMockStore, isRef, TypePolicy } from './types.js'; import { copyOwnProps, isObject, isRootType } from './utils.js'; diff --git a/packages/mock/src/mockServer.ts b/packages/mock/src/mockServer.ts index d100081f484..5e72f1201ec 100644 --- a/packages/mock/src/mockServer.ts +++ b/packages/mock/src/mockServer.ts @@ -5,7 +5,7 @@ import { addMocksToSchema } from './addMocksToSchema.js'; import { IMocks, IMockServer } from './types.js'; /** - * A convenience wrapper on top of addMocksToSchema. It adds your mock resolvers + * A convenience wrapper on top of `addMocksToSchema`. It adds your mock resolvers * to your schema and returns a client that will correctly execute your query with * variables. Note: when executing queries from the returned server, context and * root will both equal `{}`. diff --git a/packages/mock/src/pagination.ts b/packages/mock/src/pagination.ts index 5d3c5417293..5007dcd0eaf 100644 --- a/packages/mock/src/pagination.ts +++ b/packages/mock/src/pagination.ts @@ -1,5 +1,4 @@ -import { GraphQLResolveInfo } from 'graphql'; -import { IFieldResolver } from '@graphql-tools/utils'; +import { GraphQLResolveInfo, IFieldResolver } from '@graphql-tools/utils'; import { IMockStore, Ref } from './types.js'; import { isRootType, makeRef } from './utils.js'; diff --git a/packages/mock/tests/mocking-compatibility.spec.ts b/packages/mock/tests/mocking-compatibility.spec.ts index 33b20a98547..946c5c742c8 100644 --- a/packages/mock/tests/mocking-compatibility.spec.ts +++ b/packages/mock/tests/mocking-compatibility.spec.ts @@ -1,10 +1,12 @@ /* eslint-disable camelcase */ -import { first_name, sentence } from 'casual'; +import casual from 'casual'; import { buildSchema, graphql, GraphQLSchema, parse } from 'graphql'; import { subscribe } from '@graphql-tools/executor'; import { addResolversToSchema, makeExecutableSchema } from '@graphql-tools/schema'; import { addMocksToSchema, IMocks, IMockStore, MockList, mockServer } from '../src/index.js'; +const { first_name, sentence } = casual; + describe('Mock retro-compatibility', () => { const shorthand = /* GraphQL */ ` scalar MissingMockType diff --git a/packages/node-require/CHANGELOG.md b/packages/node-require/CHANGELOG.md index 6812fc4291a..dd51be75bd7 100644 --- a/packages/node-require/CHANGELOG.md +++ b/packages/node-require/CHANGELOG.md @@ -1,5 +1,188 @@ # @graphql-tools/node-require +## 7.0.21 + +### Patch Changes + +- Updated dependencies + [[`4a33247`](https://github.com/ardatan/graphql-tools/commit/4a33247c159ebb0db27f0746a2b10c2b786ea8d5)]: + - @graphql-tools/load@8.1.0 + +## 7.0.20 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + - @graphql-tools/load@8.0.19 + - @graphql-tools/graphql-file-loader@8.0.19 + +## 7.0.19 + +### Patch Changes + +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + - @graphql-tools/load@8.0.18 + - @graphql-tools/graphql-file-loader@8.0.18 + +## 7.0.18 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + - @graphql-tools/load@8.0.17 + - @graphql-tools/graphql-file-loader@8.0.17 + +## 7.0.17 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + - @graphql-tools/load@8.0.16 + - @graphql-tools/graphql-file-loader@8.0.16 + +## 7.0.16 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + - @graphql-tools/load@8.0.15 + - @graphql-tools/graphql-file-loader@8.0.15 + +## 7.0.15 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + - @graphql-tools/load@8.0.14 + - @graphql-tools/graphql-file-loader@8.0.14 + +## 7.0.14 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + - @graphql-tools/load@8.0.13 + - @graphql-tools/graphql-file-loader@8.0.13 + +## 7.0.13 + +### Patch Changes + +- Updated dependencies + [[`72dc6a5`](https://github.com/ardatan/graphql-tools/commit/72dc6a527a14dc04f4590e88c6af7dfb63fa6663)]: + - @graphql-tools/graphql-file-loader@8.0.12 + +## 7.0.12 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + - @graphql-tools/load@8.0.12 + - @graphql-tools/graphql-file-loader@8.0.11 + +## 7.0.11 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + - @graphql-tools/load@8.0.11 + - @graphql-tools/graphql-file-loader@8.0.10 + +## 7.0.10 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + - @graphql-tools/load@8.0.10 + - @graphql-tools/graphql-file-loader@8.0.9 + +## 7.0.9 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + - @graphql-tools/load@8.0.9 + - @graphql-tools/graphql-file-loader@8.0.8 + +## 7.0.8 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + - @graphql-tools/load@8.0.8 + - @graphql-tools/graphql-file-loader@8.0.7 + +## 7.0.7 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/graphql-file-loader@8.0.5` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/graphql-file-loader/v/8.0.5) + (from `8.0.4`, in `dependencies`) + - Updated dependency + [`@graphql-tools/load@8.0.6` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/load/v/8.0.6) + (from `8.0.5`, in `dependencies`) + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679), + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679), + [`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/graphql-file-loader@8.0.6 + - @graphql-tools/load@8.0.7 + - @graphql-tools/utils@10.6.2 + +## 7.0.6 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + - @graphql-tools/load@8.0.6 + - @graphql-tools/graphql-file-loader@8.0.5 + +## 7.0.5 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + - @graphql-tools/load@8.0.5 + - @graphql-tools/graphql-file-loader@8.0.4 + ## 7.0.4 ### Patch Changes diff --git a/packages/node-require/package.json b/packages/node-require/package.json index cba7845b04d..88a3ea13baa 100644 --- a/packages/node-require/package.json +++ b/packages/node-require/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/node-require", - "version": "7.0.4", + "version": "7.0.21", "type": "module", "description": "A set of utils for faster development of GraphQL tools", "repository": { @@ -50,9 +50,9 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "dependencies": { - "@graphql-tools/graphql-file-loader": "8.0.3", - "@graphql-tools/load": "8.0.4", - "@graphql-tools/utils": "^10.5.6", + "@graphql-tools/graphql-file-loader": "8.0.19", + "@graphql-tools/load": "8.1.0", + "@graphql-tools/utils": "^10.8.6", "tslib": "^2.4.0" }, "publishConfig": { diff --git a/packages/optimize/tests/remove-description.spec.ts b/packages/optimize/tests/remove-description.spec.ts index 64bece02216..b9b85338df8 100644 --- a/packages/optimize/tests/remove-description.spec.ts +++ b/packages/optimize/tests/remove-description.spec.ts @@ -76,32 +76,34 @@ describe('removeDescription', () => { `); const out = removeDescriptions(doc); - expect(print(out).trim()).toMatchInlineSnapshot(` - "type Query { - f: String - } + expect(print(out).trim()).toBe( + /* GraphQL */ ` +type Query { + f: String +} - type Mutation { - f(input: InputType): String - } +type Mutation { + f(input: InputType): String +} - input InputType { - f: String - } +input InputType { + f: String +} - directive @test on FIELD_DEFINITION +directive @test on FIELD_DEFINITION - enum Test { - A - } +enum Test { + A +} - interface TestInterface { - f: String - } +interface TestInterface { + f: String +} - union TestUnion = Test | TestInterface +union TestUnion = Test | TestInterface - scalar TestScalar" - `); +scalar TestScalar + `.trim(), + ); }); }); diff --git a/packages/optimize/tests/remove-empty-nodes.spec.ts b/packages/optimize/tests/remove-empty-nodes.spec.ts index 75d90c2cda9..8c04f98e4b7 100644 --- a/packages/optimize/tests/remove-empty-nodes.spec.ts +++ b/packages/optimize/tests/remove-empty-nodes.spec.ts @@ -24,8 +24,8 @@ describe('removeEmptyNodes', () => { `); const out = removeEmptyNodes(doc); const stringOut = JSON.stringify(out); - expect(stringOut).toMatchInlineSnapshot( - `"{"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"findUser","loc":{"start":13,"end":21}},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"userId","loc":{"start":23,"end":29}},"loc":{"start":22,"end":29}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID","loc":{"start":31,"end":33}},"loc":{"start":31,"end":33}},"loc":{"start":31,"end":34}},"loc":{"start":22,"end":34}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"user","loc":{"start":46,"end":50}},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id","loc":{"start":51,"end":53}},"value":{"kind":"Variable","name":{"kind":"Name","value":"userId","loc":{"start":56,"end":62}},"loc":{"start":55,"end":62}},"loc":{"start":51,"end":62}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields","loc":{"start":79,"end":89}},"loc":{"start":76,"end":89}}],"loc":{"start":64,"end":99}},"loc":{"start":46,"end":99}}],"loc":{"start":36,"end":107}},"loc":{"start":7,"end":107}},{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"something","loc":{"start":121,"end":130}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"test","loc":{"start":141,"end":145}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"test","loc":{"start":158,"end":162}},"loc":{"start":158,"end":162}}],"loc":{"start":146,"end":172}},"loc":{"start":141,"end":172}}],"loc":{"start":131,"end":180}},"loc":{"start":115,"end":180}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields","loc":{"start":197,"end":207}},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User","loc":{"start":211,"end":215}},"loc":{"start":211,"end":215}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id","loc":{"start":226,"end":228}},"loc":{"start":226,"end":228}},{"kind":"Field","name":{"kind":"Name","value":"username","loc":{"start":237,"end":245}},"loc":{"start":237,"end":245}},{"kind":"Field","name":{"kind":"Name","value":"role","loc":{"start":254,"end":258}},"loc":{"start":254,"end":258}}],"loc":{"start":216,"end":266}},"loc":{"start":188,"end":266}}],"loc":{"start":0,"end":271}}"`, + expect(stringOut).toEqual( + `{"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"findUser","loc":{"start":13,"end":21}},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"userId","loc":{"start":23,"end":29}},"loc":{"start":22,"end":29}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID","loc":{"start":31,"end":33}},"loc":{"start":31,"end":33}},"loc":{"start":31,"end":34}},"loc":{"start":22,"end":34}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"user","loc":{"start":46,"end":50}},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id","loc":{"start":51,"end":53}},"value":{"kind":"Variable","name":{"kind":"Name","value":"userId","loc":{"start":56,"end":62}},"loc":{"start":55,"end":62}},"loc":{"start":51,"end":62}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields","loc":{"start":79,"end":89}},"loc":{"start":76,"end":89}}],"loc":{"start":64,"end":99}},"loc":{"start":46,"end":99}}],"loc":{"start":36,"end":107}},"loc":{"start":7,"end":107}},{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"something","loc":{"start":121,"end":130}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"test","loc":{"start":141,"end":145}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"test","loc":{"start":158,"end":162}},"loc":{"start":158,"end":162}}],"loc":{"start":146,"end":172}},"loc":{"start":141,"end":172}}],"loc":{"start":131,"end":180}},"loc":{"start":115,"end":180}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields","loc":{"start":197,"end":207}},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User","loc":{"start":211,"end":215}},"loc":{"start":211,"end":215}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id","loc":{"start":226,"end":228}},"loc":{"start":226,"end":228}},{"kind":"Field","name":{"kind":"Name","value":"username","loc":{"start":237,"end":245}},"loc":{"start":237,"end":245}},{"kind":"Field","name":{"kind":"Name","value":"role","loc":{"start":254,"end":258}},"loc":{"start":254,"end":258}}],"loc":{"start":216,"end":266}},"loc":{"start":188,"end":266}}],"loc":{"start":0,"end":271}}`, ); expect(stringOut).not.toContain(`"arguments":[]`); expect(stringOut).not.toContain(`"directives":[]`); @@ -59,8 +59,8 @@ describe('removeEmptyNodes', () => { `); const out = removeEmptyNodes(doc); const stringOut = JSON.stringify(normalizeAcrossGraphQLVersions(out)); - expect(stringOut).toMatchInlineSnapshot( - `"{"kind":"Document","definitions":[{"kind":"SchemaDefinition","operationTypes":[{"kind":"OperationTypeDefinition","operation":"query","type":{"kind":"NamedType","name":{"kind":"Name","value":"Foo","loc":{"start":31,"end":34}},"loc":{"start":31,"end":34}},"loc":{"start":24,"end":34}}],"loc":{"start":7,"end":42}},{"kind":"ScalarTypeDefinition","name":{"kind":"Name","value":"Foo","loc":{"start":56,"end":59}},"loc":{"start":49,"end":59}},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"Foo","loc":{"start":71,"end":74}},"interfaces":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"bar","loc":{"start":85,"end":88}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":90,"end":93}},"loc":{"start":90,"end":93}},"loc":{"start":85,"end":93}}],"loc":{"start":66,"end":101}},{"kind":"InterfaceTypeDefinition","name":{"kind":"Name","value":"Foo","loc":{"start":118,"end":121}},"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"bar","loc":{"start":132,"end":135}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":137,"end":140}},"loc":{"start":137,"end":140}},"loc":{"start":132,"end":140}}],"loc":{"start":108,"end":148}},{"kind":"UnionTypeDefinition","name":{"kind":"Name","value":"FooBar","loc":{"start":161,"end":167}},"types":[{"kind":"NamedType","name":{"kind":"Name","value":"Foo","loc":{"start":170,"end":173}},"loc":{"start":170,"end":173}},{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":176,"end":179}},"loc":{"start":176,"end":179}}],"loc":{"start":155,"end":179}},{"kind":"EnumTypeDefinition","name":{"kind":"Name","value":"FooBar","loc":{"start":191,"end":197}},"values":[{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"FOO","loc":{"start":208,"end":211}},"loc":{"start":208,"end":211}},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"BAR","loc":{"start":220,"end":223}},"loc":{"start":220,"end":223}}],"loc":{"start":186,"end":231}},{"kind":"InputObjectTypeDefinition","name":{"kind":"Name","value":"Foo","loc":{"start":244,"end":247}},"fields":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"bar","loc":{"start":258,"end":261}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":263,"end":266}},"loc":{"start":263,"end":266}},"loc":{"start":258,"end":266}}],"loc":{"start":238,"end":274}},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"Bar","loc":{"start":286,"end":289}},"interfaces":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"bar","loc":{"start":300,"end":303}},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"foo","loc":{"start":304,"end":307}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Foo","loc":{"start":309,"end":312}},"loc":{"start":309,"end":312}},"loc":{"start":304,"end":312}}],"type":{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":315,"end":318}},"loc":{"start":315,"end":318}},"loc":{"start":300,"end":318}}],"loc":{"start":281,"end":326}}],"loc":{"start":0,"end":331}}"`, + expect(stringOut).toBe( + `{"kind":"Document","definitions":[{"kind":"SchemaDefinition","operationTypes":[{"kind":"OperationTypeDefinition","operation":"query","type":{"kind":"NamedType","name":{"kind":"Name","value":"Foo","loc":{"start":31,"end":34}},"loc":{"start":31,"end":34}},"loc":{"start":24,"end":34}}],"loc":{"start":7,"end":42}},{"kind":"ScalarTypeDefinition","name":{"kind":"Name","value":"Foo","loc":{"start":56,"end":59}},"loc":{"start":49,"end":59}},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"Foo","loc":{"start":71,"end":74}},"interfaces":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"bar","loc":{"start":85,"end":88}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":90,"end":93}},"loc":{"start":90,"end":93}},"loc":{"start":85,"end":93}}],"loc":{"start":66,"end":101}},{"kind":"InterfaceTypeDefinition","name":{"kind":"Name","value":"Foo","loc":{"start":118,"end":121}},"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"bar","loc":{"start":132,"end":135}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":137,"end":140}},"loc":{"start":137,"end":140}},"loc":{"start":132,"end":140}}],"loc":{"start":108,"end":148}},{"kind":"UnionTypeDefinition","name":{"kind":"Name","value":"FooBar","loc":{"start":161,"end":167}},"types":[{"kind":"NamedType","name":{"kind":"Name","value":"Foo","loc":{"start":170,"end":173}},"loc":{"start":170,"end":173}},{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":176,"end":179}},"loc":{"start":176,"end":179}}],"loc":{"start":155,"end":179}},{"kind":"EnumTypeDefinition","name":{"kind":"Name","value":"FooBar","loc":{"start":191,"end":197}},"values":[{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"FOO","loc":{"start":208,"end":211}},"loc":{"start":208,"end":211}},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"BAR","loc":{"start":220,"end":223}},"loc":{"start":220,"end":223}}],"loc":{"start":186,"end":231}},{"kind":"InputObjectTypeDefinition","name":{"kind":"Name","value":"Foo","loc":{"start":244,"end":247}},"fields":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"bar","loc":{"start":258,"end":261}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":263,"end":266}},"loc":{"start":263,"end":266}},"loc":{"start":258,"end":266}}],"loc":{"start":238,"end":274}},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"Bar","loc":{"start":286,"end":289}},"interfaces":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"bar","loc":{"start":300,"end":303}},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"foo","loc":{"start":304,"end":307}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Foo","loc":{"start":309,"end":312}},"loc":{"start":309,"end":312}},"loc":{"start":304,"end":312}}],"type":{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":315,"end":318}},"loc":{"start":315,"end":318}},"loc":{"start":300,"end":318}}],"loc":{"start":281,"end":326}}],"loc":{"start":0,"end":331}}`, ); expect(stringOut).not.toContain(`"arguments":[]`); expect(stringOut).not.toContain(`"directives":[]`); @@ -90,8 +90,8 @@ describe('removeEmptyNodes', () => { `); const out = removeEmptyNodes(doc); const stringOut = JSON.stringify(normalizeAcrossGraphQLVersions(out)); - expect(stringOut).toMatchInlineSnapshot( - `"{"kind":"Document","definitions":[{"kind":"SchemaExtension","operationTypes":[{"kind":"OperationTypeDefinition","operation":"query","type":{"kind":"NamedType","name":{"kind":"Name","value":"Foo","loc":{"start":38,"end":41}},"loc":{"start":38,"end":41}},"loc":{"start":31,"end":41}}],"loc":{"start":7,"end":49}},{"kind":"ScalarTypeExtension","name":{"kind":"Name","value":"Foo","loc":{"start":70,"end":73}},"directives":[{"kind":"Directive","name":{"kind":"Name","value":"foo","loc":{"start":75,"end":78}},"loc":{"start":74,"end":78}}],"loc":{"start":56,"end":78}},{"kind":"ObjectTypeExtension","name":{"kind":"Name","value":"Foo","loc":{"start":97,"end":100}},"interfaces":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"bar","loc":{"start":111,"end":114}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":116,"end":119}},"loc":{"start":116,"end":119}},"loc":{"start":111,"end":119}}],"loc":{"start":85,"end":127}},{"kind":"InterfaceTypeExtension","name":{"kind":"Name","value":"Foo","loc":{"start":151,"end":154}},"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"bar","loc":{"start":165,"end":168}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":170,"end":173}},"loc":{"start":170,"end":173}},"loc":{"start":165,"end":173}}],"loc":{"start":134,"end":181}},{"kind":"UnionTypeExtension","name":{"kind":"Name","value":"FooBar","loc":{"start":201,"end":207}},"types":[{"kind":"NamedType","name":{"kind":"Name","value":"Foo","loc":{"start":210,"end":213}},"loc":{"start":210,"end":213}},{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":216,"end":219}},"loc":{"start":216,"end":219}}],"loc":{"start":188,"end":219}},{"kind":"EnumTypeExtension","name":{"kind":"Name","value":"FooBar","loc":{"start":238,"end":244}},"values":[{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"FOO","loc":{"start":255,"end":258}},"loc":{"start":255,"end":258}},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"BAR","loc":{"start":267,"end":270}},"loc":{"start":267,"end":270}}],"loc":{"start":226,"end":278}},{"kind":"InputObjectTypeExtension","name":{"kind":"Name","value":"Foo","loc":{"start":298,"end":301}},"fields":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"bar","loc":{"start":312,"end":315}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":317,"end":320}},"loc":{"start":317,"end":320}},"loc":{"start":312,"end":320}}],"loc":{"start":285,"end":328}}],"loc":{"start":0,"end":333}}"`, + expect(stringOut).toBe( + `{"kind":"Document","definitions":[{"kind":"SchemaExtension","operationTypes":[{"kind":"OperationTypeDefinition","operation":"query","type":{"kind":"NamedType","name":{"kind":"Name","value":"Foo","loc":{"start":38,"end":41}},"loc":{"start":38,"end":41}},"loc":{"start":31,"end":41}}],"loc":{"start":7,"end":49}},{"kind":"ScalarTypeExtension","name":{"kind":"Name","value":"Foo","loc":{"start":70,"end":73}},"directives":[{"kind":"Directive","name":{"kind":"Name","value":"foo","loc":{"start":75,"end":78}},"loc":{"start":74,"end":78}}],"loc":{"start":56,"end":78}},{"kind":"ObjectTypeExtension","name":{"kind":"Name","value":"Foo","loc":{"start":97,"end":100}},"interfaces":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"bar","loc":{"start":111,"end":114}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":116,"end":119}},"loc":{"start":116,"end":119}},"loc":{"start":111,"end":119}}],"loc":{"start":85,"end":127}},{"kind":"InterfaceTypeExtension","name":{"kind":"Name","value":"Foo","loc":{"start":151,"end":154}},"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"bar","loc":{"start":165,"end":168}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":170,"end":173}},"loc":{"start":170,"end":173}},"loc":{"start":165,"end":173}}],"loc":{"start":134,"end":181}},{"kind":"UnionTypeExtension","name":{"kind":"Name","value":"FooBar","loc":{"start":201,"end":207}},"types":[{"kind":"NamedType","name":{"kind":"Name","value":"Foo","loc":{"start":210,"end":213}},"loc":{"start":210,"end":213}},{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":216,"end":219}},"loc":{"start":216,"end":219}}],"loc":{"start":188,"end":219}},{"kind":"EnumTypeExtension","name":{"kind":"Name","value":"FooBar","loc":{"start":238,"end":244}},"values":[{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"FOO","loc":{"start":255,"end":258}},"loc":{"start":255,"end":258}},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"BAR","loc":{"start":267,"end":270}},"loc":{"start":267,"end":270}}],"loc":{"start":226,"end":278}},{"kind":"InputObjectTypeExtension","name":{"kind":"Name","value":"Foo","loc":{"start":298,"end":301}},"fields":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"bar","loc":{"start":312,"end":315}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Bar","loc":{"start":317,"end":320}},"loc":{"start":317,"end":320}},"loc":{"start":312,"end":320}}],"loc":{"start":285,"end":328}}],"loc":{"start":0,"end":333}}`, ); expect(stringOut).not.toContain(`"arguments":[]`); expect(stringOut).not.toContain(`"directives":[]`); diff --git a/packages/optimize/tests/remove-loc.spec.ts b/packages/optimize/tests/remove-loc.spec.ts index 00f294d6196..cd264a28a62 100644 --- a/packages/optimize/tests/remove-loc.spec.ts +++ b/packages/optimize/tests/remove-loc.spec.ts @@ -24,8 +24,8 @@ describe('removeLoc', () => { `); const out = removeLoc(doc); const stringOut = JSON.stringify(out); - expect(stringOut).toMatchInlineSnapshot( - `"{"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"findUser"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"userId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}},"directives":[]}],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"user"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"userId"}}}],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"},"directives":[]}]}}]}},{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"something"},"variableDefinitions":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"test"},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"test"},"arguments":[],"directives":[]}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"},"arguments":[],"directives":[]},{"kind":"Field","name":{"kind":"Name","value":"username"},"arguments":[],"directives":[]},{"kind":"Field","name":{"kind":"Name","value":"role"},"arguments":[],"directives":[]}]}}]}"`, + expect(stringOut).toBe( + `{"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"findUser"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"userId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}},"directives":[]}],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"user"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"userId"}}}],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserFields"},"directives":[]}]}}]}},{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"something"},"variableDefinitions":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"test"},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"test"},"arguments":[],"directives":[]}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"User"}},"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"},"arguments":[],"directives":[]},{"kind":"Field","name":{"kind":"Name","value":"username"},"arguments":[],"directives":[]},{"kind":"Field","name":{"kind":"Name","value":"role"},"arguments":[],"directives":[]}]}}]}`, ); expect(stringOut).not.toContain(`"loc":`); expect(() => print(out)).not.toThrow(); diff --git a/packages/relay-operation-optimizer/CHANGELOG.md b/packages/relay-operation-optimizer/CHANGELOG.md index edfd1ad60f1..4ce3fc02af7 100644 --- a/packages/relay-operation-optimizer/CHANGELOG.md +++ b/packages/relay-operation-optimizer/CHANGELOG.md @@ -1,5 +1,151 @@ # @graphql-tools/relay-operation-optimizer +## 7.0.19 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + +## 7.0.18 + +### Patch Changes + +- [#7023](https://github.com/ardatan/graphql-tools/pull/7023) + [`6bb35f4`](https://github.com/ardatan/graphql-tools/commit/6bb35f44d67638e222af9ec68f16a1762d373b0f) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@ardatan/relay-compiler@^12.0.3` โ†—๏ธŽ](https://www.npmjs.com/package/@ardatan/relay-compiler/v/12.0.3) + (from `^12.0.1`, in `dependencies`) +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + +## 7.0.17 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + +## 7.0.16 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + +## 7.0.15 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + +## 7.0.14 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + +## 7.0.13 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + +## 7.0.12 + +### Patch Changes + +- [#6852](https://github.com/ardatan/graphql-tools/pull/6852) + [`782a15a`](https://github.com/ardatan/graphql-tools/commit/782a15ab32413c2e1ac046bc2b3ef0706d9be48f) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@ardatan/relay-compiler@^12.0.1` โ†—๏ธŽ](https://www.npmjs.com/package/@ardatan/relay-compiler/v/12.0.1) + (from `12.0.0`, in `dependencies`) + +## 7.0.11 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + +## 7.0.10 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + +## 7.0.9 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + +## 7.0.8 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + +## 7.0.7 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + +## 7.0.6 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/utils@10.6.2 + +## 7.0.5 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + +## 7.0.4 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + ## 7.0.3 ### Patch Changes diff --git a/packages/relay-operation-optimizer/package.json b/packages/relay-operation-optimizer/package.json index e325fde6968..307bdc447d8 100644 --- a/packages/relay-operation-optimizer/package.json +++ b/packages/relay-operation-optimizer/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/relay-operation-optimizer", - "version": "7.0.3", + "version": "7.0.19", "type": "module", "description": "Package for optimizing your GraphQL operations relay style.", "repository": { @@ -62,8 +62,8 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "dependencies": { - "@ardatan/relay-compiler": "12.0.0", - "@graphql-tools/utils": "^10.5.6", + "@ardatan/relay-compiler": "^12.0.3", + "@graphql-tools/utils": "^10.8.6", "tslib": "^2.4.0" }, "devDependencies": { diff --git a/packages/resolvers-composition/CHANGELOG.md b/packages/resolvers-composition/CHANGELOG.md index 6c0b9c0a7db..ab492abc6a9 100644 --- a/packages/resolvers-composition/CHANGELOG.md +++ b/packages/resolvers-composition/CHANGELOG.md @@ -1,5 +1,134 @@ # @graphql-tools/resolvers-composition +## 7.0.18 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + +## 7.0.17 + +### Patch Changes + +- Updated dependencies + [[`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/utils@10.8.5 + +## 7.0.16 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + +## 7.0.15 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + +## 7.0.14 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + +## 7.0.13 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + +## 7.0.12 + +### Patch Changes + +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + +## 7.0.11 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + +## 7.0.10 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + +## 7.0.9 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + +## 7.0.8 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + +## 7.0.7 + +### Patch Changes + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + +## 7.0.6 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/utils@10.6.2 + +## 7.0.5 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + +## 7.0.4 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + ## 7.0.3 ### Patch Changes diff --git a/packages/resolvers-composition/package.json b/packages/resolvers-composition/package.json index 20d51333f89..cfcc1a07405 100644 --- a/packages/resolvers-composition/package.json +++ b/packages/resolvers-composition/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/resolvers-composition", - "version": "7.0.3", + "version": "7.0.18", "type": "module", "description": "Common package containing utils and types for GraphQL tools", "repository": { @@ -51,13 +51,13 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "dependencies": { - "@graphql-tools/utils": "^10.5.6", + "@graphql-tools/utils": "^10.8.6", "lodash": "4.17.21", "micromatch": "^4.0.8", "tslib": "^2.4.0" }, "devDependencies": { - "@types/lodash": "4.17.13", + "@types/lodash": "4.17.16", "@types/micromatch": "4.0.9" }, "publishConfig": { diff --git a/packages/schema/CHANGELOG.md b/packages/schema/CHANGELOG.md index 56a6b61ceff..3d8b003cb93 100644 --- a/packages/schema/CHANGELOG.md +++ b/packages/schema/CHANGELOG.md @@ -1,5 +1,164 @@ # @graphql-tools/schema +## 10.0.23 + +### Patch Changes + +- Updated dependencies + [[`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0)]: + - @graphql-tools/utils@10.8.6 + - @graphql-tools/merge@9.0.24 + +## 10.0.22 + +### Patch Changes + +- Updated dependencies + [[`4899c62`](https://github.com/ardatan/graphql-tools/commit/4899c62ee4365c518df7f8cd2a897c6132f09f45), + [`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7), + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a)]: + - @graphql-tools/merge@9.0.23 + - @graphql-tools/utils@10.8.5 + +## 10.0.21 + +### Patch Changes + +- Updated dependencies + [[`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645)]: + - @graphql-tools/utils@10.8.4 + - @graphql-tools/merge@9.0.22 + +## 10.0.20 + +### Patch Changes + +- Updated dependencies + [[`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285)]: + - @graphql-tools/utils@10.8.3 + - @graphql-tools/merge@9.0.21 + +## 10.0.19 + +### Patch Changes + +- Updated dependencies + [[`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f)]: + - @graphql-tools/utils@10.8.2 + - @graphql-tools/merge@9.0.20 + +## 10.0.18 + +### Patch Changes + +- Updated dependencies + [[`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711)]: + - @graphql-tools/utils@10.8.1 + - @graphql-tools/merge@9.0.19 + +## 10.0.17 + +### Patch Changes + +- [#6921](https://github.com/ardatan/graphql-tools/pull/6921) + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Removed dependency + [`value-or-promise@^1.0.12` โ†—๏ธŽ](https://www.npmjs.com/package/value-or-promise/v/1.0.12) (from + `dependencies`) +- Updated dependencies + [[`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019), + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5)]: + - @graphql-tools/utils@10.8.0 + - @graphql-tools/merge@9.0.18 + +## 10.0.16 + +### Patch Changes + +- Updated dependencies + [[`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537), + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537)]: + - @graphql-tools/utils@10.7.2 + - @graphql-tools/merge@9.0.17 + +## 10.0.15 + +### Patch Changes + +- Updated dependencies + [[`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d)]: + - @graphql-tools/utils@10.7.1 + - @graphql-tools/merge@9.0.16 + +## 10.0.14 + +### Patch Changes + +- Updated dependencies + [[`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641)]: + - @graphql-tools/utils@10.7.0 + - @graphql-tools/merge@9.0.15 + +## 10.0.13 + +### Patch Changes + +- Updated dependencies + [[`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1)]: + - @graphql-tools/utils@10.6.4 + - @graphql-tools/merge@9.0.14 + +## 10.0.12 + +### Patch Changes + +- [`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612) + Thanks [@ardatan](https://github.com/ardatan)! - \`AbortSignal\` in \`GraphQLResolveInfo\`, and + \`AbortSignal\` in \`ExecutionRequest\` + +- Updated dependencies + [[`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612)]: + - @graphql-tools/utils@10.6.3 + - @graphql-tools/merge@9.0.13 + +## 10.0.11 + +### Patch Changes + +- [#6662](https://github.com/ardatan/graphql-tools/pull/6662) + [`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679) + Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates: + - Updated dependency + [`@graphql-tools/merge@^9.0.11` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/merge/v/9.0.11) + (from `^9.0.10`, in `dependencies`) + - Updated dependency + [`@graphql-tools/utils@^10.6.1` โ†—๏ธŽ](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.1) + (from `^10.6.0`, in `dependencies`) +- Updated dependencies + [[`696a0d5`](https://github.com/ardatan/graphql-tools/commit/696a0d5ac9232baebe730226fe9ea9d6e3b98679), + [`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060)]: + - @graphql-tools/merge@9.0.12 + - @graphql-tools/utils@10.6.2 + +## 10.0.10 + +### Patch Changes + +- Updated dependencies + [[`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f)]: + - @graphql-tools/utils@10.6.1 + - @graphql-tools/merge@9.0.11 + +## 10.0.9 + +### Patch Changes + +- Updated dependencies + [[`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43)]: + - @graphql-tools/utils@10.6.0 + - @graphql-tools/merge@9.0.10 + ## 10.0.8 ### Patch Changes diff --git a/packages/schema/package.json b/packages/schema/package.json index c6674ed3228..a05914586b6 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/schema", - "version": "10.0.8", + "version": "10.0.23", "type": "module", "description": "A set of utils for faster development of GraphQL tools", "repository": { @@ -50,13 +50,12 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" }, "dependencies": { - "@graphql-tools/merge": "^9.0.9", - "@graphql-tools/utils": "^10.5.6", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" + "@graphql-tools/merge": "^9.0.24", + "@graphql-tools/utils": "^10.8.6", + "tslib": "^2.4.0" }, "devDependencies": { - "graphql-scalars": "1.23.0" + "graphql-scalars": "1.24.2" }, "publishConfig": { "directory": "dist", diff --git a/packages/schema/src/addResolversToSchema.ts b/packages/schema/src/addResolversToSchema.ts index 30ef54c125b..64eb5a99bd8 100644 --- a/packages/schema/src/addResolversToSchema.ts +++ b/packages/schema/src/addResolversToSchema.ts @@ -8,12 +8,6 @@ import { GraphQLScalarType, GraphQLSchema, GraphQLUnionType, - isEnumType, - isInterfaceType, - isObjectType, - isScalarType, - isSpecifiedScalarType, - isUnionType, } from 'graphql'; import { forEachDefaultValue, @@ -21,6 +15,12 @@ import { healSchema, IAddResolversToSchemaOptions, IResolvers, + isEnumType, + isInterfaceType, + isObjectType, + isScalarType, + isSpecifiedScalarType, + isUnionType, MapperKind, mapSchema, parseInputValue, diff --git a/packages/schema/src/assertResolversPresent.ts b/packages/schema/src/assertResolversPresent.ts index 345dc2f597e..d7d1a20f40e 100644 --- a/packages/schema/src/assertResolversPresent.ts +++ b/packages/schema/src/assertResolversPresent.ts @@ -1,5 +1,11 @@ -import { getNamedType, GraphQLField, GraphQLSchema, isScalarType } from 'graphql'; -import { forEachField, IResolverValidationOptions, ValidatorBehavior } from '@graphql-tools/utils'; +import { GraphQLField, GraphQLSchema } from 'graphql'; +import { + forEachField, + getNamedType, + IResolverValidationOptions, + isScalarType, + ValidatorBehavior, +} from '@graphql-tools/utils'; export function assertResolversPresent( schema: GraphQLSchema, diff --git a/packages/schema/src/chainResolvers.ts b/packages/schema/src/chainResolvers.ts index 918b50fef2d..d601621ef6b 100644 --- a/packages/schema/src/chainResolvers.ts +++ b/packages/schema/src/chainResolvers.ts @@ -1,5 +1,5 @@ -import { defaultFieldResolver, GraphQLFieldResolver, GraphQLResolveInfo } from 'graphql'; -import { Maybe } from '@graphql-tools/utils'; +import { defaultFieldResolver, GraphQLFieldResolver } from 'graphql'; +import { GraphQLResolveInfo, Maybe } from '@graphql-tools/utils'; export function chainResolvers( resolvers: Array>>, diff --git a/packages/schema/tests/schemaGenerator.test.ts b/packages/schema/tests/schemaGenerator.test.ts index aa11aef90fd..1f959abd6ac 100644 --- a/packages/schema/tests/schemaGenerator.test.ts +++ b/packages/schema/tests/schemaGenerator.test.ts @@ -73,20 +73,18 @@ const testResolvers = { describe('generating schema from shorthand', () => { test('throws an error if no schema is provided', () => { // @ts-expect-error: we call it with invalid params - expect(() => makeExecutableSchema(undefined)).toThrowError('undefined'); + expect(() => makeExecutableSchema(undefined)).toThrow(); }); test('throws an error if typeDefinitionNodes are not provided', () => { expect(() => // @ts-expect-error: we call it with invalid params makeExecutableSchema({ typeDefs: undefined, resolvers: {} }), - ).toThrowError('Must provide typeDefs'); + ).toThrow('Must provide typeDefs'); }); test('throws an error if no resolveFunctions are provided', () => { - expect(() => makeExecutableSchema({ typeDefs: 'blah', resolvers: {} })).toThrowError( - GraphQLError, - ); + expect(() => makeExecutableSchema({ typeDefs: 'blah', resolvers: {} })).toThrow(GraphQLError); }); test('throws an error if typeDefinitionNodes is neither string nor array nor schema AST', () => { @@ -95,9 +93,7 @@ describe('generating schema from shorthand', () => { typeDefs: {} as unknown as TypeSource, resolvers: {}, }), - ).toThrowError( - 'typeDefs must contain only strings, documents, schemas, or functions, got object', - ); + ).toThrow('typeDefs must contain only strings, documents, schemas, or functions, got object'); }); test('throws an error if typeDefinitionNode array contains not only functions and strings', () => { @@ -106,9 +102,7 @@ describe('generating schema from shorthand', () => { typeDefs: [17] as unknown as TypeSource, resolvers: {}, }), - ).toThrowError( - 'typeDefs must contain only strings, documents, schemas, or functions, got number', - ); + ).toThrow('typeDefs must contain only strings, documents, schemas, or functions, got number'); }); test('throws an error if resolverValidationOptions is not an object', () => { @@ -117,7 +111,7 @@ describe('generating schema from shorthand', () => { resolvers: {}, resolverValidationOptions: 'string' as unknown as IResolverValidationOptions, }; - expect(() => makeExecutableSchema(options)).toThrowError( + expect(() => makeExecutableSchema(options)).toThrow( 'Expected `resolverValidationOptions` to be an object', ); }); @@ -1494,7 +1488,7 @@ describe('generating schema from shorthand', () => { typeDefs: short, resolvers: rf, }), - ).toThrowError('Resolver Query.bird must be object or function'); + ).toThrow('Resolver Query.bird must be object or function'); }); test('shows a warning if a field is not scalar, but has no resolver', () => { @@ -1579,7 +1573,7 @@ To disable this validator, use: }, }; - expect(() => makeExecutableSchema({ typeDefs: short, resolvers: rf })).toThrowError( + expect(() => makeExecutableSchema({ typeDefs: short, resolvers: rf })).toThrow( 'Searchable.name was defined in resolvers, but Searchable is not an object or interface type', ); @@ -1591,7 +1585,7 @@ To disable this validator, use: requireResolversToMatchSchema: 'ignore', }, }), - ).not.toThrowError(); + ).not.toThrow(); }); test('throws if resolver defined for non existent type', () => { @@ -1614,7 +1608,7 @@ To disable this validator, use: }, }; - expect(() => makeExecutableSchema({ typeDefs: short, resolvers: rf })).toThrowError( + expect(() => makeExecutableSchema({ typeDefs: short, resolvers: rf })).toThrow( '"Searchable" defined in resolvers, but not in schema', ); @@ -1626,7 +1620,7 @@ To disable this validator, use: requireResolversToMatchSchema: 'ignore', }, }), - ).not.toThrowError(); + ).not.toThrow(); }); test('throws if resolver value is invalid', () => { @@ -1647,7 +1641,7 @@ To disable this validator, use: Searchable: undefined, } as any; - expect(() => makeExecutableSchema({ typeDefs: short, resolvers: rf })).toThrowError( + expect(() => makeExecutableSchema({ typeDefs: short, resolvers: rf })).toThrow( '"Searchable" defined in resolvers, but has invalid value "undefined". The resolver\'s value ' + 'must be of type object.', ); @@ -1673,7 +1667,7 @@ To disable this validator, use: }, }; - expect(() => makeExecutableSchema({ typeDefs: short, resolvers: rf })).toThrowError( + expect(() => makeExecutableSchema({ typeDefs: short, resolvers: rf })).toThrow( 'RootQuery.name defined in resolvers, but not in schema', ); @@ -1685,7 +1679,7 @@ To disable this validator, use: requireResolversToMatchSchema: 'ignore', }, }), - ).not.toThrowError(); + ).not.toThrow(); }); test('does not let you define resolver field for enum values not present in schema', () => { @@ -1718,7 +1712,7 @@ To disable this validator, use: }, }; - expect(() => makeExecutableSchema({ typeDefs: short, resolvers: rf })).toThrowError( + expect(() => makeExecutableSchema({ typeDefs: short, resolvers: rf })).toThrow( 'Color.NO_RESOLVER was defined in resolvers, but not present within Color', ); @@ -1730,7 +1724,7 @@ To disable this validator, use: requireResolversToMatchSchema: 'ignore', }, }), - ).not.toThrowError(); + ).not.toThrow(); }); test('throws if conflicting validation options are passed', () => { @@ -1869,7 +1863,7 @@ To disable this validator, use: typeDefs: shorthand, resolvers: resolveFunctions, }), - ).toThrowError('RootQuery.speciez defined in resolvers, but not in schema'); + ).toThrow('RootQuery.speciez defined in resolvers, but not in schema'); done(); }); test('throws an error if a resolve type is not in schema', done => { @@ -1900,7 +1894,7 @@ To disable this validator, use: typeDefs: shorthand, resolvers: resolveFunctions, }), - ).toThrowError('"BootQuery" defined in resolvers, but not in schema'); + ).toThrow('"BootQuery" defined in resolvers, but not in schema'); done(); }); }); @@ -1999,7 +1993,7 @@ describe('can specify lexical parser options', () => { resolvers, experimentalFragmentVariables: true, }); - }).not.toThrowError(); + }).not.toThrow(); }); // Note that the experimentalFragmentVariables option requires a client side transform diff --git a/packages/executor/src/execution/__tests__/simplePubSub.ts b/packages/testing/simplePubSub.ts similarity index 86% rename from packages/executor/src/execution/__tests__/simplePubSub.ts rename to packages/testing/simplePubSub.ts index a3ffc21928b..cbc4ebf4913 100644 --- a/packages/executor/src/execution/__tests__/simplePubSub.ts +++ b/packages/testing/simplePubSub.ts @@ -1,3 +1,6 @@ +import { fakePromise } from '@graphql-tools/utils'; +import { DisposableSymbols } from '@whatwg-node/disposablestack'; + /** * Create an AsyncIterator from an EventEmitter. Useful for mocking a * PubSub system for tests. @@ -56,14 +59,19 @@ export class SimplePubSub { [Symbol.asyncIterator]() { return this; }, + [DisposableSymbols.asyncDispose]() { + emptyQueue(); + return fakePromise(undefined); + }, }; function pushValue(event: T): void { const value: R = transform(event); if (pullQueue.length > 0) { const receiver = pullQueue.shift(); - expect(receiver != null).toBeTruthy(); - // @ts-expect-error + if (!receiver) { + throw new Error('Invalid state'); + } receiver({ value, done: false }); } else { pushQueue.push(value); @@ -71,7 +79,3 @@ export class SimplePubSub { } } } - -describe.skip('no simplePubSub tests', () => { - it.todo('nothing to test'); -}); diff --git a/packages/testing/to-be-similar-gql-doc.ts b/packages/testing/to-be-similar-gql-doc.ts index 25560d33daf..a09b280892e 100644 --- a/packages/testing/to-be-similar-gql-doc.ts +++ b/packages/testing/to-be-similar-gql-doc.ts @@ -1,6 +1,7 @@ import { ASTNode, DefinitionNode, DocumentNode, parse, print } from 'graphql'; import { diff } from 'jest-diff'; import { compareNodes } from '@graphql-tools/utils'; +import { expect } from '@jest/globals'; declare global { namespace jest { diff --git a/packages/testing/to-be-similar-string.ts b/packages/testing/to-be-similar-string.ts index 8d8ec853a21..e0adb7b6846 100644 --- a/packages/testing/to-be-similar-string.ts +++ b/packages/testing/to-be-similar-string.ts @@ -1,4 +1,5 @@ import { diff } from 'jest-diff'; +import { expect } from '@jest/globals'; import { normalizeString } from './utils.js'; declare global { diff --git a/packages/testing/utils.ts b/packages/testing/utils.ts index d5accd44239..d95026d0b45 100644 --- a/packages/testing/utils.ts +++ b/packages/testing/utils.ts @@ -2,7 +2,7 @@ import { existsSync } from 'fs'; import { resolve } from 'path'; import { cwd } from 'process'; -import { jest } from '@jest/globals'; +import { afterEach, beforeEach, describe, jest, test } from '@jest/globals'; export function normalizeString(str: string) { return str.replace(/[\s,]+/g, ' ').trim(); @@ -83,3 +83,11 @@ function findProjectDir(dirname: string): string | never { throw new Error(`Couldn't find project's root from: ${originalDirname}`); } + +export function describeIf(condition: boolean): typeof describe.skip { + return condition ? describe : describe.skip; +} + +export function testIf(condition: boolean): typeof test.skip { + return condition ? test : test.skip; +} diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md index d406e16f539..a9921f64c61 100644 --- a/packages/utils/CHANGELOG.md +++ b/packages/utils/CHANGELOG.md @@ -1,5 +1,166 @@ # @graphql-tools/utils +## 10.8.6 + +### Patch Changes + +- [`d123e26`](https://github.com/ardatan/graphql-tools/commit/d123e26b30b4febbbe1780bd32773b60e614dbf0) + Thanks [@ardatan](https://github.com/ardatan)! - Fix incomplete string escaping/encoding + +## 10.8.5 + +### Patch Changes + +- [#6977](https://github.com/ardatan/graphql-tools/pull/6977) + [`90a717e`](https://github.com/ardatan/graphql-tools/commit/90a717e35a7e4e51da4fe747cb73544f24698fb7) + Thanks [@ardatan](https://github.com/ardatan)! - In executor, do not use leaking + `registerAbortSignalListener`, and handle listeners inside the execution context + +- [#7025](https://github.com/ardatan/graphql-tools/pull/7025) + [`26518de`](https://github.com/ardatan/graphql-tools/commit/26518debfcb668e8feb5fb146271a13da92b778a) + Thanks [@ardatan](https://github.com/ardatan)! - Better handling for field name handling in + `buildOperationForField` + +## 10.8.4 + +### Patch Changes + +- [`155944b`](https://github.com/ardatan/graphql-tools/commit/155944b11e7ff1d8816ba3e9a4e4aa035c81f645) + Thanks [@ardatan](https://github.com/ardatan)! - Fix breaking change by adding + `PromiseWithResolvers` back + +## 10.8.3 + +### Patch Changes + +- [#6971](https://github.com/ardatan/graphql-tools/pull/6971) + [`4a2eb14`](https://github.com/ardatan/graphql-tools/commit/4a2eb14d0e3394d3dfbb3d83856500c5fb548285) + Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates: + - Added dependency + [`@whatwg-node/promise-helpers@^1.0.0` โ†—๏ธŽ](https://www.npmjs.com/package/@whatwg-node/promise-helpers/v/1.0.0) + (to `dependencies`) + +## 10.8.2 + +### Patch Changes + +- [`3547bba`](https://github.com/ardatan/graphql-tools/commit/3547bbadd3ad4fa01a950fd685345f7c9c934e2f) + Thanks [@ardatan](https://github.com/ardatan)! - Relax `extensions` type + +## 10.8.1 + +### Patch Changes + +- [`651a5dc`](https://github.com/ardatan/graphql-tools/commit/651a5dccb466b04f7fd16561cd264acd306e0711) + Thanks [@ardatan](https://github.com/ardatan)! - Fix the regression on var counting + +## 10.8.0 + +### Minor Changes + +- [#6921](https://github.com/ardatan/graphql-tools/pull/6921) + [`357b2ee`](https://github.com/ardatan/graphql-tools/commit/357b2ee6eef5e1f3b2b067728e9b167b1c2f82e5) + Thanks [@renovate](https://github.com/apps/renovate)! - New `isUrl` helper, and it uses + `URL.canParse` if available + +### Patch Changes + +- [`0a3e193`](https://github.com/ardatan/graphql-tools/commit/0a3e193e1ed70bd744375bfb4a10e515ecf59019) + Thanks [@ardatan](https://github.com/ardatan)! - Do not add `_v` prefix if there is only one + argument/variable + +## 10.7.2 + +### Patch Changes + +- [#6822](https://github.com/ardatan/graphql-tools/pull/6822) + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537) + Thanks [@enisdenjo](https://github.com/enisdenjo)! - dependencies updates: + + - Updated dependency [`dset@^3.1.4` โ†—๏ธŽ](https://www.npmjs.com/package/dset/v/3.1.4) (from + `^3.1.2`, in `dependencies`) + +- [#6822](https://github.com/ardatan/graphql-tools/pull/6822) + [`53bb601`](https://github.com/ardatan/graphql-tools/commit/53bb60104782738f51a2c2de42d6da7aba191537) + Thanks [@enisdenjo](https://github.com/enisdenjo)! - Bump dset dependency handling the + CVE-2024-21529 + + https://security.snyk.io/vuln/SNYK-JS-DSET-7116691 + +## 10.7.1 + +### Patch Changes + +- [#6809](https://github.com/ardatan/graphql-tools/pull/6809) + [`4912f19`](https://github.com/ardatan/graphql-tools/commit/4912f19b290a06c603b00e268d49abebddc3fd6d) + Thanks [@AaronMoat](https://github.com/AaronMoat)! - Remove use of `VoidFunction` type, which + requires DOM types + +## 10.7.0 + +### Minor Changes + +- [#6789](https://github.com/ardatan/graphql-tools/pull/6789) + [`2c70d27`](https://github.com/ardatan/graphql-tools/commit/2c70d276c510be18f7ce9e966c4653ff3c9b2641) + Thanks [@n1ru4l](https://github.com/n1ru4l)! - - New helper function `getAbortPromise` to get a + promise rejected when `AbortSignal` is aborted + + - New helper function `registerAbortSignalListener` to register a listener to abort a promise when + `AbortSignal` is aborted + + Instead of using `.addEventListener('abort', () => {/* ... */})`, we register a single listener to + avoid warnings on Node.js like + `MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 abort listeners added. Use emitter.setMaxListeners() to increase limit`. + +## 10.6.4 + +### Patch Changes + +- [#6769](https://github.com/ardatan/graphql-tools/pull/6769) + [`6a8123b`](https://github.com/ardatan/graphql-tools/commit/6a8123be34d3270e4e6a628c7b4ef35fa66f52a1) + Thanks [@ardatan](https://github.com/ardatan)! - Improvements for `fakePromise` so it can be used + without params to create a `void` Promise + +## 10.6.3 + +### Patch Changes + +- [`020b9e4`](https://github.com/ardatan/graphql-tools/commit/020b9e47b51f9847bf915de5faefe09dc04d9612) + Thanks [@ardatan](https://github.com/ardatan)! - \`AbortSignal\` in \`GraphQLResolveInfo\`, and + \`AbortSignal\` in \`ExecutionRequest\` + +## 10.6.2 + +### Patch Changes + +- [#6737](https://github.com/ardatan/graphql-tools/pull/6737) + [`1b24656`](https://github.com/ardatan/graphql-tools/commit/1b24656d3d13274820e52bede56991b0c54e8060) + Thanks [@ardatan](https://github.com/ardatan)! - Handle array of primitives correctly + + The bug was following; + + ```ts + mergeDeep([{ options: ['$a', '$b'] }, { options: ['$c'] }, { options: ['$d', '$e'] }]) + + // results in { options: [{}, {}] } + ``` + +## 10.6.1 + +### Patch Changes + +- [`1e02935`](https://github.com/ardatan/graphql-tools/commit/1e0293562961fb12b267235e5aa6d0e83d0e7d0f) + Thanks [@ardatan](https://github.com/ardatan)! - Handle parse errors correctly when loader gets a + string directly + +## 10.6.0 + +### Minor Changes + +- [`414e404`](https://github.com/ardatan/graphql-tools/commit/414e404a06478ea8ddd1065bd765de14af0f6c43) + Thanks [@ardatan](https://github.com/ardatan)! - new `fakePromise`, `mapMaybePromise` and + `fakeRejectPromise` helper functions + ## 10.5.6 ### Patch Changes @@ -1002,8 +1163,8 @@ ### Patch Changes -- e53f97b3: fix(utils): provide { done: true } from iterator when complete is called on observer in - observableToAsyncIterable +- e53f97b3: fix(utils): provide `{ done: true }` from iterator when complete is called on observer + in observableToAsyncIterable ## 7.2.5 @@ -1031,7 +1192,7 @@ - 6e50d9fc: enhance(stitching-directives): use keyField When using simple keys, i.e. when using the keyField argument to `@merge`, the keyField can be - added implicitly to the types's key. In most cases, therefore, `@key` should not be required at + added implicitly to the types' key. In most cases, therefore, `@key` should not be required at all. ## 7.2.3 diff --git a/packages/utils/package.json b/packages/utils/package.json index 3079f9c70b0..c8ebaf350ea 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-tools/utils", - "version": "10.5.6", + "version": "10.8.6", "type": "module", "description": "Common package containing utils and types for GraphQL tools", "repository": { @@ -38,14 +38,16 @@ }, "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", "cross-inspect": "1.0.1", - "dset": "^3.1.2", + "dset": "^3.1.4", "tslib": "^2.4.0" }, "devDependencies": { + "@graphql-tools/stitch": "^9.3.4", "@types/dateformat": "3.0.1", "dateformat": "4.6.3", - "graphql-scalars": "1.23.0" + "graphql-scalars": "1.24.2" }, "publishConfig": { "directory": "dist", diff --git a/packages/utils/src/Interfaces.ts b/packages/utils/src/Interfaces.ts index 552cdb2da5a..298f2df0e5f 100644 --- a/packages/utils/src/Interfaces.ts +++ b/packages/utils/src/Interfaces.ts @@ -24,7 +24,6 @@ import { GraphQLNamedType, GraphQLObjectType, GraphQLOutputType, - GraphQLResolveInfo, GraphQLScalarLiteralParser, GraphQLScalarSerializer, GraphQLScalarType, @@ -40,6 +39,7 @@ import { ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeNode, + GraphQLResolveInfo as OrigGraphQLResolveInfo, ScalarTypeDefinitionNode, ScalarTypeExtensionNode, SelectionNode, @@ -68,6 +68,10 @@ export interface ExecutionResult { items?: TData | null; } +export interface GraphQLResolveInfo extends OrigGraphQLResolveInfo { + signal?: AbortSignal; +} + export interface ExecutionRequest< TVariables extends Record = any, TContext = any, @@ -86,6 +90,7 @@ export interface ExecutionRequest< // If the request originates within execution of a parent request, it may contain the parent context and info context?: TContext; info?: GraphQLResolveInfo; + signal?: AbortSignal; } // graphql-js non-exported typings diff --git a/packages/utils/src/Path.ts b/packages/utils/src/Path.ts index 48161011e00..37bb6ef979e 100644 --- a/packages/utils/src/Path.ts +++ b/packages/utils/src/Path.ts @@ -21,7 +21,7 @@ export function addPath( * Given a Path, return an Array of the path keys. */ export function pathToArray(path: Maybe>): Array { - const flattened = []; + const flattened: Array = []; let curr = path; while (curr) { flattened.push(curr.key); diff --git a/packages/utils/src/addTypes.ts b/packages/utils/src/addTypes.ts index 0daf82d5352..200340662a9 100644 --- a/packages/utils/src/addTypes.ts +++ b/packages/utils/src/addTypes.ts @@ -26,15 +26,10 @@ // enhanceSchema can fill this gap by adding an additional round of rewiring. // -import { - GraphQLDirective, - GraphQLNamedType, - GraphQLSchema, - isDirective, - isNamedType, -} from 'graphql'; +import { GraphQLDirective, GraphQLNamedType, GraphQLSchema, isDirective } from 'graphql'; import { getObjectTypeFromTypeMap } from './getObjectTypeFromTypeMap.js'; import { rewireTypes } from './rewire.js'; +import { isNamedType } from './typeCheckers.js'; export function addTypes( schema: GraphQLSchema, diff --git a/packages/utils/src/astFromType.ts b/packages/utils/src/astFromType.ts index e53d84b3f2e..1ef6281dced 100644 --- a/packages/utils/src/astFromType.ts +++ b/packages/utils/src/astFromType.ts @@ -1,5 +1,6 @@ import { inspect } from 'cross-inspect'; -import { GraphQLType, isListType, isNonNullType, Kind, TypeNode } from 'graphql'; +import { GraphQLType, Kind, TypeNode } from 'graphql'; +import { isListType, isNonNullType } from './typeCheckers.js'; export function astFromType(type: GraphQLType): TypeNode { if (isNonNullType(type)) { diff --git a/packages/utils/src/astFromValue.ts b/packages/utils/src/astFromValue.ts index 5dc6caed1cc..c739d06d7bc 100644 --- a/packages/utils/src/astFromValue.ts +++ b/packages/utils/src/astFromValue.ts @@ -1,17 +1,14 @@ import { inspect } from 'cross-inspect'; +import { Kind, ObjectFieldNode, ValueNode, type GraphQLInputType } from 'graphql'; +import { astFromValueUntyped } from './astFromValueUntyped.js'; +import { isIterableObject, isObjectLike } from './jsutils.js'; import { - GraphQLInputType, isEnumType, isInputObjectType, isLeafType, isListType, isNonNullType, - Kind, - ObjectFieldNode, - ValueNode, -} from 'graphql'; -import { astFromValueUntyped } from './astFromValueUntyped.js'; -import { isIterableObject, isObjectLike } from './jsutils.js'; +} from './typeCheckers.js'; import { Maybe } from './types.js'; /** @@ -60,7 +57,7 @@ export function astFromValue(value: unknown, type: GraphQLInputType): Maybe): number { - let commonIndent = null; + let commonIndent: number | null = null; for (let i = 1; i < lines.length; i++) { const line = lines[i]; diff --git a/packages/utils/src/executor.ts b/packages/utils/src/executor.ts index 065560fe6ce..2a511120e08 100644 --- a/packages/utils/src/executor.ts +++ b/packages/utils/src/executor.ts @@ -1,6 +1,8 @@ +import type { MaybePromise } from '@whatwg-node/promise-helpers'; import { ExecutionRequest, ExecutionResult } from './Interfaces.js'; -export type MaybePromise = PromiseLike | T; +export type { MaybePromise } from '@whatwg-node/promise-helpers'; + export type MaybeAsyncIterable = AsyncIterable | T; export type AsyncExecutor< @@ -42,13 +44,11 @@ export type Executor, TBaseExtensions = Recor export type DisposableSyncExecutor< TBaseContext = Record, TBaseExtensions = Record, -> = SyncExecutor & { [Symbol.dispose]: () => void }; +> = SyncExecutor & Disposable; export type DisposableAsyncExecutor< TBaseContext = Record, TBaseExtensions = Record, -> = AsyncExecutor & { - [Symbol.asyncDispose]: () => PromiseLike; -}; +> = AsyncExecutor & AsyncDisposable; export type DisposableExecutor< TBaseContext = Record, TBaseExtensions = Record, diff --git a/packages/utils/src/forEachDefaultValue.ts b/packages/utils/src/forEachDefaultValue.ts index 3bf99f555db..41aa15f5f71 100644 --- a/packages/utils/src/forEachDefaultValue.ts +++ b/packages/utils/src/forEachDefaultValue.ts @@ -1,12 +1,13 @@ -import { getNamedType, GraphQLSchema, isInputObjectType, isObjectType } from 'graphql'; +import { GraphQLSchema } from 'graphql'; import { IDefaultValueIteratorFn } from './Interfaces.js'; +import { isInputObjectType, isIntrospectionType, isObjectType } from './typeCheckers.js'; export function forEachDefaultValue(schema: GraphQLSchema, fn: IDefaultValueIteratorFn): void { const typeMap = schema.getTypeMap(); for (const typeName in typeMap) { const type = typeMap[typeName]; - if (!getNamedType(type).name.startsWith('__')) { + if (!isIntrospectionType(type)) { if (isObjectType(type)) { const fields = type.getFields(); for (const fieldName in fields) { diff --git a/packages/utils/src/forEachField.ts b/packages/utils/src/forEachField.ts index 5834b05d03f..0c7d7861623 100644 --- a/packages/utils/src/forEachField.ts +++ b/packages/utils/src/forEachField.ts @@ -1,5 +1,6 @@ -import { getNamedType, GraphQLSchema, isObjectType } from 'graphql'; +import { GraphQLSchema } from 'graphql'; import { IFieldIteratorFn } from './Interfaces.js'; +import { isIntrospectionType, isObjectType } from './typeCheckers.js'; export function forEachField(schema: GraphQLSchema, fn: IFieldIteratorFn): void { const typeMap = schema.getTypeMap(); @@ -7,7 +8,7 @@ export function forEachField(schema: GraphQLSchema, fn: IFieldIteratorFn): void const type = typeMap[typeName]; // TODO: maybe have an option to include these? - if (!getNamedType(type).name.startsWith('__') && isObjectType(type)) { + if (!isIntrospectionType(type) && isObjectType(type)) { const fields = type.getFields(); for (const fieldName in fields) { const field = fields[fieldName]; diff --git a/packages/utils/src/getArgumentValues.ts b/packages/utils/src/getArgumentValues.ts index 44ddfad57aa..bd8e8dd1aae 100644 --- a/packages/utils/src/getArgumentValues.ts +++ b/packages/utils/src/getArgumentValues.ts @@ -5,13 +5,13 @@ import { FieldNode, GraphQLDirective, GraphQLField, - isNonNullType, Kind, print, valueFromAST, } from 'graphql'; import { createGraphQLError } from './errors.js'; import { hasOwnProperty } from './jsutils.js'; +import { isNonNullType } from './typeCheckers.js'; /** * Prepares an object map of argument values given a list of argument diff --git a/packages/utils/src/getDirectiveExtensions.ts b/packages/utils/src/getDirectiveExtensions.ts index 81c91673970..f2bfa9b793d 100644 --- a/packages/utils/src/getDirectiveExtensions.ts +++ b/packages/utils/src/getDirectiveExtensions.ts @@ -10,7 +10,7 @@ export type DirectableASTNode = ASTNode & { export type DirectableObject = { astNode?: DirectableASTNode | null | undefined; extensionASTNodes?: readonly DirectableASTNode[] | null | undefined; - extensions?: { directives?: Record | undefined } | null | undefined; + extensions?: any; }; export function getDirectiveExtensions< diff --git a/packages/utils/src/getObjectTypeFromTypeMap.ts b/packages/utils/src/getObjectTypeFromTypeMap.ts index 17d12c5d603..d91845d44f8 100644 --- a/packages/utils/src/getObjectTypeFromTypeMap.ts +++ b/packages/utils/src/getObjectTypeFromTypeMap.ts @@ -1,4 +1,5 @@ -import { GraphQLNamedType, GraphQLObjectType, isObjectType } from 'graphql'; +import { GraphQLNamedType, GraphQLObjectType } from 'graphql'; +import { isObjectType } from './typeCheckers.js'; import { Maybe } from './types.js'; export function getObjectTypeFromTypeMap( diff --git a/packages/utils/src/getResolversFromSchema.ts b/packages/utils/src/getResolversFromSchema.ts index af045846139..0c2b3c550f5 100644 --- a/packages/utils/src/getResolversFromSchema.ts +++ b/packages/utils/src/getResolversFromSchema.ts @@ -1,14 +1,13 @@ +import { GraphQLScalarType, GraphQLSchema } from 'graphql'; +import { IResolvers } from './Interfaces.js'; import { - GraphQLScalarType, - GraphQLSchema, isEnumType, isInterfaceType, isObjectType, isScalarType, isSpecifiedScalarType, isUnionType, -} from 'graphql'; -import { IResolvers } from './Interfaces.js'; +} from './typeCheckers.js'; export function getResolversFromSchema( schema: GraphQLSchema, diff --git a/packages/utils/src/getResponseKeyFromInfo.ts b/packages/utils/src/getResponseKeyFromInfo.ts index 4f1277a0a7f..16e02061c81 100644 --- a/packages/utils/src/getResponseKeyFromInfo.ts +++ b/packages/utils/src/getResponseKeyFromInfo.ts @@ -1,4 +1,4 @@ -import { GraphQLResolveInfo } from 'graphql'; +import { GraphQLResolveInfo } from './Interfaces.js'; /** * Get the key under which the result of this resolver will be placed in the response JSON. Basically, just diff --git a/packages/utils/src/heal.ts b/packages/utils/src/heal.ts index 2f494ed1ec9..90811178879 100644 --- a/packages/utils/src/heal.ts +++ b/packages/utils/src/heal.ts @@ -11,6 +11,8 @@ import { GraphQLSchema, GraphQLType, GraphQLUnionType, +} from 'graphql'; +import { isInputObjectType, isInterfaceType, isLeafType, @@ -19,7 +21,7 @@ import { isNonNullType, isObjectType, isUnionType, -} from 'graphql'; +} from './typeCheckers.js'; // Update any references to named schema types that disagree with the named // types found in schema.getTypeMap(). diff --git a/packages/utils/src/helpers.ts b/packages/utils/src/helpers.ts index 60508f92734..b91d96ff021 100644 --- a/packages/utils/src/helpers.ts +++ b/packages/utils/src/helpers.ts @@ -1,8 +1,53 @@ import { ASTNode, parse } from 'graphql'; +const URL_REGEXP = /^(https?|wss?|file):\/\//; + +/** + * Checks if the given string is a valid URL. + * + * @param str - The string to validate as a URL + * @returns A boolean indicating whether the string is a valid URL + * + * @remarks + * This function first attempts to use the `URL.canParse` method if available. + * If not, it falls back to creating a new `URL` object to validate the string. + */ +export function isUrl(str: string): boolean { + if (typeof str !== 'string') { + return false; + } + if (!URL_REGEXP.test(str)) { + return false; + } + if (URL.canParse) { + return URL.canParse(str); + } + try { + const url = new URL(str); + return !!url; + } catch (e) { + return false; + } +} + export const asArray = (fns: T | T[]) => (Array.isArray(fns) ? fns : fns ? [fns] : []); const invalidDocRegex = /\.[a-z0-9]+$/i; +/** + * Determines if a given input is a valid GraphQL document string. + * + * @param str - The input to validate as a GraphQL document + * @returns A boolean indicating whether the input is a valid GraphQL document string + * + * @remarks + * This function performs several validation checks: + * - Ensures the input is a string + * - Filters out strings with invalid document extensions + * - Excludes URLs + * - Attempts to parse the string as a GraphQL document + * + * @throws {Error} If the document fails to parse and is empty except GraphQL comments + */ export function isDocumentString(str: any): boolean { if (typeof str !== 'string') { return false; @@ -13,14 +58,22 @@ export function isDocumentString(str: any): boolean { // this why checking the extension is fast enough // and prevent from parsing the string in order to find out // if the string is a SDL - if (invalidDocRegex.test(str)) { + if (invalidDocRegex.test(str) || isUrl(str)) { return false; } try { parse(str); return true; - } catch (e: any) {} + } catch (e: any) { + if ( + !e.message.includes('EOF') && + str.replace(/(\#[^*]*)/g, '').trim() !== '' && + str.includes(' ') + ) { + throw new Error(`Failed to parse the GraphQL document. ${e.message}\n${str}`); + } + } return false; } diff --git a/packages/utils/src/implementsAbstractType.ts b/packages/utils/src/implementsAbstractType.ts index 60d439ee426..443c873117c 100644 --- a/packages/utils/src/implementsAbstractType.ts +++ b/packages/utils/src/implementsAbstractType.ts @@ -1,4 +1,5 @@ -import { doTypesOverlap, GraphQLSchema, GraphQLType, isCompositeType } from 'graphql'; +import { doTypesOverlap, GraphQLSchema, GraphQLType } from 'graphql'; +import { isCompositeType } from './typeCheckers.js'; import { Maybe } from './types.js'; export function implementsAbstractType( diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index 43b8ed2e31c..00d745fad46 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -28,8 +28,8 @@ export * from './getResponseKeyFromInfo.js'; export * from './fields.js'; export * from './renameType.js'; export * from './transformInputValue.js'; -export * from './mapAsyncIterator.js'; export * from './updateArgument.js'; +export * from './astFromType.js'; export * from './implementsAbstractType.js'; export * from './errors.js'; export * from './observableToAsyncIterable.js'; @@ -55,3 +55,11 @@ export * from './directives.js'; export * from './mergeIncrementalResult.js'; export * from './debugTimer.js'; export * from './getDirectiveExtensions.js'; +export { + mapAsyncIterator, + mapMaybePromise, + fakePromise, + createDeferredPromise as createDeferred, +} from '@whatwg-node/promise-helpers'; +export * from './registerAbortSignalListener.js'; +export * from './typeCheckers.js'; diff --git a/packages/utils/src/jsutils.ts b/packages/utils/src/jsutils.ts index 3bc0bb95aba..f99b826e87d 100644 --- a/packages/utils/src/jsutils.ts +++ b/packages/utils/src/jsutils.ts @@ -1,4 +1,4 @@ -import { MaybePromise } from './executor.js'; +import { handleMaybePromise, isPromise, type MaybePromise } from '@whatwg-node/promise-helpers'; export function isIterableObject(value: unknown): value is Iterable { return value != null && typeof value === 'object' && Symbol.iterator in value; @@ -8,9 +8,7 @@ export function isObjectLike(value: unknown): value is { [key: string]: unknown return typeof value === 'object' && value !== null; } -export function isPromise(value: any): value is PromiseLike { - return value?.then != null; -} +export { isPromise }; export function promiseReduce( values: Iterable, @@ -20,9 +18,10 @@ export function promiseReduce( let accumulator = initialValue; for (const value of values) { - accumulator = isPromise(accumulator) - ? accumulator.then(resolved => callbackFn(resolved, value)) - : callbackFn(accumulator, value); + accumulator = handleMaybePromise( + () => accumulator, + resolved => callbackFn(resolved, value), + ); } return accumulator; diff --git a/packages/utils/src/mapAsyncIterator.ts b/packages/utils/src/mapAsyncIterator.ts deleted file mode 100644 index 9257e6e197b..00000000000 --- a/packages/utils/src/mapAsyncIterator.ts +++ /dev/null @@ -1,88 +0,0 @@ -import type { MaybePromise } from './executor.js'; -import { isPromise } from './jsutils.js'; - -/** - * Given an AsyncIterable and a callback function, return an AsyncIterator - * which produces values mapped via calling the callback function. - */ -export function mapAsyncIterator( - iterator: AsyncIterable | AsyncIterator, - onNext: (value: T) => MaybePromise, - onError?: any, - onEnd?: () => MaybePromise, -): AsyncIterableIterator { - if (Symbol.asyncIterator in iterator) { - iterator = iterator[Symbol.asyncIterator](); - } - let $return: () => Promise>; - let abruptClose: (error: any) => Promise; - let onEndWithValue: (value: R) => MaybePromise; - - if (onEnd) { - let onEndWithValueResult: any /** R in onEndWithValue */; - onEndWithValue = value => { - if (onEndWithValueResult) { - return onEndWithValueResult; - } - const onEnd$ = onEnd(); - return (onEndWithValueResult = isPromise(onEnd$) ? onEnd$.then(() => value) : value); - }; - } - - if (typeof iterator.return === 'function') { - $return = iterator.return; - abruptClose = (error: any) => { - const rethrow = () => Promise.reject(error); - return $return.call(iterator).then(rethrow, rethrow); - }; - } - - function mapResult(result: any) { - if (result.done) { - return onEndWithValue ? onEndWithValue(result) : result; - } - return asyncMapValue(result.value, onNext).then(iteratorResult, abruptClose); - } - - let mapReject: any; - if (onError) { - let onErrorResult: unknown; - // Capture rejectCallback to ensure it cannot be null. - const reject = onError; - mapReject = (error: any) => { - if (onErrorResult) { - return onErrorResult; - } - return (onErrorResult = asyncMapValue(error, reject).then(iteratorResult, abruptClose)); - }; - } - - return { - next() { - return iterator.next().then(mapResult, mapReject); - }, - return() { - const res$ = $return - ? $return.call(iterator).then(mapResult, mapReject) - : Promise.resolve({ value: undefined, done: true }); - return onEndWithValue ? res$.then(onEndWithValue) : res$; - }, - throw(error: any) { - if (typeof iterator.throw === 'function') { - return iterator.throw(error).then(mapResult, mapReject); - } - return Promise.reject(error).catch(abruptClose); - }, - [Symbol.asyncIterator]() { - return this; - }, - }; -} - -function asyncMapValue(value: T, callback: (value: T) => PromiseLike | U): Promise { - return new Promise(resolve => resolve(callback(value))); -} - -function iteratorResult(value: T): IteratorResult { - return { value, done: false }; -} diff --git a/packages/utils/src/mapSchema.ts b/packages/utils/src/mapSchema.ts index 4af66b5f25a..5f9663673fd 100644 --- a/packages/utils/src/mapSchema.ts +++ b/packages/utils/src/mapSchema.ts @@ -17,16 +17,6 @@ import { GraphQLSchema, GraphQLType, InputValueDefinitionNode, - isEnumType, - isInputObjectType, - isInterfaceType, - isLeafType, - isListType, - isNamedType, - isNonNullType, - isObjectType, - isScalarType, - isUnionType, Kind, } from 'graphql'; import { getObjectTypeFromTypeMap } from './getObjectTypeFromTypeMap.js'; @@ -43,6 +33,18 @@ import { } from './Interfaces.js'; import { rewireTypes } from './rewire.js'; import { parseInputValue, serializeInputValue } from './transformInputValue.js'; +import { + isEnumType, + isInputObjectType, + isInterfaceType, + isLeafType, + isListType, + isNamedType, + isNonNullType, + isObjectType, + isScalarType, + isUnionType, +} from './typeCheckers.js'; export function mapSchema(schema: GraphQLSchema, schemaMapper: SchemaMapper = {}): GraphQLSchema { const newTypeMap = mapArguments( diff --git a/packages/utils/src/mergeDeep.ts b/packages/utils/src/mergeDeep.ts index ed4ddec2ee7..9f690e8c9c9 100644 --- a/packages/utils/src/mergeDeep.ts +++ b/packages/utils/src/mergeDeep.ts @@ -12,39 +12,50 @@ export function mergeDeep( respectArrays = false, respectArrayLength = false, ): UnboxIntersection>> & any { - if (respectArrays && respectArrayLength) { - let expectedLength: number | undefined; - const areArraysInTheSameLength = sources.every(source => { - if (Array.isArray(source)) { - if (expectedLength === undefined) { - expectedLength = source.length; - return true; - } else if (expectedLength === source.length) { - return true; - } + let expectedLength: number | undefined; + let allArrays = true; + const areArraysInTheSameLength = sources.every(source => { + if (Array.isArray(source)) { + if (expectedLength === undefined) { + expectedLength = source.length; + return true; + } else if (expectedLength === source.length) { + return true; } - return false; - }); - - if (areArraysInTheSameLength) { - return new Array(expectedLength).fill(null).map((_, index) => - mergeDeep( - sources.map(source => source[index]), - respectPrototype, - respectArrays, - respectArrayLength, - ), - ); + } else { + allArrays = false; } + return false; + }); + + if (respectArrayLength && areArraysInTheSameLength) { + return new Array(expectedLength).fill(null).map((_, index) => + mergeDeep( + sources.map(source => source[index]), + respectPrototype, + respectArrays, + respectArrayLength, + ), + ); + } + if (allArrays) { + return sources.flat(1); } - const output = {}; + let output: any; + let firstObjectSource: any; if (respectPrototype) { - Object.setPrototypeOf(output, Object.create(Object.getPrototypeOf(sources[0]))); + firstObjectSource = sources.find(source => isObject(source)); + if (output == null) { + output = {}; + } + if (firstObjectSource) { + Object.setPrototypeOf(output, Object.create(Object.getPrototypeOf(firstObjectSource))); + } } for (const source of sources) { if (isObject(source)) { - if (respectPrototype) { + if (firstObjectSource) { const outputPrototype = Object.getPrototypeOf(output); const sourcePrototype = Object.getPrototypeOf(source); if (sourcePrototype) { @@ -58,36 +69,28 @@ export function mergeDeep( } for (const key in source) { - if (isObject(source[key])) { - if (!(key in output)) { - Object.assign(output, { [key]: source[key] }); - } else { - output[key] = mergeDeep( - [output[key], source[key]] as S, - respectPrototype, - respectArrays, - respectArrayLength, - ); - } - } else if (respectArrays && Array.isArray(output[key])) { - if (Array.isArray(source[key])) { - if (respectArrayLength && output[key].length === source[key].length) { - output[key] = mergeDeep( - [output[key], source[key]] as S, - respectPrototype, - respectArrays, - respectArrayLength, - ); - } else { - output[key].push(...source[key]); - } - } else { - output[key].push(source[key]); - } + if (output == null) { + output = {}; + } + if (key in output) { + output[key] = mergeDeep( + [output[key], source[key]], + respectPrototype, + respectArrays, + respectArrayLength, + ); } else { - Object.assign(output, { [key]: source[key] }); + output[key] = source[key]; } } + } else if (Array.isArray(source)) { + if (!Array.isArray(output)) { + output = source; + } else { + output = mergeDeep([output, source], respectPrototype, respectArrays, respectArrayLength); + } + } else { + output = source; } } return output; diff --git a/packages/utils/src/observableToAsyncIterable.ts b/packages/utils/src/observableToAsyncIterable.ts index 62c256c7559..ad601b87e5e 100644 --- a/packages/utils/src/observableToAsyncIterable.ts +++ b/packages/utils/src/observableToAsyncIterable.ts @@ -1,3 +1,5 @@ +import { fakePromise, fakeRejectPromise } from '@whatwg-node/promise-helpers'; + export interface Observer { next: (value: T) => void; error: (error: Error) => void; @@ -58,13 +60,13 @@ export function observableToAsyncIterable(observable: Observable): AsyncIt const subscription = observable.subscribe({ next(value: any) { - pushValue(value); + return pushValue(value); }, error(err: Error) { - pushError(err); + return pushError(err); }, complete() { - pushDone(); + return pushDone(); }, }); @@ -87,11 +89,11 @@ export function observableToAsyncIterable(observable: Observable): AsyncIt }, return() { emptyQueue(); - return Promise.resolve({ value: undefined, done: true }); + return fakePromise({ value: undefined, done: true }); }, throw(error) { emptyQueue(); - return Promise.reject(error); + return fakeRejectPromise(error); }, [Symbol.asyncIterator]() { return this; diff --git a/packages/utils/src/print-schema-with-directives.ts b/packages/utils/src/print-schema-with-directives.ts index ef473b7006c..6c150bfa39f 100644 --- a/packages/utils/src/print-schema-with-directives.ts +++ b/packages/utils/src/print-schema-with-directives.ts @@ -23,15 +23,6 @@ import { InputObjectTypeDefinitionNode, InputValueDefinitionNode, InterfaceTypeDefinitionNode, - isEnumType, - isInputObjectType, - isInterfaceType, - isIntrospectionType, - isObjectType, - isScalarType, - isSpecifiedDirective, - isSpecifiedScalarType, - isUnionType, Kind, NamedTypeNode, ObjectTypeDefinitionNode, @@ -55,6 +46,17 @@ import { } from './get-directives.js'; import { isSome } from './helpers.js'; import { getRootTypeMap } from './rootTypes.js'; +import { + isEnumType, + isInputObjectType, + isInterfaceType, + isIntrospectionType, + isObjectType, + isScalarType, + isSpecifiedDirective, + isSpecifiedScalarType, + isUnionType, +} from './typeCheckers.js'; import { GetDocumentNodeFromSchemaOptions, Maybe, diff --git a/packages/utils/src/prune.ts b/packages/utils/src/prune.ts index 7f32b00cb01..2f87ded94a7 100644 --- a/packages/utils/src/prune.ts +++ b/packages/utils/src/prune.ts @@ -1,7 +1,11 @@ +import { GraphQLFieldMap, GraphQLSchema } from 'graphql'; +import { DirectableGraphQLObject } from './get-directives.js'; +import { getImplementingTypes } from './get-implementing-types.js'; +import { MapperKind } from './Interfaces.js'; +import { mapSchema } from './mapSchema.js'; +import { getRootTypes } from './rootTypes.js'; import { getNamedType, - GraphQLFieldMap, - GraphQLSchema, isEnumType, isInputObjectType, isInterfaceType, @@ -9,12 +13,7 @@ import { isScalarType, isSpecifiedScalarType, isUnionType, -} from 'graphql'; -import { DirectableGraphQLObject } from './get-directives.js'; -import { getImplementingTypes } from './get-implementing-types.js'; -import { MapperKind } from './Interfaces.js'; -import { mapSchema } from './mapSchema.js'; -import { getRootTypes } from './rootTypes.js'; +} from './typeCheckers.js'; import { PruneSchemaOptions } from './types.js'; /** @@ -41,7 +40,7 @@ export function pruneSchema( // Custom pruning was defined, so we need to pre-emptively revisit the schema accounting for this if (skipPruning) { - const revisit = []; + const revisit: string[] = []; for (const typeName in prunedSchema.getTypeMap()) { if (typeName.startsWith('__')) { diff --git a/packages/utils/src/registerAbortSignalListener.ts b/packages/utils/src/registerAbortSignalListener.ts new file mode 100644 index 00000000000..9eddead16f8 --- /dev/null +++ b/packages/utils/src/registerAbortSignalListener.ts @@ -0,0 +1,49 @@ +import { fakeRejectPromise } from '@whatwg-node/promise-helpers'; +import { memoize1 } from './memoize.js'; + +// AbortSignal handler cache to avoid the "possible EventEmitter memory leak detected" +// on Node.js +const getListenersOfAbortSignal = memoize1(function getListenersOfAbortSignal(signal: AbortSignal) { + const listeners = new Set(); + signal.addEventListener( + 'abort', + e => { + for (const listener of listeners) { + listener(e); + } + }, + { once: true }, + ); + return listeners; +}); + +/** + * Register an AbortSignal handler for a signal. + * This helper function mainly exists to work around the + * "possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit." + * warning occuring on Node.js + */ +export function registerAbortSignalListener(signal: AbortSignal, listener: () => void) { + // If the signal is already aborted, call the listener immediately + if (signal.aborted) { + listener(); + return; + } + getListenersOfAbortSignal(signal).add(listener); +} + +export const getAbortPromise = memoize1(function getAbortPromise(signal: AbortSignal) { + // If the signal is already aborted, return a rejected promise + if (signal.aborted) { + return fakeRejectPromise(signal.reason); + } + return new Promise((_resolve, reject) => { + if (signal.aborted) { + reject(signal.reason); + return; + } + registerAbortSignalListener(signal, () => { + reject(signal.reason); + }); + }); +}); diff --git a/packages/utils/src/renameType.ts b/packages/utils/src/renameType.ts index 78705761a29..01f3ad58f46 100644 --- a/packages/utils/src/renameType.ts +++ b/packages/utils/src/renameType.ts @@ -6,13 +6,15 @@ import { GraphQLObjectType, GraphQLScalarType, GraphQLUnionType, +} from 'graphql'; +import { isEnumType, isInputObjectType, isInterfaceType, isObjectType, isScalarType, isUnionType, -} from 'graphql'; +} from './typeCheckers.js'; export function renameType(type: GraphQLObjectType, newTypeName: string): GraphQLObjectType; export function renameType(type: GraphQLInterfaceType, newTypeName: string): GraphQLInterfaceType; diff --git a/packages/utils/src/rewire.ts b/packages/utils/src/rewire.ts index da2c21dc198..bc2303404a9 100644 --- a/packages/utils/src/rewire.ts +++ b/packages/utils/src/rewire.ts @@ -13,6 +13,9 @@ import { GraphQLScalarType, GraphQLType, GraphQLUnionType, +} from 'graphql'; +import { getBuiltInForStub, isNamedStub } from './stub.js'; +import { isEnumType, isInputObjectType, isInterfaceType, @@ -24,8 +27,7 @@ import { isSpecifiedDirective, isSpecifiedScalarType, isUnionType, -} from 'graphql'; -import { getBuiltInForStub, isNamedStub } from './stub.js'; +} from './typeCheckers.js'; export function rewireTypes( originalTypeMap: Record, diff --git a/packages/utils/src/transformInputValue.ts b/packages/utils/src/transformInputValue.ts index e66f2a253ed..b29c2829c2f 100644 --- a/packages/utils/src/transformInputValue.ts +++ b/packages/utils/src/transformInputValue.ts @@ -1,11 +1,6 @@ -import { - getNullableType, - GraphQLInputType, - isInputObjectType, - isLeafType, - isListType, -} from 'graphql'; +import { GraphQLInputType } from 'graphql'; import { asArray } from './helpers.js'; +import { getNullableType, isInputObjectType, isLeafType, isListType } from './typeCheckers.js'; import { InputLeafValueTransformer, InputObjectValueTransformer, Maybe } from './types.js'; export function transformInputValue( diff --git a/packages/utils/src/typeCheckers.ts b/packages/utils/src/typeCheckers.ts new file mode 100644 index 00000000000..20fc86ed6c5 --- /dev/null +++ b/packages/utils/src/typeCheckers.ts @@ -0,0 +1,162 @@ +import type { + GraphQLAbstractType, + GraphQLCompositeType, + GraphQLDirective, + GraphQLEnumType, + GraphQLInputObjectType, + GraphQLInputType, + GraphQLInterfaceType, + GraphQLLeafType, + GraphQLList, + GraphQLNamedInputType, + GraphQLNamedOutputType, + GraphQLNamedType, + GraphQLNonNull, + GraphQLNullableType, + GraphQLObjectType, + GraphQLOutputType, + GraphQLScalarType, + GraphQLSchema, + GraphQLType, + GraphQLUnionType, +} from 'graphql'; +import type { Maybe } from './types.js'; + +export function isAbstractType(type: any): type is GraphQLAbstractType { + return isUnionType(type) || isInterfaceType(type); +} + +export function isInterfaceType(type: any): type is GraphQLInterfaceType { + return type?.[Symbol.toStringTag] === 'GraphQLInterfaceType'; +} + +export function isUnionType(type: any): type is GraphQLUnionType { + return type?.[Symbol.toStringTag] === 'GraphQLUnionType'; +} + +export function isObjectType(type: any): type is GraphQLObjectType { + return type?.[Symbol.toStringTag] === 'GraphQLObjectType'; +} + +export function isLeafType(type: any): type is GraphQLLeafType { + return isEnumType(type) || isScalarType(type); +} + +export function isEnumType(type: any): type is GraphQLEnumType { + return type?.[Symbol.toStringTag] === 'GraphQLEnumType'; +} + +export function isScalarType(type: any): type is GraphQLScalarType { + return type?.[Symbol.toStringTag] === 'GraphQLScalarType'; +} + +export function isInputObjectType(type: any): type is GraphQLInputObjectType { + return type?.[Symbol.toStringTag] === 'GraphQLInputObjectType'; +} + +export function isNullableType(type: any): type is GraphQLNullableType { + return type?.[Symbol.toStringTag] !== 'GraphQLNonNull'; +} + +export function isNonNullType( + type: T | GraphQLNonNull, +): type is GraphQLNonNull { + return type?.[Symbol.toStringTag] === 'GraphQLNonNull'; +} + +export function isCompositeType(type: any): type is GraphQLCompositeType { + return isObjectType(type) || isInterfaceType(type) || isUnionType(type); +} + +export function isListType( + type: T | GraphQLList, +): type is GraphQLList { + return type?.[Symbol.toStringTag] === 'GraphQLList'; +} + +export function isNamedType( + type: any, +): type is + | GraphQLObjectType + | GraphQLInterfaceType + | GraphQLUnionType + | GraphQLScalarType + | GraphQLInputObjectType { + return type?.name != null; +} + +export function isOutputType(type: any): type is GraphQLOutputType { + const namedType = getNamedType(type); + return ( + isScalarType(namedType) || + isObjectType(namedType) || + isInterfaceType(namedType) || + isUnionType(namedType) || + isEnumType(namedType) + ); +} +export function getNamedType(type: undefined | null): void; +export function getNamedType(type: GraphQLInputType): GraphQLNamedInputType; +export function getNamedType(type: GraphQLOutputType): GraphQLNamedOutputType; +export function getNamedType(type: GraphQLType): GraphQLNamedType; +export function getNamedType(type: Maybe): GraphQLNamedType | undefined; +export function getNamedType( + type: T | GraphQLList | GraphQLNonNull, +): GraphQLNamedType { + if (type != null) { + if (isNonNullType(type)) { + return getNamedType(type.ofType); + } + if (isListType(type)) { + return getNamedType(type.ofType); + } + } + return type; +} + +export function isInputType(type: any): type is GraphQLInputType { + const namedType = getNamedType(type); + return isScalarType(namedType) || isEnumType(namedType) || isInputObjectType(namedType); +} + +export function isSpecifiedScalarType(type: any) { + const typeName = type?.name; + return ( + typeName === 'String' || + typeName === 'Int' || + typeName === 'Float' || + typeName === 'Boolean' || + typeName === 'ID' + ); +} + +export function isDirective(type: any): type is GraphQLDirective { + return type?.[Symbol.toStringTag] === 'GraphQLDirective'; +} + +export function isIntrospectionType(type: any) { + return type?.name?.startsWith('__'); +} + +export function isSpecifiedDirective(type: any) { + return ( + type?.name === 'skip' || + type?.name === 'include' || + type?.name === 'deprecated' || + type?.name === 'specifiedBy' || + type?.name === 'defer' || + type?.name === 'stream' || + type?.name === 'oneOf' + ); +} + +export function isSchema(type: any): type is GraphQLSchema { + return type?.[Symbol.toStringTag] === 'GraphQLSchema'; +} + +export function getNullableType(type: GraphQLNonNull | T): T { + if (isNonNullType(type)) { + return type.ofType; + } + return type; +} diff --git a/packages/utils/src/types.ts b/packages/utils/src/types.ts index 83d0f84fb11..2c10d79117d 100644 --- a/packages/utils/src/types.ts +++ b/packages/utils/src/types.ts @@ -150,3 +150,9 @@ export type SchemaExtensions = { export type DirectiveArgs = { [name: string]: any }; export type DirectiveUsage = { name: string; args: DirectiveArgs }; + +export interface PromiseWithResolvers { + promise: Promise; + resolve: (value: T | PromiseLike) => void; + reject: (reason?: any) => void; +} diff --git a/packages/utils/src/updateArgument.ts b/packages/utils/src/updateArgument.ts index f8eb079b364..166caec49bd 100644 --- a/packages/utils/src/updateArgument.ts +++ b/packages/utils/src/updateArgument.ts @@ -57,7 +57,8 @@ export function createVariableNameGenerator( return (argName: string): string => { let varName: string; do { - varName = `_v${(varCounter++).toString()}_${argName}`; + varName = varCounter === 0 ? argName : `_v${varCounter.toString()}_${argName}`; + varCounter++; } while (varName in variableDefinitionMap); return varName; }; diff --git a/packages/utils/src/visitResult.ts b/packages/utils/src/visitResult.ts index 64850cd3d33..a43279ef314 100644 --- a/packages/utils/src/visitResult.ts +++ b/packages/utils/src/visitResult.ts @@ -1,14 +1,10 @@ import { FieldNode, FragmentDefinitionNode, - getNullableType, GraphQLError, GraphQLObjectType, GraphQLOutputType, GraphQLSchema, - isAbstractType, - isListType, - isObjectType, Kind, OperationDefinitionNode, SchemaMetaFieldDef, @@ -18,6 +14,7 @@ import { import { collectFields, collectSubFields } from './collectFields.js'; import { getOperationASTFromRequest } from './getOperationASTFromRequest.js'; import { ExecutionRequest, ExecutionResult } from './Interfaces.js'; +import { getNullableType, isAbstractType, isListType, isObjectType } from './typeCheckers.js'; import { Maybe } from './types.js'; export type ValueVisitor = (value: any) => any; diff --git a/packages/utils/tests/helpers.test.ts b/packages/utils/tests/helpers.test.ts index ecba2becfa3..f5c36f3e99e 100644 --- a/packages/utils/tests/helpers.test.ts +++ b/packages/utils/tests/helpers.test.ts @@ -1,4 +1,4 @@ -import { isValidPath } from '../src/helpers'; +import { isUrl, isValidPath } from '../src/helpers'; describe('helpers', () => { it.each([ @@ -7,6 +7,19 @@ describe('helpers', () => { mutation: Mutation subscription: Subscription }`, + ` + extend type Query { + test(id: String!): Test + @resolveTo( + sourceName: "Test" + sourceTypeName: "Test" + sourceFieldName: "test" + requiredSelectionSet: "{ ...on Test { id name } }", + sourceArgs: { testId: {root.id} } + returnType: Test + ) + } + `, ])('should detect "%s" as NOT a valid path', str => { expect(isValidPath(str)).toBeFalsy(); }); @@ -18,3 +31,59 @@ describe('helpers', () => { }, ); }); + +describe('isUrl', () => { + function testCases() { + it.each([ + 'https://example.com', + 'http://localhost:3000', + 'file:///path/to/file', + 'http://user:pass@host.com:8080/path?query=string#hash', + ])('should validate valid URL: %s', url => { + expect(isUrl(url)).toBe(true); + }); + + it.each(['not-a-url', 'invalid://host', 'http://[invalid]', 1, false, {}])( + 'should reject invalid URL: %s', + url => { + // @ts-expect-error - Testing + expect(isUrl(url)).toBe(false); + }, + ); + } + describe('when URL.canParse is available', () => { + const originalCanParse = URL.canParse; + + beforeAll(() => { + // Mock URL.canParse + URL.canParse = jest.fn((url: string) => { + try { + return !!new URL(url); + } catch { + return false; + } + }); + }); + + afterAll(() => { + // Restore original URL.canParse + URL.canParse = originalCanParse; + }); + testCases(); + }); + + describe('when URL.canParse is not available', () => { + const originalCanParse = URL.canParse; + + beforeAll(() => { + // @ts-expect-error - Remove URL.canParse + URL.canParse = undefined; + }); + + afterAll(() => { + // Restore URL.canParse + URL.canParse = originalCanParse; + }); + testCases(); + }); +}); diff --git a/packages/utils/tests/mapAsyncIterator.test.ts b/packages/utils/tests/mapAsyncIterator.test.ts deleted file mode 100644 index 431da6625bc..00000000000 --- a/packages/utils/tests/mapAsyncIterator.test.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { mapAsyncIterator } from '../src/mapAsyncIterator.js'; - -describe('mapAsyncIterator', () => { - it('should invoke onNext callback, for each value, replace results and invoke onEnd only once regardless of how many times return was called', async () => { - const onNext = jest.fn(() => 'replacer'); - const onEnd = jest.fn(); - const iter = mapAsyncIterator( - (async function* () { - yield 1; - yield 2; - yield 3; - })(), - onNext, - () => { - // noop onError - }, - onEnd, - ); - const onNextResults = []; - for await (const result of iter) { - onNextResults.push(result); - } - await Promise.all([iter.return?.(), iter.return?.(), iter.return?.()]); - expect(onNext).toHaveBeenCalledTimes(3); - expect(onNextResults).toEqual(['replacer', 'replacer', 'replacer']); - expect(onEnd).toHaveBeenCalledTimes(1); - }); - - it('should invoke onError only once regardless of how many times throw was called', async () => { - const err = new Error('Woopsie!'); - const onNext = jest.fn(); - const onError = jest.fn(); - const iter = mapAsyncIterator( - (async function* () { - yield 1; - yield 2; - yield 3; - })(), - onNext, - onError, - ); - for await (const _ of iter) { - // noop - } - await Promise.all([iter.throw?.(err), iter.throw?.(err), iter.throw?.(err)]); - expect(onNext).toHaveBeenCalledTimes(3); - expect(onError).toHaveBeenCalledWith(err); - expect(onError).toHaveBeenCalledTimes(1); - }); -}); diff --git a/packages/utils/tests/mapSchema.test.ts b/packages/utils/tests/mapSchema.test.ts index c14c0d0786c..624c405cc17 100644 --- a/packages/utils/tests/mapSchema.test.ts +++ b/packages/utils/tests/mapSchema.test.ts @@ -19,9 +19,6 @@ import { GraphQLString, graphqlSync, GraphQLUnionType, - isListType, - isNonNullType, - isScalarType, printSchema, } from 'graphql'; import { addMocksToSchema } from '@graphql-tools/mock'; @@ -30,6 +27,9 @@ import { ExecutionResult, getDirective, getDirectives, + isListType, + isNonNullType, + isScalarType, MapperKind, mapSchema, } from '../src/index.js'; diff --git a/packages/utils/tests/mergeDeep.test.ts b/packages/utils/tests/mergeDeep.test.ts index e051452517f..7391f17b332 100644 --- a/packages/utils/tests/mergeDeep.test.ts +++ b/packages/utils/tests/mergeDeep.test.ts @@ -66,4 +66,10 @@ describe('mergeDeep', () => { { b: 2, d: 4 }, ]); }); + + it('merges string arrays', () => { + const a = { options: ['$A', '$B'] }; + const b = { options: ['$A', '$B'] }; + expect(mergeDeep([a, b], undefined, true, true)).toEqual({ options: ['$A', '$B'] }); + }); }); diff --git a/packages/utils/tests/parse-graphql-sdl.spec.ts b/packages/utils/tests/parse-graphql-sdl.spec.ts index 9b96e2078a9..66b66bc3b14 100644 --- a/packages/utils/tests/parse-graphql-sdl.spec.ts +++ b/packages/utils/tests/parse-graphql-sdl.spec.ts @@ -71,57 +71,59 @@ describe('parse sdl', () => { const transformed = transformCommentsToDescriptions(ast); const printed = print(transformed).trim(); - expect(printed).toMatchInlineSnapshot(` - ""test type comment" - type Type { - "test field comment" - f1: String! - """ - Line 1 - Line 2 - """ - f2: String! - """ - line 2 - Line 1 - """ - f3: String! - } - - extend type Type { - "test extension field comment" - f4: String! - } - - type OtherType implements Node { - id: ID! - f: String! - } - - "input test" - input Input { - "Input field test" - f: String - } - - "Enum test" - enum Enum { - "Enum value test" - V1 - V2 - } - - "Union test" - union Union = Type | OtherType - - "Interface test" - interface Node { - id: ID! - } - - "Custom scalar test" - scalar Date" - `); + expect(printed).toBe( + ` +"test type comment" +type Type { + "test field comment" + f1: String! + """ + Line 1 + Line 2 + """ + f2: String! + """ + line 2 + Line 1 + """ + f3: String! +} + +extend type Type { + "test extension field comment" + f4: String! +} + +type OtherType implements Node { + id: ID! + f: String! +} + +"input test" +input Input { + "Input field test" + f: String +} + +"Enum test" +enum Enum { + "Enum value test" + V1 + V2 +} + +"Union test" +union Union = Type | OtherType + +"Interface test" +interface Node { + id: ID! +} + +"Custom scalar test" +scalar Date + `.trim(), + ); }); it('should transform comments to descriptions correctly on all available nodes with noLocation=true', () => { @@ -135,57 +137,59 @@ describe('parse sdl', () => { expect(type?.description?.value).toBe('test type comment'); expect(type?.loc).not.toBeDefined(); const printed = print(transformed.document).trim(); - expect(printed).toMatchInlineSnapshot(` - ""test type comment" - type Type { - "test field comment" - f1: String! - """ - Line 1 - Line 2 - """ - f2: String! - """ - line 2 - Line 1 - """ - f3: String! - } - - extend type Type { - "test extension field comment" - f4: String! - } - - type OtherType implements Node { - id: ID! - f: String! - } - - "input test" - input Input { - "Input field test" - f: String - } - - "Enum test" - enum Enum { - "Enum value test" - V1 - V2 - } - - "Union test" - union Union = Type | OtherType - - "Interface test" - interface Node { - id: ID! - } - - "Custom scalar test" - scalar Date" - `); + expect(printed).toBe( + ` +"test type comment" +type Type { + "test field comment" + f1: String! + """ + Line 1 + Line 2 + """ + f2: String! + """ + line 2 + Line 1 + """ + f3: String! +} + +extend type Type { + "test extension field comment" + f4: String! +} + +type OtherType implements Node { + id: ID! + f: String! +} + +"input test" +input Input { + "Input field test" + f: String +} + +"Enum test" +enum Enum { + "Enum value test" + V1 + V2 +} + +"Union test" +union Union = Type | OtherType + +"Interface test" +interface Node { + id: ID! +} + +"Custom scalar test" +scalar Date + `.trim(), + ); }); }); }); diff --git a/packages/webpack-loader/src/index.ts b/packages/webpack-loader/src/index.ts index 549d6788bc1..1b9642539dc 100644 --- a/packages/webpack-loader/src/index.ts +++ b/packages/webpack-loader/src/index.ts @@ -2,6 +2,7 @@ import os from 'os'; import { DocumentNode, isExecutableDefinitionNode, Kind } from 'graphql'; import type { LoaderContext } from 'webpack'; import { + DocumentOptimizer, optimizeDocumentNode, removeDescriptions, removeEmptyNodes, @@ -52,7 +53,7 @@ export default function graphqlLoader(this: LoaderContext, source: stri const options = (this.query as Options) || {}; let doc = parseDocument(source); - const optimizers = []; + const optimizers: DocumentOptimizer[] = []; if (options.noDescription) { optimizers.push(removeDescriptions); diff --git a/packages/webpack-loader/tests/loader.test.ts b/packages/webpack-loader/tests/loader.test.ts index c2b14719a76..6a929977f29 100644 --- a/packages/webpack-loader/tests/loader.test.ts +++ b/packages/webpack-loader/tests/loader.test.ts @@ -1,13 +1,14 @@ import '../../testing/to-be-similar-string'; import { parse, print } from 'graphql'; import { uniqueCode } from '@graphql-tools/webpack-loader-runtime'; +import { testIf } from '../../testing/utils'; import loader from '../src/index.js'; function useLoader(source: string, options: any): string { return loader.call({ cacheable() {}, query: options } as any, source); } -test('basic query', () => { +testIf(!globalThis.Bun)('basic query', () => { const docStr = /* GraphQL */ ` query Foo { foo diff --git a/patches/jest-leak-detector+29.7.0.patch b/patches/jest-leak-detector+29.7.0.patch new file mode 100644 index 00000000000..a26217e3fbc --- /dev/null +++ b/patches/jest-leak-detector+29.7.0.patch @@ -0,0 +1,33 @@ +diff --git a/node_modules/jest-leak-detector/build/index.js b/node_modules/jest-leak-detector/build/index.js +index a8ccb1e..70699fd 100644 +--- a/node_modules/jest-leak-detector/build/index.js ++++ b/node_modules/jest-leak-detector/build/index.js +@@ -74,26 +74,14 @@ class LeakDetector { + value = null; + } + async isLeaking() { +- this._runGarbageCollector(); ++ (0, _v().setFlagsFromString)('--allow-natives-syntax'); + + // wait some ticks to allow GC to run properly, see https://github.com/nodejs/node/issues/34636#issuecomment-669366235 + for (let i = 0; i < 10; i++) { ++ eval('%CollectGarbage(true)'); + await tick(); + } + return this._isReferenceBeingHeld; + } +- _runGarbageCollector() { +- // @ts-expect-error: not a function on `globalThis` +- const isGarbageCollectorHidden = globalThis.gc == null; +- +- // GC is usually hidden, so we have to expose it before running. +- (0, _v().setFlagsFromString)('--expose-gc'); +- (0, _vm().runInNewContext)('gc')(); +- +- // The GC was not initially exposed, so let's hide it again. +- if (isGarbageCollectorHidden) { +- (0, _v().setFlagsFromString)('--no-expose-gc'); +- } +- } + } + exports.default = LeakDetector; diff --git a/patches/typedoc-plugin-markdown+3.16.0.patch b/patches/typedoc-plugin-markdown+3.16.0.patch deleted file mode 100644 index 86dadc6c067..00000000000 --- a/patches/typedoc-plugin-markdown+3.16.0.patch +++ /dev/null @@ -1,67 +0,0 @@ -diff --git a/node_modules/typedoc-plugin-markdown/dist/resources/helpers/declaration-title.js b/node_modules/typedoc-plugin-markdown/dist/resources/helpers/declaration-title.js -index 0695653..c9d962d 100644 ---- a/node_modules/typedoc-plugin-markdown/dist/resources/helpers/declaration-title.js -+++ b/node_modules/typedoc-plugin-markdown/dist/resources/helpers/declaration-title.js -@@ -43,9 +43,9 @@ function default_1(theme) { - } - md.push(`${this.flags.isRest ? '... ' : ''} **${(0, utils_1.escapeChars)(this.name)}**`); - if (this instanceof typedoc_1.DeclarationReflection && this.typeParameters) { -- md.push(`<${this.typeParameters -+ md.push(`\\<${this.typeParameters // Escape `<` because MDX2 parse it as JSX tags - .map((typeParameter) => `\`${typeParameter.name}\``) -- .join(', ')}\\>`); -+ .join(', ')}>`); - } - md.push(getType(this)); - if (!(this.type instanceof typedoc_1.LiteralType) && -diff --git a/node_modules/typedoc-plugin-markdown/dist/resources/helpers/type.js b/node_modules/typedoc-plugin-markdown/dist/resources/helpers/type.js -index 26543f2..2e76088 100644 ---- a/node_modules/typedoc-plugin-markdown/dist/resources/helpers/type.js -+++ b/node_modules/typedoc-plugin-markdown/dist/resources/helpers/type.js -@@ -113,7 +113,7 @@ function getDeclarationType(model) { - ? `= ${(0, utils_1.escapeChars)(obj.defaultValue)}` - : ''}`; - }); -- return `{ ${indexSignature ? indexSignature : ''}${types ? types.join('; ') : ''} }${model.defaultValue && model.defaultValue !== '...' -+ return `\\{ ${indexSignature ? indexSignature : ''}${types ? types.join('; ') : ''} }${model.defaultValue && model.defaultValue !== '...' - ? `= ${(0, utils_1.escapeChars)(model.defaultValue)}` - : ''}`; - } -@@ -122,9 +122,9 @@ function getDeclarationType(model) { - function getFunctionType(modelSignatures) { - const functions = modelSignatures.map((fn) => { - const typeParams = fn.typeParameters -- ? `<${fn.typeParameters -+ ? `\\<${fn.typeParameters - .map((typeParameter) => typeParameter.name) -- .join(', ')}\\>` -+ .join(', ')}>` - : []; - const params = fn.parameters - ? fn.parameters.map((param) => { -@@ -150,9 +150,9 @@ function getReferenceType(model, emphasis) { - : `\`${model.name}\``); - } - if (model.typeArguments && model.typeArguments.length > 0) { -- reflection.push(`<${model.typeArguments -+ reflection.push(`\\<${model.typeArguments - .map((typeArgument) => Handlebars.helpers.type.call(typeArgument)) -- .join(', ')}\\>`); -+ .join(', ')}>`); - } - return reflection.join(''); - } -diff --git a/node_modules/typedoc-plugin-markdown/dist/utils.js b/node_modules/typedoc-plugin-markdown/dist/utils.js -index 9250591..23a6dd1 100644 ---- a/node_modules/typedoc-plugin-markdown/dist/utils.js -+++ b/node_modules/typedoc-plugin-markdown/dist/utils.js -@@ -11,7 +11,8 @@ function formatContents(contents) { - exports.formatContents = formatContents; - function escapeChars(str) { - return str -- .replace(/>/g, '\\>') -+ .replace(/ { // An array of tuples where the first element is the package's name and @@ -38,9 +38,9 @@ async function buildApiDocs(): Promise { // Delete existing docs directory await fsPromises.rm(OUTPUT_PATH, { recursive: true }).catch(() => null); - + console.log('๐Ÿงน ', chalk.green('Deleted existing docs directory'), OUTPUT_PATH); // Initialize TypeDoc - const typeDoc = await TypeDoc.Application.bootstrapWithPlugins( + const typeDoc = await Application.bootstrapWithPlugins( { excludePrivate: true, excludeProtected: true, @@ -51,8 +51,9 @@ async function buildApiDocs(): Promise { tsconfig: path.join(CWD, 'tsconfig.json'), entryPoints: modules.map(([_name, filePath]) => filePath), plugin: ['typedoc-plugin-markdown'], + logLevel: 'Verbose', }, - [new TypeDoc.TSConfigReader()], + [new TSConfigReader()], ); // Generate the API docs diff --git a/scripts/postbuild.ts b/scripts/postbuild.ts index 6b957b332ec..5786ab9486b 100644 --- a/scripts/postbuild.ts +++ b/scripts/postbuild.ts @@ -25,4 +25,6 @@ ${content}`.trimStart(), console.timeEnd('done'); } -main(); +main().catch(e => { + console.warn(`Failed to modify ${filePath}`); +}); diff --git a/scripts/test-esm.mjs b/scripts/test-esm.mjs deleted file mode 100644 index 1744bf9be05..00000000000 --- a/scripts/test-esm.mjs +++ /dev/null @@ -1,54 +0,0 @@ -import { dirname } from 'path'; -import { fileURLToPath } from 'url'; -import chalk from 'chalk'; -import globby from 'globby'; - -const ignore = ['../packages/node-require/dist/index.mjs', '../packages/links/dist/index.mjs']; - -async function main() { - const mjsFiles = await globby(['../packages/*/dist/*.mjs', '../packages/loaders/*/dist/*.mjs'], { - cwd: dirname(fileURLToPath(import.meta.url)), - }); - - const ok = []; - const fail = []; - - let i = 0; - await Promise.all( - mjsFiles.map(mjsFile => { - if (ignore.includes(mjsFile)) return; - - const mjsPath = `./${mjsFile}`; - return import(mjsPath) - .then(() => { - ok.push(mjsPath); - }) - .catch(err => { - const color = i++ % 2 === 0 ? chalk.magenta : chalk.red; - console.error(color('\n\n-----\n' + i + '\n')); - console.error(mjsPath, err); - console.error(color('\n-----\n\n')); - fail.push(mjsPath); - }); - }), - ); - ignore.length && console.warn(chalk.yellow(`${ignore.length} Ignoring: ${ignore.join('ย | ')}`)); - ok.length && console.log(chalk.blue(`${ok.length} OK: ${ok.join(' | ')}`)); - fail.length && console.error(chalk.red(`${fail.length} Fail: ${fail.join(' | ')}`)); - - if (fail.length) { - console.error('\nFAILED'); - process.exit(1); - } else if (ok.length) { - console.error('\nOK'); - process.exit(0); - } else { - console.error('No files analyzed!'); - process.exit(1); - } -} - -main().catch(err => { - console.error(err); - process.exit(1); -}); diff --git a/tsconfig.build.json b/tsconfig.build.json new file mode 100644 index 00000000000..b9a59abeead --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,16 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "moduleResolution": "node" + }, + "exclude": [ + "**/node_modules", + "**/dist", + "**/scripts", + "**/test/*.ts", + "**/tests/*.ts", + "**/test-files", + "*.spec.ts", + "*.test.ts" + ] +} diff --git a/tsconfig.json b/tsconfig.json index 651498258bb..0aacc2a2ab7 100755 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,7 +6,7 @@ "target": "es2022", "module": "esnext", - "moduleResolution": "node", + "moduleResolution": "bundler", "lib": ["esnext"], "allowSyntheticDefaultImports": true, "esModuleInterop": true, @@ -16,7 +16,7 @@ "declaration": true, "downlevelIteration": true, - "suppressImplicitAnyIndexErrors": true, + "noImplicitAny": false, "ignoreDeprecations": "5.0", diff --git a/website/.gitignore b/website/.gitignore deleted file mode 100644 index 89f9ac04aac..00000000000 --- a/website/.gitignore +++ /dev/null @@ -1 +0,0 @@ -out/ diff --git a/website/next-env.d.ts b/website/next-env.d.ts index 4f11a03dc6c..1b3be0840f3 100644 --- a/website/next-env.d.ts +++ b/website/next-env.d.ts @@ -2,4 +2,4 @@ /// // NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. +// see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/website/next-sitemap.config.js b/website/next-sitemap.config.js index 20bd488292d..a77c131c327 100644 --- a/website/next-sitemap.config.js +++ b/website/next-sitemap.config.js @@ -2,6 +2,5 @@ export default { siteUrl: process.env.SITE_URL || 'https://the-guild.dev/graphql/tools', generateIndexSitemap: false, - exclude: ['*/_meta'], output: 'export', }; diff --git a/website/next.config.js b/website/next.config.ts similarity index 94% rename from website/next.config.js rename to website/next.config.ts index 4f89ee20e97..0768887972a 100644 --- a/website/next.config.js +++ b/website/next.config.ts @@ -2,7 +2,13 @@ import { withGuildDocs } from '@theguild/components/next.config'; export default withGuildDocs({ output: 'export', - redirects: () => + env: { + SITE_URL: 'https://the-guild.dev/graphql/tools', + }, + nextraConfig: { + contentDirBasePath: '/docs', + }, + redirects: async () => Object.entries({ '/docs/directive-resolvers': '/docs/schema-directives', '/docs/schema-directives-legacy': '/docs/schema-directives', @@ -50,6 +56,7 @@ export default withGuildDocs({ '/install': '/docs/introduction', '/docs/api/modules': '/docs/api/modules/batch_delegate_src', '/docs/api/modules/merge#mergetypedefs': '/docs/api/modules/merge_src#mergetypedefs', + '/changelogs': '/changelogs/graphql-tools', }).map(([from, to]) => ({ source: from, destination: to, diff --git a/website/package.json b/website/package.json index 9902ab71757..8cac62600f4 100644 --- a/website/package.json +++ b/website/package.json @@ -4,21 +4,29 @@ "type": "module", "private": true, "scripts": { - "build": "next build && next-sitemap", - "dev": "next", + "build": "next build", + "dev": "next --turbopack", + "pagefind": "pagefind --site .next/server/app --output-path out/_pagefind", + "postbuild": "next-sitemap && yarn pagefind", "start": "next start" }, "dependencies": { - "@theguild/components": "7.1.0", - "next": "15.0.2", + "@theguild/components": "9.7.1", + "next": "15.3.2", "next-sitemap": "4.2.3", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "react": "19.1.0", + "react-dom": "19.1.0" }, "devDependencies": { - "@theguild/tailwind-config": "0.5.0", - "@types/node": "22.9.0", - "@types/react": "18.3.12", - "typescript": "5.4.5" + "@theguild/tailwind-config": "0.6.3", + "@types/node": "22.15.17", + "@types/react": "19.1.4", + "pagefind": "^1.3.0", + "postcss": "8.5.3", + "postcss-import": "16.1.0", + "postcss-lightningcss": "1.0.1", + "tailwindcss": "3.4.17", + "typescript": "5.8.3", + "wrangler": "4.14.4" } } diff --git a/website/postcss.config.cjs b/website/postcss.config.cjs deleted file mode 100644 index 204207501e9..00000000000 --- a/website/postcss.config.cjs +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('@theguild/tailwind-config/postcss.config'); diff --git a/website/postcss.config.js b/website/postcss.config.js new file mode 100644 index 00000000000..625a1a46f1d --- /dev/null +++ b/website/postcss.config.js @@ -0,0 +1,3 @@ +import postcssConfig from '@theguild/tailwind-config/postcss.config'; + +export default postcssConfig; diff --git a/website/src/pages/_meta.ts b/website/src/app/_meta.ts similarity index 69% rename from website/src/pages/_meta.ts rename to website/src/app/_meta.ts index ad0dbbfd53d..a65d9f1e091 100644 --- a/website/src/pages/_meta.ts +++ b/website/src/app/_meta.ts @@ -1,11 +1,7 @@ export default { index: { - title: 'Home', type: 'page', display: 'hidden', - theme: { - layout: 'raw', - }, }, docs: { title: 'Documentation', diff --git a/website/src/app/changelogs/[...slug]/page.tsx b/website/src/app/changelogs/[...slug]/page.tsx new file mode 100644 index 00000000000..da159b6e980 --- /dev/null +++ b/website/src/app/changelogs/[...slug]/page.tsx @@ -0,0 +1,106 @@ +import fs from 'node:fs/promises'; +import fg from 'fast-glob'; +import { visitParents } from 'unist-util-visit-parents'; +import { NextPageProps } from '@theguild/components'; +import { + compileMdx, + convertToPageMap, + evaluate, + mergeMetaWithPageMap, + normalizePageMap, +} from '@theguild/components/server'; +import { defaultNextraOptions } from '@theguild/components/server/next.config'; +import { useMDXComponents } from '../../../mdx-components'; + +async function getPackages() { + const result = await fg(['../packages/**/package.json'], { + ignore: ['../**/node_modules/**', '../**/dist/**'], + }); + return result.map(r => + r.split('/').slice( + // remove ../packages + 2, + // remove package.json + -1, + ), + ); +} + +export async function generateStaticParams() { + const result = await getPackages(); + return result.map(slug => ({ slug })); +} + +const { pageMap: _pageMap } = convertToPageMap({ + filePaths: (await getPackages()).map(slug => slug.join('/')), + basePath: 'changelogs', +}); + +// @ts-expect-error -- ignore +const changelogsPages = _pageMap[0].children; + +const changelogsPageMap = mergeMetaWithPageMap(changelogsPages, { + // Change order or sidebar title here + 'graphql-tools': 'graphql-tools', +}); + +export const pageMap = normalizePageMap(changelogsPageMap); + +export async function generateMetadata(props: NextPageProps<'...slug'>) { + const params = await props.params; + const { name: packageName } = JSON.parse( + await fs.readFile(`../packages/${params.slug.join('/')}/package.json`, 'utf8'), + ); + return { + title: `Changelog for "${packageName}"`, + description: `Discover the latest updates, enhancements, and bug fixes for "${packageName}" package`, + }; +} + +const { wrapper: Wrapper, ...components } = useMDXComponents(); + +// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars +const remarkRemoveUpdatedDependency = () => (ast: any) => { + visitParents(ast, 'text', (node, ancestors) => { + if ( + node.value.startsWith('Updated dependencies') || + node.value.startsWith('Updated dependency') + ) { + for (let i = ancestors.length - 1; i >= 0; i--) { + if (ancestors[i].type === 'list') { + ancestors[i].children = []; + break; + } + } + } + }); +}; + +export default async function Page(props: NextPageProps<'...slug'>) { + const params = await props.params; + const filePath = `../packages/${params.slug.join('/')}/CHANGELOG.md`; + const rawMd = await fs.readFile(filePath, 'utf8'); + + const rawJs = await compileMdx(rawMd, { + filePath, + ...defaultNextraOptions, + mdxOptions: { + ...defaultNextraOptions.mdxOptions, + // remarkPlugins: [remarkRemoveUpdatedDependency], + }, + }); + const { default: MDXContent, toc, metadata } = evaluate(rawJs, components); + + return ( + + + + ); +} diff --git a/website/src/app/docs/[[...mdxPath]]/page.tsx b/website/src/app/docs/[[...mdxPath]]/page.tsx new file mode 100644 index 00000000000..cf606229dee --- /dev/null +++ b/website/src/app/docs/[[...mdxPath]]/page.tsx @@ -0,0 +1,32 @@ +import { NextPageProps } from '@theguild/components'; +import { generateStaticParamsFor, importPage } from '@theguild/components/pages'; +import { Giscus } from '../../../giscus'; +import { useMDXComponents } from '../../../mdx-components'; + +export const generateStaticParams = generateStaticParamsFor('mdxPath'); + +export async function generateMetadata(props: NextPageProps<'...mdxPath'>) { + const params = await props.params; + const { metadata } = await importPage(params.mdxPath); + return metadata; +} + +const Wrapper = useMDXComponents().wrapper; + +export default async function Page(props: NextPageProps<'...mdxPath'>) { + const params = await props.params; + const result = await importPage(params.mdxPath); + const { default: MDXContent, toc, metadata } = result; + return ( + } + // Set lower weight for API pages, when 0.3 is set results for `mocking` will be in down + // https://pagefind.app/docs/weighting/ + data-pagefind-weight={params.mdxPath[0] === 'api' ? '0.3' : undefined} + > + + + ); +} diff --git a/website/src/app/icon.svg b/website/src/app/icon.svg new file mode 100644 index 00000000000..5b0d34e76df --- /dev/null +++ b/website/src/app/icon.svg @@ -0,0 +1,15 @@ + + + + + diff --git a/website/src/app/icons/arrow-up-badge.svg b/website/src/app/icons/arrow-up-badge.svg new file mode 100644 index 00000000000..f2a13e9a94e --- /dev/null +++ b/website/src/app/icons/arrow-up-badge.svg @@ -0,0 +1,5 @@ + + + diff --git a/website/src/app/icons/graphql-badge.svg b/website/src/app/icons/graphql-badge.svg new file mode 100644 index 00000000000..19c31dd9717 --- /dev/null +++ b/website/src/app/icons/graphql-badge.svg @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/website/src/app/icons/plug-zap-badge.svg b/website/src/app/icons/plug-zap-badge.svg new file mode 100644 index 00000000000..183eff51ded --- /dev/null +++ b/website/src/app/icons/plug-zap-badge.svg @@ -0,0 +1,17 @@ + + + + + + + diff --git a/website/src/app/layout.tsx b/website/src/app/layout.tsx new file mode 100644 index 00000000000..e52cc0a30b3 --- /dev/null +++ b/website/src/app/layout.tsx @@ -0,0 +1,91 @@ +import { FC, ReactNode } from 'react'; +import { + GitHubIcon, + HiveFooter, + PaperIcon, + PencilIcon, + PRODUCTS, + ToolsLogo, +} from '@theguild/components'; +import { getDefaultMetadata, getPageMap, GuildLayout } from '@theguild/components/server'; +import '@theguild/components/style.css'; +import { pageMap as changelogsPageMap } from './changelogs/[...slug]/page'; + +const description = PRODUCTS.TOOLS.title; +const websiteName = 'GraphQL Tools'; + +export const metadata = getDefaultMetadata({ + description, + websiteName, + productName: 'TOOLS', +}); + +const RootLayout: FC<{ + children: ReactNode; +}> = async ({ children }) => { + let [meta, ...pageMap] = await getPageMap(); + pageMap = [ + { + data: { + // @ts-expect-error -- always MetaItem + ...meta.data, + changelogs: { type: 'page', title: 'Changelogs', theme: { layout: 'full' } }, + }, + }, + ...pageMap, + { route: '/changelogs', name: 'changelogs', children: changelogsPageMap }, + ]; + const logo = ; + return ( + + {logo} + {websiteName} + + } + description={description} + items={{ + resources: [ + { + children: 'Changelog', + href: '/changelogs', + title: 'Changelog', + }, + ], + }} + /> + ), + }} + pageMap={pageMap} + navbarProps={{ + navLinks: [{ href: '/changelogs', children: 'Changelog' }], + developerMenu: [ + { + href: '/docs', + icon: , + children: 'Documentation', + }, + { href: 'https://the-guild.dev/blog', icon: , children: 'Blog' }, + { + href: 'https://github.com/ardatan/graphql-tools', + icon: , + children: 'GitHub', + }, + ], + }} + lightOnlyPages={['/']} + > + {children} + + ); +}; + +export default RootLayout; diff --git a/website/src/app/page.tsx b/website/src/app/page.tsx new file mode 100644 index 00000000000..4e602aff624 --- /dev/null +++ b/website/src/app/page.tsx @@ -0,0 +1,180 @@ +import { ReactNode } from 'react'; +import Image from 'next/image'; +import { + ArrowIcon, + CallToAction, + CheckIcon, + cn, + DecorationIsolation, + GitHubIcon, + Heading, + InfoCard, + TextLink, + ToolsAndLibrariesCards, + ToolsLogo, +} from '@theguild/components'; +import { metadata as rootMetadata } from './layout'; +import arrowUpBade from './icons/arrow-up-badge.svg'; +import graphqlBadge from './icons/graphql-badge.svg'; +import plugZapBadge from './icons/plug-zap-badge.svg'; + +export const metadata = { + title: 'GraphQL Tools', + alternates: { + // to remove leading slash + canonical: '.', + }, + openGraph: { + ...rootMetadata.openGraph, + // to remove leading slash + url: '.', + }, +}; + +function Hero(props: { children: ReactNode; className?: string }) { + return ( +
+ + + + + + + + + + + + + {props.children} +
+ ); +} + +function HeroLinks(props: { children: ReactNode }) { + return ( +
+ {props.children} +
+ ); +} + +function HeroFeatures(props: { children: ReactNode }) { + return ( +
    + {props.children} +
+ ); +} + +export default function MyPage() { + return ( +
+ + + A set of utilities for faster GraphQL development + +

+ A collection of NPM packages that provides a structured approach to building GraphQL + schemas and resolvers in JavaScript, following{' '} + + the GraphQL-first development workflow + + . +

+ +
  • + + Fully open source +
  • +
  • + + No vendor lock +
  • +
    + + + Get started + + + + GitHub + + +
    + + + +
    + ); +} + +function FeaturesSection({ className }: { className?: string }) { + return ( +
    + + Everything GraphQL + +
      + } + className="flex-1 rounded-2xl md:rounded-3xl" + > + Use the GraphQL schema definition language to generate a schema with full support for + resolvers, interfaces, unions, and custom scalars. +
      + + Learn more + + +
      + } + className="flex-1 basis-full rounded-2xl md:basis-0 md:rounded-3xl" + > + With GraphQL Tools, you can mock your GraphQL API with fine-grained per-type mocking for + fast prototyping without any datasources. +
      + + Learn more + + +
      + } + className="flex-1 basis-full rounded-2xl md:rounded-3xl lg:basis-0" + > + Automatically stitch multiple schemas together into one larger API in a simple, fast and + powerful way. +
      + + Learn more + + +
      +
    +
    + ); +} diff --git a/website/src/components/index-page.tsx b/website/src/components/index-page.tsx deleted file mode 100644 index 275eb1afec6..00000000000 --- a/website/src/components/index-page.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import { ReactElement } from 'react'; -import { FeatureList, HeroGradient, IFeatureListProps } from '@theguild/components'; -import flask from '../../public/assets/flask.svg'; -import graphql from '../../public/assets/graphql.svg'; -import needle from '../../public/assets/needle.svg'; - -const FEATURE_LIST: IFeatureListProps['items'] = [ - { - title: 'GraphQL-First Philosophy', - description: - 'Use the GraphQL schema definition language to generate a schema with full support for resolvers, interfaces, unions, and custom scalars.', - image: { - src: graphql, - alt: '', - loading: 'eager', - placeholder: 'empty', - }, - link: { - children: 'Learn more', - href: '/docs/introduction#the-graphql-first-philosophy', - }, - }, - { - title: 'Mock Your GraphQL API', - description: - 'With GraphQL Tools, you can mock your GraphQL API with fine-grained per-type mocking for fast prototyping without any datasources.', - image: { - src: flask, - alt: '', - loading: 'eager', - placeholder: 'empty', - }, - link: { - children: 'Learn more', - href: '/docs/mocking', - }, - }, - { - title: 'Stitch Multiple Schemas', - description: - 'Automatically stitch multiple schemas together into one larger API in a simple, fast and powerful way.', - image: { - src: needle, - alt: '', - loading: 'eager', - placeholder: 'empty', - }, - link: { - children: 'Learn more', - href: 'https://the-guild.dev/graphql/stitching', - }, - }, -]; - -export function IndexPage(): ReactElement { - return ( - <> - - - - ); -} diff --git a/website/src/pages/docs/_meta.ts b/website/src/content/_meta.ts similarity index 92% rename from website/src/pages/docs/_meta.ts rename to website/src/content/_meta.ts index a23044cf7e7..caf0fe8d81a 100644 --- a/website/src/pages/docs/_meta.ts +++ b/website/src/content/_meta.ts @@ -9,7 +9,7 @@ export default { 'schema-directives': 'Schema Directives', 'schema-merging': 'Schema Merging', 'schema-stitching': { - title: 'Schema Stitching โ†—', + title: 'Schema Stitching', href: 'https://the-guild.dev/graphql/stitching', }, 'server-setup': 'Setup an HTTP Server', @@ -18,5 +18,4 @@ export default { 'graphql-tag-pluck': 'GraphQL Tag Pluck', 'relay-operation-optimizer': 'Relay Operation Optimizer', migration: 'Migration', - api: 'API Reference', }; diff --git a/website/src/pages/docs/connectors.mdx b/website/src/content/connectors.mdx similarity index 100% rename from website/src/pages/docs/connectors.mdx rename to website/src/content/connectors.mdx diff --git a/website/src/pages/docs/documents-loading.mdx b/website/src/content/documents-loading.mdx similarity index 100% rename from website/src/pages/docs/documents-loading.mdx rename to website/src/content/documents-loading.mdx diff --git a/website/src/pages/docs/generate-schema.mdx b/website/src/content/generate-schema.mdx similarity index 100% rename from website/src/pages/docs/generate-schema.mdx rename to website/src/content/generate-schema.mdx diff --git a/website/src/pages/docs/graphql-tag-pluck.mdx b/website/src/content/graphql-tag-pluck.mdx similarity index 97% rename from website/src/pages/docs/graphql-tag-pluck.mdx rename to website/src/content/graphql-tag-pluck.mdx index c389672ba2b..2c1e2423f5c 100644 --- a/website/src/pages/docs/graphql-tag-pluck.mdx +++ b/website/src/content/graphql-tag-pluck.mdx @@ -103,7 +103,7 @@ be translated into `/* GraphQL */` in code. ### `globalGqlIdentifierName` -Allows using a global identifier instead of a module import. +Allows using a global identifier instead of a module import. Identifiers are case sensitive. ```js // `graphql` is a global function diff --git a/website/src/pages/docs/introduction.mdx b/website/src/content/introduction.mdx similarity index 100% rename from website/src/pages/docs/introduction.mdx rename to website/src/content/introduction.mdx diff --git a/website/src/pages/docs/migration/_meta.ts b/website/src/content/migration/_meta.ts similarity index 100% rename from website/src/pages/docs/migration/_meta.ts rename to website/src/content/migration/_meta.ts diff --git a/website/src/pages/docs/migration/migration-from-import.mdx b/website/src/content/migration/migration-from-import.mdx similarity index 100% rename from website/src/pages/docs/migration/migration-from-import.mdx rename to website/src/content/migration/migration-from-import.mdx diff --git a/website/src/pages/docs/migration/migration-from-merge-graphql-schemas.mdx b/website/src/content/migration/migration-from-merge-graphql-schemas.mdx similarity index 100% rename from website/src/pages/docs/migration/migration-from-merge-graphql-schemas.mdx rename to website/src/content/migration/migration-from-merge-graphql-schemas.mdx diff --git a/website/src/pages/docs/migration/migration-from-toolkit.mdx b/website/src/content/migration/migration-from-toolkit.mdx similarity index 100% rename from website/src/pages/docs/migration/migration-from-toolkit.mdx rename to website/src/content/migration/migration-from-toolkit.mdx diff --git a/website/src/content/migration/migration-from-tools.mdx b/website/src/content/migration/migration-from-tools.mdx new file mode 100644 index 00000000000..f9d704a828a --- /dev/null +++ b/website/src/content/migration/migration-from-tools.mdx @@ -0,0 +1,215 @@ +# Migration to v7 + +## Upgrading from v6 + +If you are using GraphQL Tools v6, there are several breaking changes to be aware of. + +### Schema Generation and Decoration API (`@graphql-tools/schema`) + +- Resolver validation options should now be set to `error`, `warn` or `ignore` rather than `true` or + `false`. In previous versions, some validators caused errors to be thrown, while some issued + warnings. This change brings consistency to validator behavior. + +- The `allowResolversNotInSchema` has been renamed to `requireResolversToMatchSchema`, to harmonize + the naming convention of all the validators. The default setting of + `requireResolversToMatchSchema` is `error`, matching the previous behavior. + +### Schema Delegation (`delegateToSchema` & `@graphql-tools/delegate`) + +- The `delegateToSchema` return value has matured and been formalized as an `ExternalObject`, in + which all errors are integrated into the GraphQL response, preserving their initial path. Those + advanced users accessing the result directly will note the change in error handling. This also + allows for the deprecation of unnecessary helper functions including `slicedError`, `getErrors`, + `getErrorsByPathSegment` functions. Only external errors with missing or invalid paths must still + be preserved by annotating the remote object with special properties. The new `getUnpathedErrors` + function is therefore necessary for retrieving only these errors. Note also the new + `annotateExternalObject` and `mergeExternalObjects` functions, as well as the renaming of + `handleResult` to `resolveExternalValue`. + +- Transform types and the `applySchemaTransforms` are now relocated to the `delegate` package; + `applyRequestTransforms`/`applyResultTransforms` functions have been deprecated, however, as this + functionality has been replaced since v6 by the `Transformer` abstraction. + +- The `transformRequest`/`transformResult` methods are now provided additional `delegationContext` + and `transformationContext` arguments -- these were introduced in v6, but previously optional. + +- The `transformSchema` method may wish to create additional delegating resolvers and so it is now + provided the `subschemaConfig` and final (non-executable) `transformedSchema` parameters. As in + v6, the `transformSchema` is kicked off once to produce the non-executable version, and then, if a + wrapping schema is being generated, proxying resolvers are created with access to the + (non-executable) initial result. In v7, the individual `transformSchema` methods also get access + to the result of the first run, if necessary, they can create additional wrapping schema proxying + resolvers. + +- `applySchemaTransforms` parameters have been updated to match and support the `transformSchema` + parameters above. + +### Remote Schemas & Wrapping (`wrapSchema`, `makeRemoteExecutableSchema`, and `@graphql-tools/wrap`) + +- `wrapSchema` and `generateProxyingResolvers` now only take a single options argument with named + properties of type `SubschemaConfig`. The previously possible shorthand version with the first + argument consisting of a `GraphQLSchema` and the second argument representing the transforms + should be reworked as a `SubschemaConfig` object. + +- Similarly, the `ICreateProxyingResolverOptions` interface that provides the options for the + `createProxyingResolver` property of `SubschemaConfig` options has been adjusted. The `schema` + property previously could be set to a `GraphQLSchema` or a `SubschemaConfig` object. This property + has been removed in favor of a `subschemaConfig` property that will always be a `SubschemaConfig` + object. The `transforms` property has been removed; transforms should be included within the + `SubschemaConfig` object.` + +- The format of the wrapping schema has solidified. All non-root fields are expected to use + identical resolvers, either `defaultMergedResolver` or a custom equivalent, with root fields doing + the hard work of proxying. Support for custom merged resolvers through `createMergedResolver` has + been deprecated, as custom merging resolvers conflict when using stitching's type merging, where + resolvers are expected to be identical across subschemas. + +- The `WrapFields` transform's `wrappingResolver` option has been removed, as this complicates + multiple wrapping layers, as well as planned functionality to wrap subscription root fields in + potentially multiple layers, as the wrapping resolvers may be different in different layers. + Modifying resolvers can still be performed by use of an additional transform such as + `TransformRootFields` or `TransformObjectFields`. + +- The `ExtendSchema` transform has been removed, as it is conceptually simpler just to use + `stitchSchemas` with one subschema. + +- The `ReplaceFieldsWithFragment`, `AddFragmentsByField`, `AddSelectionSetsByField`, and + `AddMergedTypeSelectionSets` transforms has been removed, as they are superseded by the + `AddSelectionSets` and `VisitSelectionSets` transforms. The `AddSelectionSets` purposely takes + parsed SDL rather than strings, to nudge end users to parse these strings at build time (when + possible), rather than at runtime. Parsing of selection set strings can be performed using the + `parseSelectionSet` function from `@graphql-tools/utils`. + +### Schema Stitching (`stitchSchemas` & `@graphql-tools/stitch`) + +- `stitchSchemas`'s `mergeTypes` option is now true by default! This causes the `onTypeConflict` + option to be ignored by default. To use `onTypeConflict` to select a specific type instead of + simply merging, simply set `mergeTypes` to false. + +- `schemas` argument has been deprecated, use `subschemas`, `typeDefs`, or `types`, depending on + what you are stitching. + +- When using batch delegation in type merging, the `argsFromKeys` function is now set only via the + `argsFromKeys` property. Previously, if `argsFromKeys` was absent, it could be read from `args`. + +- Support for fragment hints has been removed in favor of selection set hints. To migrate you need + to replace your resolver fragment hints for selection set hints e.g.: + +```ts +Type: { + fragment: '... on Type { id }' + resolve: () => { ... } +} +``` + +for + +```ts +Type: { + selectionSet: '{ id }' + resolve: () => { ... } +} +``` + +- `stitchSchemas` now processes all `GraphQLSchema` and `SubschemaConfig` subschema input into new + `Subschema` objects, handling schema config directives such aso`@computed` as well as generating + the final transformed schema, stored as the `transformedSchema` property, if transforms are used. + Signatures of the `onTypeConflict`, `fieldConfigMerger`, and `inputFieldConfigMerger` have been + updated to include metadata related to the original and transformed subschemas. Note the property + name change for `onTypeConflict` from `schema` to `subschema`. + +### Mocking (`addMocksToSchema` and `@graphql-tools/mock`) + +- Mocks returning objects with fields set as functions are now operating according to the upstream + `graphql-js` convention, i.e. these functions take three arguments, `args`, `context`, and `info` + with `parent` available as `this` rather than as the first argument. + +### Other Utilities (`@graphql-tools/utils`) + +- `filterSchema`'s `fieldFilter` will now filter _all_ fields across Object, Interface, and Input + types. For the previous Object-only behavior, switch to the `objectFieldFilter` option. +- Unused `fieldNodes` utility functions have been removed. +- Unused `typeContainsSelectionSet` function has been removed, and `typesContainSelectionSet` has + been moved to the `stitch` package. +- Unnecessary `Operation` type has been removed in favor of `OperationTypeNode` from upstream + graphql-js. +- As above, `applySchemaTransforms`/`applyRequestTransforms`/`applyResultTransforms` have been + removed from the `utils` package, as they are implemented elsewhere or no longer necessary. + +## Upgrading from v4/v5 + +If you are using GraphQL Tools v4/v5, additional changes are necessary. + +### Monorepo Design + +You can still import functions directly from `graphql-tools`, but we encourage you to instead import +functions from specific packages under the new mono repo design: `@graphql-tools/schema`, +`@graphql-tools/merge`, etc. + +### Schema Generation and Decoration API (`@graphql-tools/schema`) + +The majority of schema modification functions now return new, altered schemas rather than modifying +the original schema in place. Note that several functions have been renamed as `ResolveFunctions` +and `MockFunctions` have been shortened to `Resolvers` and `Mocks` throughout the code base and +documentation: + +- `makeExecutableSchema` +- `addResolveFunctionsToSchema` => `addResolversToSchema` +- `attachDirectiveResolvers` +- `addSchemaLevelResolveFunctions` => `addSchemaLevelResolver` +- `addCatchUndefinedToSchema` +- `addErrorLoggingToSchema` +- `addMockFunctionsToSchema` => `addMocksToSchema` + +Schema modification functions operating on fields now similarly take a schema as a parameter and +return a new schema, rather than modifying the passed in `typeMap` (and requiring manual schema +healing). + +- `appendObjectFields` +- `removeObjectFields` + +The `addConnectorsToContext` has been deprecated in favor of manually attaching connectors to +context, see [#140](https://github.com/ardatan/graphql-tools/issues/140). + +Abstract types that use `resolveType` properties to return an actual type rather than a type name +may be unstable when using `graphql-tools`, as these types are hidden from the type map and cannot +be recreated. These `resolveType` resolvers should be relatively easy to rewrite to use the name of +a known `GraphQLObject` type included within the schemaโ€™s type map. This will soon be the +recommended approach in upstream `graphql-js` as well, see +[#2279](https://github.com/graphql/graphql-js/pull/2779#issuecomment-684947685). + +### Remote Schemas & Wrapping (`wrapSchema`, `makeRemoteExecutableSchema`, and `@graphql-tools/wrap`) + +- Remote schema wrapping is now accomplished by using executors and subscribers rather than fetchers + and links. Functions that convert links to executors/subscribers are included with + @graphql-tools/links. [See the docs](/docs/remote-schemas). + +- `Transform`\<\*>`Field Transforms` now all take a `fieldTransformer` with altered + `FieldTransformer` type. A FieldTransformer receives a field config as an argument rather than a + field, so that library users are spared having to call fieldToFieldConfig. A `FieldTransformer` + can return an array of type `[string, GraphQLFieldConfig]` instead of an object + `{ name: string, field: GraphQLFieldConfig }` if it wishes to rename the field, the + tuple is less verbose -- and the object is misnamed, it should be `{ newName, newFieldConfig }`. + +### Schema Stitching (`stitchSchemas` & `@graphql-tools/stitch`) + +- Stitching has been renamed (`mergeSchemas` => `stitchSchemas`) +- `resolvers` parameter passed to `stitchSchemas` match type signature of resolvers passed to + makeExecutableSchema (and can no longer be functions). Stitching metadata stored within + โ€œmergeInfoโ€ may still be accessed within each resolver under + `info.schema.extensions.stitchingInfo`. +- Custom proxying resolvers take an options object instead of individual parameters, a breaking + change from v5, when the custom proxying resolvers were introduced. + +### Schema Delegation (`delegateToSchema` & `@graphql-tools/delegate`) + +- As above, `mergeInfo` in `GraphQLResolveInfo` has been replaced by `stitchingInfo` in + `GraphQLSchema`s extensions. +- `delegateToSchema` is not available in `mergeInfo` or `stitchingInfo` anymore. Simply import the + `delegateToSchema` function from the `delegate` package instead. + +### Other Utilities (`@graphql-tools/utils`) + +- Polyfills for GraphQL versions earlier than 14.2 have been removed, including `toConfig` +- `fieldToFieldConfig` and `inputFieldToInputFieldConfig` functionality is now exported separately, + although library users should ideally not have to use them. diff --git a/website/src/pages/docs/mocking.mdx b/website/src/content/mocking.mdx similarity index 100% rename from website/src/pages/docs/mocking.mdx rename to website/src/content/mocking.mdx diff --git a/website/src/pages/docs/relay-operation-optimizer.mdx b/website/src/content/relay-operation-optimizer.mdx similarity index 100% rename from website/src/pages/docs/relay-operation-optimizer.mdx rename to website/src/content/relay-operation-optimizer.mdx diff --git a/website/src/pages/docs/resolvers-composition.mdx b/website/src/content/resolvers-composition.mdx similarity index 100% rename from website/src/pages/docs/resolvers-composition.mdx rename to website/src/content/resolvers-composition.mdx diff --git a/website/src/pages/docs/resolvers.mdx b/website/src/content/resolvers.mdx similarity index 100% rename from website/src/pages/docs/resolvers.mdx rename to website/src/content/resolvers.mdx diff --git a/website/src/pages/docs/scalars.mdx b/website/src/content/scalars.mdx similarity index 100% rename from website/src/pages/docs/scalars.mdx rename to website/src/content/scalars.mdx diff --git a/website/src/pages/docs/schema-directives.mdx b/website/src/content/schema-directives.mdx similarity index 97% rename from website/src/pages/docs/schema-directives.mdx rename to website/src/content/schema-directives.mdx index 5db79b39d74..04246741153 100644 --- a/website/src/pages/docs/schema-directives.mdx +++ b/website/src/content/schema-directives.mdx @@ -770,6 +770,32 @@ let schema = makeExecutableSchema({ schema = uniqueIDDirectiveTransformer(schema) ``` +### GraphQL modules usage + +If you create your application with GraphQL modules please use the `schemaBuilder` parameter in +`createApplication()` to apply the directive implementation: + +```ts +import { anyDirective } from 'any-directive-package' +import { makeExecutableSchema } from '@graphql-tools/schema' + +const application = createApplication({ + ... + schemaBuilder: ({ typeDefs, resolvers }) => { + // Build the schema from modules + let schema = makeExecutableSchema({ + typeDefs, + resolvers: resolvers + }) + + // Apply the directive transformer, i.e. rename directive + const patchedSchema = anyDirective('rename')(schema); + + return patchedSchema; + } +}) +``` + ## Declaring Schema Directives SDL syntax requires declaring the names, argument types, default argument values, and permissible diff --git a/website/src/pages/docs/schema-loading.mdx b/website/src/content/schema-loading.mdx similarity index 100% rename from website/src/pages/docs/schema-loading.mdx rename to website/src/content/schema-loading.mdx diff --git a/website/src/pages/docs/schema-merging.mdx b/website/src/content/schema-merging.mdx similarity index 100% rename from website/src/pages/docs/schema-merging.mdx rename to website/src/content/schema-merging.mdx diff --git a/website/src/pages/docs/server-setup.mdx b/website/src/content/server-setup.mdx similarity index 100% rename from website/src/pages/docs/server-setup.mdx rename to website/src/content/server-setup.mdx diff --git a/website/src/giscus.tsx b/website/src/giscus.tsx new file mode 100644 index 00000000000..174f5976390 --- /dev/null +++ b/website/src/giscus.tsx @@ -0,0 +1,12 @@ +import { Giscus as Giscus_ } from '@theguild/components'; + +export const Giscus = () => { + return ( + + ); +}; diff --git a/website/src/mdx-components.ts b/website/src/mdx-components.ts new file mode 100644 index 00000000000..2c7e4a0f3d5 --- /dev/null +++ b/website/src/mdx-components.ts @@ -0,0 +1,8 @@ +import { useMDXComponents as getDocsMDXComponents } from '@theguild/components/server'; + +const docsComponents = getDocsMDXComponents({}); + +export const useMDXComponents: typeof getDocsMDXComponents = components => ({ + ...docsComponents, + ...components, +}); diff --git a/website/src/pages/_app.tsx b/website/src/pages/_app.tsx deleted file mode 100644 index e6ce844729f..00000000000 --- a/website/src/pages/_app.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import { AppProps } from 'next/app'; -import '@theguild/components/style.css'; - -export default function App({ Component, pageProps }: AppProps) { - return ; -} diff --git a/website/src/pages/docs/migration/migration-from-tools.mdx b/website/src/pages/docs/migration/migration-from-tools.mdx deleted file mode 100644 index e19a4813fb5..00000000000 --- a/website/src/pages/docs/migration/migration-from-tools.mdx +++ /dev/null @@ -1,129 +0,0 @@ -# Migration to v7 - -## Upgrading from v6 - -If you are using GraphQL Tools v6, there are several breaking changes to be aware of. - -### Schema Generation and Decoration API (`@graphql-tools/schema`) - -- Resolver validation options should now be set to `error`, `warn` or `ignore` rather than `true` or `false`. In previous versions, some validators caused errors to be thrown, while some issued warnings. This change brings consistency to validator behavior. - -- The `allowResolversNotInSchema` has been renamed to `requireResolversToMatchSchema`, to harmonize the naming convention of all the validators. The default setting of `requireResolversToMatchSchema` is `error`, matching the previous behavior. - -### Schema Delegation (`delegateToSchema` & `@graphql-tools/delegate`) - -- The `delegateToSchema` return value has matured and been formalized as an `ExternalObject`, in which all errors are integrated into the GraphQL response, preserving their initial path. Those advanced users accessing the result directly will note the change in error handling. This also allows for the deprecation of unnecessary helper functions including `slicedError`, `getErrors`, `getErrorsByPathSegment` functions. Only external errors with missing or invalid paths must still be preserved by annotating the remote object with special properties. The new `getUnpathedErrors` function is therefore necessary for retrieving only these errors. Note also the new `annotateExternalObject` and `mergeExternalObjects` functions, as well as the renaming of `handleResult` to `resolveExternalValue`. - -- Transform types and the `applySchemaTransforms` are now relocated to the `delegate` package; `applyRequestTransforms`/`applyResultTransforms` functions have been deprecated, however, as this functionality has been replaced since v6 by the `Transformer` abstraction. - -- The `transformRequest`/`transformResult` methods are now provided additional `delegationContext` and `transformationContext` arguments -- these were introduced in v6, but previously optional. - -- The `transformSchema` method may wish to create additional delegating resolvers and so it is now provided the `subschemaConfig` and final (non-executable) `transformedSchema` parameters. As in v6, the `transformSchema` is kicked off once to produce the non-executable version, and then, if a wrapping schema is being generated, proxying resolvers are created with access to the (non-executable) initial result. In v7, the individual `transformSchema` methods also get access to the result of the first run, if necessary, they can create additional wrapping schema proxying resolvers. - -- `applySchemaTransforms` parameters have been updated to match and support the `transformSchema` parameters above. - -### Remote Schemas & Wrapping (`wrapSchema`, `makeRemoteExecutableSchema`, and `@graphql-tools/wrap`) - -- `wrapSchema` and `generateProxyingResolvers` now only take a single options argument with named properties of type `SubschemaConfig`. The previously possible shorthand version with the first argument consisting of a `GraphQLSchema` and the second argument representing the transforms should be reworked as a `SubschemaConfig` object. - -- Similarly, the `ICreateProxyingResolverOptions` interface that provides the options for the `createProxyingResolver` property of `SubschemaConfig` options has been adjusted. The `schema` property previously could be set to a `GraphQLSchema` or a `SubschemaConfig` object. This property has been removed in favor of a `subschemaConfig` property that will always be a `SubschemaConfig` object. The `transforms` property has been removed; transforms should be included within the `SubschemaConfig` object.` - -- The format of the wrapping schema has solidified. All non-root fields are expected to use identical resolvers, either `defaultMergedResolver` or a custom equivalent, with root fields doing the hard work of proxying. Support for custom merged resolvers through `createMergedResolver` has been deprecated, as custom merging resolvers conflict when using stitching's type merging, where resolvers are expected to be identical across subschemas. - -- The `WrapFields` transform's `wrappingResolver` option has been removed, as this complicates multiple wrapping layers, as well as planned functionality to wrap subscription root fields in potentially multiple layers, as the wrapping resolvers may be different in different layers. Modifying resolvers can still be performed by use of an additional transform such as `TransformRootFields` or `TransformObjectFields`. - -- The `ExtendSchema` transform has been removed, as it is conceptually simpler just to use `stitchSchemas` with one subschema. - -- The `ReplaceFieldsWithFragment`, `AddFragmentsByField`, `AddSelectionSetsByField`, and `AddMergedTypeSelectionSets` transforms has been removed, as they are superseded by the `AddSelectionSets` and `VisitSelectionSets` transforms. The `AddSelectionSets` purposely takes parsed SDL rather than strings, to nudge end users to parse these strings at build time (when possible), rather than at runtime. Parsing of selection set strings can be performed using the `parseSelectionSet` function from `@graphql-tools/utils`. - -### Schema Stitching (`stitchSchemas` & `@graphql-tools/stitch`) - -- `stitchSchemas`'s `mergeTypes` option is now true by default! This causes the `onTypeConflict` option to be ignored by default. To use `onTypeConflict` to select a specific type instead of simply merging, simply set `mergeTypes` to false. - -- `schemas` argument has been deprecated, use `subschemas`, `typeDefs`, or `types`, depending on what you are stitching. - -- When using batch delegation in type merging, the `argsFromKeys` function is now set only via the `argsFromKeys` property. Previously, if `argsFromKeys` was absent, it could be read from `args`. - -- Support for fragment hints has been removed in favor of selection set hints. To migrate you need to replace your resolver fragment hints for selection set hints eg.: - -```ts -Type: { - fragment: '... on Type { id }' - resolve: () => { ... } -} -``` - -for - -```ts -Type: { - selectionSet: '{ id }' - resolve: () => { ... } -} -``` - -- `stitchSchemas` now processes all `GraphQLSchema` and `SubschemaConfig` subschema input into new `Subschema` objects, handling schema config directives such aso`@computed` as well as generating the final transformed schema, stored as the `transformedSchema` property, if transforms are used. Signatures of the `onTypeConflict`, `fieldConfigMerger`, and `inputFieldConfigMerger` have been updated to include metadata related to the original and transformed subschemas. Note the property name change for `onTypeConflict` from `schema` to `subschema`. - -### Mocking (`addMocksToSchema` and `@graphql-tools/mock`) - -- Mocks returning objects with fields set as functions are now operating according to the upstream `graphql-js` convention, i.e. these functions take three arguments, `args`, `context`, and `info` with `parent` available as `this` rather than as the first argument. - -### Other Utilities (`@graphql-tools/utils`) - -- `filterSchema`'s `fieldFilter` will now filter _all_ fields across Object, Interface, and Input types. For the previous Object-only behavior, switch to the `objectFieldFilter` option. -- Unused `fieldNodes` utility functions have been removed. -- Unused `typeContainsSelectionSet` function has been removed, and `typesContainSelectionSet` has been moved to the `stitch` package. -- Unnecessary `Operation` type has been removed in favor of `OperationTypeNode` from upstream graphql-js. -- As above, `applySchemaTransforms`/`applyRequestTransforms`/`applyResultTransforms` have been removed from the `utils` package, as they are implemented elsewhere or no longer necessary. - -## Upgrading from v4/v5 - -If you are using GraphQL Tools v4/v5, additional changes are necessary. - -### Monorepo Design - -You can still import functions directly from `graphql-tools`, but we encourage you to instead import functions from specific packages under the new mono repo design: `@graphql-tools/schema`, `@graphql-tools/merge`, etc. - -### Schema Generation and Decoration API (`@graphql-tools/schema`) - -The majority of schema modification functions now return new, altered schemas rather than modifying the original schema in place. Note that several functions have been renamed as `ResolveFunctions` and `MockFunctions` have been shortened to `Resolvers` and `Mocks` throughout the code base and documentation: - -- `makeExecutableSchema` -- `addResolveFunctionsToSchema` => `addResolversToSchema` -- `attachDirectiveResolvers` -- `addSchemaLevelResolveFunctions` => `addSchemaLevelResolver` -- `addCatchUndefinedToSchema` -- `addErrorLoggingToSchema` -- `addMockFunctionsToSchema` => `addMocksToSchema` - -Schema modification functions operating on fields now similarly take a schema as a parameter and return a new schema, rather than modifying the passed in `typeMap` (and requiring manual schema healing). - -- `appendObjectFields` -- `removeObjectFields` - -The `addConnectorsToContext` has been deprecated in favor of manually attaching connectors to context, see [#140](https://github.com/ardatan/graphql-tools/issues/140). - -Abstract types that use `resolveType` properties to return an actual type rather than a type name may be unstable when using `graphql-tools`, as these types are hidden from the type map and cannot be recreated. These `resolveType` resolvers should be relatively easy to rewrite to use the name of a known `GraphQLObject` type included within the schemaโ€™s type map. This will soon be the recommended approach in upstream `graphql-js` as well, see [#2279](https://github.com/graphql/graphql-js/pull/2779#issuecomment-684947685). - -### Remote Schemas & Wrapping (`wrapSchema`, `makeRemoteExecutableSchema`, and `@graphql-tools/wrap`) - -- Remote schema wrapping is now accomplished by using executors and subscribers rather than fetchers and links. Functions that convert links to executors/subscribers are included with @graphql-tools/links. [See the docs](/docs/remote-schemas). - -- `Transform`\<*>`Field Transforms` now all take a `fieldTransformer` with altered `FieldTransformer` type. - A FieldTransformer receives a field config as an argument rather than a field, so that library users are spared having to call fieldToFieldConfig. A `FieldTransformer` can return an array of type `[string, GraphQLFieldConfig]` instead of an object `{ name: string, field: GraphQLFieldConfig }` if it wishes to rename the field, the tuple is less verbose -- and the object is misnamed, it should be `{ newName, newFieldConfig }`. - -### Schema Stitching (`stitchSchemas` & `@graphql-tools/stitch`) - -- Stitching has been renamed (`mergeSchemas` => `stitchSchemas`) -- `resolvers` parameter passed to `stitchSchemas` match type signature of resolvers passed to makeExecutableSchema (and can no longer be functions). Stitching metadata stored within โ€œmergeInfoโ€ may still be accessed within each resolver under `info.schema.extensions.stitchingInfo`. -- Custom proxying resolvers take an options object instead of individual parameters, a breaking change from v5, when the custom proxying resolvers were introduced. - -### Schema Delegation (`delegateToSchema` & `@graphql-tools/delegate`) - -- As above, `mergeInfo` in `GraphQLResolveInfo` has been replaced by `stitchingInfo` in `GraphQLSchema`s extensions. -- `delegateToSchema` is not available in `mergeInfo` or `stitchingInfo` anymore. Simply import the `delegateToSchema` function from the `delegate` package instead. - -### Other Utilities (`@graphql-tools/utils`) - -- Polyfills for GraphQL versions earlier than 14.2 have been removed, including `toConfig` -- `fieldToFieldConfig` and `inputFieldToInputFieldConfig` functionality is now exported separately, although library users should ideally not have to use them. diff --git a/website/src/pages/index.mdx b/website/src/pages/index.mdx deleted file mode 100644 index 590f7e18475..00000000000 --- a/website/src/pages/index.mdx +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Home ---- - -export { IndexPage as default } from '../components/index-page' diff --git a/website/tailwind.config.ts b/website/tailwind.config.ts index 8bf95edb82c..603a35a1cb8 100644 --- a/website/tailwind.config.ts +++ b/website/tailwind.config.ts @@ -1 +1,43 @@ -export { default } from '@theguild/tailwind-config'; +import type { Config } from 'tailwindcss'; +import { fontFamily } from 'tailwindcss/defaultTheme'; +import baseConfig from '@theguild/tailwind-config'; + +const config: Config = { + ...baseConfig, + theme: { + ...baseConfig.theme, + extend: { + ...baseConfig.theme.extend, + fontFamily: { + sans: ['var(--font-sans, ui-sans-serif)', ...fontFamily.sans], + }, + colors: { + ...baseConfig.theme.extend.colors, + primary: baseConfig.theme.extend.colors['hive-yellow'], + }, + keyframes: { + 'accordion-down': { + from: { height: '0', opacity: '0' }, + to: { height: 'var(--radix-accordion-content-height)', opacity: '1' }, + }, + 'accordion-up': { + from: { height: 'var(--radix-accordion-content-height)', opacity: '1' }, + to: { height: '0', opacity: '0' }, + }, + scroll: { + to: { + transform: 'translate(calc(-50% - .5rem))', + }, + }, + }, + animation: { + 'accordion-down': 'accordion-down 0.5s ease', + 'accordion-up': 'accordion-up 0.5s ease', + scroll: + 'scroll var(--animation-duration, 40s) var(--animation-direction, forwards) linear infinite', + }, + }, + }, +}; + +export default config; diff --git a/website/theme.config.tsx b/website/theme.config.tsx deleted file mode 100644 index bbfcbf7cab4..00000000000 --- a/website/theme.config.tsx +++ /dev/null @@ -1,33 +0,0 @@ -/* eslint sort-keys: error */ -import { useRouter } from 'next/router'; -import { defineConfig, Giscus, PRODUCTS, useTheme } from '@theguild/components'; - -export default defineConfig({ - docsRepositoryBase: 'https://github.com/ardatan/graphql-tools/tree/master/website', - main({ children }) { - const { resolvedTheme } = useTheme(); - const { route } = useRouter(); - - const comments = route !== '/' && ( - - ); - return ( - <> - {children} - {comments} - - ); - }, - websiteName: 'GraphQL-Tools', - description: PRODUCTS.TOOLS.title, - logo: PRODUCTS.TOOLS.logo({ className: 'w-9' }), -}); diff --git a/website/tsconfig.json b/website/tsconfig.json index 8a6729ad76e..d502339ce09 100644 --- a/website/tsconfig.json +++ b/website/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { - "target": "es2019", - "module": "commonjs", + "target": "esnext", + "module": "esnext", "strict": true, "esModuleInterop": true, "skipLibCheck": true, @@ -9,12 +9,17 @@ "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "noEmit": true, - "moduleResolution": "node", + "moduleResolution": "bundler", "resolveJsonModule": true, "isolatedModules": true, "jsx": "preserve", - "incremental": true + "incremental": true, + "plugins": [ + { + "name": "next" + } + ] }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "src/pages/docs/[[...slug]].tsx.old"], + "include": ["**/*.ts", "**/*.tsx", "next-env.d.ts", ".next/types/**/*.ts"], "exclude": ["node_modules"] } diff --git a/yarn.lock b/yarn.lock index f74e6441315..c770fe9345a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,9 +3,9 @@ "@0no-co/graphql.web@^1.0.5": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@0no-co/graphql.web/-/graphql.web-1.0.11.tgz#035cbc6523af43358b81993f10b13e8d7a79c816" - integrity sha512-xuSJ9WXwTmtngWkbdEoopMo6F8NLtjy84UNAMsAr5C3/2SgAL/dEU10TMqTIsipqPQ8HA/7WzeqQ9DEQxSvPPA== + version "1.1.2" + resolved "https://registry.yarnpkg.com/@0no-co/graphql.web/-/graphql.web-1.1.2.tgz#9af8deaf3f236c1c6ee99cc5349051475e5dcc83" + integrity sha512-N2NGsU5FLBhT8NZ+3l2YrzZSHITjNXNuDhC4iDiikv0IujaJ0Xc6xIxQZ/Ek3Cb+rgPjnLHYyJm11tInuJn+cw== "@alloc/quick-lru@^5.2.0": version "5.2.0" @@ -20,28 +20,23 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@antfu/install-pkg@^0.4.0": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-0.4.1.tgz#d1d7f3be96ecdb41581629cafe8626d1748c0cf1" - integrity sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw== +"@antfu/install-pkg@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-1.1.0.tgz#78fa036be1a6081b5a77a5cf59f50c7752b6ba26" + integrity sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ== dependencies: - package-manager-detector "^0.2.0" - tinyexec "^0.3.0" + package-manager-detector "^1.3.0" + tinyexec "^1.0.1" -"@antfu/utils@^0.7.10": - version "0.7.10" - resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.10.tgz#ae829f170158e297a9b6a28f161a8e487d00814d" - integrity sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww== - -"@apollo/cache-control-types@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@apollo/cache-control-types/-/cache-control-types-1.0.3.tgz#5da62cf64c3b4419dabfef4536b57a40c8ff0b47" - integrity sha512-F17/vCp7QVwom9eG7ToauIKdAxpSoadsJnqIfyryLFSkLSOEqu+eC5Z3N8OXcUVStuOMcNHlyraRsA6rRICu4g== +"@antfu/utils@^8.1.0": + version "8.1.1" + resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-8.1.1.tgz#95b1947d292a9a2efffba2081796dcaa05ecedfb" + integrity sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ== -"@apollo/client@3.11.10", "@apollo/client@^3.7.0", "@apollo/client@~3.2.5 || ~3.3.0 || ~3.4.0 || ~3.5.0 || ~3.6.0 || ~3.7.0 || ~3.8.0 || ~3.9.0 || ~3.10.0 || ~3.11.0": - version "3.11.10" - resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.11.10.tgz#e16ae82ea9b16536ffd109847d24f9293fab5c4d" - integrity sha512-IfGc+X4il0rDqVQBBWdxIKM+ciDCiDzBq9+Bg9z4tJMi87uF6po4v+ddiac1wP0ARgVPsFwEIGxK7jhN4pW8jg== +"@apollo/client@3.13.8", "@apollo/client@^3.7.0", "@apollo/client@~3.2.5 || ~3.3.0 || ~3.4.0 || ~3.5.0 || ~3.6.0 || ~3.7.0 || ~3.8.0 || ~3.9.0 || ~3.10.0 || ~3.11.0 || ~3.12.0 || ~3.13.0": + version "3.13.8" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.13.8.tgz#ef1d49a5b134c69a55e3f137164a8e323aef4e2a" + integrity sha512-YM9lQpm0VfVco4DSyKooHS/fDTiKQcCHfxr7i3iL6a0kP/jNO5+4NFK6vtRDxaYisd5BrwOZHLJpPBnvRVpKPg== dependencies: "@graphql-typed-document-node/core" "^3.1.1" "@wry/caches" "^1.0.0" @@ -52,283 +47,122 @@ optimism "^0.18.0" prop-types "^15.7.2" rehackt "^0.1.0" - response-iterator "^0.2.6" symbol-observable "^4.0.0" ts-invariant "^0.10.3" tslib "^2.3.0" zen-observable-ts "^1.2.5" -"@apollo/composition@2.9.3": - version "2.9.3" - resolved "https://registry.yarnpkg.com/@apollo/composition/-/composition-2.9.3.tgz#cf9773a271e9cd5f047bfd81de75225124adb527" - integrity sha512-dcIZ5K+9sBNNPzXkYtZa91IegeMc350fXN7UMKTggqx5EBbWrakU/ltC0fp8Tr0qqlPGtEWFzXMmoqXKVPQJ1w== - dependencies: - "@apollo/federation-internals" "2.9.3" - "@apollo/query-graphs" "2.9.3" - -"@apollo/federation-internals@2.9.3": - version "2.9.3" - resolved "https://registry.yarnpkg.com/@apollo/federation-internals/-/federation-internals-2.9.3.tgz#c6fa913dd10c74c0e0fffd6a7b369923b2a5d665" - integrity sha512-r50Ykc331CZUw4TxpcqprAZOlGkbzoHEiHObUqUhQopTx8i0aXNt+0pc3nzqUAoT9OD83yJqPJV1EiZF2vCupQ== - dependencies: - "@types/uuid" "^9.0.0" - chalk "^4.1.0" - js-levenshtein "^1.1.6" - uuid "^9.0.0" - -"@apollo/gateway@2.9.3": - version "2.9.3" - resolved "https://registry.yarnpkg.com/@apollo/gateway/-/gateway-2.9.3.tgz#0070e91751cfdb280fa29bf9fd1d20d201e337a1" - integrity sha512-sYBrzwET6cO08m1r0OA/lxzhaxeny/hSMfWSPz27pCY0QAlnjc+jb7f/xeOjeGWaJ4fLV87uaR2u8Gtzzv5O7g== - dependencies: - "@apollo/composition" "2.9.3" - "@apollo/federation-internals" "2.9.3" - "@apollo/query-planner" "2.9.3" - "@apollo/server-gateway-interface" "^1.1.0" - "@apollo/usage-reporting-protobuf" "^4.1.0" - "@apollo/utils.createhash" "^2.0.0" - "@apollo/utils.fetcher" "^2.0.0" - "@apollo/utils.isnodelike" "^2.0.0" - "@apollo/utils.keyvaluecache" "^2.1.0" - "@apollo/utils.logger" "^2.0.0" - "@josephg/resolvable" "^1.0.1" - "@opentelemetry/api" "^1.0.1" - "@types/node-fetch" "^2.6.2" - async-retry "^1.3.3" - loglevel "^1.6.1" - make-fetch-happen "^11.0.0" - node-abort-controller "^3.0.1" - node-fetch "^2.6.7" - -"@apollo/protobufjs@1.2.7": - version "1.2.7" - resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.7.tgz#3a8675512817e4a046a897e5f4f16415f16a7d8a" - integrity sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.0" - long "^4.0.0" - -"@apollo/query-graphs@2.9.3": - version "2.9.3" - resolved "https://registry.yarnpkg.com/@apollo/query-graphs/-/query-graphs-2.9.3.tgz#a1ed54a6f72ce93fd9a7ee99b66e13f0943e44d0" - integrity sha512-FG0Jptr9wNTScWTRO3LFBD6mqCU5fLn4vI4NxEkK3IBNfLmWPUykyIXgrvjwg/TJkxfBBpfmBM47luvZpkbkYg== - dependencies: - "@apollo/federation-internals" "2.9.3" - deep-equal "^2.0.5" - ts-graphviz "^1.5.4" - uuid "^9.0.0" - -"@apollo/query-planner@2.9.3": - version "2.9.3" - resolved "https://registry.yarnpkg.com/@apollo/query-planner/-/query-planner-2.9.3.tgz#982af5c66243041fc048247d0cd67e9d2db5f3cd" - integrity sha512-MlZa3Gemmh9rmtfwuWLBK88uZcrmi195k7/UWfyhVIPc19/epoZd0Z031M1zGoEH0mbFaU2C7uWYbaCFx3HK1w== - dependencies: - "@apollo/federation-internals" "2.9.3" - "@apollo/query-graphs" "2.9.3" - "@apollo/utils.keyvaluecache" "^2.1.0" - chalk "^4.1.0" - deep-equal "^2.0.5" - pretty-format "^29.0.0" - -"@apollo/server-gateway-interface@^1.1.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@apollo/server-gateway-interface/-/server-gateway-interface-1.1.1.tgz#a79632aa921edefcd532589943f6b97c96fa4d3c" - integrity sha512-pGwCl/po6+rxRmDMFgozKQo2pbsSwE91TpsDBAOgf74CRDPXHHtM88wbwjab0wMMZh95QfR45GGyDIdhY24bkQ== - dependencies: - "@apollo/usage-reporting-protobuf" "^4.1.1" - "@apollo/utils.fetcher" "^2.0.0" - "@apollo/utils.keyvaluecache" "^2.1.0" - "@apollo/utils.logger" "^2.0.0" - -"@apollo/subgraph@2.9.3": - version "2.9.3" - resolved "https://registry.yarnpkg.com/@apollo/subgraph/-/subgraph-2.9.3.tgz#be248964c417d5b38d7cfba10634bd52e4b528a1" - integrity sha512-oaC79gM01kdXRBal8gGms1bpBwqe8AsX82yNYUPO/Tb7R1n+sCYcFrVqG25YeBYXWNP2qbJuD2yBGcsrEWnS1w== - dependencies: - "@apollo/cache-control-types" "^1.0.2" - "@apollo/federation-internals" "2.9.3" - -"@apollo/usage-reporting-protobuf@^4.1.0", "@apollo/usage-reporting-protobuf@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz#407c3d18c7fbed7a264f3b9a3812620b93499de1" - integrity sha512-u40dIUePHaSKVshcedO7Wp+mPiZsaU6xjv9J+VyxpoU/zL6Jle+9zWeG98tr/+SZ0nZ4OXhrbb8SNr0rAPpIDA== - dependencies: - "@apollo/protobufjs" "1.2.7" - -"@apollo/utils.createhash@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@apollo/utils.createhash/-/utils.createhash-2.0.1.tgz#9d982a166833ce08265ff70f8ef781d65109bdaa" - integrity sha512-fQO4/ZOP8LcXWvMNhKiee+2KuKyqIcfHrICA+M4lj/h/Lh1H10ICcUtk6N/chnEo5HXu0yejg64wshdaiFitJg== - dependencies: - "@apollo/utils.isnodelike" "^2.0.1" - sha.js "^2.4.11" - -"@apollo/utils.fetcher@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@apollo/utils.fetcher/-/utils.fetcher-2.0.1.tgz#2f6e3edc8ce79fbe916110d9baaddad7e13d955f" - integrity sha512-jvvon885hEyWXd4H6zpWeN3tl88QcWnHp5gWF5OPF34uhvoR+DFqcNxs9vrRaBBSY3qda3Qe0bdud7tz2zGx1A== - -"@apollo/utils.isnodelike@^2.0.0", "@apollo/utils.isnodelike@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@apollo/utils.isnodelike/-/utils.isnodelike-2.0.1.tgz#08a7e50f08d2031122efa25af089d1c6ee609f31" - integrity sha512-w41XyepR+jBEuVpoRM715N2ZD0xMD413UiJx8w5xnAZD2ZkSJnMJBoIzauK83kJpSgNuR6ywbV29jG9NmxjK0Q== - -"@apollo/utils.keyvaluecache@^2.1.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-2.1.1.tgz#f3f79a2f00520c6ab7a77a680a4e1fec4d19e1a6" - integrity sha512-qVo5PvUUMD8oB9oYvq4ViCjYAMWnZ5zZwEjNF37L2m1u528x5mueMlU+Cr1UinupCgdB78g+egA1G98rbJ03Vw== - dependencies: - "@apollo/utils.logger" "^2.0.1" - lru-cache "^7.14.1" - -"@apollo/utils.logger@^2.0.0", "@apollo/utils.logger@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@apollo/utils.logger/-/utils.logger-2.0.1.tgz#74faeb97d7ad9f22282dfb465bcb2e6873b8a625" - integrity sha512-YuplwLHaHf1oviidB7MxnCXAdHp3IqYV8n0momZ3JfLniae92eYqMIx+j5qJFX6WKJPs6q7bczmV4lXIsTu5Pg== - -"@ardatan/relay-compiler@12.0.0": - version "12.0.0" - resolved "https://registry.yarnpkg.com/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz#2e4cca43088e807adc63450e8cab037020e91106" - integrity sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q== +"@ardatan/relay-compiler@^12.0.3": + version "12.0.3" + resolved "https://registry.yarnpkg.com/@ardatan/relay-compiler/-/relay-compiler-12.0.3.tgz#a60824672da7f7cef2a3879ed833b120d292fa08" + integrity sha512-mBDFOGvAoVlWaWqs3hm1AciGHSQE1rqFc/liZTyYz/Oek9yZdT5H26pH2zAFuEiTiBVPPyMuqf5VjOFPI2DGsQ== dependencies: - "@babel/core" "^7.14.0" - "@babel/generator" "^7.14.0" - "@babel/parser" "^7.14.0" - "@babel/runtime" "^7.0.0" - "@babel/traverse" "^7.14.0" - "@babel/types" "^7.0.0" - babel-preset-fbjs "^3.4.0" + "@babel/generator" "^7.26.10" + "@babel/parser" "^7.26.10" + "@babel/runtime" "^7.26.10" chalk "^4.0.0" fb-watchman "^2.0.0" - fbjs "^3.0.0" - glob "^7.1.1" immutable "~3.7.6" invariant "^2.2.4" nullthrows "^1.1.1" relay-runtime "12.0.0" signedsource "^1.0.0" - yargs "^15.3.1" - -"@ardatan/sync-fetch@^0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz#3385d3feedceb60a896518a1db857ec1e945348f" - integrity sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA== - dependencies: - node-fetch "^2.6.1" -"@astrojs/compiler@^2.3.4": - version "2.10.3" - resolved "https://registry.yarnpkg.com/@astrojs/compiler/-/compiler-2.10.3.tgz#852386445029f7765a70b4c1d1140e175e1d8c27" - integrity sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw== +"@astrojs/compiler@2.12.0": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@astrojs/compiler/-/compiler-2.12.0.tgz#36fa2b6a5214763a995775699b4d18f63de42de6" + integrity sha512-7bCjW6tVDpUurQLeKBUN9tZ5kSv5qYrGmcn0sG0IwacL7isR2ZbyyA3AdZ4uxsuUFOS2SlgReTH7wkxO6zpqWA== -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0": - version "7.26.2" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" - integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" + integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== dependencies: - "@babel/helper-validator-identifier" "^7.25.9" + "@babel/helper-validator-identifier" "^7.27.1" js-tokens "^4.0.0" - picocolors "^1.0.0" + picocolors "^1.1.1" -"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.9", "@babel/compat-data@^7.26.0": - version "7.26.2" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.2.tgz#278b6b13664557de95b8f35b90d96785850bb56e" - integrity sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.27.2.tgz#4183f9e642fd84e74e3eea7ffa93a412e3b102c9" + integrity sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ== -"@babel/core@7.26.0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.14.0", "@babel/core@^7.22.9", "@babel/core@^7.23.9", "@babel/core@^7.24.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.0.tgz#d78b6023cc8f3114ccf049eb219613f74a747b40" - integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg== +"@babel/core@7.27.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9", "@babel/core@^7.26.10": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.27.1.tgz#89de51e86bd12246003e3524704c49541b16c3e6" + integrity sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.26.0" - "@babel/generator" "^7.26.0" - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-module-transforms" "^7.26.0" - "@babel/helpers" "^7.26.0" - "@babel/parser" "^7.26.0" - "@babel/template" "^7.25.9" - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.26.0" + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.27.1" + "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helpers" "^7.27.1" + "@babel/parser" "^7.27.1" + "@babel/template" "^7.27.1" + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.14.0", "@babel/generator@^7.23.6", "@babel/generator@^7.25.9", "@babel/generator@^7.26.0", "@babel/generator@^7.7.2": - version "7.26.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.2.tgz#87b75813bec87916210e5e01939a4c823d6bb74f" - integrity sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw== +"@babel/generator@^7.26.10", "@babel/generator@^7.26.2", "@babel/generator@^7.27.1", "@babel/generator@^7.7.2": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.1.tgz#862d4fad858f7208edd487c28b58144036b76230" + integrity sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w== dependencies: - "@babel/parser" "^7.26.2" - "@babel/types" "^7.26.0" + "@babel/parser" "^7.27.1" + "@babel/types" "^7.27.1" "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" jsesc "^3.0.2" -"@babel/helper-annotate-as-pure@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz#d8eac4d2dc0d7b6e11fa6e535332e0d3184f06b4" - integrity sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g== - dependencies: - "@babel/types" "^7.25.9" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz#f41752fe772a578e67286e6779a68a5a92de1ee9" - integrity sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g== +"@babel/helper-annotate-as-pure@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz#4345d81a9a46a6486e24d069469f13e60445c05d" + integrity sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow== dependencies: - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" + "@babel/types" "^7.27.1" -"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz#55af025ce365be3cdc0c1c1e56c6af617ce88875" - integrity sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ== +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" + integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== dependencies: - "@babel/compat-data" "^7.25.9" - "@babel/helper-validator-option" "^7.25.9" + "@babel/compat-data" "^7.27.2" + "@babel/helper-validator-option" "^7.27.1" browserslist "^4.24.0" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz#7644147706bb90ff613297d49ed5266bde729f83" - integrity sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-member-expression-to-functions" "^7.25.9" - "@babel/helper-optimise-call-expression" "^7.25.9" - "@babel/helper-replace-supers" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - "@babel/traverse" "^7.25.9" +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz#5bee4262a6ea5ddc852d0806199eb17ca3de9281" + integrity sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-member-expression-to-functions" "^7.27.1" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/traverse" "^7.27.1" semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz#3e8999db94728ad2b2458d7a470e7770b7764e26" - integrity sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz#05b0882d97ba1d4d03519e4bce615d70afa18c53" + integrity sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - regexpu-core "^6.1.1" + "@babel/helper-annotate-as-pure" "^7.27.1" + regexpu-core "^6.2.0" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.6.2": - version "0.6.2" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz#18594f789c3594acb24cfdb4a7f7b7d2e8bd912d" - integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== +"@babel/helper-define-polyfill-provider@^0.6.3", "@babel/helper-define-polyfill-provider@^0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz#15e8746368bfa671785f5926ff74b3064c291fab" + integrity sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -336,156 +170,148 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" -"@babel/helper-member-expression-to-functions@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz#9dfffe46f727005a5ea29051ac835fb735e4c1a3" - integrity sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ== - dependencies: - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/helper-module-imports@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" - integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== - dependencies: - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/helper-module-transforms@^7.25.9", "@babel/helper-module-transforms@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" - integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== - dependencies: - "@babel/helper-module-imports" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/helper-optimise-call-expression@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz#3324ae50bae7e2ab3c33f60c9a877b6a0146b54e" - integrity sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ== - dependencies: - "@babel/types" "^7.25.9" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.8.0": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz#9cbdd63a9443a2c92a725cca7ebca12cc8dd9f46" - integrity sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw== - -"@babel/helper-remap-async-to-generator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz#e53956ab3d5b9fb88be04b3e2f31b523afd34b92" - integrity sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-wrap-function" "^7.25.9" - "@babel/traverse" "^7.25.9" +"@babel/helper-member-expression-to-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz#ea1211276be93e798ce19037da6f06fbb994fa44" + integrity sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-module-imports@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204" + integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-module-transforms@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz#e1663b8b71d2de948da5c4fb2a20ca4f3ec27a6f" + integrity sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g== + dependencies: + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/helper-replace-supers@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz#ba447224798c3da3f8713fc272b145e33da6a5c5" - integrity sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ== +"@babel/helper-optimise-call-expression@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz#c65221b61a643f3e62705e5dd2b5f115e35f9200" + integrity sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw== dependencies: - "@babel/helper-member-expression-to-functions" "^7.25.9" - "@babel/helper-optimise-call-expression" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/helper-simple-access@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz#6d51783299884a2c74618d6ef0f86820ec2e7739" - integrity sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q== + "@babel/types" "^7.27.1" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.8.0": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" + integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== + +"@babel/helper-remap-async-to-generator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz#4601d5c7ce2eb2aea58328d43725523fcd362ce6" + integrity sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA== dependencies: - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-wrap-function" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/helper-skip-transparent-expression-wrappers@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz#0b2e1b62d560d6b1954893fd2b705dc17c91f0c9" - integrity sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA== +"@babel/helper-replace-supers@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz#b1ed2d634ce3bdb730e4b52de30f8cccfd692bc0" + integrity sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA== dependencies: - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/helper-string-parser@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" - integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== - -"@babel/helper-validator-identifier@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" - integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== - -"@babel/helper-validator-option@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" - integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== + "@babel/helper-member-expression-to-functions" "^7.27.1" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/helper-wrap-function@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz#d99dfd595312e6c894bd7d237470025c85eea9d0" - integrity sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g== +"@babel/helper-skip-transparent-expression-wrappers@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz#62bb91b3abba8c7f1fec0252d9dbea11b3ee7a56" + integrity sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg== dependencies: - "@babel/template" "^7.25.9" - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" -"@babel/helpers@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.0.tgz#30e621f1eba5aa45fe6f4868d2e9154d884119a4" - integrity sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw== - dependencies: - "@babel/template" "^7.25.9" - "@babel/types" "^7.26.0" +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== -"@babel/parser@^7.1.0", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.8", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.0", "@babel/parser@^7.25.3", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.2": - version "7.26.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.2.tgz#fd7b6f487cfea09889557ef5d4eeb9ff9a5abd11" - integrity sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ== - dependencies: - "@babel/types" "^7.26.0" +"@babel/helper-validator-identifier@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" + integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz#cc2e53ebf0a0340777fff5ed521943e253b4d8fe" - integrity sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/traverse" "^7.25.9" +"@babel/helper-validator-option@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" + integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== -"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz#af9e4fb63ccb8abcb92375b2fcfe36b60c774d30" - integrity sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw== +"@babel/helper-wrap-function@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz#b88285009c31427af318d4fe37651cd62a142409" + integrity sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/template" "^7.27.1" + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz#e8dc26fcd616e6c5bf2bd0d5a2c151d4f92a9137" - integrity sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug== +"@babel/helpers@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.1.tgz#ffc27013038607cdba3288e692c3611c06a18aa4" + integrity sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/template" "^7.27.1" + "@babel/types" "^7.27.1" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz#807a667f9158acac6f6164b4beb85ad9ebc9e1d1" - integrity sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.3", "@babel/parser@^7.26.10", "@babel/parser@^7.26.2", "@babel/parser@^7.27.1", "@babel/parser@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.2.tgz#577518bedb17a2ce4212afd052e01f7df0941127" + integrity sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - "@babel/plugin-transform-optional-chaining" "^7.25.9" + "@babel/types" "^7.27.1" + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz#61dd8a8e61f7eb568268d1b5f129da3eee364bf9" + integrity sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz#43f70a6d7efd52370eefbdf55ae03d91b293856d" + integrity sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz#beb623bd573b8b6f3047bd04c32506adc3e58a72" + integrity sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz#de7093f1e7deaf68eadd7cc6b07f2ab82543269e" - integrity sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz#e134a5479eb2ba9c02714e8c1ebf1ec9076124fd" + integrity sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/traverse" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/plugin-transform-optional-chaining" "^7.27.1" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz#bb1c25af34d75115ce229a1de7fa44bf8f955670" + integrity sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/plugin-proposal-class-properties@7.18.6", "@babel/plugin-proposal-class-properties@^7.0.0": +"@babel/plugin-proposal-class-properties@7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== @@ -493,16 +319,12 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-object-rest-spread@^7.0.0": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== +"@babel/plugin-proposal-explicit-resource-management@7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-explicit-resource-management/-/plugin-proposal-explicit-resource-management-7.27.1.tgz#9411b45bd8140bd2aeba3c7ffcaab5ec59424cb8" + integrity sha512-XYOgHCv2IO+OtCjttDzuXLgHQEaPq8tdDGdeXRNRK4XobeXSF/SuMKndvdgvzQbMzKGQ1ANkjFICA5BS55rCMg== dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" @@ -523,7 +345,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13": +"@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== @@ -537,26 +359,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.25.9": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.26.0.tgz#96507595c21b45fccfc2bc758d5c45452e6164fa" - integrity sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-syntax-import-assertions@^7.20.0", "@babel/plugin-syntax-import-assertions@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz#620412405058efa56e4a564903b79355020f445f" - integrity sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg== +"@babel/plugin-syntax-import-assertions@^7.26.0", "@babel/plugin-syntax-import-assertions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz#88894aefd2b03b5ee6ad1562a7c8e1587496aecd" + integrity sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-syntax-import-attributes@^7.24.7", "@babel/plugin-syntax-import-attributes@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7" - integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== +"@babel/plugin-syntax-import-attributes@^7.24.7", "@babel/plugin-syntax-import-attributes@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz#34c017d54496f9b11b61474e7ea3dfd5563ffe07" + integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" @@ -572,12 +387,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.25.9", "@babel/plugin-syntax-jsx@^7.7.2": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz#a34313a178ea56f1951599b929c1ceacee719290" - integrity sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA== +"@babel/plugin-syntax-jsx@^7.27.1", "@babel/plugin-syntax-jsx@^7.7.2": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz#2f9beb5eff30fa507c5532d107daac7b888fa34c" + integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" @@ -600,7 +415,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== @@ -635,12 +450,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.25.9", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz#67dda2b74da43727cf21d46cf9afef23f4365399" - integrity sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ== +"@babel/plugin-syntax-typescript@^7.27.1", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz#5147d29066a793450f220c63fa3a9431b7e6dd18" + integrity sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" @@ -650,505 +465,477 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz#7821d4410bee5daaadbb4cdd9a6649704e176845" - integrity sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg== +"@babel/plugin-transform-arrow-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz#6e2061067ba3ab0266d834a9f94811196f2aba9a" + integrity sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-async-generator-functions@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz#1b18530b077d18a407c494eb3d1d72da505283a2" - integrity sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw== +"@babel/plugin-transform-async-generator-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz#ca433df983d68e1375398e7ca71bf2a4f6fd89d7" + integrity sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-remap-async-to-generator" "^7.25.9" - "@babel/traverse" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-remap-async-to-generator" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/plugin-transform-async-to-generator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz#c80008dacae51482793e5a9c08b39a5be7e12d71" - integrity sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ== +"@babel/plugin-transform-async-to-generator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz#9a93893b9379b39466c74474f55af03de78c66e7" + integrity sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA== dependencies: - "@babel/helper-module-imports" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-remap-async-to-generator" "^7.25.9" + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-remap-async-to-generator" "^7.27.1" -"@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz#5700691dbd7abb93de300ca7be94203764fce458" - integrity sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA== +"@babel/plugin-transform-block-scoped-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz#558a9d6e24cf72802dd3b62a4b51e0d62c0f57f9" + integrity sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz#c33665e46b06759c93687ca0f84395b80c0473a1" - integrity sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg== +"@babel/plugin-transform-block-scoping@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.1.tgz#bc0dbe8ac6de5602981ba58ef68c6df8ef9bfbb3" + integrity sha512-QEcFlMl9nGTgh1rn2nIeU5bkfb9BAjaQcWbiP4LvKxUot52ABcTkpcyJ7f2Q2U2RuQ84BNLgts3jRme2dTx6Fw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-class-properties@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz#a8ce84fedb9ad512549984101fa84080a9f5f51f" - integrity sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q== +"@babel/plugin-transform-class-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz#dd40a6a370dfd49d32362ae206ddaf2bb082a925" + integrity sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-class-static-block@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz#6c8da219f4eb15cae9834ec4348ff8e9e09664a0" - integrity sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ== +"@babel/plugin-transform-class-static-block@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz#7e920d5625b25bbccd3061aefbcc05805ed56ce4" + integrity sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz#7152457f7880b593a63ade8a861e6e26a4469f52" - integrity sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg== +"@babel/plugin-transform-classes@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz#03bb04bea2c7b2f711f0db7304a8da46a85cced4" + integrity sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA== dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-replace-supers" "^7.25.9" - "@babel/traverse" "^7.25.9" + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + "@babel/traverse" "^7.27.1" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz#db36492c78460e534b8852b1d5befe3c923ef10b" - integrity sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA== +"@babel/plugin-transform-computed-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz#81662e78bf5e734a97982c2b7f0a793288ef3caa" + integrity sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/template" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/template" "^7.27.1" -"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz#966ea2595c498224340883602d3cfd7a0c79cea1" - integrity sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ== +"@babel/plugin-transform-destructuring@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.1.tgz#d5916ef7089cb254df0418ae524533c1b72ba656" + integrity sha512-ttDCqhfvpE9emVkXbPD8vyxxh4TWYACVybGkDj+oReOGwnp066ITEivDlLwe0b1R0+evJ13IXQuLNB5w1fhC5Q== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-dotall-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz#bad7945dd07734ca52fe3ad4e872b40ed09bb09a" - integrity sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA== +"@babel/plugin-transform-dotall-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz#aa6821de864c528b1fecf286f0a174e38e826f4d" + integrity sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-duplicate-keys@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz#8850ddf57dce2aebb4394bb434a7598031059e6d" - integrity sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw== +"@babel/plugin-transform-duplicate-keys@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz#f1fbf628ece18e12e7b32b175940e68358f546d1" + integrity sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz#6f7259b4de127721a08f1e5165b852fcaa696d31" - integrity sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog== +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz#5043854ca620a94149372e69030ff8cb6a9eb0ec" + integrity sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-dynamic-import@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz#23e917de63ed23c6600c5dd06d94669dce79f7b8" - integrity sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg== +"@babel/plugin-transform-dynamic-import@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz#4c78f35552ac0e06aa1f6e3c573d67695e8af5a4" + integrity sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-exponentiation-operator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz#ece47b70d236c1d99c263a1e22b62dc20a4c8b0f" - integrity sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA== +"@babel/plugin-transform-exponentiation-operator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz#fc497b12d8277e559747f5a3ed868dd8064f83e1" + integrity sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-export-namespace-from@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz#90745fe55053394f554e40584cda81f2c8a402a2" - integrity sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww== +"@babel/plugin-transform-export-namespace-from@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz#71ca69d3471edd6daa711cf4dfc3400415df9c23" + integrity sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-flow-strip-types@^7.0.0": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.9.tgz#85879b42a8f5948fd6317069978e98f23ef8aec1" - integrity sha512-/VVukELzPDdci7UUsWQaSkhgnjIWXnIyRpM02ldxaVoFK96c41So8JcKT3m0gYjyv7j5FNPGS5vfELrWalkbDA== +"@babel/plugin-transform-for-of@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz#bc24f7080e9ff721b63a70ac7b2564ca15b6c40a" + integrity sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/plugin-syntax-flow" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz#4bdc7d42a213397905d89f02350c5267866d5755" - integrity sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A== +"@babel/plugin-transform-function-name@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz#4d0bf307720e4dce6d7c30fcb1fd6ca77bdeb3a7" + integrity sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz#939d956e68a606661005bfd550c4fc2ef95f7b97" - integrity sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA== +"@babel/plugin-transform-json-strings@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz#a2e0ce6ef256376bd527f290da023983527a4f4c" + integrity sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q== dependencies: - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/traverse" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-json-strings@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz#c86db407cb827cded902a90c707d2781aaa89660" - integrity sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw== +"@babel/plugin-transform-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz#baaefa4d10a1d4206f9dcdda50d7d5827bb70b24" + integrity sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz#1a1c6b4d4aa59bc4cad5b6b3a223a0abd685c9de" - integrity sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ== +"@babel/plugin-transform-logical-assignment-operators@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz#890cb20e0270e0e5bebe3f025b434841c32d5baa" + integrity sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-logical-assignment-operators@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz#b19441a8c39a2fda0902900b306ea05ae1055db7" - integrity sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q== +"@babel/plugin-transform-member-expression-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz#37b88ba594d852418e99536f5612f795f23aeaf9" + integrity sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz#63dff19763ea64a31f5e6c20957e6a25e41ed5de" - integrity sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA== +"@babel/plugin-transform-modules-amd@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz#a4145f9d87c2291fe2d05f994b65dba4e3e7196f" + integrity sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-modules-amd@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz#49ba478f2295101544abd794486cd3088dddb6c5" - integrity sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw== +"@babel/plugin-transform-modules-commonjs@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz#8e44ed37c2787ecc23bdc367f49977476614e832" + integrity sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw== dependencies: - "@babel/helper-module-transforms" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz#d165c8c569a080baf5467bda88df6425fc060686" - integrity sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg== +"@babel/plugin-transform-modules-systemjs@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz#00e05b61863070d0f3292a00126c16c0e024c4ed" + integrity sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA== dependencies: - "@babel/helper-module-transforms" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-simple-access" "^7.25.9" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/plugin-transform-modules-systemjs@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz#8bd1b43836269e3d33307151a114bcf3ba6793f8" - integrity sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA== +"@babel/plugin-transform-modules-umd@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz#63f2cf4f6dc15debc12f694e44714863d34cd334" + integrity sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w== dependencies: - "@babel/helper-module-transforms" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - "@babel/traverse" "^7.25.9" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz#f32b8f7818d8fc0cc46ee20a8ef75f071af976e1" + integrity sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-new-target@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz#259c43939728cad1706ac17351b7e6a7bea1abeb" + integrity sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz#4f9d3153bf6782d73dd42785a9d22d03197bc91d" + integrity sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-numeric-separator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz#614e0b15cc800e5997dadd9bd6ea524ed6c819c6" + integrity sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-modules-umd@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz#6710079cdd7c694db36529a1e8411e49fcbf14c9" - integrity sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw== +"@babel/plugin-transform-object-rest-spread@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.2.tgz#67f9ab822347aa2bcee91e8996763da79bdea973" + integrity sha512-AIUHD7xJ1mCrj3uPozvtngY3s0xpv7Nu7DoUSnzNY6Xam1Cy4rUznR//pvMHOhQ4AvbCexhbqXCtpxGHOGOO6g== dependencies: - "@babel/helper-module-transforms" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-transform-destructuring" "^7.27.1" + "@babel/plugin-transform-parameters" "^7.27.1" -"@babel/plugin-transform-named-capturing-groups-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz#454990ae6cc22fd2a0fa60b3a2c6f63a38064e6a" - integrity sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA== +"@babel/plugin-transform-object-super@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz#1c932cd27bf3874c43a5cac4f43ebf970c9871b5" + integrity sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" -"@babel/plugin-transform-new-target@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz#42e61711294b105c248336dcb04b77054ea8becd" - integrity sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ== +"@babel/plugin-transform-optional-catch-binding@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz#84c7341ebde35ccd36b137e9e45866825072a30c" + integrity sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-nullish-coalescing-operator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz#bcb1b0d9e948168102d5f7104375ca21c3266949" - integrity sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog== +"@babel/plugin-transform-optional-chaining@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz#874ce3c4f06b7780592e946026eb76a32830454f" + integrity sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-numeric-separator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz#bfed75866261a8b643468b0ccfd275f2033214a1" - integrity sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q== +"@babel/plugin-transform-parameters@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz#80334b54b9b1ac5244155a0c8304a187a618d5a7" + integrity sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-object-rest-spread@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz#0203725025074164808bcf1a2cfa90c652c99f18" - integrity sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg== +"@babel/plugin-transform-private-methods@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz#fdacbab1c5ed81ec70dfdbb8b213d65da148b6af" + integrity sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA== dependencies: - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/plugin-transform-parameters" "^7.25.9" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz#385d5de135162933beb4a3d227a2b7e52bb4cf03" - integrity sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A== +"@babel/plugin-transform-private-property-in-object@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz#4dbbef283b5b2f01a21e81e299f76e35f900fb11" + integrity sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-replace-supers" "^7.25.9" + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-optional-catch-binding@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz#10e70d96d52bb1f10c5caaac59ac545ea2ba7ff3" - integrity sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g== +"@babel/plugin-transform-property-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz#07eafd618800591e88073a0af1b940d9a42c6424" + integrity sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-optional-chaining@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz#e142eb899d26ef715435f201ab6e139541eee7dd" - integrity sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A== +"@babel/plugin-transform-regenerator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.1.tgz#0a471df9213416e44cd66bf67176b66f65768401" + integrity sha512-B19lbbL7PMrKr52BNPjCqg1IyNUIjTcxKj8uX9zHO+PmWN93s19NDr/f69mIkEp2x9nmDJ08a7lgHaTTzvW7mw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz#b856842205b3e77e18b7a7a1b94958069c7ba257" - integrity sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g== +"@babel/plugin-transform-regexp-modifiers@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz#df9ba5577c974e3f1449888b70b76169998a6d09" + integrity sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-private-methods@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz#847f4139263577526455d7d3223cd8bda51e3b57" - integrity sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw== +"@babel/plugin-transform-reserved-words@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz#40fba4878ccbd1c56605a4479a3a891ac0274bb4" + integrity sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-private-property-in-object@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz#9c8b73e64e6cc3cbb2743633885a7dd2c385fe33" - integrity sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw== +"@babel/plugin-transform-shorthand-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz#532abdacdec87bfee1e0ef8e2fcdee543fe32b90" + integrity sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz#d72d588bd88b0dec8b62e36f6fda91cedfe28e3f" - integrity sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA== +"@babel/plugin-transform-spread@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz#1a264d5fc12750918f50e3fe3e24e437178abb08" + integrity sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + +"@babel/plugin-transform-sticky-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz#18984935d9d2296843a491d78a014939f7dcd280" + integrity sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-react-display-name@^7.0.0": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz#4b79746b59efa1f38c8695065a92a9f5afb24f7d" - integrity sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ== +"@babel/plugin-transform-template-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz#1a0eb35d8bb3e6efc06c9fd40eb0bcef548328b8" + integrity sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-react-jsx@^7.0.0": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz#06367940d8325b36edff5e2b9cbe782947ca4166" - integrity sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw== +"@babel/plugin-transform-typeof-symbol@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz#70e966bb492e03509cf37eafa6dcc3051f844369" + integrity sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw== dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-module-imports" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/plugin-syntax-jsx" "^7.25.9" - "@babel/types" "^7.25.9" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-regenerator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz#03a8a4670d6cebae95305ac6defac81ece77740b" - integrity sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg== +"@babel/plugin-transform-typescript@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz#d3bb65598bece03f773111e88cc4e8e5070f1140" + integrity sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/plugin-syntax-typescript" "^7.27.1" + +"@babel/plugin-transform-unicode-escapes@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz#3e3143f8438aef842de28816ece58780190cf806" + integrity sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-unicode-property-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz#bdfe2d3170c78c5691a3c3be934c8c0087525956" + integrity sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-unicode-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz#25948f5c395db15f609028e370667ed8bae9af97" + integrity sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-unicode-sets-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz#6ab706d10f801b5c72da8bb2548561fa04193cd1" + integrity sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - regenerator-transform "^0.15.2" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-regexp-modifiers@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz#2f5837a5b5cd3842a919d8147e9903cc7455b850" - integrity sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-reserved-words@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz#0398aed2f1f10ba3f78a93db219b27ef417fb9ce" - integrity sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz#bb785e6091f99f826a95f9894fc16fde61c163f2" - integrity sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz#24a35153931b4ba3d13cec4a7748c21ab5514ef9" - integrity sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - -"@babel/plugin-transform-sticky-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz#c7f02b944e986a417817b20ba2c504dfc1453d32" - integrity sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz#6dbd4a24e8fad024df76d1fac6a03cf413f60fe1" - integrity sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-typeof-symbol@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz#224ba48a92869ddbf81f9b4a5f1204bbf5a2bc4b" - integrity sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-typescript@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz#69267905c2b33c2ac6d8fe765e9dc2ddc9df3849" - integrity sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - "@babel/plugin-syntax-typescript" "^7.25.9" - -"@babel/plugin-transform-unicode-escapes@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz#a75ef3947ce15363fccaa38e2dd9bc70b2788b82" - integrity sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-unicode-property-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz#a901e96f2c1d071b0d1bb5dc0d3c880ce8f53dd3" - integrity sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-unicode-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz#5eae747fe39eacf13a8bd006a4fb0b5d1fa5e9b1" - integrity sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-unicode-sets-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz#65114c17b4ffc20fa5b163c63c70c0d25621fabe" - integrity sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/preset-env@7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.0.tgz#30e5c6bc1bcc54865bff0c5a30f6d4ccdc7fa8b1" - integrity sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw== - dependencies: - "@babel/compat-data" "^7.26.0" - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-validator-option" "^7.25.9" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.9" - "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.9" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.9" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.25.9" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.9" +"@babel/preset-env@7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.27.2.tgz#106e6bfad92b591b1f6f76fd4cf13b7725a7bf9a" + integrity sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ== + dependencies: + "@babel/compat-data" "^7.27.2" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-option" "^7.27.1" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.27.1" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.27.1" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-import-assertions" "^7.26.0" - "@babel/plugin-syntax-import-attributes" "^7.26.0" + "@babel/plugin-syntax-import-assertions" "^7.27.1" + "@babel/plugin-syntax-import-attributes" "^7.27.1" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.25.9" - "@babel/plugin-transform-async-generator-functions" "^7.25.9" - "@babel/plugin-transform-async-to-generator" "^7.25.9" - "@babel/plugin-transform-block-scoped-functions" "^7.25.9" - "@babel/plugin-transform-block-scoping" "^7.25.9" - "@babel/plugin-transform-class-properties" "^7.25.9" - "@babel/plugin-transform-class-static-block" "^7.26.0" - "@babel/plugin-transform-classes" "^7.25.9" - "@babel/plugin-transform-computed-properties" "^7.25.9" - "@babel/plugin-transform-destructuring" "^7.25.9" - "@babel/plugin-transform-dotall-regex" "^7.25.9" - "@babel/plugin-transform-duplicate-keys" "^7.25.9" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.9" - "@babel/plugin-transform-dynamic-import" "^7.25.9" - "@babel/plugin-transform-exponentiation-operator" "^7.25.9" - "@babel/plugin-transform-export-namespace-from" "^7.25.9" - "@babel/plugin-transform-for-of" "^7.25.9" - "@babel/plugin-transform-function-name" "^7.25.9" - "@babel/plugin-transform-json-strings" "^7.25.9" - "@babel/plugin-transform-literals" "^7.25.9" - "@babel/plugin-transform-logical-assignment-operators" "^7.25.9" - "@babel/plugin-transform-member-expression-literals" "^7.25.9" - "@babel/plugin-transform-modules-amd" "^7.25.9" - "@babel/plugin-transform-modules-commonjs" "^7.25.9" - "@babel/plugin-transform-modules-systemjs" "^7.25.9" - "@babel/plugin-transform-modules-umd" "^7.25.9" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.25.9" - "@babel/plugin-transform-new-target" "^7.25.9" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.25.9" - "@babel/plugin-transform-numeric-separator" "^7.25.9" - "@babel/plugin-transform-object-rest-spread" "^7.25.9" - "@babel/plugin-transform-object-super" "^7.25.9" - "@babel/plugin-transform-optional-catch-binding" "^7.25.9" - "@babel/plugin-transform-optional-chaining" "^7.25.9" - "@babel/plugin-transform-parameters" "^7.25.9" - "@babel/plugin-transform-private-methods" "^7.25.9" - "@babel/plugin-transform-private-property-in-object" "^7.25.9" - "@babel/plugin-transform-property-literals" "^7.25.9" - "@babel/plugin-transform-regenerator" "^7.25.9" - "@babel/plugin-transform-regexp-modifiers" "^7.26.0" - "@babel/plugin-transform-reserved-words" "^7.25.9" - "@babel/plugin-transform-shorthand-properties" "^7.25.9" - "@babel/plugin-transform-spread" "^7.25.9" - "@babel/plugin-transform-sticky-regex" "^7.25.9" - "@babel/plugin-transform-template-literals" "^7.25.9" - "@babel/plugin-transform-typeof-symbol" "^7.25.9" - "@babel/plugin-transform-unicode-escapes" "^7.25.9" - "@babel/plugin-transform-unicode-property-regex" "^7.25.9" - "@babel/plugin-transform-unicode-regex" "^7.25.9" - "@babel/plugin-transform-unicode-sets-regex" "^7.25.9" + "@babel/plugin-transform-arrow-functions" "^7.27.1" + "@babel/plugin-transform-async-generator-functions" "^7.27.1" + "@babel/plugin-transform-async-to-generator" "^7.27.1" + "@babel/plugin-transform-block-scoped-functions" "^7.27.1" + "@babel/plugin-transform-block-scoping" "^7.27.1" + "@babel/plugin-transform-class-properties" "^7.27.1" + "@babel/plugin-transform-class-static-block" "^7.27.1" + "@babel/plugin-transform-classes" "^7.27.1" + "@babel/plugin-transform-computed-properties" "^7.27.1" + "@babel/plugin-transform-destructuring" "^7.27.1" + "@babel/plugin-transform-dotall-regex" "^7.27.1" + "@babel/plugin-transform-duplicate-keys" "^7.27.1" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.27.1" + "@babel/plugin-transform-dynamic-import" "^7.27.1" + "@babel/plugin-transform-exponentiation-operator" "^7.27.1" + "@babel/plugin-transform-export-namespace-from" "^7.27.1" + "@babel/plugin-transform-for-of" "^7.27.1" + "@babel/plugin-transform-function-name" "^7.27.1" + "@babel/plugin-transform-json-strings" "^7.27.1" + "@babel/plugin-transform-literals" "^7.27.1" + "@babel/plugin-transform-logical-assignment-operators" "^7.27.1" + "@babel/plugin-transform-member-expression-literals" "^7.27.1" + "@babel/plugin-transform-modules-amd" "^7.27.1" + "@babel/plugin-transform-modules-commonjs" "^7.27.1" + "@babel/plugin-transform-modules-systemjs" "^7.27.1" + "@babel/plugin-transform-modules-umd" "^7.27.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.27.1" + "@babel/plugin-transform-new-target" "^7.27.1" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.27.1" + "@babel/plugin-transform-numeric-separator" "^7.27.1" + "@babel/plugin-transform-object-rest-spread" "^7.27.2" + "@babel/plugin-transform-object-super" "^7.27.1" + "@babel/plugin-transform-optional-catch-binding" "^7.27.1" + "@babel/plugin-transform-optional-chaining" "^7.27.1" + "@babel/plugin-transform-parameters" "^7.27.1" + "@babel/plugin-transform-private-methods" "^7.27.1" + "@babel/plugin-transform-private-property-in-object" "^7.27.1" + "@babel/plugin-transform-property-literals" "^7.27.1" + "@babel/plugin-transform-regenerator" "^7.27.1" + "@babel/plugin-transform-regexp-modifiers" "^7.27.1" + "@babel/plugin-transform-reserved-words" "^7.27.1" + "@babel/plugin-transform-shorthand-properties" "^7.27.1" + "@babel/plugin-transform-spread" "^7.27.1" + "@babel/plugin-transform-sticky-regex" "^7.27.1" + "@babel/plugin-transform-template-literals" "^7.27.1" + "@babel/plugin-transform-typeof-symbol" "^7.27.1" + "@babel/plugin-transform-unicode-escapes" "^7.27.1" + "@babel/plugin-transform-unicode-property-regex" "^7.27.1" + "@babel/plugin-transform-unicode-regex" "^7.27.1" + "@babel/plugin-transform-unicode-sets-regex" "^7.27.1" "@babel/preset-modules" "0.1.6-no-external-plugins" babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.6" + babel-plugin-polyfill-corejs3 "^0.11.0" babel-plugin-polyfill-regenerator "^0.6.1" - core-js-compat "^3.38.1" + core-js-compat "^3.40.0" semver "^6.3.1" "@babel/preset-modules@0.1.6-no-external-plugins": @@ -1160,74 +947,72 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-typescript@7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz#4a570f1b8d104a242d923957ffa1eaff142a106d" - integrity sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-validator-option" "^7.25.9" - "@babel/plugin-syntax-jsx" "^7.25.9" - "@babel/plugin-transform-modules-commonjs" "^7.25.9" - "@babel/plugin-transform-typescript" "^7.25.9" - -"@babel/runtime@^7.0.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" - integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/template@^7.25.9", "@babel/template@^7.3.3": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.9.tgz#ecb62d81a8a6f5dc5fe8abfc3901fc52ddf15016" - integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== - dependencies: - "@babel/code-frame" "^7.25.9" - "@babel/parser" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.24.0", "@babel/traverse@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.9.tgz#a50f8fe49e7f69f53de5bea7e413cd35c5e13c84" - integrity sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw== - dependencies: - "@babel/code-frame" "^7.25.9" - "@babel/generator" "^7.25.9" - "@babel/parser" "^7.25.9" - "@babel/template" "^7.25.9" - "@babel/types" "^7.25.9" +"@babel/preset-typescript@7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz#190742a6428d282306648a55b0529b561484f912" + integrity sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-option" "^7.27.1" + "@babel/plugin-syntax-jsx" "^7.27.1" + "@babel/plugin-transform-modules-commonjs" "^7.27.1" + "@babel/plugin-transform-typescript" "^7.27.1" + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.26.10", "@babel/runtime@^7.5.5": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.1.tgz#9fce313d12c9a77507f264de74626e87fd0dc541" + integrity sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog== + +"@babel/template@^7.27.1", "@babel/template@^7.3.3": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" + integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/parser" "^7.27.2" + "@babel/types" "^7.27.1" + +"@babel/traverse@^7.25.9", "@babel/traverse@^7.26.10", "@babel/traverse@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.1.tgz#4db772902b133bbddd1c4f7a7ee47761c1b9f291" + integrity sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.27.1" + "@babel/parser" "^7.27.1" + "@babel/template" "^7.27.1" + "@babel/types" "^7.27.1" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.8", "@babel/types@^7.20.7", "@babel/types@^7.24.0", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.0.tgz#deabd08d6b753bc8e0f198f8709fb575e31774ff" - integrity sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.26.0", "@babel/types@^7.26.10", "@babel/types@^7.27.1", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.1.tgz#9defc53c16fc899e46941fc6901a9eea1c9d8560" + integrity sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q== dependencies: - "@babel/helper-string-parser" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@braintree/sanitize-url@^7.0.1": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-7.1.0.tgz#048e48aab4f1460e3121e22aa62459d16653dc85" - integrity sha512-o+UlMLt49RvtCASlOMW0AkHnabN9wR9rwCCherxO0yG4Npy34GkvrAqdXQvrhNs+jh+gkK8gB8Lf05qL/O7KWg== +"@braintree/sanitize-url@^7.0.4": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz#15e19737d946559289b915e5dad3b4c28407735e" + integrity sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw== -"@changesets/apply-release-plan@^7.0.5": - version "7.0.5" - resolved "https://registry.yarnpkg.com/@changesets/apply-release-plan/-/apply-release-plan-7.0.5.tgz#3323c97afc08abc15e5136488f9c7cf1a864832e" - integrity sha512-1cWCk+ZshEkSVEZrm2fSj1Gz8sYvxgUL4Q78+1ZZqeqfuevPTPk033/yUZ3df8BKMohkqqHfzj0HOOrG0KtXTw== +"@changesets/apply-release-plan@^7.0.12": + version "7.0.12" + resolved "https://registry.yarnpkg.com/@changesets/apply-release-plan/-/apply-release-plan-7.0.12.tgz#8413977f117fa95f6e2db6f0c35479a2eba6960a" + integrity sha512-EaET7As5CeuhTzvXTQCRZeBUcisoYPDDcXvgTE/2jmmypKp0RC7LxKj/yzqeh/1qFTZI7oDGFcL1PHRuQuketQ== dependencies: - "@changesets/config" "^3.0.3" + "@changesets/config" "^3.1.1" "@changesets/get-version-range-type" "^0.4.0" - "@changesets/git" "^3.0.1" - "@changesets/should-skip-package" "^0.1.1" - "@changesets/types" "^6.0.0" + "@changesets/git" "^3.0.4" + "@changesets/should-skip-package" "^0.1.2" + "@changesets/types" "^6.1.0" "@manypkg/get-packages" "^1.1.3" detect-indent "^6.0.0" fs-extra "^7.0.1" @@ -1237,57 +1022,57 @@ resolve-from "^5.0.0" semver "^7.5.3" -"@changesets/assemble-release-plan@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@changesets/assemble-release-plan/-/assemble-release-plan-6.0.4.tgz#153d5154bb9f4162215ca69ad1c6e0886f686ccb" - integrity sha512-nqICnvmrwWj4w2x0fOhVj2QEGdlUuwVAwESrUo5HLzWMI1rE5SWfsr9ln+rDqWB6RQ2ZyaMZHUcU7/IRaUJS+Q== +"@changesets/assemble-release-plan@^6.0.8": + version "6.0.8" + resolved "https://registry.yarnpkg.com/@changesets/assemble-release-plan/-/assemble-release-plan-6.0.8.tgz#3708942cee8b1d019bd5f69a1d077dc9a5737f97" + integrity sha512-y8+8LvZCkKJdbUlpXFuqcavpzJR80PN0OIfn8HZdwK7Sh6MgLXm4hKY5vu6/NDoKp8lAlM4ERZCqRMLxP4m+MQ== dependencies: "@changesets/errors" "^0.2.0" - "@changesets/get-dependents-graph" "^2.1.2" - "@changesets/should-skip-package" "^0.1.1" - "@changesets/types" "^6.0.0" + "@changesets/get-dependents-graph" "^2.1.3" + "@changesets/should-skip-package" "^0.1.2" + "@changesets/types" "^6.1.0" "@manypkg/get-packages" "^1.1.3" semver "^7.5.3" -"@changesets/changelog-git@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@changesets/changelog-git/-/changelog-git-0.2.0.tgz#1f3de11becafff5a38ebe295038a602403c93a86" - integrity sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ== +"@changesets/changelog-git@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@changesets/changelog-git/-/changelog-git-0.2.1.tgz#7f311f3dc11eae1235aa7fd2c1807112962b409b" + integrity sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q== dependencies: - "@changesets/types" "^6.0.0" + "@changesets/types" "^6.1.0" -"@changesets/changelog-github@0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@changesets/changelog-github/-/changelog-github-0.5.0.tgz#ae96e5029209f7386527b3821d9c988b1ab16662" - integrity sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA== +"@changesets/changelog-github@0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@changesets/changelog-github/-/changelog-github-0.5.1.tgz#58870f77cdfd6d59c73cc046a61e55e82d606d24" + integrity sha512-BVuHtF+hrhUScSoHnJwTELB4/INQxVFc+P/Qdt20BLiBFIHFJDDUaGsZw+8fQeJTRP5hJZrzpt3oZWh0G19rAQ== dependencies: "@changesets/get-github-info" "^0.6.0" - "@changesets/types" "^6.0.0" + "@changesets/types" "^6.1.0" dotenv "^8.1.0" -"@changesets/cli@2.27.9": - version "2.27.9" - resolved "https://registry.yarnpkg.com/@changesets/cli/-/cli-2.27.9.tgz#7b58a4c9eaf95d81fe0d1386705ecefe94a20062" - integrity sha512-q42a/ZbDnxPpCb5Wkm6tMVIxgeI9C/bexntzTeCFBrQEdpisQqk8kCHllYZMDjYtEc1ZzumbMJAG8H0Z4rdvjg== +"@changesets/cli@2.29.4": + version "2.29.4" + resolved "https://registry.yarnpkg.com/@changesets/cli/-/cli-2.29.4.tgz#ac6fe0ec1b14117884f8e5e1bbb6b4acbccc4056" + integrity sha512-VW30x9oiFp/un/80+5jLeWgEU6Btj8IqOgI+X/zAYu4usVOWXjPIK5jSSlt5jsCU7/6Z7AxEkarxBxGUqkAmNg== dependencies: - "@changesets/apply-release-plan" "^7.0.5" - "@changesets/assemble-release-plan" "^6.0.4" - "@changesets/changelog-git" "^0.2.0" - "@changesets/config" "^3.0.3" + "@changesets/apply-release-plan" "^7.0.12" + "@changesets/assemble-release-plan" "^6.0.8" + "@changesets/changelog-git" "^0.2.1" + "@changesets/config" "^3.1.1" "@changesets/errors" "^0.2.0" - "@changesets/get-dependents-graph" "^2.1.2" - "@changesets/get-release-plan" "^4.0.4" - "@changesets/git" "^3.0.1" + "@changesets/get-dependents-graph" "^2.1.3" + "@changesets/get-release-plan" "^4.0.12" + "@changesets/git" "^3.0.4" "@changesets/logger" "^0.1.1" - "@changesets/pre" "^2.0.1" - "@changesets/read" "^0.6.1" - "@changesets/should-skip-package" "^0.1.1" - "@changesets/types" "^6.0.0" - "@changesets/write" "^0.3.2" + "@changesets/pre" "^2.0.2" + "@changesets/read" "^0.6.5" + "@changesets/should-skip-package" "^0.1.2" + "@changesets/types" "^6.1.0" + "@changesets/write" "^0.4.0" "@manypkg/get-packages" "^1.1.3" ansi-colors "^4.1.3" ci-info "^3.7.0" - enquirer "^2.3.0" + enquirer "^2.4.1" external-editor "^3.1.0" fs-extra "^7.0.1" mri "^1.2.0" @@ -1296,21 +1081,21 @@ picocolors "^1.1.0" resolve-from "^5.0.0" semver "^7.5.3" - spawndamnit "^2.0.0" + spawndamnit "^3.0.1" term-size "^2.1.0" -"@changesets/config@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@changesets/config/-/config-3.0.3.tgz#19196558882b25c8aaf04941d4ac7e151f5a1b36" - integrity sha512-vqgQZMyIcuIpw9nqFIpTSNyc/wgm/Lu1zKN5vECy74u95Qx/Wa9g27HdgO4NkVAaq+BGA8wUc/qvbvVNs93n6A== +"@changesets/config@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@changesets/config/-/config-3.1.1.tgz#3e5b1f74236a4552c5f4eddf2bd05a43a0b71160" + integrity sha512-bd+3Ap2TKXxljCggI0mKPfzCQKeV/TU4yO2h2C6vAihIo8tzseAn2e7klSuiyYYXvgu53zMN1OeYMIQkaQoWnA== dependencies: "@changesets/errors" "^0.2.0" - "@changesets/get-dependents-graph" "^2.1.2" + "@changesets/get-dependents-graph" "^2.1.3" "@changesets/logger" "^0.1.1" - "@changesets/types" "^6.0.0" + "@changesets/types" "^6.1.0" "@manypkg/get-packages" "^1.1.3" fs-extra "^7.0.1" - micromatch "^4.0.2" + micromatch "^4.0.8" "@changesets/errors@^0.2.0": version "0.2.0" @@ -1319,12 +1104,12 @@ dependencies: extendable-error "^0.1.5" -"@changesets/get-dependents-graph@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@changesets/get-dependents-graph/-/get-dependents-graph-2.1.2.tgz#108304652d4bf22c9fee9f1d31dcf9908c24ca51" - integrity sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ== +"@changesets/get-dependents-graph@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@changesets/get-dependents-graph/-/get-dependents-graph-2.1.3.tgz#cd31b39daab7102921fb65acdcb51b4658502eee" + integrity sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ== dependencies: - "@changesets/types" "^6.0.0" + "@changesets/types" "^6.1.0" "@manypkg/get-packages" "^1.1.3" picocolors "^1.1.0" semver "^7.5.3" @@ -1337,16 +1122,16 @@ dataloader "^1.4.0" node-fetch "^2.5.0" -"@changesets/get-release-plan@^4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@changesets/get-release-plan/-/get-release-plan-4.0.4.tgz#e7ef0d84d9079c69febb64f8018a18ac4b77ac90" - integrity sha512-SicG/S67JmPTrdcc9Vpu0wSQt7IiuN0dc8iR5VScnnTVPfIaLvKmEGRvIaF0kcn8u5ZqLbormZNTO77bCEvyWw== - dependencies: - "@changesets/assemble-release-plan" "^6.0.4" - "@changesets/config" "^3.0.3" - "@changesets/pre" "^2.0.1" - "@changesets/read" "^0.6.1" - "@changesets/types" "^6.0.0" +"@changesets/get-release-plan@^4.0.12": + version "4.0.12" + resolved "https://registry.yarnpkg.com/@changesets/get-release-plan/-/get-release-plan-4.0.12.tgz#5903711f9e2e7ae333966a4cc6b51c3086af6ea8" + integrity sha512-KukdEgaafnyGryUwpHG2kZ7xJquOmWWWk5mmoeQaSvZTWH1DC5D/Sw6ClgGFYtQnOMSQhgoEbDxAbpIIayKH1g== + dependencies: + "@changesets/assemble-release-plan" "^6.0.8" + "@changesets/config" "^3.1.1" + "@changesets/pre" "^2.0.2" + "@changesets/read" "^0.6.5" + "@changesets/types" "^6.1.0" "@manypkg/get-packages" "^1.1.3" "@changesets/get-version-range-type@^0.4.0": @@ -1354,16 +1139,16 @@ resolved "https://registry.yarnpkg.com/@changesets/get-version-range-type/-/get-version-range-type-0.4.0.tgz#429a90410eefef4368502c41c63413e291740bf5" integrity sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ== -"@changesets/git@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@changesets/git/-/git-3.0.1.tgz#4499a07d35d8e783cd56f8295fb7d4d70282701b" - integrity sha512-pdgHcYBLCPcLd82aRcuO0kxCDbw/yISlOtkmwmE8Odo1L6hSiZrBOsRl84eYG7DRCab/iHnOkWqExqc4wxk2LQ== +"@changesets/git@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@changesets/git/-/git-3.0.4.tgz#75e3811ab407ec010beb51131ceb5c6b3975c914" + integrity sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw== dependencies: "@changesets/errors" "^0.2.0" "@manypkg/get-packages" "^1.1.3" is-subdir "^1.1.1" - micromatch "^4.0.2" - spawndamnit "^2.0.0" + micromatch "^4.0.8" + spawndamnit "^3.0.1" "@changesets/logger@^0.1.1": version "0.1.1" @@ -1372,43 +1157,43 @@ dependencies: picocolors "^1.1.0" -"@changesets/parse@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@changesets/parse/-/parse-0.4.0.tgz#5cabbd9844b3b213cb83f5edb5768454c70dd2b4" - integrity sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw== +"@changesets/parse@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@changesets/parse/-/parse-0.4.1.tgz#18ba51d2eb784d27469034f06344f8fdcba586df" + integrity sha512-iwksMs5Bf/wUItfcg+OXrEpravm5rEd9Bf4oyIPL4kVTmJQ7PNDSd6MDYkpSJR1pn7tz/k8Zf2DhTCqX08Ou+Q== dependencies: - "@changesets/types" "^6.0.0" + "@changesets/types" "^6.1.0" js-yaml "^3.13.1" -"@changesets/pre@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@changesets/pre/-/pre-2.0.1.tgz#3ed60f9d218b3b81d3074d72139582da11a94d5f" - integrity sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ== +"@changesets/pre@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@changesets/pre/-/pre-2.0.2.tgz#b35e84d25fca8b970340642ca04ce76c7fc34ced" + integrity sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug== dependencies: "@changesets/errors" "^0.2.0" - "@changesets/types" "^6.0.0" + "@changesets/types" "^6.1.0" "@manypkg/get-packages" "^1.1.3" fs-extra "^7.0.1" -"@changesets/read@^0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@changesets/read/-/read-0.6.1.tgz#32c91d97e602861717696c49a09c23eb492810f6" - integrity sha512-jYMbyXQk3nwP25nRzQQGa1nKLY0KfoOV7VLgwucI0bUO8t8ZLCr6LZmgjXsiKuRDc+5A6doKPr9w2d+FEJ55zQ== +"@changesets/read@^0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@changesets/read/-/read-0.6.5.tgz#7a68457e6356d3df187aa18e388f1b8dba3d2156" + integrity sha512-UPzNGhsSjHD3Veb0xO/MwvasGe8eMyNrR/sT9gR8Q3DhOQZirgKhhXv/8hVsI0QpPjR004Z9iFxoJU6in3uGMg== dependencies: - "@changesets/git" "^3.0.1" + "@changesets/git" "^3.0.4" "@changesets/logger" "^0.1.1" - "@changesets/parse" "^0.4.0" - "@changesets/types" "^6.0.0" + "@changesets/parse" "^0.4.1" + "@changesets/types" "^6.1.0" fs-extra "^7.0.1" p-filter "^2.1.0" picocolors "^1.1.0" -"@changesets/should-skip-package@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@changesets/should-skip-package/-/should-skip-package-0.1.1.tgz#76218ef4ce7691351a6dffdb356e8893267b0b3a" - integrity sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg== +"@changesets/should-skip-package@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@changesets/should-skip-package/-/should-skip-package-0.1.2.tgz#c018e1e05eab3d97afa4c4590f2b0db7486ae488" + integrity sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw== dependencies: - "@changesets/types" "^6.0.0" + "@changesets/types" "^6.1.0" "@manypkg/get-packages" "^1.1.3" "@changesets/types@^4.0.1": @@ -1416,19 +1201,19 @@ resolved "https://registry.yarnpkg.com/@changesets/types/-/types-4.1.0.tgz#fb8f7ca2324fd54954824e864f9a61a82cb78fe0" integrity sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw== -"@changesets/types@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@changesets/types/-/types-6.0.0.tgz#e46abda9890610dd1fbe1617730173d2267544bd" - integrity sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ== +"@changesets/types@^6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@changesets/types/-/types-6.1.0.tgz#12a4c8490827d26bc6fbf97a151499be2fb6d2f5" + integrity sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA== -"@changesets/write@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@changesets/write/-/write-0.3.2.tgz#bee64e4ccdff480872df5d1e38f2b913cb940116" - integrity sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw== +"@changesets/write@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@changesets/write/-/write-0.4.0.tgz#ec903cbd8aa9b6da6fa09ef19fb609eedd115ed6" + integrity sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q== dependencies: - "@changesets/types" "^6.0.0" + "@changesets/types" "^6.1.0" fs-extra "^7.0.1" - human-id "^1.0.2" + human-id "^4.1.1" prettier "^2.7.1" "@chevrotain/cst-dts-gen@11.0.3": @@ -1463,12 +1248,49 @@ resolved "https://registry.yarnpkg.com/@chevrotain/utils/-/utils-11.0.3.tgz#e39999307b102cff3645ec4f5b3665f5297a2224" integrity sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ== +"@cloudflare/kv-asset-handler@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.4.0.tgz#a8588c6a2e89bb3e87fb449295a901c9f6d3e1bf" + integrity sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA== + dependencies: + mime "^3.0.0" + +"@cloudflare/unenv-preset@2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@cloudflare/unenv-preset/-/unenv-preset-2.3.1.tgz#63c6af2b92adf904f25a10e3957df0db7f161622" + integrity sha512-Xq57Qd+ADpt6hibcVBO0uLG9zzRgyRhfCUgBT9s+g3+3Ivg5zDyVgLFy40ES1VdNcu8rPNSivm9A+kGP5IVaPg== + +"@cloudflare/workerd-darwin-64@1.20250507.0": + version "1.20250507.0" + resolved "https://registry.yarnpkg.com/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20250507.0.tgz#f203bcae9d345752bb7222b442752671067a6472" + integrity sha512-xC+8hmQuOUUNCVT9DWpLMfxhR4Xs4kI8v7Bkybh4pzGC85moH6fMfCBNaP0YQCNAA/BR56aL/AwfvMVGskTK/A== + +"@cloudflare/workerd-darwin-arm64@1.20250507.0": + version "1.20250507.0" + resolved "https://registry.yarnpkg.com/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20250507.0.tgz#27d3f9eff78fa7f1f15dab2156cf3abed986f5ce" + integrity sha512-Oynff5H8yM4trfUFaKdkOvPV3jac8mg7QC19ILZluCVgLx/JGEVLEJ7do1Na9rLqV8CK4gmUXPrUMX7uerhQgg== + +"@cloudflare/workerd-linux-64@1.20250507.0": + version "1.20250507.0" + resolved "https://registry.yarnpkg.com/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20250507.0.tgz#aa02ce64ae41b4e44b40c6ca317ba43dd6b6d87c" + integrity sha512-/HAA+Zg/R7Q/Smyl835FUFKjotZN1UzN9j/BHBd0xKmKov97QkXAX8gsyGnyKqRReIOinp8x/8+UebTICR7VJw== + +"@cloudflare/workerd-linux-arm64@1.20250507.0": + version "1.20250507.0" + resolved "https://registry.yarnpkg.com/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20250507.0.tgz#61aff7cc6fd356f923006dca557770371e66a187" + integrity sha512-NMPibSdOYeycU0IrKkgOESFJQy7dEpHvuatZxQxlT+mIQK0INzI3irp2kKxhF99s25kPC4p+xg9bU3ugTrs3VQ== + +"@cloudflare/workerd-windows-64@1.20250507.0": + version "1.20250507.0" + resolved "https://registry.yarnpkg.com/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20250507.0.tgz#86066dd5de0574c9a9cffa49867a8a1729c3eda0" + integrity sha512-c91fhNP8ufycdIDqjVyKTqeb4ewkbAYXFQbLreMVgh4LLQQPDDEte8wCdmaFy5bIL0M9d85PpdCq51RCzq/FaQ== + "@corex/deepmerge@^4.0.43": version "4.0.43" resolved "https://registry.yarnpkg.com/@corex/deepmerge/-/deepmerge-4.0.43.tgz#9bd42559ebb41cc5a7fb7cfeea5f231c20977dca" integrity sha512-N8uEMrMPL0cu/bdboEWpQYb/0i2K5Qn8eCsxzOmxSggJbbQte7ljMRoXm917AbntqTGOzdTu+vP3KOOzoC70HQ== -"@cspotcode/source-map-support@^0.8.0": +"@cspotcode/source-map-support@0.8.1": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== @@ -1480,25 +1302,35 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@emnapi/runtime@^1.2.0": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.3.1.tgz#0fcaa575afc31f455fd33534c19381cfce6c6f60" - integrity sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw== +"@emnapi/runtime@^1.2.0", "@emnapi/runtime@^1.4.0": + version "1.4.3" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.4.3.tgz#c0564665c80dc81c448adac23f9dfbed6c838f7d" + integrity sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ== dependencies: tslib "^2.4.0" -"@envelop/core@5.0.2", "@envelop/core@^5.0.1": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@envelop/core/-/core-5.0.2.tgz#f9649c72e66d78b55aafa0d2d2cfa5f9c3bfc127" - integrity sha512-tVL6OrMe6UjqLosiE+EH9uxh2TQC0469GwF4tE014ugRaDDKKVWwFwZe0TBMlcyHKh5MD4ZxktWo/1hqUxIuhw== +"@envelop/core@5.2.3", "@envelop/core@^5.2.3": + version "5.2.3" + resolved "https://registry.yarnpkg.com/@envelop/core/-/core-5.2.3.tgz#ede1dd20b4397c7465ae2190e718829303bcef00" + integrity sha512-KfoGlYD/XXQSc3BkM1/k15+JQbkQ4ateHazeZoWl9P71FsLTDXSjGy6j7QqfhpIDSbxNISqhPMfZHYSbDFOofQ== dependencies: - "@envelop/types" "5.0.0" + "@envelop/instrumentation" "^1.0.0" + "@envelop/types" "^5.2.1" + "@whatwg-node/promise-helpers" "^1.2.4" tslib "^2.5.0" -"@envelop/live-query@7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@envelop/live-query/-/live-query-7.0.0.tgz#10df5e9bdee0115ef2c2fb588fcd0e8184a19ec5" - integrity sha512-rLnSN1B+5zcy3FsWE+16/CMiqjD/LXXcRUXJ0RaXRjzHClpQxgSzrAixNeOmx1vXLff4AgkjOZANJl39rD4dwQ== +"@envelop/instrumentation@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@envelop/instrumentation/-/instrumentation-1.0.0.tgz#43268392e065d8ba975cacbdf4fc297dfe3e11e5" + integrity sha512-cxgkB66RQB95H3X27jlnxCRNTmPuSTgmBAq6/4n2Dtv4hsk4yz8FadA1ggmd0uZzvKqWD6CR+WFgTjhDqg7eyw== + dependencies: + "@whatwg-node/promise-helpers" "^1.2.1" + tslib "^2.5.0" + +"@envelop/live-query@8.1.3": + version "8.1.3" + resolved "https://registry.yarnpkg.com/@envelop/live-query/-/live-query-8.1.3.tgz#955b15f995f25a32464bb2c5410fa0ab1a733170" + integrity sha512-GpB24YwbBdFT8cyCsaVq254ujzHs748uVEa8QtgQWhS7A/DVkbBuwIZX0S1aDbbZPMnulJGfo2sXELrXIoCJ6g== dependencies: "@graphql-tools/utils" "^10.0.0" "@n1ru4l/graphql-live-query" "^0.10.0" @@ -1506,137 +1338,143 @@ "@n1ru4l/in-memory-live-query-store" "^0.10.0" tslib "^2.5.0" -"@envelop/types@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@envelop/types/-/types-5.0.0.tgz#3ae59b50ec31d4bdcc7bd0b47e9c8cf2ac44b0ff" - integrity sha512-IPjmgSc4KpQRlO4qbEDnBEixvtb06WDmjKfi/7fkZaryh5HuOmTtixe1EupQI5XfXO8joc3d27uUZ0QdC++euA== +"@envelop/types@^5.2.1": + version "5.2.1" + resolved "https://registry.yarnpkg.com/@envelop/types/-/types-5.2.1.tgz#6bc9713f2aea56d7de3ea39e8bb70035c0475b36" + integrity sha512-CsFmA3u3c2QoLDTfEpGr4t25fjMU31nyvse7IzWTvb0ZycuPjMjb0fjlheh+PbhBYb9YLugnT2uY6Mwcg1o+Zg== dependencies: + "@whatwg-node/promise-helpers" "^1.0.0" tslib "^2.5.0" -"@esbuild/aix-ppc64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz#b57697945b50e99007b4c2521507dc613d4a648c" - integrity sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw== - -"@esbuild/android-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz#1add7e0af67acefd556e407f8497e81fddad79c0" - integrity sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w== - -"@esbuild/android-arm@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.24.0.tgz#ab7263045fa8e090833a8e3c393b60d59a789810" - integrity sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew== - -"@esbuild/android-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.24.0.tgz#e8f8b196cfdfdd5aeaebbdb0110983460440e705" - integrity sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ== - -"@esbuild/darwin-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz#2d0d9414f2acbffd2d86e98253914fca603a53dd" - integrity sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw== - -"@esbuild/darwin-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz#33087aab31a1eb64c89daf3d2cf8ce1775656107" - integrity sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA== - -"@esbuild/freebsd-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz#bb76e5ea9e97fa3c753472f19421075d3a33e8a7" - integrity sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA== - -"@esbuild/freebsd-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz#e0e2ce9249fdf6ee29e5dc3d420c7007fa579b93" - integrity sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ== - -"@esbuild/linux-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz#d1b2aa58085f73ecf45533c07c82d81235388e75" - integrity sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g== - -"@esbuild/linux-arm@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz#8e4915df8ea3e12b690a057e77a47b1d5935ef6d" - integrity sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw== - -"@esbuild/linux-ia32@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz#8200b1110666c39ab316572324b7af63d82013fb" - integrity sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA== - -"@esbuild/linux-loong64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz#6ff0c99cf647504df321d0640f0d32e557da745c" - integrity sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g== - -"@esbuild/linux-mips64el@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz#3f720ccd4d59bfeb4c2ce276a46b77ad380fa1f3" - integrity sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA== - -"@esbuild/linux-ppc64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz#9d6b188b15c25afd2e213474bf5f31e42e3aa09e" - integrity sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ== - -"@esbuild/linux-riscv64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz#f989fdc9752dfda286c9cd87c46248e4dfecbc25" - integrity sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw== - -"@esbuild/linux-s390x@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz#29ebf87e4132ea659c1489fce63cd8509d1c7319" - integrity sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g== - -"@esbuild/linux-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz#4af48c5c0479569b1f359ffbce22d15f261c0cef" - integrity sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA== - -"@esbuild/netbsd-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz#1ae73d23cc044a0ebd4f198334416fb26c31366c" - integrity sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg== - -"@esbuild/openbsd-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz#5d904a4f5158c89859fd902c427f96d6a9e632e2" - integrity sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg== - -"@esbuild/openbsd-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz#4c8aa88c49187c601bae2971e71c6dc5e0ad1cdf" - integrity sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q== - -"@esbuild/sunos-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz#8ddc35a0ea38575fa44eda30a5ee01ae2fa54dd4" - integrity sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA== - -"@esbuild/win32-arm64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz#6e79c8543f282c4539db684a207ae0e174a9007b" - integrity sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA== - -"@esbuild/win32-ia32@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz#057af345da256b7192d18b676a02e95d0fa39103" - integrity sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw== - -"@esbuild/win32-x64@0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz#168ab1c7e1c318b922637fad8f339d48b01e1244" - integrity sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA== - -"@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0", "@eslint-community/eslint-utils@^4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56" - integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== +"@esbuild/aix-ppc64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz#830d6476cbbca0c005136af07303646b419f1162" + integrity sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q== + +"@esbuild/android-arm64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz#d11d4fc299224e729e2190cacadbcc00e7a9fd67" + integrity sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A== + +"@esbuild/android-arm@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.4.tgz#5660bd25080553dd2a28438f2a401a29959bd9b1" + integrity sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ== + +"@esbuild/android-x64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.4.tgz#18ddde705bf984e8cd9efec54e199ac18bc7bee1" + integrity sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ== + +"@esbuild/darwin-arm64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz#b0b7fb55db8fc6f5de5a0207ae986eb9c4766e67" + integrity sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g== + +"@esbuild/darwin-x64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz#e6813fdeba0bba356cb350a4b80543fbe66bf26f" + integrity sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A== + +"@esbuild/freebsd-arm64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz#dc11a73d3ccdc308567b908b43c6698e850759be" + integrity sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ== + +"@esbuild/freebsd-x64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz#91da08db8bd1bff5f31924c57a81dab26e93a143" + integrity sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ== + +"@esbuild/linux-arm64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz#efc15e45c945a082708f9a9f73bfa8d4db49728a" + integrity sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ== + +"@esbuild/linux-arm@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz#9b93c3e54ac49a2ede6f906e705d5d906f6db9e8" + integrity sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ== + +"@esbuild/linux-ia32@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz#be8ef2c3e1d99fca2d25c416b297d00360623596" + integrity sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ== + +"@esbuild/linux-loong64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz#b0840a2707c3fc02eec288d3f9defa3827cd7a87" + integrity sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA== + +"@esbuild/linux-mips64el@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz#2a198e5a458c9f0e75881a4e63d26ba0cf9df39f" + integrity sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg== + +"@esbuild/linux-ppc64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz#64f4ae0b923d7dd72fb860b9b22edb42007cf8f5" + integrity sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag== + +"@esbuild/linux-riscv64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz#fb2844b11fdddd39e29d291c7cf80f99b0d5158d" + integrity sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA== + +"@esbuild/linux-s390x@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz#1466876e0aa3560c7673e63fdebc8278707bc750" + integrity sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g== + +"@esbuild/linux-x64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz#c10fde899455db7cba5f11b3bccfa0e41bf4d0cd" + integrity sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA== + +"@esbuild/netbsd-arm64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz#02e483fbcbe3f18f0b02612a941b77be76c111a4" + integrity sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ== + +"@esbuild/netbsd-x64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz#ec401fb0b1ed0ac01d978564c5fc8634ed1dc2ed" + integrity sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw== + +"@esbuild/openbsd-arm64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz#f272c2f41cfea1d91b93d487a51b5c5ca7a8c8c4" + integrity sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A== + +"@esbuild/openbsd-x64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz#2e25950bc10fa9db1e5c868e3d50c44f7c150fd7" + integrity sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw== + +"@esbuild/sunos-x64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz#cd596fa65a67b3b7adc5ecd52d9f5733832e1abd" + integrity sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q== + +"@esbuild/win32-arm64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz#b4dbcb57b21eeaf8331e424c3999b89d8951dc88" + integrity sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ== + +"@esbuild/win32-ia32@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz#410842e5d66d4ece1757634e297a87635eb82f7a" + integrity sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg== + +"@esbuild/win32-x64@0.25.4": + version "0.25.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz#0b17ec8a70b2385827d52314c1253160a0b9bacc" + integrity sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ== + +"@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0", "@eslint-community/eslint-utils@^4.5.0", "@eslint-community/eslint-utils@^4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz#607084630c6c033992a082de6e6fbc1a8b52175a" + integrity sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw== dependencies: eslint-visitor-keys "^3.4.3" @@ -1645,24 +1483,31 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== -"@eslint/config-array@^0.18.0": - version "0.18.0" - resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.18.0.tgz#37d8fe656e0d5e3dbaea7758ea56540867fd074d" - integrity sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw== +"@eslint/config-array@^0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.20.0.tgz#7a1232e82376712d3340012a2f561a2764d1988f" + integrity sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ== dependencies: - "@eslint/object-schema" "^2.1.4" + "@eslint/object-schema" "^2.1.6" debug "^4.3.1" minimatch "^3.1.2" -"@eslint/core@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.7.0.tgz#a1bb4b6a4e742a5ff1894b7ee76fbf884ec72bd3" - integrity sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw== +"@eslint/config-helpers@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.2.2.tgz#3779f76b894de3a8ec4763b79660e6d54d5b1010" + integrity sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg== -"@eslint/eslintrc@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.1.0.tgz#dbd3482bfd91efa663cbe7aa1f506839868207b6" - integrity sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ== +"@eslint/core@^0.13.0": + version "0.13.0" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.13.0.tgz#bf02f209846d3bf996f9e8009db62df2739b458c" + integrity sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw== + dependencies: + "@types/json-schema" "^7.0.15" + +"@eslint/eslintrc@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.1.tgz#e55f7f1dd400600dd066dbba349c4c0bac916964" + integrity sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1674,37 +1519,48 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.14.0": - version "9.14.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.14.0.tgz#2347a871042ebd11a00fd8c2d3d56a265ee6857e" - integrity sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg== +"@eslint/js@9.26.0": + version "9.26.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.26.0.tgz#1e13126b67a3db15111d2dcc61f69a2acff70bd5" + integrity sha512-I9XlJawFdSMvWjDt6wksMCrgns5ggLNfFwFvnShsleWruvXM514Qxk8V246efTw+eo9JABvVz+u3q2RiAowKxQ== -"@eslint/object-schema@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.4.tgz#9e69f8bb4031e11df79e03db09f9dbbae1740843" - integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== +"@eslint/object-schema@^2.1.6": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.6.tgz#58369ab5b5b3ca117880c0f6c0b0f32f6950f24f" + integrity sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA== -"@eslint/plugin-kit@^0.2.0": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.2.tgz#5eff371953bc13e3f4d88150e2c53959f64f74f6" - integrity sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw== +"@eslint/plugin-kit@^0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz#47488d8f8171b5d4613e833313f3ce708e3525f8" + integrity sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA== dependencies: + "@eslint/core" "^0.13.0" levn "^0.4.1" -"@floating-ui/core@^1.6.0": - version "1.6.8" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.8.tgz#aa43561be075815879305965020f492cdb43da12" - integrity sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA== +"@fastify/busboy@^2.0.0": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" + integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== + +"@fastify/busboy@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-3.1.1.tgz#af3aea7f1e52ec916d8b5c9dcc0f09d4c060a3fc" + integrity sha512-5DGmA8FTdB2XbDeEwc/5ZXBl6UbBAyBOOLlPuBnZ/N1SwdH9Ii+cOX3tBROlDgcTXxjOYnLMVoKk9+FXAw0CJw== + +"@floating-ui/core@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.7.0.tgz#1aff27a993ea1b254a586318c29c3b16ea0f4d0a" + integrity sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA== dependencies: - "@floating-ui/utils" "^0.2.8" + "@floating-ui/utils" "^0.2.9" "@floating-ui/dom@^1.0.0": - version "1.6.12" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.12.tgz#6333dcb5a8ead3b2bf82f33d6bc410e95f54e556" - integrity sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w== + version "1.7.0" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.7.0.tgz#f9f83ee4fee78ac23ad9e65b128fc11a27857532" + integrity sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg== dependencies: - "@floating-ui/core" "^1.6.0" - "@floating-ui/utils" "^0.2.8" + "@floating-ui/core" "^1.7.0" + "@floating-ui/utils" "^0.2.9" "@floating-ui/react-dom@^2.1.2": version "2.1.2" @@ -1714,125 +1570,124 @@ "@floating-ui/dom" "^1.0.0" "@floating-ui/react@^0.26.16": - version "0.26.27" - resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.26.27.tgz#402f7b4b2702650662705fe9cbe0f1d5607846a1" - integrity sha512-jLP72x0Kr2CgY6eTYi/ra3VA9LOkTo4C+DUTrbFgFOExKy3omYVmwMjNKqxAHdsnyLS96BIDLcO2SlnsNf8KUQ== + version "0.26.28" + resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.26.28.tgz#93f44ebaeb02409312e9df9507e83aab4a8c0dc7" + integrity sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw== dependencies: "@floating-ui/react-dom" "^2.1.2" "@floating-ui/utils" "^0.2.8" tabbable "^6.0.0" -"@floating-ui/utils@^0.2.8": - version "0.2.8" - resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.8.tgz#21a907684723bbbaa5f0974cf7730bd797eb8e62" - integrity sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig== +"@floating-ui/utils@^0.2.8", "@floating-ui/utils@^0.2.9": + version "0.2.9" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.9.tgz#50dea3616bc8191fb8e112283b49eaff03e78429" + integrity sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg== "@formatjs/intl-localematcher@^0.5.4": - version "0.5.7" - resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.5.7.tgz#f889d076881b785d11ff993b966f527d199436d0" - integrity sha512-GGFtfHGQVFe/niOZp24Kal5b2i36eE2bNL0xi9Sg/yd0TR8aLjcteApZdHmismP5QQax1cMnZM9yWySUUjJteA== + version "0.5.10" + resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.5.10.tgz#1e0bd3fc1332c1fe4540cfa28f07e9227b659a58" + integrity sha512-af3qATX+m4Rnd9+wHcjJ4w2ijq+rAVP3CCinJQvFv1kgSu1W6jypUmvleJxcewdxmutM8dmIRZFxO/IQBZmP2Q== dependencies: tslib "2" -"@giscus/react@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@giscus/react/-/react-3.0.0.tgz#fdadce2c7e4023eb4fdbcc219cdd97f6d7aa17f0" - integrity sha512-hgCjLpg3Wgh8VbTF5p8ZLcIHI74wvDk1VIFv12+eKhenNVUDjgwNg2B1aq/3puyHOad47u/ZSyqiMtohjy/OOA== - dependencies: - giscus "^1.5.0" - -"@graphql-tools/batch-delegate@^9.0.14": - version "9.0.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/batch-delegate/-/batch-delegate-9.0.14.tgz#82cc4d053f58024237ef6b0900fc670b10b96d88" - integrity sha512-MTskYAlz1qon2x4KFxttN/LWFOsLBWtVWA1v4jgv46hyPo0nDEiYwT0xjafoO/HI9rCYYdMwY/3BClxyHpPcmg== - dependencies: - "@graphql-tools/delegate" "^10.1.2" - "@graphql-tools/utils" "^10.5.6" - dataloader "2.2.2" - tslib "^2.4.0" - value-or-promise "^1.0.12" - -"@graphql-tools/batch-execute@^9.0.6": - version "9.0.6" - resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-9.0.6.tgz#0eee17ca7bd378f7313e963a32450e7b99ed955e" - integrity sha512-S0mLTUJQJuItGmwouYZyXeFaRWOVmVCAMLi33M5PuZbnsoTwKMB/YPPkAQ72ay3GfclnW66XcO4EClbVynw7eQ== +"@giscus/react@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@giscus/react/-/react-3.1.0.tgz#0ab77cc80d765989e87403ea7f50ba7a790a36c7" + integrity sha512-0TCO2TvL43+oOdyVVGHDItwxD1UMKP2ZYpT6gXmhFOqfAJtZxTzJ9hkn34iAF/b6YzyJ4Um89QIt9z/ajmAEeg== dependencies: - "@graphql-tools/utils" "^10.5.6" - dataloader "^2.2.2" - tslib "^2.4.0" - value-or-promise "^1.0.12" + giscus "^1.6.0" -"@graphql-tools/delegate@^10.1.2": - version "10.1.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-10.1.2.tgz#44f3f4ca502051fb1215779f433f57b42cf81931" - integrity sha512-2XXJdxjud0ROiKxIiieCx4SxzSjYNdCz1bVDrI6+nTFxV5kB15OnJU6jvom44kv+NJo4Dym5GOJNqlBEjxoFVA== - dependencies: - "@graphql-tools/batch-execute" "^9.0.6" - "@graphql-tools/executor" "^1.3.3" - "@graphql-tools/schema" "^10.0.8" - "@graphql-tools/utils" "^10.5.6" +"@graphql-hive/signal@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@graphql-hive/signal/-/signal-1.0.0.tgz#6e2193660a47c925abadbe72293dfc9430e24f8f" + integrity sha512-RiwLMc89lTjvyLEivZ/qxAC5nBHoS2CtsWFSOsN35sxG9zoo5Z+JsFHM8MlvmO9yt+MJNIyC5MLE1rsbOphlag== + +"@graphql-tools/batch-delegate@^9.0.35": + version "9.0.35" + resolved "https://registry.yarnpkg.com/@graphql-tools/batch-delegate/-/batch-delegate-9.0.35.tgz#1445820b673f457de80d46fd1149e355d316d981" + integrity sha512-Q+5JJuau9qbutbxKNmuyVnWChL2it/MZeo7e5Zb5TjWVWEuQxhQhPBI7YGidsTOU74z8EIC1MeD4WQV5EsqQTg== + dependencies: + "@graphql-tools/delegate" "^10.2.17" + "@graphql-tools/utils" "^10.8.1" + "@whatwg-node/promise-helpers" "^1.3.0" + dataloader "^2.2.3" + tslib "^2.8.1" + +"@graphql-tools/batch-execute@^9.0.15": + version "9.0.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-9.0.15.tgz#bd23d95ef6157c39416a35308cf295583d6c09e1" + integrity sha512-qlWUl6yi87FU5WvyJ0uD81R4Y30oQIuW3mJCjOrEvifyT+f/rEqSZFOhYrofYoZAoTcwqOhy6WgH+b9+AtRYjA== + dependencies: + "@graphql-tools/utils" "^10.8.1" + "@whatwg-node/promise-helpers" "^1.3.0" + dataloader "^2.2.3" + tslib "^2.8.1" + +"@graphql-tools/delegate@^10.1.2", "@graphql-tools/delegate@^10.2.17": + version "10.2.17" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-10.2.17.tgz#e245d18c5772608822108283491e24b4b1268747" + integrity sha512-z+LpZrTQCEXA4fbdJcSsvhaMqT4xi/O8B0mP30ENGyTbSfa20QamOQx9jgCiw2ii/ucwxfGMhygwlpZG36EU4w== + dependencies: + "@graphql-tools/batch-execute" "^9.0.15" + "@graphql-tools/executor" "^1.4.7" + "@graphql-tools/schema" "^10.0.11" + "@graphql-tools/utils" "^10.8.1" "@repeaterjs/repeater" "^3.0.6" - dataloader "^2.2.2" + "@whatwg-node/promise-helpers" "^1.3.0" + dataloader "^2.2.3" dset "^3.1.2" - tslib "^2.5.0" + tslib "^2.8.1" -"@graphql-tools/executor-graphql-ws@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-1.3.2.tgz#00a82a683b8be88bae859ee464cde4c342d9d167" - integrity sha512-m+7+g3dSyaomuJAgDoG/9RcZC5/hGEpDQjmKmbLf/WvGdv5fLJNsuoJ7pIjlT5r7wQJNjEPGoHeh9pD/YykRww== +"@graphql-tools/executor-common@^0.0.4": + version "0.0.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-common/-/executor-common-0.0.4.tgz#763603a6d7a22bb09d67ce682e84a0d730ff2bf9" + integrity sha512-SEH/OWR+sHbknqZyROCFHcRrbZeUAyjCsgpVWCRjqjqRbiJiXq6TxNIIOmpXgkrXWW/2Ev4Wms6YSGJXjdCs6Q== + dependencies: + "@envelop/core" "^5.2.3" + "@graphql-tools/utils" "^10.8.1" + +"@graphql-tools/executor-graphql-ws@^2.0.1": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-2.0.5.tgz#4e58fc96c2f080338ee5b9afaee8d5e26681d732" + integrity sha512-gI/D9VUzI1Jt1G28GYpvm5ckupgJ5O8mi5Y657UyuUozX34ErfVdZ81g6oVcKFQZ60LhCzk7jJeykK48gaLhDw== dependencies: - "@graphql-tools/utils" "^10.5.6" - "@types/ws" "^8.0.0" - graphql-ws "^5.14.0" + "@graphql-tools/executor-common" "^0.0.4" + "@graphql-tools/utils" "^10.8.1" + "@whatwg-node/disposablestack" "^0.0.6" + graphql-ws "^6.0.3" isomorphic-ws "^5.0.0" - tslib "^2.4.0" + tslib "^2.8.1" ws "^8.17.1" "@graphql-tools/executor-http@^1.1.9": - version "1.1.9" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-1.1.9.tgz#9e672ccd88eeca2256c224adc0eda33a89c21af7" - integrity sha512-dJRj78QEGNNnlhkhqPUG9z+1uAr7znZ4dzabEVgY5uSXTmUIFcTKpOGYv2/QAuvyqGN40XxbcdVRJta6XHX2BQ== + version "1.3.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-1.3.3.tgz#057de79ebc90edbd242259cccb1268d37ee6c579" + integrity sha512-LIy+l08/Ivl8f8sMiHW2ebyck59JzyzO/yF9SFS4NH6MJZUezA1xThUXCDIKhHiD56h/gPojbkpcFvM2CbNE7A== dependencies: - "@graphql-tools/utils" "^10.5.6" + "@graphql-hive/signal" "^1.0.0" + "@graphql-tools/executor-common" "^0.0.4" + "@graphql-tools/utils" "^10.8.1" "@repeaterjs/repeater" "^3.0.4" - "@whatwg-node/fetch" "^0.10.0" - extract-files "^11.0.0" + "@whatwg-node/disposablestack" "^0.0.6" + "@whatwg-node/fetch" "^0.10.4" + "@whatwg-node/promise-helpers" "^1.3.0" meros "^1.2.1" - tslib "^2.4.0" - value-or-promise "^1.0.12" - -"@graphql-tools/federation@2.2.27": - version "2.2.27" - resolved "https://registry.yarnpkg.com/@graphql-tools/federation/-/federation-2.2.27.tgz#d4b98fdf5e4e952095d48874aa729a83abd91dc3" - integrity sha512-mYzlURgF//OOB+yDwXqvTGRuQLIo9XM6KjPxJlMKo+VHUYfTbOU4QgFzU0xzotDTWL1V3k+SN05FZqhhgdmdAA== - dependencies: - "@graphql-tools/delegate" "^10.1.2" - "@graphql-tools/executor-http" "^1.1.9" - "@graphql-tools/merge" "^9.0.9" - "@graphql-tools/schema" "^10.0.8" - "@graphql-tools/stitch" "^9.3.4" - "@graphql-tools/utils" "^10.5.6" - "@graphql-tools/wrap" "^10.0.16" - "@whatwg-node/fetch" "^0.10.0" - tslib "^2.4.0" - value-or-promise "^1.0.12" - optionalDependencies: - "@apollo/client" "~3.2.5 || ~3.3.0 || ~3.4.0 || ~3.5.0 || ~3.6.0 || ~3.7.0 || ~3.8.0 || ~3.9.0 || ~3.10.0 || ~3.11.0" - -"@graphql-tools/stitch@9.3.4", "@graphql-tools/stitch@^9.3.4": - version "9.3.4" - resolved "https://registry.yarnpkg.com/@graphql-tools/stitch/-/stitch-9.3.4.tgz#a23fefa4a5056ac25ec29ef582a32d34c028ab49" - integrity sha512-8+Co3HpJJiT8OIebhHIdU0NEMoFKXEC6mWoSi6K3yY7QP3xEowVngyqIFJUSQo3fKEb9t7jn1ZgSHevitKYlIw== - dependencies: - "@graphql-tools/batch-delegate" "^9.0.14" - "@graphql-tools/delegate" "^10.1.2" - "@graphql-tools/executor" "^1.3.3" - "@graphql-tools/merge" "^9.0.9" - "@graphql-tools/schema" "^10.0.8" - "@graphql-tools/utils" "^10.5.6" - "@graphql-tools/wrap" "^10.0.16" - tslib "^2.4.0" - value-or-promise "^1.0.11" + tslib "^2.8.1" + +"@graphql-tools/stitch@^9.3.4": + version "9.4.22" + resolved "https://registry.yarnpkg.com/@graphql-tools/stitch/-/stitch-9.4.22.tgz#c46122fd1c90cdc353a4d99dc11266ccb07eae2e" + integrity sha512-+eQuU1WQ6JXIOA+GjRH5BF+XKFIjpzcBg6qMMUMmqDmvDHKv2sH2w5uOvxghhm46YOgD36dzBetkauTyGy9U1Q== + dependencies: + "@graphql-tools/batch-delegate" "^9.0.35" + "@graphql-tools/delegate" "^10.2.17" + "@graphql-tools/executor" "^1.4.7" + "@graphql-tools/merge" "^9.0.12" + "@graphql-tools/schema" "^10.0.11" + "@graphql-tools/utils" "^10.8.1" + "@graphql-tools/wrap" "^10.0.35" + "@whatwg-node/promise-helpers" "^1.3.0" + tslib "^2.8.1" "@graphql-tools/utils@^8.5.2": version "8.13.1" @@ -1841,75 +1696,64 @@ dependencies: tslib "^2.4.0" -"@graphql-tools/wrap@^10.0.16": - version "10.0.16" - resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-10.0.16.tgz#5ce787fd1d7fa95e9f927898e68ea1f27c216464" - integrity sha512-O/sOoPCnG2tWfhfIeWLQMPS7ipzjMiVOxwhjOUD9DaQd39XFBD4Al/MmKNc2343ua7NyqMwdfgXQjqGH1LFlPA== +"@graphql-tools/wrap@^10.0.16", "@graphql-tools/wrap@^10.0.35": + version "10.0.35" + resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-10.0.35.tgz#02cf9054a8d42d6d21d74530e80c41443962539b" + integrity sha512-qBga3wo7+GqY+ClGexiyRz9xgy1RWozZryTuGX8usGWPa4wKi/tJS4rKWQQesgB3Fh//SZUCRA5u2nwZaZQw1Q== dependencies: - "@graphql-tools/delegate" "^10.1.2" - "@graphql-tools/schema" "^10.0.8" - "@graphql-tools/utils" "^10.5.6" - tslib "^2.4.0" - value-or-promise "^1.0.12" + "@graphql-tools/delegate" "^10.2.17" + "@graphql-tools/schema" "^10.0.11" + "@graphql-tools/utils" "^10.8.1" + "@whatwg-node/promise-helpers" "^1.3.0" + tslib "^2.8.1" -"@graphql-typed-document-node/core@3.2.0", "@graphql-typed-document-node/core@^3.1.1", "@graphql-typed-document-node/core@^3.2.0": +"@graphql-typed-document-node/core@^3.1.1", "@graphql-typed-document-node/core@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== -"@graphql-yoga/logger@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@graphql-yoga/logger/-/logger-2.0.0.tgz#51c91cf07fc42b0d100d887315a20a4c9cac342e" - integrity sha512-Mg8psdkAp+YTG1OGmvU+xa6xpsAmSir0hhr3yFYPyLNwzUj95DdIwsMpKadDj9xDpYgJcH3Hp/4JMal9DhQimA== +"@graphql-yoga/logger@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@graphql-yoga/logger/-/logger-2.0.1.tgz#b3d18371c07bb2fe03417e3920ddcaebb2ee0262" + integrity sha512-Nv0BoDGLMg9QBKy9cIswQ3/6aKaKjlTh87x3GiBg2Z4RrjyrM48DvOOK0pJh1C1At+b0mUIM67cwZcFTDLN4sA== dependencies: - tslib "^2.5.2" + tslib "^2.8.1" -"@graphql-yoga/plugin-defer-stream@3.10.2": - version "3.10.2" - resolved "https://registry.yarnpkg.com/@graphql-yoga/plugin-defer-stream/-/plugin-defer-stream-3.10.2.tgz#d81041b8480a438696af4f2d18144ce66f6bfbec" - integrity sha512-KASiNJVzSwfmuUiWIS0p2JuEjcXne/cBJ7JbCAfQGF/t+64YsnDVChcL07m8Hy8ahxnAU64Mo0x610lMbAcqkw== +"@graphql-yoga/plugin-defer-stream@3.13.4": + version "3.13.4" + resolved "https://registry.yarnpkg.com/@graphql-yoga/plugin-defer-stream/-/plugin-defer-stream-3.13.4.tgz#40beccdcbaa6ab07b42d63885c1da43c8ce9eeca" + integrity sha512-r1IQB2i7ZdEFU/Bys2sToj0o5K5vzfNPmWzjH6/4WW9oHHWL0YVGKXNYQEsygN1acREFdMME9xzhMfnuHaHMoQ== dependencies: - "@graphql-tools/utils" "^10.0.0" + "@graphql-tools/utils" "^10.6.1" -"@graphql-yoga/subscription@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@graphql-yoga/subscription/-/subscription-5.0.1.tgz#affe9b4bca4303300cc9492d30dfbe9f089fe0e8" - integrity sha512-1wCB1DfAnaLzS+IdoOzELGGnx1ODEg9nzQXFh4u2j02vAnne6d+v4A7HIH9EqzVdPLoAaMKXCZUUdKs+j3z1fg== +"@graphql-yoga/subscription@^5.0.5": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@graphql-yoga/subscription/-/subscription-5.0.5.tgz#55e1dc472de866185d7c122e2c534023a331f65c" + integrity sha512-oCMWOqFs6QV96/NZRt/ZhTQvzjkGB4YohBOpKM4jH/lDT4qb7Lex/aGCxpi/JD9njw3zBBtMqxbaC22+tFHVvw== dependencies: - "@graphql-yoga/typed-event-target" "^3.0.0" + "@graphql-yoga/typed-event-target" "^3.0.2" "@repeaterjs/repeater" "^3.0.4" "@whatwg-node/events" "^0.1.0" - tslib "^2.5.2" + tslib "^2.8.1" -"@graphql-yoga/typed-event-target@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@graphql-yoga/typed-event-target/-/typed-event-target-3.0.0.tgz#57dc42e052d8294555d26ee61854d72a0236fee0" - integrity sha512-w+liuBySifrstuHbFrHoHAEyVnDFVib+073q8AeAJ/qqJfvFvAwUPLLtNohR/WDVRgSasfXtl3dcNuVJWN+rjg== +"@graphql-yoga/typed-event-target@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@graphql-yoga/typed-event-target/-/typed-event-target-3.0.2.tgz#af29ed2a5a84062ffab8e404b335ec4d4c37ceb4" + integrity sha512-ZpJxMqB+Qfe3rp6uszCQoag4nSw42icURnBRfFYSOmTgEeOe4rD0vYlbA8spvCu2TlCesNTlEN9BLWtQqLxabA== dependencies: "@repeaterjs/repeater" "^3.0.4" - tslib "^2.5.2" - -"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": - version "9.3.0" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" - integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== - -"@hapi/topo@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" - integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== - dependencies: - "@hapi/hoek" "^9.0.0" + tslib "^2.8.1" "@headlessui/react@^2.1.2": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-2.2.0.tgz#a8e32f0899862849a1ce1615fa280e7891431ab7" - integrity sha512-RzCEg+LXsuI7mHiSomsu/gBJSjpupm6A1qIZ5sWjd7JhARNlMiSA4kKfJpCKwU9tE+zMRterhhrP74PvfJrpXQ== + version "2.2.2" + resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-2.2.2.tgz#adbfed24a10b73a4951462c5a6c120a7f886d05d" + integrity sha512-zbniWOYBQ8GHSUIOPY7BbdIn6PzUOq0z41RFrF30HbjsxG6Rrfk+6QulR8Kgf2Vwj2a/rE6i62q5vo+2gI5dJA== dependencies: "@floating-ui/react" "^0.26.16" "@react-aria/focus" "^3.17.1" "@react-aria/interactions" "^3.21.3" - "@tanstack/react-virtual" "^3.8.1" + "@tanstack/react-virtual" "^3.13.6" + use-sync-external-store "^1.5.0" "@humanfs/core@^0.19.1": version "0.19.1" @@ -1934,21 +1778,20 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a" integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== -"@humanwhocodes/retry@^0.4.0": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.1.tgz#9a96ce501bc62df46c4031fbd970e3cc6b10f07b" - integrity sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA== +"@humanwhocodes/retry@^0.4.2": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.3.tgz#c2b9d2e374ee62c586d3adbea87199b1d7a7a6ba" + integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== -"@ianvs/prettier-plugin-sort-imports@4.3.1": - version "4.3.1" - resolved "https://registry.yarnpkg.com/@ianvs/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.3.1.tgz#e588afa75a597a5d7c26dee1dcc0bb1198363367" - integrity sha512-ZHwbyjkANZOjaBm3ZosADD2OUYGFzQGxfy67HmGZU94mHqe7g1LCMA7YYKB1Cq+UTPCBqlAYapY0KXAjKEw8Sg== - dependencies: - "@babel/core" "^7.24.0" - "@babel/generator" "^7.23.6" - "@babel/parser" "^7.24.0" - "@babel/traverse" "^7.24.0" - "@babel/types" "^7.24.0" +"@ianvs/prettier-plugin-sort-imports@4.4.1": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@ianvs/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.4.1.tgz#d8a182fc1a74d687df335b2b17b347e232b6f495" + integrity sha512-F0/Hrcfpy8WuxlQyAWJTEren/uxKhYonOGY4OyWmwRdeTvkh9mMSCxowZLjNkhwi/2ipqCgtXwwOk7tW0mWXkA== + dependencies: + "@babel/generator" "^7.26.2" + "@babel/parser" "^7.26.2" + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.26.0" semver "^7.5.2" "@iconify/types@^2.0.0": @@ -1956,18 +1799,19 @@ resolved "https://registry.yarnpkg.com/@iconify/types/-/types-2.0.0.tgz#ab0e9ea681d6c8a1214f30cd741fe3a20cc57f57" integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== -"@iconify/utils@^2.1.32": - version "2.1.33" - resolved "https://registry.yarnpkg.com/@iconify/utils/-/utils-2.1.33.tgz#cbf7242a52fd0ec58c42d37d28e4406b5327e8c0" - integrity sha512-jP9h6v/g0BIZx0p7XGJJVtkVnydtbgTgt9mVNcGDYwaa7UhdHdI9dvoq+gKj9sijMSJKxUPEG2JyjsgXjxL7Kw== +"@iconify/utils@^2.1.33": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@iconify/utils/-/utils-2.3.0.tgz#1bbbf8c477ebe9a7cacaea78b1b7e8937f9cbfba" + integrity sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA== dependencies: - "@antfu/install-pkg" "^0.4.0" - "@antfu/utils" "^0.7.10" + "@antfu/install-pkg" "^1.0.0" + "@antfu/utils" "^8.1.0" "@iconify/types" "^2.0.0" - debug "^4.3.6" + debug "^4.4.0" + globals "^15.14.0" kolorist "^1.8.0" - local-pkg "^0.5.0" - mlly "^1.7.1" + local-pkg "^1.0.0" + mlly "^1.7.4" "@img/sharp-darwin-arm64@0.33.5": version "0.33.5" @@ -1976,6 +1820,13 @@ optionalDependencies: "@img/sharp-libvips-darwin-arm64" "1.0.4" +"@img/sharp-darwin-arm64@0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.1.tgz#e79a4756bea9a06a7aadb4391ee53cb154a4968c" + integrity sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A== + optionalDependencies: + "@img/sharp-libvips-darwin-arm64" "1.1.0" + "@img/sharp-darwin-x64@0.33.5": version "0.33.5" resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz#e03d3451cd9e664faa72948cc70a403ea4063d61" @@ -1983,46 +1834,98 @@ optionalDependencies: "@img/sharp-libvips-darwin-x64" "1.0.4" +"@img/sharp-darwin-x64@0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.1.tgz#f1f1d386719f6933796415d84937502b7199a744" + integrity sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q== + optionalDependencies: + "@img/sharp-libvips-darwin-x64" "1.1.0" + "@img/sharp-libvips-darwin-arm64@1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz#447c5026700c01a993c7804eb8af5f6e9868c07f" integrity sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg== +"@img/sharp-libvips-darwin-arm64@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz#843f7c09c7245dc0d3cfec2b3c83bb08799a704f" + integrity sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA== + "@img/sharp-libvips-darwin-x64@1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz#e0456f8f7c623f9dbfbdc77383caa72281d86062" integrity sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ== +"@img/sharp-libvips-darwin-x64@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz#1239c24426c06a8e833815562f78047a3bfbaaf8" + integrity sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ== + "@img/sharp-libvips-linux-arm64@1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz#979b1c66c9a91f7ff2893556ef267f90ebe51704" integrity sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA== +"@img/sharp-libvips-linux-arm64@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz#20d276cefd903ee483f0441ba35961679c286315" + integrity sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew== + "@img/sharp-libvips-linux-arm@1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz#99f922d4e15216ec205dcb6891b721bfd2884197" integrity sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g== +"@img/sharp-libvips-linux-arm@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz#067c0b566eae8063738cf1b1db8f8a8573b5465c" + integrity sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA== + +"@img/sharp-libvips-linux-ppc64@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz#682334595f2ca00e0a07a675ba170af165162802" + integrity sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ== + "@img/sharp-libvips-linux-s390x@1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz#f8a5eb1f374a082f72b3f45e2fb25b8118a8a5ce" integrity sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA== +"@img/sharp-libvips-linux-s390x@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz#82fcd68444b3666384235279c145c2b28d8ee302" + integrity sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA== + "@img/sharp-libvips-linux-x64@1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz#d4c4619cdd157774906e15770ee119931c7ef5e0" integrity sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw== +"@img/sharp-libvips-linux-x64@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz#65b2b908bf47156b0724fde9095676c83a18cf5a" + integrity sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q== + "@img/sharp-libvips-linuxmusl-arm64@1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz#166778da0f48dd2bded1fa3033cee6b588f0d5d5" integrity sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA== +"@img/sharp-libvips-linuxmusl-arm64@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz#72accf924e80b081c8db83b900b444a67c203f01" + integrity sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w== + "@img/sharp-libvips-linuxmusl-x64@1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz#93794e4d7720b077fcad3e02982f2f1c246751ff" integrity sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw== +"@img/sharp-libvips-linuxmusl-x64@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz#1fa052737e203f46bf44192acd01f9faf11522d7" + integrity sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A== + "@img/sharp-linux-arm64@0.33.5": version "0.33.5" resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz#edb0697e7a8279c9fc829a60fc35644c4839bb22" @@ -2030,6 +1933,13 @@ optionalDependencies: "@img/sharp-libvips-linux-arm64" "1.0.4" +"@img/sharp-linux-arm64@0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.1.tgz#c36ef964499b8cfc2d2ed88fe68f27ce41522c80" + integrity sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ== + optionalDependencies: + "@img/sharp-libvips-linux-arm64" "1.1.0" + "@img/sharp-linux-arm@0.33.5": version "0.33.5" resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz#422c1a352e7b5832842577dc51602bcd5b6f5eff" @@ -2037,6 +1947,13 @@ optionalDependencies: "@img/sharp-libvips-linux-arm" "1.0.5" +"@img/sharp-linux-arm@0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.1.tgz#c96e38ff028d645912bb0aa132a7178b96997866" + integrity sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA== + optionalDependencies: + "@img/sharp-libvips-linux-arm" "1.1.0" + "@img/sharp-linux-s390x@0.33.5": version "0.33.5" resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz#f5c077926b48e97e4a04d004dfaf175972059667" @@ -2044,6 +1961,13 @@ optionalDependencies: "@img/sharp-libvips-linux-s390x" "1.0.4" +"@img/sharp-linux-s390x@0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.1.tgz#8ac58d9a49dcb08215e76c8d450717979b7815c3" + integrity sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA== + optionalDependencies: + "@img/sharp-libvips-linux-s390x" "1.1.0" + "@img/sharp-linux-x64@0.33.5": version "0.33.5" resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz#d806e0afd71ae6775cc87f0da8f2d03a7c2209cb" @@ -2051,6 +1975,13 @@ optionalDependencies: "@img/sharp-libvips-linux-x64" "1.0.4" +"@img/sharp-linux-x64@0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.1.tgz#3d8652efac635f0dba39d5e3b8b49515a2b2dee1" + integrity sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA== + optionalDependencies: + "@img/sharp-libvips-linux-x64" "1.1.0" + "@img/sharp-linuxmusl-arm64@0.33.5": version "0.33.5" resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz#252975b915894fb315af5deea174651e208d3d6b" @@ -2058,6 +1989,13 @@ optionalDependencies: "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" +"@img/sharp-linuxmusl-arm64@0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.1.tgz#b267e6a3e06f9e4d345cde471e5480c5c39e6969" + integrity sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-arm64" "1.1.0" + "@img/sharp-linuxmusl-x64@0.33.5": version "0.33.5" resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz#3f4609ac5d8ef8ec7dadee80b560961a60fd4f48" @@ -2065,6 +2003,13 @@ optionalDependencies: "@img/sharp-libvips-linuxmusl-x64" "1.0.4" +"@img/sharp-linuxmusl-x64@0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.1.tgz#a8dee4b6227f348c4bbacaa6ac3dc584a1a80391" + integrity sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-x64" "1.1.0" + "@img/sharp-wasm32@0.33.5": version "0.33.5" resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz#6f44f3283069d935bb5ca5813153572f3e6f61a1" @@ -2072,16 +2017,33 @@ dependencies: "@emnapi/runtime" "^1.2.0" +"@img/sharp-wasm32@0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.34.1.tgz#f7dfd66b6c231269042d3d8750c90f28b9ddcba1" + integrity sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg== + dependencies: + "@emnapi/runtime" "^1.4.0" + "@img/sharp-win32-ia32@0.33.5": version "0.33.5" resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz#1a0c839a40c5351e9885628c85f2e5dfd02b52a9" integrity sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ== +"@img/sharp-win32-ia32@0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.1.tgz#4bc293705df76a5f0a02df66ca3dc12e88f61332" + integrity sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw== + "@img/sharp-win32-x64@0.33.5": version "0.33.5" resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz#56f00962ff0c4e0eb93d34a047d29fa995e3e342" integrity sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg== +"@img/sharp-win32-x64@0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.1.tgz#8a7922fec949f037c204c79f6b83238d2482384b" + integrity sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw== + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" @@ -2302,15 +2264,10 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@josephg/resolvable@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" - integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== - "@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" - integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + version "0.3.8" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" + integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== dependencies: "@jridgewell/set-array" "^1.2.1" "@jridgewell/sourcemap-codec" "^1.4.10" @@ -2347,7 +2304,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": version "0.3.25" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== @@ -2355,20 +2312,15 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@kamilkisiela/fast-url-parser@^1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@kamilkisiela/fast-url-parser/-/fast-url-parser-1.1.4.tgz#9d68877a489107411b953c54ea65d0658b515809" - integrity sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew== - "@lit-labs/ssr-dom-shim@^1.2.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz#2f3a8f1d688935c704dbc89132394a41029acbb8" - integrity sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ== + version "1.3.0" + resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.3.0.tgz#a28799c463177d1a0b0e5cefdc173da5ac859eb4" + integrity sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ== -"@lit/reactive-element@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-2.0.4.tgz#8f2ed950a848016383894a26180ff06c56ae001b" - integrity sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ== +"@lit/reactive-element@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-2.1.0.tgz#177148214488068ae209669040b7ce0f4dcc0d36" + integrity sha512-L2qyoZSQClcBmq0qajBVbhYEcG6iK0XfLn66ifLe/RfC0/ihpc+pl0Wdn8bJ8o+hj38cG0fGXRgSS20MuXn7qA== dependencies: "@lit-labs/ssr-dom-shim" "^1.2.0" @@ -2424,19 +2376,28 @@ unist-util-visit "^5.0.0" vfile "^6.0.0" -"@mdx-js/react@^3.0.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-3.1.0.tgz#c4522e335b3897b9a845db1dbdd2f966ae8fb0ed" - integrity sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ== +"@mermaid-js/parser@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@mermaid-js/parser/-/parser-0.4.0.tgz#c1de1f5669f8fcbd0d0c9d124927d36ddc00d8a6" + integrity sha512-wla8XOWvQAwuqy+gxiZqY+c7FokraOTHRWMsbB4AgRx9Sy7zKslNyejy7E+a77qHfey5GXw/ik3IXv/NHMJgaA== dependencies: - "@types/mdx" "^2.0.0" + langium "3.3.1" -"@mermaid-js/parser@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@mermaid-js/parser/-/parser-0.3.0.tgz#7a28714599f692f93df130b299fa1aadc9f9c8ab" - integrity sha512-HsvL6zgE5sUPGgkIDlmAWR1HTNHz2Iy11BAWPTa4Jjabkpguy4Ze2gzfLrg6pdRuBvFwgUYyxiaNqZwrEEXepA== +"@modelcontextprotocol/sdk@^1.8.0": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@modelcontextprotocol/sdk/-/sdk-1.11.1.tgz#c7f4a1432872ef10130f5d9b0072060c17a3946b" + integrity sha512-9LfmxKTb1v+vUS1/emSk1f5ePmTLkb9Le9AxOB5T0XM59EUumwcS45z05h7aiZx3GI0Bl7mjb3FMEglYj+acuQ== dependencies: - langium "3.0.0" + content-type "^1.0.5" + cors "^2.8.5" + cross-spawn "^7.0.3" + eventsource "^3.0.2" + express "^5.0.1" + express-rate-limit "^7.5.0" + pkce-challenge "^5.0.0" + raw-body "^3.0.0" + zod "^3.23.8" + zod-to-json-schema "^3.24.1" "@n1ru4l/graphql-live-query-patch@^0.7.0": version "0.7.0" @@ -2549,62 +2510,62 @@ "@napi-rs/simple-git-win32-arm64-msvc" "0.1.19" "@napi-rs/simple-git-win32-x64-msvc" "0.1.19" -"@next/bundle-analyzer@15.0.1": - version "15.0.1" - resolved "https://registry.yarnpkg.com/@next/bundle-analyzer/-/bundle-analyzer-15.0.1.tgz#99d66cc4b09a59ac0c0b1ad0544ba57fb895ba25" - integrity sha512-i/nCRBGBEkESPDpXJc+6SPLFDItnvTTJSaxiOvuNqHmQjQognRl3BANkKb3nWYy0V5rgzygxu++X349Z4dhs4Q== +"@next/bundle-analyzer@15.1.5": + version "15.1.5" + resolved "https://registry.yarnpkg.com/@next/bundle-analyzer/-/bundle-analyzer-15.1.5.tgz#a0b99f665e9e672588c4880f608506df3189c6f0" + integrity sha512-pCYMPgGRwf+FjEwUXFo3QF14VzBSPPsBHSFuXUpq5ifKcY8LbcmoF2xMVVMa2HoYgA1XuqPSAIfLJr4YXNa9xQ== dependencies: webpack-bundle-analyzer "4.10.1" -"@next/env@15.0.2": - version "15.0.2" - resolved "https://registry.yarnpkg.com/@next/env/-/env-15.0.2.tgz#4e921af3faf8a16c6be98ec6a81a32a40050a8b7" - integrity sha512-c0Zr0ModK5OX7D4ZV8Jt/wqoXtitLNPwUfG9zElCZztdaZyNVnN40rDXVZ/+FGuR4CcNV5AEfM6N8f+Ener7Dg== +"@next/env@15.3.2": + version "15.3.2" + resolved "https://registry.yarnpkg.com/@next/env/-/env-15.3.2.tgz#7143eafa9b11cfdf3d3c7318b0facb9dfdb2948f" + integrity sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g== "@next/env@^13.4.3": - version "13.5.7" - resolved "https://registry.yarnpkg.com/@next/env/-/env-13.5.7.tgz#5006f4460a7fa598a03e1c2aa4e59e45c71082d3" - integrity sha512-uVuRqoj28Ys/AI/5gVEgRAISd0KWI0HRjOO1CTpNgmX3ZsHb5mdn14Y59yk0IxizXdo7ZjsI2S7qbWnO+GNBcA== - -"@next/swc-darwin-arm64@15.0.2": - version "15.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.2.tgz#66f84083f1f564d09bbacff8d6b24bd833783bef" - integrity sha512-GK+8w88z+AFlmt+ondytZo2xpwlfAR8U6CRwXancHImh6EdGfHMIrTSCcx5sOSBei00GyLVL0ioo1JLKTfprgg== - -"@next/swc-darwin-x64@15.0.2": - version "15.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.2.tgz#1aef085642f363b89acf264cf1b9848632b52914" - integrity sha512-KUpBVxIbjzFiUZhiLIpJiBoelqzQtVZbdNNsehhUn36e2YzKHphnK8eTUW1s/4aPy5kH/UTid8IuVbaOpedhpw== - -"@next/swc-linux-arm64-gnu@15.0.2": - version "15.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.2.tgz#203b41742e60642587e004773a8c203053b6832e" - integrity sha512-9J7TPEcHNAZvwxXRzOtiUvwtTD+fmuY0l7RErf8Yyc7kMpE47MIQakl+3jecmkhOoIyi/Rp+ddq7j4wG6JDskQ== - -"@next/swc-linux-arm64-musl@15.0.2": - version "15.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.2.tgz#d256932ec11051f376348862508be9017b23f3d8" - integrity sha512-BjH4ZSzJIoTTZRh6rG+a/Ry4SW0HlizcPorqNBixBWc3wtQtj4Sn9FnRZe22QqrPnzoaW0ctvSz4FaH4eGKMww== - -"@next/swc-linux-x64-gnu@15.0.2": - version "15.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.2.tgz#06c52a23a7e13d5ccd0ded1cf295b32df58e0932" - integrity sha512-i3U2TcHgo26sIhcwX/Rshz6avM6nizrZPvrDVDY1bXcLH1ndjbO8zuC7RoHp0NSK7wjJMPYzm7NYL1ksSKFreA== - -"@next/swc-linux-x64-musl@15.0.2": - version "15.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.2.tgz#eb70a81a1c66d4935d50bf6fe1021e440f27fe9f" - integrity sha512-AMfZfSVOIR8fa+TXlAooByEF4OB00wqnms1sJ1v+iu8ivwvtPvnkwdzzFMpsK5jA2S9oNeeQ04egIWVb4QWmtQ== - -"@next/swc-win32-arm64-msvc@15.0.2": - version "15.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.2.tgz#29a763bdc3a1281633af10cf8428e916e02f079a" - integrity sha512-JkXysDT0/hEY47O+Hvs8PbZAeiCQVxKfGtr4GUpNAhlG2E0Mkjibuo8ryGD29Qb5a3IOnKYNoZlh/MyKd2Nbww== - -"@next/swc-win32-x64-msvc@15.0.2": - version "15.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.2.tgz#0f70d8146990886a85099875353539fc6dd68338" - integrity sha512-foaUL0NqJY/dX0Pi/UcZm5zsmSk5MtP/gxx3xOPyREkMFN+CTjctPfu3QaqrQHinaKdPnMWPJDKt4VjDfTBe/Q== + version "13.5.11" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.5.11.tgz#6712d907e2682199aa1e8229b5ce028ee5a8001b" + integrity sha512-fbb2C7HChgM7CemdCY+y3N1n8pcTKdqtQLbC7/EQtPdLvlMUT9JX/dBYl8MMZAtYG4uVMyPFHXckb68q/NRwqg== + +"@next/swc-darwin-arm64@15.3.2": + version "15.3.2" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.2.tgz#1a7b36bf3c439f899065c878a580bc57a3630ec7" + integrity sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g== + +"@next/swc-darwin-x64@15.3.2": + version "15.3.2" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.2.tgz#3742026344f49128cf1b0f43814c67e880db7361" + integrity sha512-ro/fdqaZWL6k1S/5CLv1I0DaZfDVJkWNaUU3un8Lg6m0YENWlDulmIWzV96Iou2wEYyEsZq51mwV8+XQXqMp3w== + +"@next/swc-linux-arm64-gnu@15.3.2": + version "15.3.2" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.2.tgz#fb29d45c034e3d2eef89b0e2801d62eb86155823" + integrity sha512-covwwtZYhlbRWK2HlYX9835qXum4xYZ3E2Mra1mdQ+0ICGoMiw1+nVAn4d9Bo7R3JqSmK1grMq/va+0cdh7bJA== + +"@next/swc-linux-arm64-musl@15.3.2": + version "15.3.2" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.2.tgz#396784ef312666600ab1ae481e34cb1f6e3ae730" + integrity sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg== + +"@next/swc-linux-x64-gnu@15.3.2": + version "15.3.2" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.2.tgz#ac01fda376878e02bc6b57d1e88ab8ceae9f868e" + integrity sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg== + +"@next/swc-linux-x64-musl@15.3.2": + version "15.3.2" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.2.tgz#327a5023003bcb3ca436efc08733f091bba2b1e8" + integrity sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w== + +"@next/swc-win32-arm64-msvc@15.3.2": + version "15.3.2" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.2.tgz#ce3a6588bd9c020960704011ab20bd0440026965" + integrity sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ== + +"@next/swc-win32-x64-msvc@15.3.2": + version "15.3.2" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.2.tgz#43cc36097ac27639e9024a5ceaa6e7727fa968c8" + integrity sha512-aW5B8wOPioJ4mBdMDXkt5f3j8pUr9W8AnlX0Df35uRWNT1Y6RIybxjnSUe+PhM+M1bwgyY8PHLmXZC6zT1o5tA== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -2627,281 +2588,341 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@npmcli/fs@^3.1.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.1.tgz#59cdaa5adca95d135fc00f2bb53f5771575ce726" - integrity sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg== - dependencies: - semver "^7.3.5" +"@oven/bun-darwin-aarch64@1.2.13": + version "1.2.13" + resolved "https://registry.yarnpkg.com/@oven/bun-darwin-aarch64/-/bun-darwin-aarch64-1.2.13.tgz#1d67ff99995bbaeb3955c566cf3e4ded30796c92" + integrity sha512-AOU4O9jxRp2TXeqoEfOjEaUNZb3+SUPBN8TIEnUjpnyLWPoYJGCeNdQuCDcUkmF3MJEmEuJdyF1IeOITozpC6A== + +"@oven/bun-darwin-x64-baseline@1.2.13": + version "1.2.13" + resolved "https://registry.yarnpkg.com/@oven/bun-darwin-x64-baseline/-/bun-darwin-x64-baseline-1.2.13.tgz#2f33f7c0c4e806500a070ed00727769c25c3d37c" + integrity sha512-bZpIUOvx9np07AmH5MVXGYHWZ40m2vCpNV74fma6sCzBlssJclS2V3BZgO+lLvtUKSqnW3HAyJBGsRF34wPbNw== + +"@oven/bun-darwin-x64@1.2.13": + version "1.2.13" + resolved "https://registry.yarnpkg.com/@oven/bun-darwin-x64/-/bun-darwin-x64-1.2.13.tgz#7905f0568dc89a0a168408d68726e4efd130ceca" + integrity sha512-kJ2iOvxY8uz5/nu+8zIjKf4LmRIHBH9pJJM2q+tA47U04Tod6k6rtntDOI8SdmRe2M5c87RfbadWdxhpYHFIWQ== + +"@oven/bun-linux-aarch64-musl@1.2.13": + version "1.2.13" + resolved "https://registry.yarnpkg.com/@oven/bun-linux-aarch64-musl/-/bun-linux-aarch64-musl-1.2.13.tgz#46fee4917f9d9449240be996d50f30c5b10eb5ad" + integrity sha512-P56m718KXeyu4Vq5fsESFktfu+0Us1jhu/ZzgHYFRYJcm/hjs6AUA/RJtUAifFy5PNAM5IJdrYl3xPsE8Wa+pg== + +"@oven/bun-linux-aarch64@1.2.13": + version "1.2.13" + resolved "https://registry.yarnpkg.com/@oven/bun-linux-aarch64/-/bun-linux-aarch64-1.2.13.tgz#bbbbcdd4b138bd657b91b96fea51b1250d22a536" + integrity sha512-hocSJmblX4CCjP1HpaM64I65erB+CONUCCwKzGGOfLGLobVi+vn/G56UaYWsje1y/Z7WlVaUSgKYVWl7EJ6T9g== + +"@oven/bun-linux-x64-baseline@1.2.13": + version "1.2.13" + resolved "https://registry.yarnpkg.com/@oven/bun-linux-x64-baseline/-/bun-linux-x64-baseline-1.2.13.tgz#ee57f67edcb7961d801de01c39844be59cc919c4" + integrity sha512-9n1ai2ejEpxEMqpbHQMWFyvacq3MYsB7gh5mxRlFwhNFPCWu/Sv6gyrO+q2vkOYgcEIGhJb6dqJ6L9vBNaL61A== + +"@oven/bun-linux-x64-musl-baseline@1.2.13": + version "1.2.13" + resolved "https://registry.yarnpkg.com/@oven/bun-linux-x64-musl-baseline/-/bun-linux-x64-musl-baseline-1.2.13.tgz#e4307ccd0082d86c451b595286d1dc112bde7dd6" + integrity sha512-VI8hVdfqk0QmbAbyrsIdo2O95n3fkbt72E0h3Wu69cHD1iKJqRXG28R8QoHdehoLSJnKVzRTwsUzHp764nefWQ== + +"@oven/bun-linux-x64-musl@1.2.13": + version "1.2.13" + resolved "https://registry.yarnpkg.com/@oven/bun-linux-x64-musl/-/bun-linux-x64-musl-1.2.13.tgz#95634d331aca57a86e4a9f6009be5a9a9f3f602f" + integrity sha512-w5Ob+GM3Ww4yRA6f1N845o6wEvuwHSmipFUGaRaVp4UELrFnIV9G3pmrlBbYHFnWhk13o8Q7H1/4ZphOkCRJmQ== + +"@oven/bun-linux-x64@1.2.13": + version "1.2.13" + resolved "https://registry.yarnpkg.com/@oven/bun-linux-x64/-/bun-linux-x64-1.2.13.tgz#34f02b9938dcd4ada8474280f20476557e1f8726" + integrity sha512-pf8+Kn2GLrFKLcb8JSLM6Z147Af6L9GQODpnOHM4gvXQv6E/GwQg47/o+7f1XCfzib3fdzOTJlDPvvO1rnXOTA== + +"@oven/bun-windows-x64-baseline@1.2.13": + version "1.2.13" + resolved "https://registry.yarnpkg.com/@oven/bun-windows-x64-baseline/-/bun-windows-x64-baseline-1.2.13.tgz#e3670c66efcd233af6d3b29dcd9bd59cde7a4fc9" + integrity sha512-Aiezu99fOUJJpzGuylOJryd6w9Syg2TBigHeXV2+RJsouBzvAnIEYIBA94ZspRq1ulD26Wmkk8Ae+jZ4edk9GA== + +"@oven/bun-windows-x64@1.2.13": + version "1.2.13" + resolved "https://registry.yarnpkg.com/@oven/bun-windows-x64/-/bun-windows-x64-1.2.13.tgz#89b49e8f66a5fe16558f1f8618665906fdbb6ff6" + integrity sha512-sArgbRmT7V3mUdNFaAdUcuJsuS+oeMDZLPWFSg0gtQZpRrURs9nPzEnZMmVCFo4+kPF9Tb5ujQT9uDySh6/qVg== + +"@pagefind/darwin-arm64@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@pagefind/darwin-arm64/-/darwin-arm64-1.3.0.tgz#f1e63d031ba710c98b0b83db85df9251a255f543" + integrity sha512-365BEGl6ChOsauRjyVpBjXybflXAOvoMROw3TucAROHIcdBvXk9/2AmEvGFU0r75+vdQI4LJdJdpH4Y6Yqaj4A== -"@opentelemetry/api@^1.0.1": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe" - integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== +"@pagefind/darwin-x64@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@pagefind/darwin-x64/-/darwin-x64-1.3.0.tgz#10aa3c5988daa464c5c0db5c5aa4bf72e9bbfba1" + integrity sha512-zlGHA23uuXmS8z3XxEGmbHpWDxXfPZ47QS06tGUq0HDcZjXjXHeLG+cboOy828QIV5FXsm9MjfkP5e4ZNbOkow== + +"@pagefind/linux-arm64@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@pagefind/linux-arm64/-/linux-arm64-1.3.0.tgz#cceb0391901736427738ee1232ff326a985eda8a" + integrity sha512-8lsxNAiBRUk72JvetSBXs4WRpYrQrVJXjlRRnOL6UCdBN9Nlsz0t7hWstRk36+JqHpGWOKYiuHLzGYqYAqoOnQ== + +"@pagefind/linux-x64@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@pagefind/linux-x64/-/linux-x64-1.3.0.tgz#06ec4c2907780a75d2fb65a22203c5a48abe7a82" + integrity sha512-hAvqdPJv7A20Ucb6FQGE6jhjqy+vZ6pf+s2tFMNtMBG+fzcdc91uTw7aP/1Vo5plD0dAOHwdxfkyw0ugal4kcQ== + +"@pagefind/windows-x64@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@pagefind/windows-x64/-/windows-x64-1.3.0.tgz#ce3394e5143aaca4850a33473a07628971773655" + integrity sha512-BR1bIRWOMqkf8IoU576YDhij1Wd/Zf2kX/kCI0b2qzCKC8wcc2GQJaaRMCpzvCCrmliO4vtJ6RITp/AnoYUUmQ== "@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@pkgr/core@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" - integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== +"@pkgr/core@^0.2.3": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.4.tgz#d897170a2b0ba51f78a099edccd968f7b103387c" + integrity sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw== "@polka/url@^1.0.0-next.24": - version "1.0.0-next.28" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.28.tgz#d45e01c4a56f143ee69c54dd6b12eade9e270a73" - integrity sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw== - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + version "1.0.0-next.29" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.29.tgz#5a40109a1ab5f84d6fd8fc928b19f367cbe7e7b1" + integrity sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww== -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== - -"@puppeteer/browsers@2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-2.4.1.tgz#7afd271199cc920ece2ff25109278be0a3e8a225" - integrity sha512-0kdAbmic3J09I6dT8e9vE2JOCSt13wHCW5x/ly8TSt2bDtuIWe2TgLZZDHdcziw9AVCzflMAXCrVyRIhIs44Ng== +"@puppeteer/browsers@2.10.4": + version "2.10.4" + resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-2.10.4.tgz#9f8923b206f7932a06d32271b14bbea3368b38f2" + integrity sha512-9DxbZx+XGMNdjBynIs4BRSz+M3iRDeB7qRcAr6UORFLphCIM2x3DXgOucvADiifcqCE4XePFUKcnaAMyGbrDlQ== dependencies: - debug "^4.3.7" + debug "^4.4.0" extract-zip "^2.0.1" progress "^2.0.3" - proxy-agent "^6.4.0" - semver "^7.6.3" - tar-fs "^3.0.6" - unbzip2-stream "^1.4.3" + proxy-agent "^6.5.0" + semver "^7.7.1" + tar-fs "^3.0.8" yargs "^17.7.2" -"@radix-ui/primitive@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.1.0.tgz#42ef83b3b56dccad5d703ae8c42919a68798bbe2" - integrity sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA== - -"@radix-ui/react-collection@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-collection/-/react-collection-1.1.0.tgz#f18af78e46454a2360d103c2251773028b7724ed" - integrity sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw== +"@radix-ui/primitive@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.1.2.tgz#83f415c4425f21e3d27914c12b3272a32e3dae65" + integrity sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA== + +"@radix-ui/react-accordion@^1.2.2": + version "1.2.10" + resolved "https://registry.yarnpkg.com/@radix-ui/react-accordion/-/react-accordion-1.2.10.tgz#7a83b368c809015514f75e21316633a73ac9a30c" + integrity sha512-x+URzV1siKmeXPSUIQ22L81qp2eOhjpy3tgteF+zOr4d1u0qJnFuyBF4MoQRhmKP6ivDxlvDAvqaF77gh7DOIw== + dependencies: + "@radix-ui/primitive" "1.1.2" + "@radix-ui/react-collapsible" "1.1.10" + "@radix-ui/react-collection" "1.1.6" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-direction" "1.1.1" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-primitive" "2.1.2" + "@radix-ui/react-use-controllable-state" "1.2.2" + +"@radix-ui/react-collapsible@1.1.10": + version "1.1.10" + resolved "https://registry.yarnpkg.com/@radix-ui/react-collapsible/-/react-collapsible-1.1.10.tgz#a0e75e5cd9666e8c8100d539a9f57c50d113e38b" + integrity sha512-O2mcG3gZNkJ/Ena34HurA3llPOEA/M4dJtIRMa6y/cknRDC8XY5UZBInKTsUwW5cUue9A4k0wi1XU5fKBzKe1w== + dependencies: + "@radix-ui/primitive" "1.1.2" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-presence" "1.1.4" + "@radix-ui/react-primitive" "2.1.2" + "@radix-ui/react-use-controllable-state" "1.2.2" + "@radix-ui/react-use-layout-effect" "1.1.1" + +"@radix-ui/react-collection@1.1.6": + version "1.1.6" + resolved "https://registry.yarnpkg.com/@radix-ui/react-collection/-/react-collection-1.1.6.tgz#fecf74475e4660ee99c7eb1ebfa5ccfb1a219fe4" + integrity sha512-PbhRFK4lIEw9ADonj48tiYWzkllz81TM7KVYyyMMw2cwHO7D5h4XKEblL8NlaRisTK3QTe6tBEhDccFUryxHBQ== dependencies: - "@radix-ui/react-compose-refs" "1.1.0" - "@radix-ui/react-context" "1.1.0" - "@radix-ui/react-primitive" "2.0.0" - "@radix-ui/react-slot" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-primitive" "2.1.2" + "@radix-ui/react-slot" "1.2.2" -"@radix-ui/react-compose-refs@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz#656432461fc8283d7b591dcf0d79152fae9ecc74" - integrity sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw== +"@radix-ui/react-compose-refs@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz#a2c4c47af6337048ee78ff6dc0d090b390d2bb30" + integrity sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg== -"@radix-ui/react-context@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.1.0.tgz#6df8d983546cfd1999c8512f3a8ad85a6e7fcee8" - integrity sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A== +"@radix-ui/react-context@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.1.2.tgz#61628ef269a433382c364f6f1e3788a6dc213a36" + integrity sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA== -"@radix-ui/react-context@1.1.1": +"@radix-ui/react-direction@1.1.1": version "1.1.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.1.1.tgz#82074aa83a472353bb22e86f11bcbd1c61c4c71a" - integrity sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q== - -"@radix-ui/react-direction@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-direction/-/react-direction-1.1.0.tgz#a7d39855f4d077adc2a1922f9c353c5977a09cdc" - integrity sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg== + resolved "https://registry.yarnpkg.com/@radix-ui/react-direction/-/react-direction-1.1.1.tgz#39e5a5769e676c753204b792fbe6cf508e550a14" + integrity sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw== -"@radix-ui/react-dismissable-layer@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.1.tgz#cbdcb739c5403382bdde5f9243042ba643883396" - integrity sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ== +"@radix-ui/react-dismissable-layer@1.1.9": + version "1.1.9" + resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.9.tgz#46e025ba6e6f403677e22fbb7d99b63cf7b32bca" + integrity sha512-way197PiTvNp+WBP7svMJasHl+vibhWGQDb6Mgf5mhEWJkgb85z7Lfl9TUdkqpWsf8GRNmoopx9ZxCyDzmgRMQ== dependencies: - "@radix-ui/primitive" "1.1.0" - "@radix-ui/react-compose-refs" "1.1.0" - "@radix-ui/react-primitive" "2.0.0" - "@radix-ui/react-use-callback-ref" "1.1.0" - "@radix-ui/react-use-escape-keydown" "1.1.0" + "@radix-ui/primitive" "1.1.2" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-primitive" "2.1.2" + "@radix-ui/react-use-callback-ref" "1.1.1" + "@radix-ui/react-use-escape-keydown" "1.1.1" -"@radix-ui/react-id@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-1.1.0.tgz#de47339656594ad722eb87f94a6b25f9cffae0ed" - integrity sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA== +"@radix-ui/react-icons@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-icons/-/react-icons-1.3.2.tgz#09be63d178262181aeca5fb7f7bc944b10a7f441" + integrity sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g== + +"@radix-ui/react-id@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-1.1.1.tgz#1404002e79a03fe062b7e3864aa01e24bd1471f7" + integrity sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg== dependencies: - "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-use-layout-effect" "1.1.1" "@radix-ui/react-navigation-menu@^1.2.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.1.tgz#31989e026adecfbb2f7bd1108ee6fffb830b2ec1" - integrity sha512-egDo0yJD2IK8L17gC82vptkvW1jLeni1VuqCyzY727dSJdk5cDjINomouLoNk8RVF7g2aNIfENKWL4UzeU9c8Q== - dependencies: - "@radix-ui/primitive" "1.1.0" - "@radix-ui/react-collection" "1.1.0" - "@radix-ui/react-compose-refs" "1.1.0" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-direction" "1.1.0" - "@radix-ui/react-dismissable-layer" "1.1.1" - "@radix-ui/react-id" "1.1.0" - "@radix-ui/react-presence" "1.1.1" - "@radix-ui/react-primitive" "2.0.0" - "@radix-ui/react-use-callback-ref" "1.1.0" - "@radix-ui/react-use-controllable-state" "1.1.0" - "@radix-ui/react-use-layout-effect" "1.1.0" - "@radix-ui/react-use-previous" "1.1.0" - "@radix-ui/react-visually-hidden" "1.1.0" - -"@radix-ui/react-presence@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.1.1.tgz#98aba423dba5e0c687a782c0669dcd99de17f9b1" - integrity sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A== + version "1.2.12" + resolved "https://registry.yarnpkg.com/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.12.tgz#d86b4ea4e12617186f912a0ceefb81379cd60a82" + integrity sha512-iExvawdu7n6DidDJRU5pMTdi+Z3DaVPN4UZbAGuTs7nJA8P4RvvkEz+XYI2UJjb/Hh23RrH19DakgZNLdaq9Bw== + dependencies: + "@radix-ui/primitive" "1.1.2" + "@radix-ui/react-collection" "1.1.6" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-direction" "1.1.1" + "@radix-ui/react-dismissable-layer" "1.1.9" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-presence" "1.1.4" + "@radix-ui/react-primitive" "2.1.2" + "@radix-ui/react-use-callback-ref" "1.1.1" + "@radix-ui/react-use-controllable-state" "1.2.2" + "@radix-ui/react-use-layout-effect" "1.1.1" + "@radix-ui/react-use-previous" "1.1.1" + "@radix-ui/react-visually-hidden" "1.2.2" + +"@radix-ui/react-presence@1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.1.4.tgz#253ac0ad4946c5b4a9c66878335f5cf07c967ced" + integrity sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA== dependencies: - "@radix-ui/react-compose-refs" "1.1.0" - "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-use-layout-effect" "1.1.1" -"@radix-ui/react-primitive@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz#fe05715faa9203a223ccc0be15dc44b9f9822884" - integrity sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw== +"@radix-ui/react-primitive@2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-2.1.2.tgz#03f64f957719c761d22c2f92cc43ffb64bd42cc8" + integrity sha512-uHa+l/lKfxuDD2zjN/0peM/RhhSmRjr5YWdk/37EnSv1nJ88uvG85DPexSm8HdFQROd2VdERJ6ynXbkCFi+APw== dependencies: - "@radix-ui/react-slot" "1.1.0" + "@radix-ui/react-slot" "1.2.2" -"@radix-ui/react-slot@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.1.0.tgz#7c5e48c36ef5496d97b08f1357bb26ed7c714b84" - integrity sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw== +"@radix-ui/react-slot@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.2.2.tgz#18e6533e778a2051edc2ad0773da8e22f03f626a" + integrity sha512-y7TBO4xN4Y94FvcWIOIh18fM4R1A8S4q1jhoz4PNzOoHsFcN8pogcFmZrTYAm4F9VRUrWP/Mw7xSKybIeRI+CQ== dependencies: - "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.2" -"@radix-ui/react-use-callback-ref@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz#bce938ca413675bc937944b0d01ef6f4a6dc5bf1" - integrity sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw== +"@radix-ui/react-use-callback-ref@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz#62a4dba8b3255fdc5cc7787faeac1c6e4cc58d40" + integrity sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg== -"@radix-ui/react-use-controllable-state@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz#1321446857bb786917df54c0d4d084877aab04b0" - integrity sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw== +"@radix-ui/react-use-controllable-state@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz#905793405de57d61a439f4afebbb17d0645f3190" + integrity sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg== dependencies: - "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-use-effect-event" "0.0.2" + "@radix-ui/react-use-layout-effect" "1.1.1" -"@radix-ui/react-use-escape-keydown@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz#31a5b87c3b726504b74e05dac1edce7437b98754" - integrity sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw== +"@radix-ui/react-use-effect-event@0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz#090cf30d00a4c7632a15548512e9152217593907" + integrity sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA== dependencies: - "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-use-layout-effect" "1.1.1" -"@radix-ui/react-use-layout-effect@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz#3c2c8ce04827b26a39e442ff4888d9212268bd27" - integrity sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w== +"@radix-ui/react-use-escape-keydown@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz#b3fed9bbea366a118f40427ac40500aa1423cc29" + integrity sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g== + dependencies: + "@radix-ui/react-use-callback-ref" "1.1.1" -"@radix-ui/react-use-previous@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz#d4dd37b05520f1d996a384eb469320c2ada8377c" - integrity sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og== +"@radix-ui/react-use-layout-effect@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz#0c4230a9eed49d4589c967e2d9c0d9d60a23971e" + integrity sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ== -"@radix-ui/react-visually-hidden@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz#ad47a8572580f7034b3807c8e6740cd41038a5a2" - integrity sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ== +"@radix-ui/react-use-previous@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz#1a1ad5568973d24051ed0af687766f6c7cb9b5b5" + integrity sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ== + +"@radix-ui/react-visually-hidden@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.2.tgz#aa6d0f95b0cd50f08b02393d25132f52ca7861dc" + integrity sha512-ORCmRUbNiZIv6uV5mhFrhsIKw4UX/N3syZtyqvry61tbGm4JlgQuSn0hk5TwCARsCjkcnuRkSdCE3xfb+ADHew== dependencies: - "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-primitive" "2.1.2" "@react-aria/focus@^3.17.1": - version "3.18.4" - resolved "https://registry.yarnpkg.com/@react-aria/focus/-/focus-3.18.4.tgz#a6e95896bc8680d1b5bcd855e983fc2c195a1a55" - integrity sha512-91J35077w9UNaMK1cpMUEFRkNNz0uZjnSwiyBCFuRdaVuivO53wNC9XtWSDNDdcO5cGy87vfJRVAiyoCn/mjqA== + version "3.20.2" + resolved "https://registry.yarnpkg.com/@react-aria/focus/-/focus-3.20.2.tgz#f20cd830d2536b905169a547228c5d5471a874bc" + integrity sha512-Q3rouk/rzoF/3TuH6FzoAIKrl+kzZi9LHmr8S5EqLAOyP9TXIKG34x2j42dZsAhrw7TbF9gA8tBKwnCNH4ZV+Q== dependencies: - "@react-aria/interactions" "^3.22.4" - "@react-aria/utils" "^3.25.3" - "@react-types/shared" "^3.25.0" + "@react-aria/interactions" "^3.25.0" + "@react-aria/utils" "^3.28.2" + "@react-types/shared" "^3.29.0" "@swc/helpers" "^0.5.0" clsx "^2.0.0" -"@react-aria/interactions@^3.21.3", "@react-aria/interactions@^3.22.4": - version "3.22.4" - resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.22.4.tgz#88ed61ab6a485f869bc1f65ae6688d48ca96064b" - integrity sha512-E0vsgtpItmknq/MJELqYJwib+YN18Qag8nroqwjk1qOnBa9ROIkUhWJerLi1qs5diXq9LHKehZDXRlwPvdEFww== +"@react-aria/interactions@^3.21.3", "@react-aria/interactions@^3.25.0": + version "3.25.0" + resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.25.0.tgz#a57dcec4b8c429756770fbe969263588bb879110" + integrity sha512-GgIsDLlO8rDU/nFn6DfsbP9rfnzhm8QFjZkB9K9+r+MTSCn7bMntiWQgMM+5O6BiA8d7C7x4zuN4bZtc0RBdXQ== dependencies: - "@react-aria/ssr" "^3.9.6" - "@react-aria/utils" "^3.25.3" - "@react-types/shared" "^3.25.0" + "@react-aria/ssr" "^3.9.8" + "@react-aria/utils" "^3.28.2" + "@react-stately/flags" "^3.1.1" + "@react-types/shared" "^3.29.0" "@swc/helpers" "^0.5.0" -"@react-aria/ssr@^3.9.6": - version "3.9.6" - resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.9.6.tgz#a9e8b351acdc8238f2b5215b0ce904636c6ea690" - integrity sha512-iLo82l82ilMiVGy342SELjshuWottlb5+VefO3jOQqQRNYnJBFpUSadswDPbRimSgJUZuFwIEYs6AabkP038fA== +"@react-aria/ssr@^3.9.8": + version "3.9.8" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.9.8.tgz#9c06f1860abac629517898c1b5424be5d03bc112" + integrity sha512-lQDE/c9uTfBSDOjaZUJS8xP2jCKVk4zjQeIlCH90xaLhHDgbpCdns3xvFpJJujfj3nI4Ll9K7A+ONUBDCASOuw== dependencies: "@swc/helpers" "^0.5.0" -"@react-aria/utils@^3.25.3": - version "3.25.3" - resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.25.3.tgz#cad9bffc07b045cdc283df2cb65c18747acbf76d" - integrity sha512-PR5H/2vaD8fSq0H/UB9inNbc8KDcVmW6fYAfSWkkn+OAdhTTMVKqXXrZuZBWyFfSD5Ze7VN6acr4hrOQm2bmrA== +"@react-aria/utils@^3.28.2": + version "3.28.2" + resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.28.2.tgz#f698bc54b2cb506c2f81d1ce92543ae39aae3968" + integrity sha512-J8CcLbvnQgiBn54eeEvQQbIOfBF3A1QizxMw9P4cl9MkeR03ug7RnjTIdJY/n2p7t59kLeAB3tqiczhcj+Oi5w== dependencies: - "@react-aria/ssr" "^3.9.6" - "@react-stately/utils" "^3.10.4" - "@react-types/shared" "^3.25.0" + "@react-aria/ssr" "^3.9.8" + "@react-stately/flags" "^3.1.1" + "@react-stately/utils" "^3.10.6" + "@react-types/shared" "^3.29.0" "@swc/helpers" "^0.5.0" clsx "^2.0.0" -"@react-stately/utils@^3.10.4": - version "3.10.4" - resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.10.4.tgz#310663a834b67048d305e1680ed258130092fe51" - integrity sha512-gBEQEIMRh5f60KCm7QKQ2WfvhB2gLUr9b72sqUdIZ2EG+xuPgaIlCBeSicvjmjBvYZwOjoOEnmIkcx2GHp/HWw== +"@react-stately/flags@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@react-stately/flags/-/flags-3.1.1.tgz#c47d540c4196798f4cc0ee83f844099b4d57b876" + integrity sha512-XPR5gi5LfrPdhxZzdIlJDz/B5cBf63l4q6/AzNqVWFKgd0QqY5LvWJftXkklaIUpKSJkIKQb8dphuZXDtkWNqg== + dependencies: + "@swc/helpers" "^0.5.0" + +"@react-stately/utils@^3.10.6": + version "3.10.6" + resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.10.6.tgz#2ae25c2773e53a4ebdaf39264aa27145b758dc1b" + integrity sha512-O76ip4InfTTzAJrg8OaZxKU4vvjMDOpfA/PGNOytiXwBbkct2ZeZwaimJ8Bt9W1bj5VsZ81/o/tW4BacbdDOMA== dependencies: "@swc/helpers" "^0.5.0" -"@react-types/shared@^3.25.0": - version "3.25.0" - resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.25.0.tgz#7223baf72256e918a3c29081bb1ecc6fad4fbf58" - integrity sha512-OZSyhzU6vTdW3eV/mz5i6hQwQUhkRs7xwY2d1aqPvTdMe0+2cY7Fwp45PAiwYLEj73i9ro2FxF9qC4DvHGSCgQ== +"@react-types/shared@^3.29.0": + version "3.29.0" + resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.29.0.tgz#f29bdad3bff1336aaa754d7abc420da2f014d931" + integrity sha512-IDQYu/AHgZimObzCFdNl1LpZvQW/xcfLt3v20sorl5qRucDVj4S9os98sVTZ4IRIBjmS+MkjqpR5E70xan7ooA== "@repeaterjs/repeater@^3.0.4", "@repeaterjs/repeater@^3.0.6": version "3.0.6" @@ -2913,73 +2934,70 @@ resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== -"@shikijs/core@1.22.2": - version "1.22.2" - resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.22.2.tgz#9c22bd4cc8a4d6c062461cfd35e1faa6c617ca25" - integrity sha512-bvIQcd8BEeR1yFvOYv6HDiyta2FFVePbzeowf5pPS1avczrPK+cjmaxxh0nx5QzbON7+Sv0sQfQVciO7bN72sg== +"@shikijs/core@1.29.2": + version "1.29.2" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.29.2.tgz#9c051d3ac99dd06ae46bd96536380c916e552bf3" + integrity sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ== dependencies: - "@shikijs/engine-javascript" "1.22.2" - "@shikijs/engine-oniguruma" "1.22.2" - "@shikijs/types" "1.22.2" - "@shikijs/vscode-textmate" "^9.3.0" + "@shikijs/engine-javascript" "1.29.2" + "@shikijs/engine-oniguruma" "1.29.2" + "@shikijs/types" "1.29.2" + "@shikijs/vscode-textmate" "^10.0.1" "@types/hast" "^3.0.4" - hast-util-to-html "^9.0.3" + hast-util-to-html "^9.0.4" -"@shikijs/engine-javascript@1.22.2": - version "1.22.2" - resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-1.22.2.tgz#62e90dbd2ed1d78b972ad7d0a1f8ffaaf5e43279" - integrity sha512-iOvql09ql6m+3d1vtvP8fLCVCK7BQD1pJFmHIECsujB0V32BJ0Ab6hxk1ewVSMFA58FI0pR2Had9BKZdyQrxTw== +"@shikijs/engine-javascript@1.29.2": + version "1.29.2" + resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-1.29.2.tgz#a821ad713a3e0b7798a1926fd9e80116e38a1d64" + integrity sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A== dependencies: - "@shikijs/types" "1.22.2" - "@shikijs/vscode-textmate" "^9.3.0" - oniguruma-to-js "0.4.3" + "@shikijs/types" "1.29.2" + "@shikijs/vscode-textmate" "^10.0.1" + oniguruma-to-es "^2.2.0" -"@shikijs/engine-oniguruma@1.22.2": - version "1.22.2" - resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-1.22.2.tgz#b12a44e3faf486e19fbcf8952f4b56b9b9b8d9b8" - integrity sha512-GIZPAGzQOy56mGvWMoZRPggn0dTlBf1gutV5TdceLCZlFNqWmuc7u+CzD0Gd9vQUTgLbrt0KLzz6FNprqYAxlA== +"@shikijs/engine-oniguruma@1.29.2": + version "1.29.2" + resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-1.29.2.tgz#d879717ced61d44e78feab16f701f6edd75434f1" + integrity sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA== dependencies: - "@shikijs/types" "1.22.2" - "@shikijs/vscode-textmate" "^9.3.0" + "@shikijs/types" "1.29.2" + "@shikijs/vscode-textmate" "^10.0.1" -"@shikijs/twoslash@^1.0.0": - version "1.22.2" - resolved "https://registry.yarnpkg.com/@shikijs/twoslash/-/twoslash-1.22.2.tgz#c055b60a0759d3e1c4cd5d5d94bc0c17a20eb39a" - integrity sha512-4R3A7aH/toZgtlveXHKk01nIsvn8hjAfPJ1aT550zcV4qK6vK/tfaEyYtaljOaY1wig2l5+8sKjNSEz3PcSiEw== +"@shikijs/langs@1.29.2": + version "1.29.2" + resolved "https://registry.yarnpkg.com/@shikijs/langs/-/langs-1.29.2.tgz#4f1de46fde8991468c5a68fa4a67dd2875d643cd" + integrity sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ== dependencies: - "@shikijs/core" "1.22.2" - "@shikijs/types" "1.22.2" - twoslash "^0.2.12" + "@shikijs/types" "1.29.2" -"@shikijs/types@1.22.2": - version "1.22.2" - resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-1.22.2.tgz#695a283f19963fe0638fc2646862ba5cfc4623a8" - integrity sha512-NCWDa6LGZqTuzjsGfXOBWfjS/fDIbDdmVDug+7ykVe1IKT4c1gakrvlfFYp5NhAXH/lyqLM8wsAPo5wNy73Feg== +"@shikijs/themes@1.29.2": + version "1.29.2" + resolved "https://registry.yarnpkg.com/@shikijs/themes/-/themes-1.29.2.tgz#293cc5c83dd7df3fdc8efa25cec8223f3a6acb0d" + integrity sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g== dependencies: - "@shikijs/vscode-textmate" "^9.3.0" - "@types/hast" "^3.0.4" - -"@shikijs/vscode-textmate@^9.3.0": - version "9.3.0" - resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-9.3.0.tgz#b2f1776e488c1d6c2b6cd129bab62f71bbc9c7ab" - integrity sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA== + "@shikijs/types" "1.29.2" -"@sideway/address@^4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.5.tgz#4bc149a0076623ced99ca8208ba780d65a99b9d5" - integrity sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q== +"@shikijs/twoslash@^1.0.0": + version "1.29.2" + resolved "https://registry.yarnpkg.com/@shikijs/twoslash/-/twoslash-1.29.2.tgz#c4b683e25151d66cc35b4d817fcbc1e665e8df67" + integrity sha512-2S04ppAEa477tiaLfGEn1QJWbZUmbk8UoPbAEw4PifsrxkBXtAtOflIZJNtuCwz8ptc/TPxy7CO7gW4Uoi6o/g== dependencies: - "@hapi/hoek" "^9.0.0" + "@shikijs/core" "1.29.2" + "@shikijs/types" "1.29.2" + twoslash "^0.2.12" -"@sideway/formula@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" - integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== +"@shikijs/types@1.29.2": + version "1.29.2" + resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-1.29.2.tgz#a93fdb410d1af8360c67bf5fc1d1a68d58e21c4f" + integrity sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw== + dependencies: + "@shikijs/vscode-textmate" "^10.0.1" + "@types/hast" "^3.0.4" -"@sideway/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" - integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== +"@shikijs/vscode-textmate@^10.0.1": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz#a90ab31d0cc1dfb54c66a69e515bf624fa7b2224" + integrity sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg== "@sinclair/typebox@^0.27.8": version "0.27.8" @@ -3000,63 +3018,73 @@ dependencies: "@sinonjs/commons" "^3.0.0" +"@sveltejs/acorn-typescript@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.5.tgz#f518101d1b2e12ce80854f1cd850d3b9fb91d710" + integrity sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ== + "@swc/counter@0.1.3": version "0.1.3" resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== -"@swc/helpers@0.5.13", "@swc/helpers@^0.5.0": - version "0.5.13" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.13.tgz#33e63ff3cd0cade557672bd7888a39ce7d115a8c" - integrity sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w== - dependencies: - tslib "^2.4.0" - -"@tanstack/react-virtual@^3.8.1": - version "3.10.9" - resolved "https://registry.yarnpkg.com/@tanstack/react-virtual/-/react-virtual-3.10.9.tgz#40606b6dd8aba8e977f576d8f7df07f69ca63eea" - integrity sha512-OXO2uBjFqA4Ibr2O3y0YMnkrRWGVNqcvHQXmGvMu6IK8chZl3PrDxFXdGZ2iZkSrKh3/qUYoFqYe+Rx23RoU0g== +"@swc/helpers@0.5.15", "@swc/helpers@^0.5.0": + version "0.5.15" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.15.tgz#79efab344c5819ecf83a43f3f9f811fc84b516d7" + integrity sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g== dependencies: - "@tanstack/virtual-core" "3.10.9" + tslib "^2.8.0" -"@tanstack/virtual-core@3.10.9": - version "3.10.9" - resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.10.9.tgz#55710c92b311fdaa8d8c66682a0dbdd684bc77c4" - integrity sha512-kBknKOKzmeR7lN+vSadaKWXaLS0SZZG+oqpQ/k80Q6g9REn6zRHS/ZYdrIzHnpHgy/eWs00SujveUN/GJT2qTw== - -"@theguild/components@7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@theguild/components/-/components-7.1.0.tgz#fc9fafa302099d1ec3e656751f84062e0ff36527" - integrity sha512-jrCVgsEU9RUoDz5kosJPEfNyXeZC8muDuBJCRi8YM7+acB55NfHU+geI8H49sTU9T3ZthNNh5uHrpaPJVcnvbw== - dependencies: - "@giscus/react" "3.0.0" - "@next/bundle-analyzer" "15.0.1" +"@tailwindcss/container-queries@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@tailwindcss/container-queries/-/container-queries-0.1.1.tgz#9a759ce2cb8736a4c6a0cb93aeb740573a731974" + integrity sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA== + +"@tanstack/react-virtual@^3.13.6": + version "3.13.8" + resolved "https://registry.yarnpkg.com/@tanstack/react-virtual/-/react-virtual-3.13.8.tgz#ce7c438ddc379a090a1b01f5436d5b2a1ebd750f" + integrity sha512-meS2AanUg50f3FBSNoAdBSRAh8uS0ue01qm7zrw65KGJtiXB9QXfybqZwkh4uFpRv2iX/eu5tjcH5wqUpwYLPg== + dependencies: + "@tanstack/virtual-core" "3.13.8" + +"@tanstack/virtual-core@3.13.8": + version "3.13.8" + resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.13.8.tgz#6346e688521c1f086f508ccbebaad0b472a2aefb" + integrity sha512-BT6w89Hqy7YKaWewYzmecXQzcJh6HTBbKYJIIkMaNU49DZ06LoTV3z32DWWEdUsgW6n1xTmwTLs4GtWrZC261w== + +"@theguild/components@9.7.1": + version "9.7.1" + resolved "https://registry.yarnpkg.com/@theguild/components/-/components-9.7.1.tgz#f9a08fb6f40f5080d3890a6ee542536873af98c5" + integrity sha512-70i8aHV2dAachECiywmg0cGTPhCDnZ1juE4N49WskSy2CSFPXqKI/Jey0qe2fRapMNyURXj/kqOmaaZS9JHhAg== + dependencies: + "@giscus/react" "3.1.0" + "@next/bundle-analyzer" "15.1.5" + "@radix-ui/react-accordion" "^1.2.2" + "@radix-ui/react-icons" "^1.3.2" "@radix-ui/react-navigation-menu" "^1.2.0" - "@theguild/tailwind-config" "0.5.0" clsx "2.1.1" fuzzy "0.1.3" - next-videos "1.5.0" - nextra "3.1.0" - nextra-theme-docs "3.1.0" + nextra "4.0.5" + nextra-theme-docs "4.0.5" react-paginate "8.2.0" react-player "2.16.0" - remark-mdx-disable-explicit-jsx "0.1.0" semver "^7.3.8" tailwind-merge "^2.5.2" + unist-util-visit "5.0.0" -"@theguild/prettier-config@2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@theguild/prettier-config/-/prettier-config-2.0.7.tgz#8e6c735990f49248050352fb2f753d957136725c" - integrity sha512-FqpgGAaAFbYHFQmkWEZjIhqmk+Oow82/t+0k408qoBd9RsB4QTwSQSDDbNSgFa/K7c8Dcwau5z3XbHUR/ksKqw== +"@theguild/prettier-config@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@theguild/prettier-config/-/prettier-config-3.0.1.tgz#83b662197277a0de8a211c09cd43fd4cc59be614" + integrity sha512-qSSAHGwIg2cCIyXim5MUe/Icw+DmGEqZz1TtGR55ayZc2BtXme/hV8J068lx19dzJvodDJgYSyWw7Jsu4F05OA== dependencies: - "@ianvs/prettier-plugin-sort-imports" "4.3.1" + "@ianvs/prettier-plugin-sort-imports" "4.4.1" prettier-plugin-pkg "^0.18.0" - prettier-plugin-sh "^0.14.0" + prettier-plugin-sh "^0.15.0" -"@theguild/remark-mermaid@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@theguild/remark-mermaid/-/remark-mermaid-0.1.3.tgz#55bd0ff5cd890c49f8137e76b5158abd787c3642" - integrity sha512-2FjVlaaKXK7Zj7UJAgOVTyaahn/3/EAfqYhyXg0BfDBVUl+lXcoIWRaxzqfnDr2rv8ax6GsC5mNh6hAaT86PDw== +"@theguild/remark-mermaid@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@theguild/remark-mermaid/-/remark-mermaid-0.2.0.tgz#46de4d78e9696cc7a1a04bad1ffed9c4a2052c3e" + integrity sha512-o8n57TJy0OI4PCrNw8z6S+vpHtrwoQZzTA5Y3fL0U1NDRIoMg/78duWgEBFsCZcWM1G6zjE91yg1aKCsDwgE2Q== dependencies: mermaid "^11.0.0" unist-util-visit "^5.0.0" @@ -3069,59 +3097,18 @@ npm-to-yarn "^3.0.0" unist-util-visit "^5.0.0" -"@theguild/tailwind-config@0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@theguild/tailwind-config/-/tailwind-config-0.5.0.tgz#bab34878b8c570da2ecb6fa6f352de095639721f" - integrity sha512-TZTB1kOtnipBxePHCDEwX4G31PWuGiI9+Vim0rryP2t0210wTuz02dN17kz6ClQ/bnNPFaO+X2esy+acfh346A== +"@theguild/tailwind-config@0.6.3": + version "0.6.3" + resolved "https://registry.yarnpkg.com/@theguild/tailwind-config/-/tailwind-config-0.6.3.tgz#7c1ad4ef0795313a6e21cf64bb7502dc7ce6507f" + integrity sha512-kmHHBnGRPiFtyBNuWCuKdC+kymh16OuFTD+R/Yb3yo+mNFJlOzGYdcu2ay6g1M+9+OlwSffifD2Zo97AZUwaSg== dependencies: - autoprefixer "^10.4.19" - cssnano "^7.0.0" - postcss "^8.4.38" - postcss-import "^16.1.0" - tailwindcss "^3.4.3" - -"@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + "@tailwindcss/container-queries" "^0.1.1" "@tootallnate/quickjs-emscripten@^0.23.0": version "0.23.0" resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c" integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA== -"@trysound/sax@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" - integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== - -"@tsconfig/node10@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" - integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/acorn@^4.0.0": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22" - integrity sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ== - dependencies: - "@types/estree" "*" - "@types/apollo-upload-client@17.0.5": version "17.0.5" resolved "https://registry.yarnpkg.com/@types/apollo-upload-client/-/apollo-upload-client-17.0.5.tgz#a03d69b5cb86c7396e466f8029b2fa0943a73cc9" @@ -3143,9 +3130,9 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.8" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" - integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + version "7.27.0" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9" + integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg== dependencies: "@babel/types" "^7.0.0" @@ -3157,10 +3144,10 @@ "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*", "@types/babel__traverse@7.20.6", "@types/babel__traverse@^7.0.6": - version "7.20.6" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7" - integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== +"@types/babel__traverse@*", "@types/babel__traverse@7.20.7", "@types/babel__traverse@^7.0.6": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.7.tgz#968cdc2366ec3da159f61166428ee40f370e56c2" + integrity sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng== dependencies: "@babel/types" "^7.20.7" @@ -3173,9 +3160,9 @@ "@types/node" "*" "@types/braces@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/braces/-/braces-3.0.4.tgz#403488dc1c8d0db288270d3bbf0ce5f9c45678b4" - integrity sha512-0WR3b8eaISjEW7RpZnclONaLFDf7buaowRHdqLp4vLj54AsSAYWfh3DRbfiYJY9XDxMgx1B4sE1Afw2PGpuHOA== + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/braces/-/braces-3.0.5.tgz#91159f97e516630c7946d8b0d5bf60245986e04c" + integrity sha512-SQFof9H+LXeWNz8wDe7oN5zu7ket0qwMu5vZubW4GCJ8Kkeh6nBWUz87+KTz/G3Kqsrp0j/W253XJb3KMEeg3w== "@types/busboy@^1.5.0": version "1.5.4" @@ -3292,9 +3279,9 @@ "@types/d3-color" "*" "@types/d3-path@*": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.1.0.tgz#2b907adce762a78e98828f0b438eaca339ae410a" - integrity sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ== + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.1.1.tgz#f632b380c3aca1dba8e34aa049bcd6a4af23df8a" + integrity sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg== "@types/d3-polygon@*": version "3.0.2" @@ -3312,14 +3299,14 @@ integrity sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ== "@types/d3-scale-chromatic@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz#fc0db9c10e789c351f4c42d96f31f2e4df8f5644" - integrity sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#dc6d4f9a98376f18ea50bad6c39537f1b5463c39" + integrity sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ== "@types/d3-scale@*": - version "4.0.8" - resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.8.tgz#d409b5f9dcf63074464bf8ddfb8ee5a1f95945bb" - integrity sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ== + version "4.0.9" + resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.9.tgz#57a2f707242e6fe1de81ad7bfcccaaf606179afb" + integrity sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw== dependencies: "@types/d3-time" "*" @@ -3329,9 +3316,9 @@ integrity sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w== "@types/d3-shape@*": - version "3.1.6" - resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.6.tgz#65d40d5a548f0a023821773e39012805e6e31a72" - integrity sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA== + version "3.1.7" + resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.7.tgz#2b7b423dc2dfe69c8c93596e673e37443348c555" + integrity sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg== dependencies: "@types/d3-path" "*" @@ -3341,9 +3328,9 @@ integrity sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg== "@types/d3-time@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.3.tgz#3c186bbd9d12b9d84253b6be6487ca56b54f88be" - integrity sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.4.tgz#8472feecd639691450dd8000eb33edd444e1323f" + integrity sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g== "@types/d3-timer@*": version "3.0.2" @@ -3406,20 +3393,13 @@ resolved "https://registry.yarnpkg.com/@types/dateformat/-/dateformat-3.0.1.tgz#98d747a2e5e9a56070c6bf14e27bff56204e34cc" integrity sha512-KlPPdikagvL6ELjWsljbyDIPzNCeliYkqRpI+zea99vBBbCIA5JNshZAwQKTON139c87y9qvTFVgkFd14rtS4g== -"@types/debug@4.1.12", "@types/debug@^4.0.0": +"@types/debug@^4.0.0": version "4.1.12" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== dependencies: "@types/ms" "*" -"@types/dompurify@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/dompurify/-/dompurify-3.0.5.tgz#02069a2fcb89a163bacf1a788f73cb415dd75cb7" - integrity sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg== - dependencies: - "@types/trusted-types" "*" - "@types/eslint-scope@^3.7.7": version "3.7.7" resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" @@ -3443,40 +3423,39 @@ dependencies: "@types/estree" "*" -"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.1", "@types/estree@^1.0.5", "@types/estree@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" - integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== +"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.5", "@types/estree@^1.0.6": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.7.tgz#4158d3105276773d5b7695cd4834b1722e4f37a8" + integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ== "@types/express-serve-static-core@^5.0.0": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.1.tgz#3c9997ae9d00bc236e45c6374e84f2596458d9db" - integrity sha512-CRICJIl0N5cXDONAdlTv5ShATZ4HEwk6kDDIW2/w9qOWKg+NU/5F8wYRWCrONad0/UKkloNSmmyN/wX4rtpbVA== + version "5.0.6" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz#41fec4ea20e9c7b22f024ab88a95c6bb288f51b8" + integrity sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/send" "*" -"@types/express@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.0.tgz#13a7d1f75295e90d19ed6e74cab3678488eaa96c" - integrity sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ== +"@types/express@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.1.tgz#138d741c6e5db8cc273bec5285cd6e9d0779fc9f" + integrity sha512-UZUw8vjpWFXuDnjFTh7/5c2TWDlQqeXHi6hcN7F2XSVT5P+WmUnnbFS3KA6Jnc6IsEqI2qCVu2bK0R0J4A8ZQQ== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^5.0.0" - "@types/qs" "*" "@types/serve-static" "*" -"@types/extract-files@*", "@types/extract-files@8.1.3": - version "8.1.3" - resolved "https://registry.yarnpkg.com/@types/extract-files/-/extract-files-8.1.3.tgz#03b99c71298f21cd9c555ca7bcd7737756b63959" - integrity sha512-FQT1aXHL4NuSK44A9w3aFVG3p7q04uWnKNreGVoF0jno2SlWaMuaUjUZ6If0sVPEen3UVqYxdsEPJQLpvbkHEg== +"@types/extract-files@*": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@types/extract-files/-/extract-files-13.0.1.tgz#3ec057a3fa25f778245a76a17271d23b71ee31d7" + integrity sha512-/fRbzc2lAd7jDJSSnxWiUyXWjdUZZ4HbISLJzVgt1AvrdOa7U49YRPcvuCUywkmURZ7uwJOheDjx19itbQ5KvA== "@types/geojson@*": - version "7946.0.14" - resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.14.tgz#319b63ad6df705ee2a65a73ef042c8271e696613" - integrity sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg== + version "7946.0.16" + resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.16.tgz#8ebe53d69efada7044454e3305c19017d97ced2a" + integrity sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg== "@types/graceful-fs@^4.1.3": version "4.1.9" @@ -3485,13 +3464,6 @@ dependencies: "@types/node" "*" -"@types/hast@^2.3.4": - version "2.3.10" - resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.10.tgz#5c9d9e0b304bbb8879b857225c5ebab2d81d7643" - integrity sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw== - dependencies: - "@types/unist" "^2" - "@types/hast@^3.0.0", "@types/hast@^3.0.4": version "3.0.4" resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" @@ -3536,12 +3508,7 @@ expect "^29.0.0" pretty-format "^29.0.0" -"@types/js-yaml@^4.0.0": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.9.tgz#cd82382c4f902fed9691a2ed79ec68c5898af4c2" - integrity sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg== - -"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -3563,15 +3530,10 @@ dependencies: "@types/lodash" "*" -"@types/lodash@*", "@types/lodash@4.17.13": - version "4.17.13" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.13.tgz#786e2d67cfd95e32862143abe7463a7f90c300eb" - integrity sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg== - -"@types/long@^4.0.0": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" - integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== +"@types/lodash@*", "@types/lodash@4.17.16": + version "4.17.16" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.16.tgz#94ae78fab4a38d73086e962d0b65c30d816bfb0a" + integrity sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g== "@types/mdast@^4.0.0": version "4.0.4" @@ -3598,9 +3560,9 @@ integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== "@types/ms@*": - version "0.7.34" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" - integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" + integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== "@types/nlcst@^2.0.0": version "2.0.3" @@ -3609,20 +3571,20 @@ dependencies: "@types/unist" "*" -"@types/node-fetch@^2.6.2": - version "2.6.11" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.11.tgz#9b39b78665dae0e82a08f02f4967d62c66f95d24" - integrity sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g== +"@types/node-fetch@^2": + version "2.6.12" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.12.tgz#8ab5c3ef8330f13100a7479e2cd56d3386830a03" + integrity sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA== dependencies: "@types/node" "*" form-data "^4.0.0" -"@types/node@*", "@types/node@22.9.0": - version "22.9.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.9.0.tgz#b7f16e5c3384788542c72dc3d561a7ceae2c0365" - integrity sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ== +"@types/node@*", "@types/node@22.15.17": + version "22.15.17" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.15.17.tgz#355ccec95f705b664e4332bb64a7f07db30b7055" + integrity sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw== dependencies: - undici-types "~6.19.8" + undici-types "~6.21.0" "@types/node@^12.7.1": version "12.20.55" @@ -3634,27 +3596,21 @@ resolved "https://registry.yarnpkg.com/@types/object-path/-/object-path-0.11.4.tgz#a14529227500faf7891d003b2c7f5772c4a5dfdc" integrity sha512-4tgJ1Z3elF/tOMpA8JLVuR9spt9Ynsf7+JjqsQ2IqtiPJtcLoHoXcT6qU4E10cPFqyXX5HDm9QwIzZhBSkLxsw== -"@types/prop-types@*": - version "15.7.13" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.13.tgz#2af91918ee12d9d32914feb13f5326658461b451" - integrity sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA== - "@types/qs@*": - version "6.9.17" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.17.tgz#fc560f60946d0aeff2f914eb41679659d3310e1a" - integrity sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ== + version "6.9.18" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.18.tgz#877292caa91f7c1b213032b34626505b746624c2" + integrity sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA== "@types/range-parser@*": version "1.2.7" resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== -"@types/react@18.3.12": - version "18.3.12" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.12.tgz#99419f182ccd69151813b7ee24b792fe08774f60" - integrity sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw== +"@types/react@19.1.4": + version "19.1.4" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.4.tgz#4d125f014d6ac26b4759775698db118701e314fe" + integrity sha512-EB1yiiYdvySuIITtD5lhW4yPyJ31RkJkkDw794LaQYrxCSaQV/47y5o1FMC4zF9ZyjUjzJMZwbovEnT5yHTW6g== dependencies: - "@types/prop-types" "*" csstype "^3.0.2" "@types/relay-compiler@8.0.4": @@ -3666,9 +3622,9 @@ graphql "^14.5.3" "@types/relay-runtime@*": - version "18.1.1" - resolved "https://registry.yarnpkg.com/@types/relay-runtime/-/relay-runtime-18.1.1.tgz#6c3a77dd5b35c8173f3772988f6896e3f91e208e" - integrity sha512-gnMBe2Vh8Qji0vfUhbXE9ReM7aNFUDz0a9LZ84f/UbJmtCYE2kWnT14OwLDTJud8jp9rL/2+xKyABK5V7pUIHQ== + version "19.0.1" + resolved "https://registry.yarnpkg.com/@types/relay-runtime/-/relay-runtime-19.0.1.tgz#ddd6b347a447af27f3838e81c1b306393f8fcd79" + integrity sha512-CL+qytiGVqWDi3mLSKpwxnTFQbVq0Z0ejWWeutquqnNfSxwxN0p+FyoG6lb2ZIjzxBJazdLW2iX4NGAKS1LM0Q== "@types/send@*": version "0.17.4" @@ -3692,25 +3648,20 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== -"@types/trusted-types@*", "@types/trusted-types@^2.0.2": +"@types/trusted-types@^2.0.2", "@types/trusted-types@^2.0.7": version "2.0.7" resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== -"@types/unist@*", "@types/unist@^2", "@types/unist@^2.0.0": - version "2.0.11" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4" - integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== - -"@types/unist@^3.0.0": +"@types/unist@*", "@types/unist@^3.0.0": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== -"@types/uuid@^9.0.0": - version "9.0.8" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.8.tgz#7545ba4fc3c003d6c756f651f3bf163d8f0f29ba" - integrity sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA== +"@types/unist@^2.0.0": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4" + integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== "@types/valid-url@1.0.7": version "1.0.7" @@ -3727,9 +3678,9 @@ webpack "^5" "@types/ws@^8.0.0": - version "8.5.13" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.13.tgz#6414c280875e2691d0d1e080b05addbf5cb91e20" - integrity sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA== + version "8.18.1" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" + integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== dependencies: "@types/node" "*" @@ -3752,155 +3703,155 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@8.14.0": - version "8.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.14.0.tgz#7dc0e419c87beadc8f554bf5a42e5009ed3748dc" - integrity sha512-tqp8H7UWFaZj0yNO6bycd5YjMwxa6wIHOLZvWPkidwbgLCsBMetQoGj7DPuAlWa2yGO3H48xmPwjhsSPPCGU5w== +"@typescript-eslint/eslint-plugin@8.32.1": + version "8.32.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.32.1.tgz#9185b3eaa3b083d8318910e12d56c68b3c4f45b4" + integrity sha512-6u6Plg9nP/J1GRpe/vcjjabo6Uc5YQPAMxsgQyGC/I0RuukiG1wIe3+Vtg3IrSCVJDmqK3j8adrtzXSENRtFgg== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.14.0" - "@typescript-eslint/type-utils" "8.14.0" - "@typescript-eslint/utils" "8.14.0" - "@typescript-eslint/visitor-keys" "8.14.0" + "@typescript-eslint/scope-manager" "8.32.1" + "@typescript-eslint/type-utils" "8.32.1" + "@typescript-eslint/utils" "8.32.1" + "@typescript-eslint/visitor-keys" "8.32.1" graphemer "^1.4.0" - ignore "^5.3.1" + ignore "^7.0.0" natural-compare "^1.4.0" - ts-api-utils "^1.3.0" + ts-api-utils "^2.1.0" -"@typescript-eslint/parser@8.14.0": - version "8.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.14.0.tgz#0a7e9dbc11bc07716ab2d7b1226217e9f6b51fc8" - integrity sha512-2p82Yn9juUJq0XynBXtFCyrBDb6/dJombnz6vbo6mgQEtWHfvHbQuEa9kAOVIt1c9YFwi7H6WxtPj1kg+80+RA== +"@typescript-eslint/parser@8.32.1": + version "8.32.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.32.1.tgz#18b0e53315e0bc22b2619d398ae49a968370935e" + integrity sha512-LKMrmwCPoLhM45Z00O1ulb6jwyVr2kr3XJp+G+tSEZcbauNnScewcQwtJqXDhXeYPDEjZ8C1SjXm015CirEmGg== dependencies: - "@typescript-eslint/scope-manager" "8.14.0" - "@typescript-eslint/types" "8.14.0" - "@typescript-eslint/typescript-estree" "8.14.0" - "@typescript-eslint/visitor-keys" "8.14.0" + "@typescript-eslint/scope-manager" "8.32.1" + "@typescript-eslint/types" "8.32.1" + "@typescript-eslint/typescript-estree" "8.32.1" + "@typescript-eslint/visitor-keys" "8.32.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.14.0": - version "8.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.14.0.tgz#01f37c147a735cd78f0ff355e033b9457da1f373" - integrity sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw== +"@typescript-eslint/scope-manager@8.32.1": + version "8.32.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.32.1.tgz#9a6bf5fb2c5380e14fe9d38ccac6e4bbe17e8afc" + integrity sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA== dependencies: - "@typescript-eslint/types" "8.14.0" - "@typescript-eslint/visitor-keys" "8.14.0" + "@typescript-eslint/types" "8.32.1" + "@typescript-eslint/visitor-keys" "8.32.1" -"@typescript-eslint/type-utils@8.14.0": - version "8.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.14.0.tgz#455c6af30c336b24a1af28bc4f81b8dd5d74d94d" - integrity sha512-Xcz9qOtZuGusVOH5Uk07NGs39wrKkf3AxlkK79RBK6aJC1l03CobXjJbwBPSidetAOV+5rEVuiT1VSBUOAsanQ== +"@typescript-eslint/type-utils@8.32.1": + version "8.32.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.32.1.tgz#b9292a45f69ecdb7db74d1696e57d1a89514d21e" + integrity sha512-mv9YpQGA8iIsl5KyUPi+FGLm7+bA4fgXaeRcFKRDRwDMu4iwrSHeDPipwueNXhdIIZltwCJv+NkxftECbIZWfA== dependencies: - "@typescript-eslint/typescript-estree" "8.14.0" - "@typescript-eslint/utils" "8.14.0" + "@typescript-eslint/typescript-estree" "8.32.1" + "@typescript-eslint/utils" "8.32.1" debug "^4.3.4" - ts-api-utils "^1.3.0" + ts-api-utils "^2.1.0" -"@typescript-eslint/types@8.14.0": - version "8.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.14.0.tgz#0d33d8d0b08479c424e7d654855fddf2c71e4021" - integrity sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g== +"@typescript-eslint/types@8.32.1": + version "8.32.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.32.1.tgz#b19fe4ac0dc08317bae0ce9ec1168123576c1d4b" + integrity sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg== -"@typescript-eslint/typescript-estree@8.14.0": - version "8.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.14.0.tgz#a7a3a5a53a6c09313e12fb4531d4ff582ee3c312" - integrity sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ== +"@typescript-eslint/typescript-estree@8.32.1": + version "8.32.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.32.1.tgz#9023720ca4ecf4f59c275a05b5fed69b1276face" + integrity sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg== dependencies: - "@typescript-eslint/types" "8.14.0" - "@typescript-eslint/visitor-keys" "8.14.0" + "@typescript-eslint/types" "8.32.1" + "@typescript-eslint/visitor-keys" "8.32.1" debug "^4.3.4" fast-glob "^3.3.2" is-glob "^4.0.3" minimatch "^9.0.4" semver "^7.6.0" - ts-api-utils "^1.3.0" + ts-api-utils "^2.1.0" -"@typescript-eslint/utils@8.14.0": - version "8.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.14.0.tgz#ac2506875e03aba24e602364e43b2dfa45529dbd" - integrity sha512-OGqj6uB8THhrHj0Fk27DcHPojW7zKwKkPmHXHvQ58pLYp4hy8CSUdTKykKeh+5vFqTTVmjz0zCOOPKRovdsgHA== +"@typescript-eslint/utils@8.32.1": + version "8.32.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.32.1.tgz#4d6d5d29b9e519e9a85e9a74e9f7bdb58abe9704" + integrity sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA== dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "8.14.0" - "@typescript-eslint/types" "8.14.0" - "@typescript-eslint/typescript-estree" "8.14.0" + "@eslint-community/eslint-utils" "^4.7.0" + "@typescript-eslint/scope-manager" "8.32.1" + "@typescript-eslint/types" "8.32.1" + "@typescript-eslint/typescript-estree" "8.32.1" -"@typescript-eslint/visitor-keys@8.14.0": - version "8.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.14.0.tgz#2418d5a54669af9658986ade4e6cfb7767d815ad" - integrity sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ== +"@typescript-eslint/visitor-keys@8.32.1": + version "8.32.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.32.1.tgz#4321395cc55c2eb46036cbbb03e101994d11ddca" + integrity sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w== dependencies: - "@typescript-eslint/types" "8.14.0" - eslint-visitor-keys "^3.4.3" + "@typescript-eslint/types" "8.32.1" + eslint-visitor-keys "^4.2.0" "@typescript/vfs@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@typescript/vfs/-/vfs-1.6.0.tgz#9c90d8c43f7ac53cc77d5959e5c4c9b639f0959e" - integrity sha512-hvJUjNVeBMp77qPINuUvYXj4FyWeeMMKZkxEATEU3hqBAQ7qdTBCUFT7Sp0Zu0faeEtFf+ldXxMEDr/bk73ISg== + version "1.6.1" + resolved "https://registry.yarnpkg.com/@typescript/vfs/-/vfs-1.6.1.tgz#fe7087d5a43715754f7ea9bf6e0b905176c9eebd" + integrity sha512-JwoxboBh7Oz1v38tPbkrZ62ZXNHAk9bJ7c9x0eI5zBfBnBYGhURdbnh7Z4smN/MV48Y5OCcZb58n972UtbazsA== dependencies: debug "^4.1.1" "@ungap/structured-clone@^1.0.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== -"@urql/core@5.0.8": - version "5.0.8" - resolved "https://registry.yarnpkg.com/@urql/core/-/core-5.0.8.tgz#eba39eaa2bf9a0a963383e87a65cba7a9ca794bd" - integrity sha512-1GOnUw7/a9bzkcM0+U8U5MmxW2A7FE5YquuEmcJzTtW5tIs2EoS4F2ITpuKBjRBbyRjZgO860nWFPo1m4JImGA== +"@urql/core@5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@urql/core/-/core-5.1.1.tgz#d83c405451806a5936dabbd3f10a22967199e2f5" + integrity sha512-aGh024z5v2oINGD/In6rAtVKTm4VmQ2TxKQBAtk2ZSME5dunZFcjltw4p5ENQg+5CBhZ3FHMzl0Oa+rwqiWqlg== dependencies: "@0no-co/graphql.web" "^1.0.5" wonka "^6.3.2" -"@vue/compiler-core@3.5.12": - version "3.5.12" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.12.tgz#bd70b7dabd12b0b6f31bc53418ba3da77994c437" - integrity sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw== +"@vue/compiler-core@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz#b0ae6c4347f60c03e849a05d34e5bf747c9bda05" + integrity sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q== dependencies: "@babel/parser" "^7.25.3" - "@vue/shared" "3.5.12" + "@vue/shared" "3.5.13" entities "^4.5.0" estree-walker "^2.0.2" source-map-js "^1.2.0" -"@vue/compiler-dom@3.5.12": - version "3.5.12" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.12.tgz#456d631d11102535b7ee6fd954cf2c93158d0354" - integrity sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg== +"@vue/compiler-dom@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz#bb1b8758dbc542b3658dda973b98a1c9311a8a58" + integrity sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA== dependencies: - "@vue/compiler-core" "3.5.12" - "@vue/shared" "3.5.12" + "@vue/compiler-core" "3.5.13" + "@vue/shared" "3.5.13" -"@vue/compiler-sfc@3.5.12": - version "3.5.12" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.12.tgz#6688120d905fcf22f7e44d3cb90f8dabc4dd3cc8" - integrity sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw== +"@vue/compiler-sfc@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz#461f8bd343b5c06fac4189c4fef8af32dea82b46" + integrity sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ== dependencies: "@babel/parser" "^7.25.3" - "@vue/compiler-core" "3.5.12" - "@vue/compiler-dom" "3.5.12" - "@vue/compiler-ssr" "3.5.12" - "@vue/shared" "3.5.12" + "@vue/compiler-core" "3.5.13" + "@vue/compiler-dom" "3.5.13" + "@vue/compiler-ssr" "3.5.13" + "@vue/shared" "3.5.13" estree-walker "^2.0.2" magic-string "^0.30.11" - postcss "^8.4.47" + postcss "^8.4.48" source-map-js "^1.2.0" -"@vue/compiler-ssr@3.5.12": - version "3.5.12" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.12.tgz#5f1a3fbd5c44b79a6dbe88729f7801d9c9218bde" - integrity sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA== +"@vue/compiler-ssr@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz#e771adcca6d3d000f91a4277c972a996d07f43ba" + integrity sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA== dependencies: - "@vue/compiler-dom" "3.5.12" - "@vue/shared" "3.5.12" + "@vue/compiler-dom" "3.5.13" + "@vue/shared" "3.5.13" -"@vue/shared@3.5.12": - version "3.5.12" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.12.tgz#f9e45b7f63f2c3f40d84237b1194b7f67de192e3" - integrity sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg== +"@vue/shared@3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.13.tgz#87b309a6379c22b926e696893237826f64339b6f" + integrity sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ== -"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.12.1": +"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": version "1.14.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== @@ -3966,7 +3917,7 @@ resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== -"@webassemblyjs/wasm-edit@^1.12.1": +"@webassemblyjs/wasm-edit@^1.14.1": version "1.14.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== @@ -4001,7 +3952,7 @@ "@webassemblyjs/wasm-gen" "1.14.1" "@webassemblyjs/wasm-parser" "1.14.1" -"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.12.1": +"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1": version "1.14.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== @@ -4021,6 +3972,14 @@ "@webassemblyjs/ast" "1.14.1" "@xtuc/long" "4.2.2" +"@whatwg-node/disposablestack@^0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@whatwg-node/disposablestack/-/disposablestack-0.0.6.tgz#2064a1425ea66194def6df0c7a1851b6939c82bb" + integrity sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw== + dependencies: + "@whatwg-node/promise-helpers" "^1.0.0" + tslib "^2.6.3" + "@whatwg-node/events@^0.1.0": version "0.1.2" resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.1.2.tgz#23f7c7ad887d7fd448e9ce3261eac9ef319ddd7c" @@ -4028,30 +3987,40 @@ dependencies: tslib "^2.6.3" -"@whatwg-node/fetch@^0.10.0", "@whatwg-node/fetch@^0.10.1": - version "0.10.1" - resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.10.1.tgz#ca08b2b9928a465f6e562d6cc460840340c15d14" - integrity sha512-gmPOLrsjSZWEZlr9Oe5+wWFBq3CG6fN13rGlM91Jsj/vZ95G9CCvrORGBAxMXy0AJGiC83aYiHXn3JzTzXQmbA== +"@whatwg-node/fetch@^0.10.0", "@whatwg-node/fetch@^0.10.4", "@whatwg-node/fetch@^0.10.6", "@whatwg-node/fetch@^0.10.7": + version "0.10.7" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.10.7.tgz#f5f6839ba4af694259480f191d528ffef91e0361" + integrity sha512-sL31zX8BqZovZc38ovBFmKEfao9AzZ/24sWSHKNhDhcnzIO/PYAX2xF6vYtgU9hinrEGlvScTTyKSMynHGdfEA== dependencies: - "@whatwg-node/node-fetch" "^0.7.1" + "@whatwg-node/node-fetch" "^0.7.19" urlpattern-polyfill "^10.0.0" -"@whatwg-node/node-fetch@^0.7.1": - version "0.7.1" - resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.7.1.tgz#2f0f009a44d61f5ad9151ec0b5bfbbf0683a41ff" - integrity sha512-+IVKtQhHnaOS39ErbdeQUh+pVKqCJxO0OokBxCo7SNtTHOZB2Tb+YN+YWwp4WizXwTWy85tsEv1AAprugpxNmg== +"@whatwg-node/node-fetch@^0.7.19": + version "0.7.19" + resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.7.19.tgz#b8c09eb785782512972137f3bc7e0dad78667cbc" + integrity sha512-ippPt75epj7Tg6H5znI9lBBQ4gi+x23QsIF7UN1Z02MUqzhbkjhGsUtNnYGS3osrqvyKtbGKmEya6IqIPRmtdw== dependencies: - "@kamilkisiela/fast-url-parser" "^1.1.4" - busboy "^1.6.0" - fast-querystring "^1.1.1" + "@fastify/busboy" "^3.1.1" + "@whatwg-node/disposablestack" "^0.0.6" + "@whatwg-node/promise-helpers" "^1.3.2" tslib "^2.6.3" -"@whatwg-node/server@^0.9.55": - version "0.9.55" - resolved "https://registry.yarnpkg.com/@whatwg-node/server/-/server-0.9.55.tgz#2ff56b42d3a7bfbf79399dcc5be0b53cdd3da064" - integrity sha512-FW04dJZfgBGaGoHQosCTeSOXKksCVzMLMV5YZPMpUfEmkH8VeDjCIMguvw2cKgrjnLjwQ1J3irLg2eNQbLxLNg== +"@whatwg-node/promise-helpers@^1.0.0", "@whatwg-node/promise-helpers@^1.2.1", "@whatwg-node/promise-helpers@^1.2.4", "@whatwg-node/promise-helpers@^1.3.0", "@whatwg-node/promise-helpers@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@whatwg-node/promise-helpers/-/promise-helpers-1.3.2.tgz#3b54987ad6517ef6db5920c66a6f0dada606587d" + integrity sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA== + dependencies: + tslib "^2.6.3" + +"@whatwg-node/server@^0.10.5": + version "0.10.6" + resolved "https://registry.yarnpkg.com/@whatwg-node/server/-/server-0.10.6.tgz#657b53aa129f3860a27a348bc38ea2d95f2d46c3" + integrity sha512-2Y9qQfNqaPS1rPW6ZXLW01LzsPMC/kV2oGIsTc0Tb17MBmQL+6t/Gt0qExlv0ysmih8WcjMR6jjYReCtrtcb7w== dependencies: - "@whatwg-node/fetch" "^0.10.0" + "@envelop/instrumentation" "^1.0.0" + "@whatwg-node/disposablestack" "^0.0.6" + "@whatwg-node/fetch" "^0.10.7" + "@whatwg-node/promise-helpers" "^1.3.2" tslib "^2.6.3" "@wry/caches@^1.0.0": @@ -4075,13 +4044,6 @@ dependencies: tslib "^2.3.0" -"@wry/trie@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.4.3.tgz#077d52c22365871bf3ffcbab8e95cb8bc5689af4" - integrity sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w== - dependencies: - tslib "^2.3.0" - "@wry/trie@^0.5.0": version "0.5.0" resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.5.0.tgz#11e783f3a53f6e4cd1d42d2d1323f5bc3fa99c94" @@ -4089,6 +4051,11 @@ dependencies: tslib "^2.3.0" +"@xmldom/xmldom@0.9.8": + version "0.9.8" + resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.9.8.tgz#1471e82bdff9e8f20ee8bbe60d4ffa8a516e78d8" + integrity sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A== + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -4104,64 +4071,33 @@ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== -accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== +accepts@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-2.0.0.tgz#bbcf4ba5075467f3f2131eab3cffc73c2f5d7895" + integrity sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng== dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" + mime-types "^3.0.0" + negotiator "^1.0.0" acorn-jsx@^5.0.0, acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-typescript@^1.4.13: - version "1.4.13" - resolved "https://registry.yarnpkg.com/acorn-typescript/-/acorn-typescript-1.4.13.tgz#5f851c8bdda0aa716ffdd5f6ac084df8acc6f5ea" - integrity sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q== +acorn-walk@8.3.2, acorn-walk@^8.0.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== -acorn-walk@^8.0.0, acorn-walk@^8.1.1: - version "8.3.4" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" - integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== - dependencies: - acorn "^8.11.0" - -acorn@^8.0.0, acorn@^8.0.4, acorn@^8.11.0, acorn@^8.12.1, acorn@^8.14.0, acorn@^8.4.1, acorn@^8.8.2: +acorn@8.14.0, acorn@^8.0.0, acorn@^8.0.4, acorn@^8.12.1, acorn@^8.14.0, acorn@^8.8.2: version "8.14.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== -agent-base@6, agent-base@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -agent-base@^7.0.2, agent-base@^7.1.0, agent-base@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317" - integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== - dependencies: - debug "^4.3.4" - -agentkeepalive@^4.2.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" - integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== - dependencies: - humanize-ms "^1.2.1" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" +agent-base@^7.1.0, agent-base@^7.1.2: + version "7.1.3" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.3.tgz#29435eb821bc4194633a5b89e5bc4703bafc25a1" + integrity sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw== ajv-formats@^2.1.1: version "2.1.1" @@ -4170,11 +4106,6 @@ ajv-formats@^2.1.1: dependencies: ajv "^8.0.0" -ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - ajv-keywords@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" @@ -4182,7 +4113,7 @@ ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -4232,16 +4163,9 @@ ansi-regex@^6.0.1: integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== ansi-sequence-parser@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz#e0aa1cdcbc8f8bb0b5bca625aac41f5f056973cf" - integrity sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg== - -ansi-styles@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" + version "1.1.3" + resolved "https://registry.yarnpkg.com/ansi-sequence-parser/-/ansi-sequence-parser-1.1.3.tgz#f2cefb8b681aeb72b7cd50aebc00d509eba64d4c" + integrity sha512-+fksAx9eG3Ab6LDnLs3ZqZa8KVJ/jYnX+D4Qe1azX+LFGFAXqynCQLOdLpNYN/l9e7l6hMWwZbrnctqr6eSQSw== ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" @@ -4280,22 +4204,7 @@ apollo-upload-client@17.0.0: dependencies: extract-files "^11.0.0" -arch@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" - integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== - -arg@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/arg/-/arg-1.0.0.tgz#444d885a4e25b121640b55155ef7cd03975d6050" - integrity sha512-Wk7TEzl1KqvTGs/uyhmHO/3XLd3t1UeU4IstvPXVzGPM522cTjqjNZ99esCkcL52sjqjo8e8CTBcWhkxvGzoAw== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -arg@^5.0.2: +arg@^5.0.0, arg@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== @@ -4317,18 +4226,13 @@ aria-query@^5.3.1: resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.2.tgz#93f81a43480e33a338f19163a3d10a50c01dcd59" integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== -array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" - integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== +array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz#384d12a37295aec3769ab022ad323a18a51ccf8b" + integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== dependencies: - call-bind "^1.0.5" - is-array-buffer "^3.0.4" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + call-bound "^1.0.3" + is-array-buffer "^3.0.5" array-includes@^3.1.8: version "3.1.8" @@ -4353,50 +4257,57 @@ array-union@^2.1.0: integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array.prototype.findlastindex@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" - integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== + version "1.2.6" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz#cfa1065c81dcb64e34557c9b81d012f6a421c564" + integrity sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" define-properties "^1.2.1" - es-abstract "^1.23.2" + es-abstract "^1.23.9" es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-shim-unscopables "^1.0.2" + es-object-atoms "^1.1.1" + es-shim-unscopables "^1.1.0" array.prototype.flat@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" - integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + version "1.3.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz#534aaf9e6e8dd79fb6b9a9917f839ef1ec63afe5" + integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" array.prototype.flatmap@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" - integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + version "1.3.3" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz#712cc792ae70370ae40586264629e33aab5dd38b" + integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" -arraybuffer.prototype.slice@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" - integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== +arraybuffer.prototype.slice@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz#9d760d84dbdd06d0cbf92c8849615a1a7ab3183c" + integrity sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ== dependencies: array-buffer-byte-length "^1.0.1" - call-bind "^1.0.5" + call-bind "^1.0.8" define-properties "^1.2.1" - es-abstract "^1.22.3" - es-errors "^1.2.1" - get-intrinsic "^1.2.3" + es-abstract "^1.23.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" is-array-buffer "^3.0.4" - is-shared-array-buffer "^1.0.2" + +as-table@^1.0.36: + version "1.0.55" + resolved "https://registry.yarnpkg.com/as-table/-/as-table-1.0.55.tgz#dc984da3937745de902cea1d45843c01bdbbec4f" + integrity sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ== + dependencies: + printable-characters "^1.0.42" asap@~2.0.3: version "2.0.6" @@ -4415,19 +4326,17 @@ astring@^1.8.0: resolved "https://registry.yarnpkg.com/astring/-/astring-1.9.0.tgz#cc73e6062a7eb03e7d19c22d8b0b3451fd9bfeef" integrity sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg== -astrojs-compiler-sync@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/astrojs-compiler-sync/-/astrojs-compiler-sync-1.0.1.tgz#c9c8abbeb21312123ca861e6eff3e030ea858af2" - integrity sha512-EdJILVkc/Iiw9sLMyb2uppp/vG7YL9TgkwaEumNDflI8s0AhR5XuCFkdbA/AcCGvcBfsRH9ngy/iIP8Uybl82g== +astrojs-compiler-sync@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/astrojs-compiler-sync/-/astrojs-compiler-sync-1.1.1.tgz#c8f053bd8c6f7fe554028b132df7f6b6bc537ea9" + integrity sha512-0mKvB9sDQRIZPsEJadw6OaFbGJ92cJPPR++ICca9XEyiUAZqgVuk25jNmzHPT0KF80rI94trSZrUR5iHFXGGOQ== dependencies: - synckit "^0.9.0" + synckit "^0.11.0" -async-retry@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" - integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== - dependencies: - retry "0.13.1" +async-function@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-function/-/async-function-1.0.0.tgz#509c9fca60eaf85034c6829838188e4e4c8ffb2b" + integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== async@^3.2.3: version "3.2.6" @@ -4444,18 +4353,6 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -autoprefixer@^10.4.19: - version "10.4.20" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b" - integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== - dependencies: - browserslist "^4.23.3" - caniuse-lite "^1.0.30001646" - fraction.js "^4.3.7" - normalize-range "^0.1.2" - picocolors "^1.0.1" - postcss-value-parser "^4.2.0" - available-typed-arrays@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" @@ -4463,15 +4360,6 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -axios@^1.7.7: - version "1.7.7" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" - integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== - dependencies: - follow-redirects "^1.15.6" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - axobject-query@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.1.0.tgz#28768c76d0e3cff21bc62a9e2d0b6ac30042a1ee" @@ -4495,13 +4383,12 @@ babel-jest@29.7.0, babel-jest@^29.7.0: graceful-fs "^4.2.9" slash "^3.0.0" -babel-loader@9.2.1: - version "9.2.1" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.2.1.tgz#04c7835db16c246dd19ba0914418f3937797587b" - integrity sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA== +babel-loader@10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-10.0.0.tgz#b9743714c0e1e084b3e4adef3cd5faee33089977" + integrity sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA== dependencies: - find-cache-dir "^4.0.0" - schema-utils "^4.0.0" + find-up "^5.0.0" babel-plugin-istanbul@^6.1.1: version "6.1.1" @@ -4525,33 +4412,28 @@ babel-plugin-jest-hoist@^29.6.3: "@types/babel__traverse" "^7.0.6" babel-plugin-polyfill-corejs2@^0.4.10: - version "0.4.11" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz#30320dfe3ffe1a336c15afdcdafd6fd615b25e33" - integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== + version "0.4.13" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz#7d445f0e0607ebc8fb6b01d7e8fb02069b91dd8b" + integrity sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.6.2" + "@babel/helper-define-polyfill-provider" "^0.6.4" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.10.6: - version "0.10.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz#2deda57caef50f59c525aeb4964d3b2f867710c7" - integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== +babel-plugin-polyfill-corejs3@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz#4e4e182f1bb37c7ba62e2af81d8dd09df31344f6" + integrity sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ== dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.2" - core-js-compat "^3.38.0" + "@babel/helper-define-polyfill-provider" "^0.6.3" + core-js-compat "^3.40.0" babel-plugin-polyfill-regenerator@^0.6.1: - version "0.6.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz#addc47e240edd1da1058ebda03021f382bba785e" - integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== + version "0.6.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz#428c615d3c177292a22b4f93ed99e358d7906a9b" + integrity sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.2" - -babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: - version "7.0.0-beta.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" - integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== + "@babel/helper-define-polyfill-provider" "^0.6.4" babel-preset-current-node-syntax@^1.0.0: version "1.1.0" @@ -4574,39 +4456,6 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" -babel-preset-fbjs@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" - integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-syntax-class-properties" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-block-scoped-functions" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-for-of" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-member-expression-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-object-super" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-property-literals" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" - babel-preset-jest@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" @@ -4630,43 +4479,38 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -bare-events@^2.0.0, bare-events@^2.2.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.5.0.tgz#305b511e262ffd8b9d5616b056464f8e1b3329cc" - integrity sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A== +bare-events@^2.2.0, bare-events@^2.5.4: + version "2.5.4" + resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.5.4.tgz#16143d435e1ed9eafd1ab85f12b89b3357a41745" + integrity sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA== -bare-fs@^2.1.1: - version "2.3.5" - resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-2.3.5.tgz#05daa8e8206aeb46d13c2fe25a2cd3797b0d284a" - integrity sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw== +bare-fs@^4.0.1: + version "4.1.4" + resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-4.1.4.tgz#3dd863925f29843e64a9030839c9cb3155714d40" + integrity sha512-r8+26Voz8dGX3AYpJdFb1ZPaUSM8XOLCZvy+YGpRTmwPHIxA7Z3Jov/oMPtV7hfRQbOnH8qGlLTzQAbgtdNN0Q== dependencies: - bare-events "^2.0.0" - bare-path "^2.0.0" - bare-stream "^2.0.0" + bare-events "^2.5.4" + bare-path "^3.0.0" + bare-stream "^2.6.4" -bare-os@^2.1.0: - version "2.4.4" - resolved "https://registry.yarnpkg.com/bare-os/-/bare-os-2.4.4.tgz#01243392eb0a6e947177bb7c8a45123d45c9b1a9" - integrity sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ== +bare-os@^3.0.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/bare-os/-/bare-os-3.6.1.tgz#9921f6f59edbe81afa9f56910658422c0f4858d4" + integrity sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g== -bare-path@^2.0.0, bare-path@^2.1.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-2.1.3.tgz#594104c829ef660e43b5589ec8daef7df6cedb3e" - integrity sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA== +bare-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-3.0.0.tgz#b59d18130ba52a6af9276db3e96a2e3d3ea52178" + integrity sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw== dependencies: - bare-os "^2.1.0" + bare-os "^3.0.1" -bare-stream@^2.0.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/bare-stream/-/bare-stream-2.3.2.tgz#3bc62b429bcf850d2f265719b7a49ee0630a3ae4" - integrity sha512-EFZHSIBkDgSHIwj2l2QZfP4U5OcD4xFAOwhSb/vlr9PIqyGJGvB/nfClJbcnh3EY4jtPE4zsb5ztae96bVF79A== +bare-stream@^2.6.4: + version "2.6.5" + resolved "https://registry.yarnpkg.com/bare-stream/-/bare-stream-2.6.5.tgz#bba8e879674c4c27f7e27805df005c15d7a2ca07" + integrity sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA== dependencies: - streamx "^2.20.0" - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + streamx "^2.21.0" basic-ftp@^5.0.2: version "5.0.5" @@ -4681,22 +4525,22 @@ better-path-resolve@1.0.0: is-windows "^1.0.0" better-react-mathjax@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/better-react-mathjax/-/better-react-mathjax-2.0.3.tgz#202dc6fe5c7263278f2491516f43f70ba188122f" - integrity sha512-wfifT8GFOKb1TWm2+E50I6DJpLZ5kLbch283Lu043EJtwSv0XvZDjr4YfR4d2MjAhqP6SH4VjjrKgbX8R00oCQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/better-react-mathjax/-/better-react-mathjax-2.3.0.tgz#d9a29b2b9eae873e60c0ca8042d7ecb94e2aa297" + integrity sha512-K0ceQC+jQmB+NLDogO5HCpqmYf18AU2FxDbLdduYgkHYWZApFggkHE4dIaXCV1NqeoscESYXXo1GSkY6fA295w== dependencies: mathjax-full "^3.2.2" -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - binary-extensions@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== +blake3-wasm@2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/blake3-wasm/-/blake3-wasm-2.1.5.tgz#b22dbb84bc9419ed0159caa76af4b1b132e6ba52" + integrity sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g== + bob-the-bundler@7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/bob-the-bundler/-/bob-the-bundler-7.0.1.tgz#ef86131674de60f2616801d55a507594b4cbd88f" @@ -4714,28 +4558,20 @@ bob-the-bundler@7.0.1: yargs "^17.6.2" zod "^3.20.2" -body-parser@1.20.3: - version "1.20.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" - integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== +body-parser@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-2.2.0.tgz#f7a9656de305249a715b549b7b8fd1ab9dfddcfa" + integrity sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg== 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" - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + bytes "^3.1.2" + content-type "^1.0.5" + debug "^4.4.0" + http-errors "^2.0.0" + iconv-lite "^0.6.3" + on-finished "^2.4.1" + qs "^6.14.0" + raw-body "^3.0.0" + type-is "^2.0.0" brace-expansion@^1.1.7: version "1.1.11" @@ -4759,15 +4595,15 @@ braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.0.0, browserslist@^4.23.3, browserslist@^4.24.0, browserslist@^4.24.2: - version "4.24.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.2.tgz#f5845bc91069dbd55ee89faf9822e1d885d16580" - integrity sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg== +browserslist@^4.19.1, browserslist@^4.24.0, browserslist@^4.24.4: + version "4.24.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.5.tgz#aa0f5b8560fe81fde84c6dcb38f759bafba0e11b" + integrity sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw== dependencies: - caniuse-lite "^1.0.30001669" - electron-to-chromium "^1.5.41" - node-releases "^2.0.18" - update-browserslist-db "^1.1.1" + caniuse-lite "^1.0.30001716" + electron-to-chromium "^1.5.149" + node-releases "^2.0.19" + update-browserslist-db "^1.1.3" bs-logger@^0.2.6: version "0.2.6" @@ -4793,13 +4629,22 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer@^5.2.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" +bun@1.2.13: + version "1.2.13" + resolved "https://registry.yarnpkg.com/bun/-/bun-1.2.13.tgz#31937546fc3e08581bf4cd9cf5f782e2b4e669af" + integrity sha512-EhP1MhFbicqtaRSFCbEZdkcFco8Ov47cNJcB9QmKS8U4cojKHfLU+dQR14lCvLYmtBvGgwv/Lp+9SSver2OPzQ== + optionalDependencies: + "@oven/bun-darwin-aarch64" "1.2.13" + "@oven/bun-darwin-x64" "1.2.13" + "@oven/bun-darwin-x64-baseline" "1.2.13" + "@oven/bun-linux-aarch64" "1.2.13" + "@oven/bun-linux-aarch64-musl" "1.2.13" + "@oven/bun-linux-x64" "1.2.13" + "@oven/bun-linux-x64-baseline" "1.2.13" + "@oven/bun-linux-x64-musl" "1.2.13" + "@oven/bun-linux-x64-musl-baseline" "1.2.13" + "@oven/bun-windows-x64" "1.2.13" + "@oven/bun-windows-x64-baseline" "1.2.13" busboy@1.6.0, busboy@^1.6.0: version "1.6.0" @@ -4808,39 +4653,36 @@ busboy@1.6.0, busboy@^1.6.0: dependencies: streamsearch "^1.1.0" -bytes@3.1.2: +bytes@3.1.2, bytes@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -cacache@^17.0.0: - version "17.1.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.1.4.tgz#b3ff381580b47e85c6e64f801101508e26604b35" - integrity sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A== - dependencies: - "@npmcli/fs" "^3.1.0" - fs-minipass "^3.0.0" - glob "^10.2.2" - lru-cache "^7.7.1" - minipass "^7.0.3" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - p-map "^4.0.0" - ssri "^10.0.0" - tar "^6.1.11" - unique-filename "^3.0.0" - -call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" - integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== dependencies: - es-define-property "^1.0.0" es-errors "^1.3.0" function-bind "^1.1.2" + +call-bind@^1.0.7, call-bind@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" + integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== + dependencies: + call-bind-apply-helpers "^1.0.0" + es-define-property "^1.0.0" get-intrinsic "^1.2.4" - set-function-length "^1.2.1" + set-function-length "^1.2.2" + +call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" callsites@^3.0.0: version "3.1.0" @@ -4852,7 +4694,7 @@ camelcase-css@^2.0.1: resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== -camelcase@^5.0.0, camelcase@^5.3.1: +camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== @@ -4867,20 +4709,10 @@ camelcase@^8.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-8.0.0.tgz#c0d36d418753fb6ad9c5e0437579745c1c14a534" integrity sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA== -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001669: - version "1.0.30001680" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz#5380ede637a33b9f9f1fc6045ea99bd142f3da5e" - integrity sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA== +caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001716: + version "1.0.30001717" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz#5d9fec5ce09796a1893013825510678928aca129" + integrity sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw== casual@1.6.2: version "1.6.2" @@ -4895,16 +4727,12 @@ ccount@^2.0.0: resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== -chalk@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" - integrity sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q== - dependencies: - ansi-styles "^3.1.0" - escape-string-regexp "^1.0.5" - supports-color "^4.0.0" +chalk@5.4.1, chalk@^5.0.0, chalk@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.4.1.tgz#1b48bf0963ec158dce2aacf69c093ae2dd2092d8" + integrity sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w== -chalk@4.1.2, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -4912,11 +4740,6 @@ chalk@4.1.2, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" - integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== - char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -4966,7 +4789,7 @@ chevrotain@~11.0.3: "@chevrotain/utils" "11.0.3" lodash-es "4.17.21" -chokidar@^3.5.3: +chokidar@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== @@ -4981,24 +4804,18 @@ chokidar@^3.5.3: optionalDependencies: fsevents "~2.3.2" -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - chrome-trace-event@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== -chromium-bidi@0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-0.8.0.tgz#ffd79dad7db1fcc874f1c55fcf46ded05a884269" - integrity sha512-uJydbGdTw0DEUjhoogGveneJVWX/9YuqkWePzMmkBYwtdAqo5d3J/ovNKFr+/2hWXYmYCr6it8mSSTIj6SS6Ug== +chromium-bidi@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-5.1.0.tgz#8d0e47f7ac9270262df29792318dd5378e983e62" + integrity sha512-9MSRhWRVoRPDG0TgzkHrshFSJJNZzfY5UFqUMuksg7zL1yoZIZ3jLB0YAgHclbiAxPI86pBnwDX1tbzoiV8aFw== dependencies: - mitt "3.0.1" - urlpattern-polyfill "10.0.0" - zod "3.23.8" + mitt "^3.0.1" + zod "^3.24.1" ci-info@^3.2.0, ci-info@^3.7.0: version "3.9.0" @@ -5006,14 +4823,9 @@ ci-info@^3.2.0, ci-info@^3.7.0: integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== cjs-module-lexer@^1.0.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz#707413784dbb3a72aa11c2f2b042a0bef4004170" - integrity sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA== - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + version "1.4.3" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz#0f79731eb8cfe1ec72acd4066efac9d61991b00d" + integrity sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q== cli-cursor@^5.0.0: version "5.0.0" @@ -5035,22 +4847,14 @@ client-only@0.0.1: resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== -clipboardy@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-1.2.2.tgz#2ce320b9ed9be1514f79878b53ff9765420903e2" - integrity sha512-16KrBOV7bHmHdxcQiCvfUFYVFyEah4FI8vYT1Fr7CGSA4G+xBWMEfUEQJS1hxeHGtI9ju1Bzs9uXSbj5HZKArw== - dependencies: - arch "^2.1.0" - execa "^0.8.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== +clipboardy@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-4.0.0.tgz#e73ced93a76d19dd379ebf1f297565426dffdca1" + integrity sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w== dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" + execa "^8.0.1" + is-wsl "^3.1.0" + is64bit "^2.0.0" cliui@^8.0.1: version "8.0.1" @@ -5061,7 +4865,7 @@ cliui@^8.0.1: strip-ansi "^6.0.1" wrap-ansi "^7.0.0" -clsx@2.1.1, clsx@^2.0.0: +clsx@2.1.1, clsx@^2.0.0, clsx@^2.1.0, clsx@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== @@ -5081,13 +4885,6 @@ collect-v8-coverage@^1.0.0: resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - color-convert@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" @@ -5095,11 +4892,6 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" @@ -5121,11 +4913,6 @@ color@^4.2.3: color-convert "^2.0.1" color-string "^1.9.0" -colord@^2.9.3: - version "2.9.3" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" - integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== - colorette@^2.0.20: version "2.0.20" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" @@ -5143,16 +4930,16 @@ comma-separated-tokens@^2.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== +commander@13.1.0, commander@^13.1.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-13.1.0.tgz#776167db68c78f38dcce1f9b8d7b8b9a488abf46" + integrity sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw== + commander@7, commander@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.2.0.tgz#6e21014b2ed90d8b7c9647230d8b7a94a4a419a9" - integrity sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w== - commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -5168,30 +4955,20 @@ commander@^8.3.0: resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== -commander@~12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" - integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== - -common-path-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" - integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== - compute-scroll-into-view@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz#753f11d972596558d8fe7c6bcbc8497690ab4c87" - integrity sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg== + version "3.1.1" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz#02c3386ec531fb6a9881967388e53e8564f3e9aa" + integrity sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw== concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concurrently@9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-9.1.0.tgz#8da6d609f4321752912dab9be8710232ac496aa0" - integrity sha512-VxkzwMAn4LP7WyMnJNbHN5mKV9L2IbyDjpzemKr99sXNR3GqRNMMHdm7prV1ws9wg7ETj6WUkNOigZVsptwbgg== +concurrently@9.1.2: + version "9.1.2" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-9.1.2.tgz#22d9109296961eaee773e12bfb1ce9a66bc9836c" + integrity sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ== dependencies: chalk "^4.1.2" lodash "^4.17.21" @@ -5206,24 +4983,29 @@ confbox@^0.1.8: resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06" integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== +confbox@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.2.2.tgz#8652f53961c74d9e081784beed78555974a9c110" + integrity sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ== + consola@^3.0.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/consola/-/consola-3.2.3.tgz#0741857aa88cfa0d6fd53f1cff0375136e98502f" - integrity sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== + version "3.4.2" + resolved "https://registry.yarnpkg.com/consola/-/consola-3.4.2.tgz#5af110145397bb67afdab77013fdc34cae590ea7" + integrity sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== +content-disposition@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-1.0.0.tgz#844426cb398f934caefcbb172200126bc7ceace2" + integrity sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg== dependencies: safe-buffer "5.2.1" -content-tag@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/content-tag/-/content-tag-2.0.3.tgz#52b72285256ae0aa49e86b1b5923764df472d61c" - integrity sha512-htLIdtfhhKW2fHlFLnZH7GFzHSdSpHhDLrWVswkNiiPMZ5uXq5JfrGboQKFhNQuAAFF8VNB2EYUj3MsdJrKKpg== +content-tag@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/content-tag/-/content-tag-4.0.0.tgz#22336e58901488389c3f8c307ed0f2059c678f07" + integrity sha512-qqJiY9nueYAI396MOmfOk+w/0KL6ERKxANQcSKcR0CrNTc38yT//b73l+WHr9brZx57bFHNaW7a/6Yll0bn95w== -content-type@~1.0.4, content-type@~1.0.5: +content-type@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== @@ -5233,22 +5015,30 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== +cookie-signature@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.2.2.tgz#57c7fc3cc293acab9fec54d73e15690ebe4a1793" + integrity sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg== -cookie@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" - integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== +cookie@1.0.2, cookie@^0.7.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-1.0.2.tgz#27360701532116bd3f1f9416929d176afe1e4610" + integrity sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA== + +core-js-compat@^3.40.0: + version "3.42.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.42.0.tgz#ce19c29706ee5806e26d3cb3c542d4cfc0ed51bb" + integrity sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ== + dependencies: + browserslist "^4.24.4" -core-js-compat@^3.38.0, core-js-compat@^3.38.1: - version "3.39.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.39.0.tgz#b12dccb495f2601dc860bdbe7b4e3ffa8ba63f61" - integrity sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw== +cors@^2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== dependencies: - browserslist "^4.24.2" + object-assign "^4" + vary "^1" cose-base@^1.0.0: version "1.0.3" @@ -5287,11 +5077,6 @@ create-jest@^29.7.0: jest-util "^29.7.0" prompts "^2.0.1" -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - cross-env@7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" @@ -5300,128 +5085,26 @@ cross-env@7.0.3: cross-spawn "^7.0.1" cross-fetch@^3.1.5: - version "3.1.8" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" - integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== - dependencies: - node-fetch "^2.6.12" - -cross-spawn@^5.0.1, cross-spawn@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== + version "3.2.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" + integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" + node-fetch "^2.7.0" -cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.5.tgz#910aac880ff5243da96b728bc6521a5f6c2f2f82" - integrity sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug== +cross-spawn@^7.0.1, cross-spawn@^7.0.3, cross-spawn@^7.0.5, cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" which "^2.0.1" -css-declaration-sorter@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz#6dec1c9523bc4a643e088aab8f09e67a54961024" - integrity sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow== - -css-select@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" - integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== - dependencies: - boolbase "^1.0.0" - css-what "^6.1.0" - domhandler "^5.0.2" - domutils "^3.0.1" - nth-check "^2.0.1" - -css-tree@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" - integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== - dependencies: - mdn-data "2.0.30" - source-map-js "^1.0.1" - -css-tree@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" - integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== - dependencies: - mdn-data "2.0.28" - source-map-js "^1.0.1" - -css-what@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== - cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-7.0.6.tgz#0220fa7507478369aa2a226bac03e1204cd024c1" - integrity sha512-ZzrgYupYxEvdGGuqL+JKOY70s7+saoNlHSCK/OGn1vB2pQK8KSET8jvenzItcY+kA7NoWvfbb/YhlzuzNKjOhQ== - dependencies: - browserslist "^4.23.3" - css-declaration-sorter "^7.2.0" - cssnano-utils "^5.0.0" - postcss-calc "^10.0.2" - postcss-colormin "^7.0.2" - postcss-convert-values "^7.0.4" - postcss-discard-comments "^7.0.3" - postcss-discard-duplicates "^7.0.1" - postcss-discard-empty "^7.0.0" - postcss-discard-overridden "^7.0.0" - postcss-merge-longhand "^7.0.4" - postcss-merge-rules "^7.0.4" - postcss-minify-font-values "^7.0.0" - postcss-minify-gradients "^7.0.0" - postcss-minify-params "^7.0.2" - postcss-minify-selectors "^7.0.4" - postcss-normalize-charset "^7.0.0" - postcss-normalize-display-values "^7.0.0" - postcss-normalize-positions "^7.0.0" - postcss-normalize-repeat-style "^7.0.0" - postcss-normalize-string "^7.0.0" - postcss-normalize-timing-functions "^7.0.0" - postcss-normalize-unicode "^7.0.2" - postcss-normalize-url "^7.0.0" - postcss-normalize-whitespace "^7.0.0" - postcss-ordered-values "^7.0.1" - postcss-reduce-initial "^7.0.2" - postcss-reduce-transforms "^7.0.0" - postcss-svgo "^7.0.1" - postcss-unique-selectors "^7.0.3" - -cssnano-utils@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-5.0.0.tgz#b53a0343dd5d21012911882db6ae7d2eae0e3687" - integrity sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ== - -cssnano@^7.0.0: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-7.0.6.tgz#63d54fd42bc017f6aaed69e47d9aaef85b7850ec" - integrity sha512-54woqx8SCbp8HwvNZYn68ZFAepuouZW4lTwiMVnBErM3VkO7/Sd4oTOt3Zz3bPx3kxQ36aISppyXj2Md4lg8bw== - dependencies: - cssnano-preset-default "^7.0.6" - lilconfig "^3.1.2" - -csso@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" - integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== - dependencies: - css-tree "~2.2.0" - csstype@^3.0.2: version "3.1.3" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" @@ -5441,10 +5124,10 @@ cytoscape-fcose@^2.2.0: dependencies: cose-base "^2.2.0" -cytoscape@^3.29.2: - version "3.30.3" - resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.30.3.tgz#1b2726bbfa6673f643488a81147354841c252352" - integrity sha512-HncJ9gGJbVtw7YXtIs3+6YAFSSiKsom0amWc33Z7QbylbY2JGMrA0yz4EwrdTScZxnwclXeEZHzO5pxoy0ZE4g== +cytoscape@^3.29.3: + version "3.32.0" + resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.32.0.tgz#34bc2402c9bc7457ab7d9492745f034b7bf47644" + integrity sha512-5JHBC9n75kz5851jeklCPmZWcg3hUe6sjqJvyk3+hVqFaKcHwHgxsjeN1yLmggoUc6STbtm9/NQyabQehfjvWQ== "d3-array@1 - 2": version "2.12.1" @@ -5725,54 +5408,64 @@ dagre-d3-es@7.0.11: d3 "^7.9.0" lodash-es "^4.17.21" +data-uri-to-buffer@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz#d296973d5a4897a5dbe31716d118211921f04770" + integrity sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA== + +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + data-uri-to-buffer@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz#8a58bb67384b261a38ef18bea1810cb01badd28b" integrity sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw== -data-view-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" - integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== +data-view-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz#211a03ba95ecaf7798a8c7198d79536211f88570" + integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== dependencies: - call-bind "^1.0.6" + call-bound "^1.0.3" es-errors "^1.3.0" - is-data-view "^1.0.1" + is-data-view "^1.0.2" -data-view-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" - integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== +data-view-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz#9e80f7ca52453ce3e93d25a35318767ea7704735" + integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.3" es-errors "^1.3.0" - is-data-view "^1.0.1" + is-data-view "^1.0.2" -data-view-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" - integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== +data-view-byte-offset@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz#068307f9b71ab76dbbe10291389e020856606191" + integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== dependencies: - call-bind "^1.0.6" + call-bound "^1.0.2" es-errors "^1.3.0" is-data-view "^1.0.1" -dataloader@2.2.2, dataloader@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0" - integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g== - dataloader@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-1.4.0.tgz#bca11d867f5d3f1b9ed9f737bd15970c65dff5c8" integrity sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw== +dataloader@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.3.tgz#42d10b4913515f5b37c6acedcb4960d6ae1b1517" + integrity sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA== + dateformat@4.6.3: version "4.6.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== -dayjs@^1.11.10: +dayjs@^1.11.13: version "1.11.13" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== @@ -5782,17 +5475,10 @@ debounce@^1.2.1: resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.3.6, debug@^4.3.7, debug@~4.3.6: - version "4.3.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" - integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" + integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== dependencies: ms "^2.1.3" @@ -5803,15 +5489,10 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - decode-named-character-reference@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" - integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + version "1.1.0" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz#5d6ce68792808901210dac42a8e9853511e2b8bf" + integrity sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w== dependencies: character-entities "^2.0.0" @@ -5821,33 +5502,9 @@ dedent-js@^1.0.1: integrity sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ== dedent@^1.0.0: - version "1.5.3" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" - integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== - -deep-equal@^2.0.5: - version "2.2.3" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1" - integrity sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.5" - es-get-iterator "^1.1.3" - get-intrinsic "^1.2.2" - is-arguments "^1.1.1" - is-array-buffer "^3.0.2" - is-date-object "^1.0.5" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - isarray "^2.0.5" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - side-channel "^1.0.4" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.13" + version "1.6.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.6.0.tgz#79d52d6389b1ffa67d2bcef59ba51847a9d503b2" + integrity sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA== deep-is@^0.1.3: version "0.1.4" @@ -5868,7 +5525,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.4: es-errors "^1.3.0" gopd "^1.0.1" -define-properties@^1.2.0, define-properties@^1.2.1: +define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== @@ -5877,6 +5534,11 @@ define-properties@^1.2.0, define-properties@^1.2.1: has-property-descriptors "^1.0.0" object-keys "^1.1.1" +defu@^6.1.4: + version "6.1.4" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" + integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== + degenerator@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-5.0.1.tgz#9403bf297c6dad9a1ece409b37db27954f91f2f5" @@ -5898,7 +5560,7 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -depd@2.0.0: +depd@2.0.0, depd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== @@ -5908,20 +5570,15 @@ dequal@^2.0.0: resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - detect-indent@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== detect-libc@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" - integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== + version "2.0.4" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.4.tgz#f04715b8ba815e53b4d8109655b6508a6865a7e8" + integrity sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA== detect-newline@^3.0.0: version "3.1.0" @@ -5935,10 +5592,10 @@ devlop@^1.0.0, devlop@^1.1.0: dependencies: dequal "^2.0.0" -devtools-protocol@0.0.1367902: - version "0.0.1367902" - resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz#7333bfc4466c5a54a4c6de48a9dfbcb4b811660c" - integrity sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg== +devtools-protocol@0.0.1439962: + version "0.0.1439962" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1439962.tgz#395c5ca1cd83aa451c667056a025f9873c4598c1" + integrity sha512-jJF48UdryzKiWhJ1bLKr7BFWUQCEIT5uCNbDLqkQJBtkFxYzILJH44WN0PDKMIlGDN7Utb8vyUY85C3w4R/t2g== didyoumean@^1.2.2: version "1.2.2" @@ -5950,11 +5607,6 @@ diff-sequences@^29.6.3: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -5974,56 +5626,32 @@ doctrine@^2.1.0: dependencies: esutils "^2.0.2" -dom-serializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" - integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.2" - entities "^4.2.0" - -domelementtype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domhandler@^5.0.2, domhandler@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" - integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== - dependencies: - domelementtype "^2.3.0" - -"dompurify@^3.0.11 <3.1.7": - version "3.1.6" - resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.1.6.tgz#43c714a94c6a7b8801850f82e756685300a027e2" - integrity sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ== - -domutils@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" - integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== - dependencies: - dom-serializer "^2.0.0" - domelementtype "^2.3.0" - domhandler "^5.0.3" - -dotenv@^16.0.0: - version "16.4.5" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" - integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== +dompurify@^3.2.4: + version "3.2.5" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.2.5.tgz#11b108656a5fb72b24d916df17a1421663d7129c" + integrity sha512-mLPd29uoRe9HpvwP2TxClGQBzGXeEC/we/q+bFlmPPmj2p2Ugl3r6ATu/UU1v77DXNcehiBg9zsr1dREyA/dJQ== + optionalDependencies: + "@types/trusted-types" "^2.0.7" dotenv@^8.1.0: version "8.6.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== -dset@^3.1.1, dset@^3.1.2: +dset@^3.1.2, dset@^3.1.4: version "3.1.4" resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.4.tgz#f8eaf5f023f068a036d08cd07dc9ffb7d0065248" integrity sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA== +dunder-proto@^1.0.0, dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + duplexer@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" @@ -6046,16 +5674,21 @@ ejs@^3.1.10: dependencies: jake "^10.8.5" -electron-to-chromium@^1.5.41: - version "1.5.55" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.55.tgz#73684752aa2e1aa49cafb355a41386c6637e76a9" - integrity sha512-6maZ2ASDOTBtjt9FhqYPRnbvKU5tjG0IN9SztUOWYw2AzNDNpKJYLJmlK0/En4Hs/aiWnB+JZ+gW19PIGszgKg== +electron-to-chromium@^1.5.149: + version "1.5.151" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.151.tgz#5edd6c17e1b2f14b4662c41b9379f96cc8c2bb7c" + integrity sha512-Rl6uugut2l9sLojjS4H4SAr3A4IgACMLgpuEMPYCVcKydzfyPrn5absNRju38IhQOf/NwjJY8OGWjlteqYeBCA== emittery@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== +emoji-regex-xs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz#e8af22e5d9dbd7f7f22d280af3d19d2aab5b0724" + integrity sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg== + emoji-regex@^10.3.0: version "10.4.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4" @@ -6071,28 +5704,11 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -encodeurl@~2.0.0: +encodeurl@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== -encoding@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -6101,14 +5717,14 @@ end-of-stream@^1.1.0: once "^1.4.0" enhanced-resolve@^5.17.1: - version "5.17.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" - integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== + version "5.18.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz#728ab082f8b7b6836de51f1637aab5d3b9568faf" + integrity sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" -enquirer@^2.3.0: +enquirer@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== @@ -6116,11 +5732,16 @@ enquirer@^2.3.0: ansi-colors "^4.1.1" strip-ansi "^6.0.1" -entities@^4.2.0, entities@^4.5.0: +entities@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +entities@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.0.tgz#09c9e29cb79b0a6459a9b9db9efb418ac5bb8e51" + integrity sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw== + env-paths@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" @@ -6131,11 +5752,6 @@ environment@^1.0.0: resolved "https://registry.yarnpkg.com/environment/-/environment-1.1.0.tgz#8e86c66b180f363c7ab311787e0259665f45a9f1" integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== -err-code@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" - integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== - error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -6143,121 +5759,110 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: - version "1.23.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" - integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== +es-abstract@^1.23.2, es-abstract@^1.23.5, es-abstract@^1.23.9: + version "1.23.9" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.9.tgz#5b45994b7de78dada5c1bebf1379646b32b9d606" + integrity sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA== dependencies: - array-buffer-byte-length "^1.0.1" - arraybuffer.prototype.slice "^1.0.3" + array-buffer-byte-length "^1.0.2" + arraybuffer.prototype.slice "^1.0.4" available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - data-view-buffer "^1.0.1" - data-view-byte-length "^1.0.1" - data-view-byte-offset "^1.0.0" - es-define-property "^1.0.0" + call-bind "^1.0.8" + call-bound "^1.0.3" + data-view-buffer "^1.0.2" + data-view-byte-length "^1.0.2" + data-view-byte-offset "^1.0.1" + es-define-property "^1.0.1" es-errors "^1.3.0" es-object-atoms "^1.0.0" - es-set-tostringtag "^2.0.3" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.4" - get-symbol-description "^1.0.2" - globalthis "^1.0.3" - gopd "^1.0.1" + es-set-tostringtag "^2.1.0" + es-to-primitive "^1.3.0" + function.prototype.name "^1.1.8" + get-intrinsic "^1.2.7" + get-proto "^1.0.0" + get-symbol-description "^1.1.0" + globalthis "^1.0.4" + gopd "^1.2.0" has-property-descriptors "^1.0.2" - has-proto "^1.0.3" - has-symbols "^1.0.3" + has-proto "^1.2.0" + has-symbols "^1.1.0" hasown "^2.0.2" - internal-slot "^1.0.7" - is-array-buffer "^3.0.4" + internal-slot "^1.1.0" + is-array-buffer "^3.0.5" is-callable "^1.2.7" - is-data-view "^1.0.1" - is-negative-zero "^2.0.3" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.3" - is-string "^1.0.7" - is-typed-array "^1.1.13" - is-weakref "^1.0.2" - object-inspect "^1.13.1" + is-data-view "^1.0.2" + is-regex "^1.2.1" + is-shared-array-buffer "^1.0.4" + is-string "^1.1.1" + is-typed-array "^1.1.15" + is-weakref "^1.1.0" + math-intrinsics "^1.1.0" + object-inspect "^1.13.3" object-keys "^1.1.1" - object.assign "^4.1.5" - regexp.prototype.flags "^1.5.2" - safe-array-concat "^1.1.2" - safe-regex-test "^1.0.3" - string.prototype.trim "^1.2.9" - string.prototype.trimend "^1.0.8" + object.assign "^4.1.7" + own-keys "^1.0.1" + regexp.prototype.flags "^1.5.3" + safe-array-concat "^1.1.3" + safe-push-apply "^1.0.0" + safe-regex-test "^1.1.0" + set-proto "^1.0.0" + string.prototype.trim "^1.2.10" + string.prototype.trimend "^1.0.9" string.prototype.trimstart "^1.0.8" - typed-array-buffer "^1.0.2" - typed-array-byte-length "^1.0.1" - typed-array-byte-offset "^1.0.2" - typed-array-length "^1.0.6" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.15" - -es-define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" - integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== - dependencies: - get-intrinsic "^1.2.4" + typed-array-buffer "^1.0.3" + typed-array-byte-length "^1.0.3" + typed-array-byte-offset "^1.0.4" + typed-array-length "^1.0.7" + unbox-primitive "^1.1.0" + which-typed-array "^1.1.18" + +es-define-property@^1.0.0, es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== -es-errors@^1.2.1, es-errors@^1.3.0: +es-errors@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== -es-get-iterator@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" - integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - has-symbols "^1.0.3" - is-arguments "^1.1.1" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.7" - isarray "^2.0.5" - stop-iteration-iterator "^1.0.0" - es-module-lexer@^1.2.1: - version "1.5.4" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78" - integrity sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw== + version "1.7.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" + integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== -es-object-atoms@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" - integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== dependencies: es-errors "^1.3.0" -es-set-tostringtag@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" - integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== +es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== dependencies: - get-intrinsic "^1.2.4" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" has-tostringtag "^1.0.2" - hasown "^2.0.1" + hasown "^2.0.2" -es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" - integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== +es-shim-unscopables@^1.0.2, es-shim-unscopables@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz#438df35520dac5d105f3943d927549ea3b00f4b5" + integrity sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw== dependencies: - hasown "^2.0.0" + hasown "^2.0.2" -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== +es-to-primitive@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz#96c89c82cc49fd8794a24835ba3e1ff87f214e18" + integrity sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" + is-callable "^1.2.7" + is-date-object "^1.0.5" + is-symbol "^1.0.4" esast-util-from-estree@^2.0.0: version "2.0.0" @@ -6279,51 +5884,47 @@ esast-util-from-js@^2.0.0: esast-util-from-estree "^2.0.0" vfile-message "^4.0.0" -esbuild@^0.24.0: - version "0.24.0" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.24.0.tgz#f2d470596885fcb2e91c21eb3da3b3c89c0b55e7" - integrity sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ== +esbuild@0.25.4, esbuild@~0.25.0: + version "0.25.4" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.4.tgz#bb9a16334d4ef2c33c7301a924b8b863351a0854" + integrity sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q== optionalDependencies: - "@esbuild/aix-ppc64" "0.24.0" - "@esbuild/android-arm" "0.24.0" - "@esbuild/android-arm64" "0.24.0" - "@esbuild/android-x64" "0.24.0" - "@esbuild/darwin-arm64" "0.24.0" - "@esbuild/darwin-x64" "0.24.0" - "@esbuild/freebsd-arm64" "0.24.0" - "@esbuild/freebsd-x64" "0.24.0" - "@esbuild/linux-arm" "0.24.0" - "@esbuild/linux-arm64" "0.24.0" - "@esbuild/linux-ia32" "0.24.0" - "@esbuild/linux-loong64" "0.24.0" - "@esbuild/linux-mips64el" "0.24.0" - "@esbuild/linux-ppc64" "0.24.0" - "@esbuild/linux-riscv64" "0.24.0" - "@esbuild/linux-s390x" "0.24.0" - "@esbuild/linux-x64" "0.24.0" - "@esbuild/netbsd-x64" "0.24.0" - "@esbuild/openbsd-arm64" "0.24.0" - "@esbuild/openbsd-x64" "0.24.0" - "@esbuild/sunos-x64" "0.24.0" - "@esbuild/win32-arm64" "0.24.0" - "@esbuild/win32-ia32" "0.24.0" - "@esbuild/win32-x64" "0.24.0" + "@esbuild/aix-ppc64" "0.25.4" + "@esbuild/android-arm" "0.25.4" + "@esbuild/android-arm64" "0.25.4" + "@esbuild/android-x64" "0.25.4" + "@esbuild/darwin-arm64" "0.25.4" + "@esbuild/darwin-x64" "0.25.4" + "@esbuild/freebsd-arm64" "0.25.4" + "@esbuild/freebsd-x64" "0.25.4" + "@esbuild/linux-arm" "0.25.4" + "@esbuild/linux-arm64" "0.25.4" + "@esbuild/linux-ia32" "0.25.4" + "@esbuild/linux-loong64" "0.25.4" + "@esbuild/linux-mips64el" "0.25.4" + "@esbuild/linux-ppc64" "0.25.4" + "@esbuild/linux-riscv64" "0.25.4" + "@esbuild/linux-s390x" "0.25.4" + "@esbuild/linux-x64" "0.25.4" + "@esbuild/netbsd-arm64" "0.25.4" + "@esbuild/netbsd-x64" "0.25.4" + "@esbuild/openbsd-arm64" "0.25.4" + "@esbuild/openbsd-x64" "0.25.4" + "@esbuild/sunos-x64" "0.25.4" + "@esbuild/win32-arm64" "0.25.4" + "@esbuild/win32-ia32" "0.25.4" + "@esbuild/win32-x64" "0.25.4" escalade@^3.1.1, escalade@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== -escape-html@~1.0.3: +escape-html@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - escape-string-regexp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" @@ -6357,10 +5958,10 @@ eslint-compat-utils@^0.5.1: dependencies: semver "^7.5.4" -eslint-config-prettier@9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" - integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== +eslint-config-prettier@10.1.5: + version "10.1.5" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-10.1.5.tgz#00c18d7225043b6fbce6a665697377998d453782" + integrity sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw== eslint-config-standard@17.1.0: version "17.1.0" @@ -6417,12 +6018,12 @@ eslint-plugin-import@2.31.0: string.prototype.trimend "^1.0.8" tsconfig-paths "^3.15.0" -eslint-plugin-n@17.13.1: - version "17.13.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-17.13.1.tgz#3178c87989ad23417d22c5f66a13ecb1e9c5245e" - integrity sha512-97qzhk1z3DdSJNCqT45EslwCu5+LB9GDadSyBItgKUfGsXAmN/aa7LRQ0ZxHffUxUzvgbTPJL27/pE9ZQWHy7A== +eslint-plugin-n@17.18.0: + version "17.18.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-17.18.0.tgz#8515979b49ef8db7bb16e457b8ed22cc695d2a84" + integrity sha512-hvZ/HusueqTJ7VDLoCpjN0hx4N4+jHIWTXD4TMLHy9F23XkDagR9v+xQWRWR57yY55GPF8NnD4ox9iGTxirY8A== dependencies: - "@eslint-community/eslint-utils" "^4.4.1" + "@eslint-community/eslint-utils" "^4.5.0" enhanced-resolve "^5.17.1" eslint-plugin-es-x "^7.8.0" get-tsconfig "^4.8.1" @@ -6431,10 +6032,12 @@ eslint-plugin-n@17.13.1: minimatch "^9.0.5" semver "^7.6.3" -eslint-plugin-promise@7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-7.1.0.tgz#06b3ad6d36b3c3ef3ec201c8a8d97049cf5dbb20" - integrity sha512-8trNmPxdAy3W620WKDpaS65NlM5yAumod6XeC4LOb+jxlkG4IVcp68c6dXY2ev+uT4U1PtG57YDV6EGAXN0GbQ== +eslint-plugin-promise@7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-7.2.1.tgz#a0652195700aea40b926dc3c74b38e373377bfb0" + integrity sha512-SWKjd+EuvWkYaS+uN2csvj0KoP43YTu7+phKQ5v+xw6+A0gutVX2yqCeCkC3uLCJFiPfR2dD8Es5L7yUsmvEaA== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" eslint-plugin-standard@5.0.0: version "5.0.0" @@ -6449,10 +6052,10 @@ eslint-scope@5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442" - integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A== +eslint-scope@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.3.0.tgz#10cd3a918ffdd722f5f3f7b5b83db9b23c87340d" + integrity sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -6467,29 +6070,31 @@ eslint-visitor-keys@^4.2.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== -eslint@9.14.0: - version "9.14.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.14.0.tgz#534180a97c00af08bcf2b60b0ebf0c4d6c1b2c95" - integrity sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g== +eslint@9.26.0: + version "9.26.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.26.0.tgz#978fe029adc2aceed28ab437bca876e83461c3b4" + integrity sha512-Hx0MOjPh6uK9oq9nVsATZKE/Wlbai7KFjfCuw9UHaguDW3x+HF0O5nIi3ud39TWgrTjTO5nHxmL3R1eANinWHQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.12.1" - "@eslint/config-array" "^0.18.0" - "@eslint/core" "^0.7.0" - "@eslint/eslintrc" "^3.1.0" - "@eslint/js" "9.14.0" - "@eslint/plugin-kit" "^0.2.0" + "@eslint/config-array" "^0.20.0" + "@eslint/config-helpers" "^0.2.1" + "@eslint/core" "^0.13.0" + "@eslint/eslintrc" "^3.3.1" + "@eslint/js" "9.26.0" + "@eslint/plugin-kit" "^0.2.8" "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" - "@humanwhocodes/retry" "^0.4.0" + "@humanwhocodes/retry" "^0.4.2" + "@modelcontextprotocol/sdk" "^1.8.0" "@types/estree" "^1.0.6" "@types/json-schema" "^7.0.15" ajv "^6.12.4" chalk "^4.0.0" - cross-spawn "^7.0.2" + cross-spawn "^7.0.6" debug "^4.3.2" escape-string-regexp "^4.0.0" - eslint-scope "^8.2.0" + eslint-scope "^8.3.0" eslint-visitor-keys "^4.2.0" espree "^10.3.0" esquery "^1.5.0" @@ -6506,12 +6111,12 @@ eslint@9.14.0: minimatch "^3.1.2" natural-compare "^1.4.0" optionator "^0.9.3" - text-table "^0.2.0" + zod "^3.24.2" -esm-env@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/esm-env/-/esm-env-1.1.4.tgz#340c78b03ee2298d31c5b9fab9793468ede828b0" - integrity sha512-oO82nKPHKkzIj/hbtuDYy/JHqBHFlMIW36SDiPCVsj87ntDLcWN+sJ1erdVryd4NxODacFTsdrIE3b7IamqbOg== +esm-env@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/esm-env/-/esm-env-1.2.2.tgz#263c9455c55861f41618df31b20cb571fc20b75e" + integrity sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA== esm@^3.2.25: version "3.2.25" @@ -6539,13 +6144,12 @@ esquery@^1.5.0: dependencies: estraverse "^5.1.0" -esrap@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/esrap/-/esrap-1.2.2.tgz#b9e3afee3f12238563a763b7fa86220de2c53203" - integrity sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw== +esrap@^1.4.6: + version "1.4.6" + resolved "https://registry.yarnpkg.com/esrap/-/esrap-1.4.6.tgz#d203ce1ee397aa2a6a716a3a2dc8619f83208c6a" + integrity sha512-F/D2mADJ9SHY3IwksD4DAXjTt7qt7GWUf3/8RhCNWmC/67tyb55dpimHmy7EplakFaflV0R/PC+fdSPqrRHAQw== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" - "@types/estree" "^1.0.1" esrecurse@^4.3.0: version "4.3.0" @@ -6608,17 +6212,10 @@ estree-util-to-js@^2.0.0: astring "^1.8.0" source-map "^0.7.0" -estree-util-value-to-estree@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/estree-util-value-to-estree/-/estree-util-value-to-estree-1.3.0.tgz#1d3125594b4d6680f666644491e7ac1745a3df49" - integrity sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw== - dependencies: - is-plain-obj "^3.0.0" - -estree-util-value-to-estree@^3.0.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/estree-util-value-to-estree/-/estree-util-value-to-estree-3.2.1.tgz#f8083e56f51efb4889794490730c036ba6167ee6" - integrity sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw== +estree-util-value-to-estree@3.4.0, estree-util-value-to-estree@^3.0.1, estree-util-value-to-estree@^3.3.3: + version "3.4.0" + resolved "https://registry.yarnpkg.com/estree-util-value-to-estree/-/estree-util-value-to-estree-3.4.0.tgz#827122e40c3a756d3c4cf5d5d296fa06026a1a4f" + integrity sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ== dependencies: "@types/estree" "^1.0.0" @@ -6647,7 +6244,7 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@~1.8.1: +etag@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== @@ -6667,6 +6264,18 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +eventsource-parser@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eventsource-parser/-/eventsource-parser-3.0.1.tgz#5e358dba9a55ba64ca90da883c4ca35bd82467bd" + integrity sha512-VARTJ9CYeuQYb0pZEPbzi740OWFgpHe7AYJ2WFZVnUDUQp5Dk2yJUgF36YsZ81cOyxT0QxmXD2EQpapAouzWVA== + +eventsource@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-3.0.7.tgz#1157622e2f5377bb6aef2114372728ba0c156989" + integrity sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA== + dependencies: + eventsource-parser "^3.0.1" + execa@7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" @@ -6682,19 +6291,6 @@ execa@7.1.1: signal-exit "^3.0.7" strip-final-newline "^3.0.0" -execa@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" - integrity sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA== - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -6710,7 +6306,7 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@~8.0.1: +execa@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== @@ -6725,6 +6321,11 @@ execa@~8.0.1: signal-exit "^4.1.0" strip-final-newline "^3.0.0" +exit-hook@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-2.2.1.tgz#007b2d92c6428eda2b76e7016a34351586934593" + integrity sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw== + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -6741,49 +6342,48 @@ expect@^29.0.0, expect@^29.7.0: jest-message-util "^29.7.0" jest-util "^29.7.0" -express@4.21.1: - version "4.21.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.21.1.tgz#9dae5dda832f16b4eec941a4e44aa89ec481b281" - integrity sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.3" - content-disposition "0.5.4" - content-type "~1.0.4" - 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.10" - 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" +express-rate-limit@^7.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/express-rate-limit/-/express-rate-limit-7.5.0.tgz#6a67990a724b4fbbc69119419feef50c51e8b28f" + integrity sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg== -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== - dependencies: - is-extendable "^0.1.0" +express@5.1.0, express@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/express/-/express-5.1.0.tgz#d31beaf715a0016f0d53f47d3b4d7acf28c75cc9" + integrity sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA== + dependencies: + accepts "^2.0.0" + body-parser "^2.2.0" + content-disposition "^1.0.0" + content-type "^1.0.5" + cookie "^0.7.1" + cookie-signature "^1.2.1" + debug "^4.4.0" + encodeurl "^2.0.0" + escape-html "^1.0.3" + etag "^1.8.1" + finalhandler "^2.1.0" + fresh "^2.0.0" + http-errors "^2.0.0" + merge-descriptors "^2.0.0" + mime-types "^3.0.0" + on-finished "^2.4.1" + once "^1.4.0" + parseurl "^1.3.3" + proxy-addr "^2.0.7" + qs "^6.14.0" + range-parser "^1.2.1" + router "^2.2.0" + send "^1.1.0" + serve-static "^2.2.0" + statuses "^2.0.1" + type-is "^2.0.1" + vary "^1.1.2" + +exsolve@^1.0.1, exsolve@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/exsolve/-/exsolve-1.0.5.tgz#1f5b6b4fe82ad6b28a173ccb955a635d77859dcf" + integrity sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg== extend@^3.0.0: version "3.0.2" @@ -6820,11 +6420,6 @@ extract-zip@^2.0.1: optionalDependencies: "@types/yauzl" "^2.9.1" -fast-decode-uri-component@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz#46f8b6c22b30ff7a81357d4f59abfae938202543" - integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg== - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -6836,15 +6431,15 @@ fast-fifo@^1.2.0, fast-fifo@^1.3.2: integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + version "3.3.3" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" + integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" glob-parent "^5.1.2" merge2 "^1.3.0" - micromatch "^4.0.4" + micromatch "^4.0.8" fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" @@ -6856,22 +6451,15 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-querystring@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.2.tgz#a6d24937b4fc6f791b4ee31dcb6f53aeafb89f53" - integrity sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg== - dependencies: - fast-decode-uri-component "^1.0.1" - fast-uri@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.3.tgz#892a1c91802d5d7860de728f18608a0573142241" - integrity sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw== + version "3.0.6" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.6.tgz#88f130b77cfaea2378d56bf970dea21257a68748" + integrity sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw== fastq@^1.6.0: - version "1.17.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" - integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + version "1.19.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5" + integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== dependencies: reusify "^1.0.4" @@ -6914,6 +6502,14 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + file-entry-cache@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" @@ -6921,14 +6517,6 @@ file-entry-cache@^8.0.0: dependencies: flat-cache "^4.0.0" -file-loader@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" - integrity sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA== - dependencies: - loader-utils "^1.2.3" - schema-utils "^2.5.0" - filelist@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" @@ -6943,26 +6531,17 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" - integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== - 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" - -find-cache-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" - integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== +finalhandler@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-2.1.0.tgz#72306373aa89d05a8242ed569ed86a1bff7c561f" + integrity sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q== dependencies: - common-path-prefix "^3.0.0" - pkg-dir "^7.0.0" + debug "^4.4.0" + encodeurl "^2.0.0" + escape-html "^1.0.3" + on-finished "^2.4.1" + parseurl "^1.3.3" + statuses "^2.0.1" find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" @@ -6980,14 +6559,6 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -find-up@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" - integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== - dependencies: - locate-path "^7.1.0" - path-exists "^5.0.0" - find-yarn-workspace-root@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" @@ -7004,42 +6575,33 @@ flat-cache@^4.0.0: keyv "^4.5.4" flatted@^3.2.9: - version "3.3.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" - integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== - -flexsearch@^0.7.43: - version "0.7.43" - resolved "https://registry.yarnpkg.com/flexsearch/-/flexsearch-0.7.43.tgz#34f89b36278a466ce379c5bf6fb341965ed3f16c" - integrity sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg== - -follow-redirects@^1.15.6: - version "1.15.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" - integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== + version "3.3.3" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358" + integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== +for-each@^0.3.3, for-each@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz#d650688027826920feeb0af747ee7b9421a41d47" + integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== dependencies: - is-callable "^1.1.3" + is-callable "^1.2.7" foreground-child@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" - integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== dependencies: - cross-spawn "^7.0.0" + cross-spawn "^7.0.6" signal-exit "^4.0.1" form-data@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48" - integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw== + version "4.0.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.2.tgz#35cabbdd30c3ce73deb2c42d3c8d3ed9ca51794c" + integrity sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" mime-types "^2.1.12" format@^0.2.0: @@ -7047,30 +6609,32 @@ format@^0.2.0: resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fraction.js@^4.3.7: - version "4.3.7" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" - integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== +fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-2.0.0.tgz#8dd7df6a1b3a1b3a5cf186c05a5dd267622635a4" + integrity sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A== fs-capacitor@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/fs-capacitor/-/fs-capacitor-8.0.0.tgz#a95cbcf58dd50750fe718a03ec051961ef4e61f4" integrity sha512-+Lk6iSKajdGw+7XYxUkwIzreJ2G1JFlYOdnKJv5PzwFLVsoJYBpCuS7WPIUSNT1IbQaEWT1nhYU63Ud03DyzLA== -fs-extra@^11.1.0, fs-extra@^11.2.0: - version "11.2.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" - integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== +fs-extra@^11.1.0: + version "11.3.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.0.tgz#0daced136bbaf65a555a326719af931adc7a314d" + integrity sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -7104,26 +6668,12 @@ fs-extra@^9.0.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-minipass@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" - integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== - dependencies: - minipass "^7.0.3" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@^2.3.2, fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -7133,15 +6683,17 @@ function-bind@^1.1.2: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== +function.prototype.name@^1.1.6, function.prototype.name@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz#e68e1df7b259a5c949eeef95cdbde53edffabb78" + integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" functions-have-names "^1.2.3" + hasown "^2.0.2" + is-callable "^1.2.7" functions-have-names@^1.2.3: version "1.2.3" @@ -7158,7 +6710,7 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -7168,26 +6720,42 @@ get-east-asian-width@^1.0.0: resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz#21b4071ee58ed04ee0db653371b55b4299875389" integrity sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ== -get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" - integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== +get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" es-errors "^1.3.0" + es-object-atoms "^1.1.1" function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== +get-proto@^1.0.0, get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + +get-source@^2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/get-source/-/get-source-2.0.12.tgz#0b47d57ea1e53ce0d3a69f4f3d277eb8047da944" + integrity sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w== + dependencies: + data-uri-to-buffer "^2.0.0" + source-map "^0.6.1" get-stream@^5.1.0: version "5.2.0" @@ -7206,50 +6774,37 @@ get-stream@^8.0.1: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== -get-symbol-description@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" - integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== +get-symbol-description@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz#7bdd54e0befe8ffc9f3b4e203220d9f1e881b6ee" + integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== dependencies: - call-bind "^1.0.5" + call-bound "^1.0.3" es-errors "^1.3.0" - get-intrinsic "^1.2.4" - -get-symbol-from-current-process-h@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-symbol-from-current-process-h/-/get-symbol-from-current-process-h-1.0.2.tgz#510af52eaef873f7028854c3377f47f7bb200265" - integrity sha512-syloC6fsCt62ELLrr1VKBM1ggOpMdetX9hTrdW77UQdcApPHLmf7CI7OKcN1c9kYuNxKcDe4iJ4FY9sX3aw2xw== + get-intrinsic "^1.2.6" -get-tsconfig@^4.8.1: - version "4.8.1" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.8.1.tgz#8995eb391ae6e1638d251118c7b56de7eb425471" - integrity sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg== +get-tsconfig@^4.7.5, get-tsconfig@^4.8.1: + version "4.10.0" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.10.0.tgz#403a682b373a823612475a4c2928c7326fc0f6bb" + integrity sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A== dependencies: resolve-pkg-maps "^1.0.0" get-uri@^6.0.1: - version "6.0.3" - resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.3.tgz#0d26697bc13cf91092e519aa63aa60ee5b6f385a" - integrity sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw== + version "6.0.4" + resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.4.tgz#6daaee9e12f9759e19e55ba313956883ef50e0a7" + integrity sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ== dependencies: basic-ftp "^5.0.2" data-uri-to-buffer "^6.0.2" debug "^4.3.4" - fs-extra "^11.2.0" - -get-uv-event-loop-napi-h@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/get-uv-event-loop-napi-h/-/get-uv-event-loop-napi-h-1.0.6.tgz#42b0b06b74c3ed21fbac8e7c72845fdb7a200208" - integrity sha512-t5c9VNR84nRoF+eLiz6wFrEp1SE2Acg0wS+Ysa2zF0eROes+LzOfuTaVHxGy8AbS8rq7FHEJzjnCZo1BupwdJg== - dependencies: - get-symbol-from-current-process-h "^1.0.1" -giscus@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/giscus/-/giscus-1.5.0.tgz#8299fa056b2ed31ec8b05d4645871e016982b4b2" - integrity sha512-t3LL0qbSO3JXq3uyQeKpF5CegstGfKX/0gI6eDe1cmnI7D56R7j52yLdzw4pdKrg3VnufwCgCM3FDz7G1Qr6lg== +giscus@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/giscus/-/giscus-1.6.0.tgz#96c592e01829707b3a0ba72c2636c07a28b5c19d" + integrity sha512-Zrsi8r4t1LVW950keaWcsURuZUQwUaMKjvJgTCY125vkW6OiEBkatE7ScJDbpqKHdZwb///7FVC21SE3iFK3PQ== dependencies: - lit "^3.1.2" + lit "^3.2.1" github-slugger@^2.0.0: version "2.0.0" @@ -7270,12 +6825,12 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob-to-regexp@^0.4.1: +glob-to-regexp@0.4.1, glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^10.2.2, glob@^10.3.10: +glob@^10.3.10: version "10.4.5" resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== @@ -7287,7 +6842,7 @@ glob@^10.2.2, glob@^10.3.10: package-json-from-dist "^1.0.0" path-scurry "^1.11.1" -glob@^7.1.1, glob@^7.1.3, glob@^7.1.4: +glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -7309,12 +6864,12 @@ globals@^14.0.0: resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== -globals@^15.11.0: - version "15.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-15.12.0.tgz#1811872883ad8f41055b61457a130221297de5b5" - integrity sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ== +globals@^15.11.0, globals@^15.14.0: + version "15.15.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-15.15.0.tgz#7c4761299d41c32b075715a4ce1ede7897ff72a8" + integrity sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg== -globalthis@^1.0.3: +globalthis@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== @@ -7345,12 +6900,10 @@ globby@^13.1.3: merge2 "^1.4.1" slash "^4.0.0" -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" +gopd@^1.0.1, gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.9: version "4.2.11" @@ -7362,32 +6915,17 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -graphql-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-6.1.0.tgz#f4eb2107967af3c7a5907eb3131c671eac89be4f" - integrity sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw== - dependencies: - "@graphql-typed-document-node/core" "^3.2.0" - cross-fetch "^3.1.5" - -graphql-scalars@1.23.0: - version "1.23.0" - resolved "https://registry.yarnpkg.com/graphql-scalars/-/graphql-scalars-1.23.0.tgz#486785d1a6f9449277054a92afc7e1fb73f459d6" - integrity sha512-YTRNcwitkn8CqYcleKOx9IvedA8JIERn8BRq21nlKgOr4NEcTaWEG0sT+H92eF3ALTFbPgsqfft4cw+MGgv0Gg== +graphql-scalars@1.24.2: + version "1.24.2" + resolved "https://registry.yarnpkg.com/graphql-scalars/-/graphql-scalars-1.24.2.tgz#3c1a7aba806a72532566ee482b7480476b49be65" + integrity sha512-FoZ11yxIauEnH0E5rCUkhDXHVn/A6BBfovJdimRZCQlFCl+h7aVvarKmI15zG4VtQunmCDdqdtNs6ixThy3uAg== dependencies: tslib "^2.5.0" -graphql-sse@2.5.3: - version "2.5.3" - resolved "https://registry.yarnpkg.com/graphql-sse/-/graphql-sse-2.5.3.tgz#c3557803f2db306d8ac87fd3bc089b6d4bac8353" - integrity sha512-5IcFW3e7fPOG7oFkK1v3X1wWtCJArQKB/H1UJeNotjy7a/9EYA5K+EiHJF1BiDSVNx7y64bd0FlDETrNBSvIHQ== - -graphql-subscriptions@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-2.0.0.tgz#11ec181d475852d8aec879183e8e1eb94f2eb79a" - integrity sha512-s6k2b8mmt9gF9pEfkxsaO1lTxaySfKoEJzEfmwguBbQ//Oq23hIXCfR1hm4kdh5hnR20RdwB+s3BCb+0duHSZA== - dependencies: - iterall "^1.3.0" +graphql-sse@2.5.4: + version "2.5.4" + resolved "https://registry.yarnpkg.com/graphql-sse/-/graphql-sse-2.5.4.tgz#29e93d8ccda58b9263b18f176b7be631638ec658" + integrity sha512-8PIGHQPv1vokYboL8KsoBomvyJCUMJCAwSp5f+bR2qVoYtPo7CYowrYV7LFiXuiirX0cxVzgUBFNa5BaI4rZ2A== graphql-tag@2.12.6, graphql-tag@^2.12.6: version "2.12.6" @@ -7414,42 +6952,34 @@ graphql-upload@17.0.0: http-errors "^2.0.0" object-path "^0.11.8" -graphql-ws@^5.14.0: - version "5.16.0" - resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.16.0.tgz#849efe02f384b4332109329be01d74c345842729" - integrity sha512-Ju2RCU2dQMgSKtArPbEtsK5gNLnsQyTNIo/T7cZNp96niC1x0KdJNZV0TIoilceBPQwfb5itrGl8pkFeOUMl4A== - -graphql-yoga@5.10.2, graphql-yoga@^5.0.0: - version "5.10.2" - resolved "https://registry.yarnpkg.com/graphql-yoga/-/graphql-yoga-5.10.2.tgz#4bf6269c9787150f8d19e214216e77c14ad4fcd3" - integrity sha512-LcbNUFCsCsv3enjGnXCUQNSKxM49iB4uF9H2Vb3WChBOSQjzqI1d83mvgMTgMVtrZYlKjgM/magMQZV211N2LA== - dependencies: - "@envelop/core" "^5.0.1" - "@graphql-tools/executor" "^1.3.0" - "@graphql-tools/schema" "^10.0.4" - "@graphql-tools/utils" "^10.3.2" - "@graphql-yoga/logger" "^2.0.0" - "@graphql-yoga/subscription" "^5.0.1" - "@whatwg-node/fetch" "^0.10.1" - "@whatwg-node/server" "^0.9.55" - dset "^3.1.1" +graphql-ws@^6.0.3: + version "6.0.4" + resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-6.0.4.tgz#f0376170965f9535576b2d3e897db38b463a31f0" + integrity sha512-8b4OZtNOvv8+NZva8HXamrc0y1jluYC0+13gdh7198FKjVzXyTvVc95DCwGzaKEfn3YuWZxUqjJlHe3qKM/F2g== + +graphql-yoga@5.13.4, graphql-yoga@^5.0.0: + version "5.13.4" + resolved "https://registry.yarnpkg.com/graphql-yoga/-/graphql-yoga-5.13.4.tgz#1807f06f4f9659eea438a6974c490670b676d404" + integrity sha512-q5l3HEvgXnZCKG6K38fz3XNBX41GkHkIYspJbdVl9QVsm5Ah0EFUkY303tEOx8IucyB0h2hb8OfbYXEcoNCLMw== + dependencies: + "@envelop/core" "^5.2.3" + "@envelop/instrumentation" "^1.0.0" + "@graphql-tools/executor" "^1.4.0" + "@graphql-tools/schema" "^10.0.11" + "@graphql-tools/utils" "^10.6.2" + "@graphql-yoga/logger" "^2.0.1" + "@graphql-yoga/subscription" "^5.0.5" + "@whatwg-node/fetch" "^0.10.6" + "@whatwg-node/promise-helpers" "^1.2.4" + "@whatwg-node/server" "^0.10.5" + dset "^3.1.4" lru-cache "^10.0.0" - tslib "^2.5.2" + tslib "^2.8.1" -"graphql@14 - 16", graphql@16.9.0, graphql@^14.5.3, graphql@^16.6.0: - version "16.9.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.9.0.tgz#1c310e63f16a49ce1fbb230bd0a000e99f6f115f" - integrity sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw== - -gray-matter@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" - integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== - dependencies: - js-yaml "^3.13.1" - kind-of "^6.0.2" - section-matter "^1.0.0" - strip-bom-string "^1.0.0" +"graphql@14 - 16", graphql@16.11.0, graphql@^14.5.3, graphql@^16.6.0: + version "16.11.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.11.0.tgz#96d17f66370678027fdf59b2d4c20b4efaa8a633" + integrity sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw== gzip-size@^6.0.0: version "6.0.0" @@ -7475,15 +7005,10 @@ handlebars@^4.7.7: optionalDependencies: uglify-js "^3.1.4" -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - integrity sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng== +has-bigints@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.1.0.tgz#28607e965ac967e03cd2a2c70a2636a1edad49fe" + integrity sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg== has-flag@^4.0.0: version "4.0.0" @@ -7497,24 +7022,26 @@ has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: dependencies: es-define-property "^1.0.0" -has-proto@^1.0.1, has-proto@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" - integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== +has-proto@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.2.0.tgz#5de5a6eabd95fdffd9818b43055e8065e39fe9d5" + integrity sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ== + dependencies: + dunder-proto "^1.0.0" -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== -has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: +has-tostringtag@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: has-symbols "^1.0.3" -hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: +hasown@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== @@ -7522,12 +7049,12 @@ hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: function-bind "^1.1.2" hast-util-from-dom@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/hast-util-from-dom/-/hast-util-from-dom-5.0.0.tgz#d32edd25bf28f4b178b5ae318f8d05762e67bd16" - integrity sha512-d6235voAp/XR3Hh5uy7aGLbM3S4KamdW0WEgOaU1YoewnuYw4HXb5eRtv9g65m/RFGEfUY1Mw4UqCc5Y8L4Stg== + version "5.0.1" + resolved "https://registry.yarnpkg.com/hast-util-from-dom/-/hast-util-from-dom-5.0.1.tgz#c3c92fbd8d4e1c1625edeb3a773952b9e4ad64a8" + integrity sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q== dependencies: "@types/hast" "^3.0.0" - hastscript "^8.0.0" + hastscript "^9.0.0" web-namespaces "^2.0.0" hast-util-from-html-isomorphic@^2.0.0: @@ -7553,15 +7080,15 @@ hast-util-from-html@^2.0.0: vfile-message "^4.0.0" hast-util-from-parse5@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz#654a5676a41211e14ee80d1b1758c399a0327651" - integrity sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ== + version "8.0.3" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz#830a35022fff28c3fea3697a98c2f4cc6b835a2e" + integrity sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg== dependencies: "@types/hast" "^3.0.0" "@types/unist" "^3.0.0" devlop "^1.0.0" - hastscript "^8.0.0" - property-information "^6.0.0" + hastscript "^9.0.0" + property-information "^7.0.0" vfile "^6.0.0" vfile-location "^5.0.0" web-namespaces "^2.0.0" @@ -7581,9 +7108,9 @@ hast-util-parse-selector@^4.0.0: "@types/hast" "^3.0.0" hast-util-raw@^9.0.0: - version "9.0.4" - resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-9.0.4.tgz#2da03e37c46eb1a6f1391f02f9b84ae65818f7ed" - integrity sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA== + version "9.1.0" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-9.1.0.tgz#79b66b26f6f68fb50dfb4716b2cdca90d92adf2e" + integrity sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw== dependencies: "@types/hast" "^3.0.0" "@types/unist" "^3.0.0" @@ -7600,9 +7127,9 @@ hast-util-raw@^9.0.0: zwitch "^2.0.0" hast-util-to-estree@^3.0.0, hast-util-to-estree@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz#f2afe5e869ddf0cf690c75f9fc699f3180b51b19" - integrity sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw== + version "3.1.3" + resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz#e654c1c9374645135695cc0ab9f70b8fcaf733d7" + integrity sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w== dependencies: "@types/estree" "^1.0.0" "@types/estree-jsx" "^1.0.0" @@ -7615,16 +7142,16 @@ hast-util-to-estree@^3.0.0, hast-util-to-estree@^3.1.0: mdast-util-mdx-expression "^2.0.0" mdast-util-mdx-jsx "^3.0.0" mdast-util-mdxjs-esm "^2.0.0" - property-information "^6.0.0" + property-information "^7.0.0" space-separated-tokens "^2.0.0" - style-to-object "^0.4.0" + style-to-js "^1.0.0" unist-util-position "^5.0.0" zwitch "^2.0.0" -hast-util-to-html@^9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-9.0.3.tgz#a9999a0ba6b4919576a9105129fead85d37f302b" - integrity sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg== +hast-util-to-html@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz#ccc673a55bb8e85775b08ac28380f72d47167005" + integrity sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw== dependencies: "@types/hast" "^3.0.0" "@types/unist" "^3.0.0" @@ -7633,15 +7160,15 @@ hast-util-to-html@^9.0.3: hast-util-whitespace "^3.0.0" html-void-elements "^3.0.0" mdast-util-to-hast "^13.0.0" - property-information "^6.0.0" + property-information "^7.0.0" space-separated-tokens "^2.0.0" stringify-entities "^4.0.0" zwitch "^2.0.4" hast-util-to-jsx-runtime@^2.0.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz#6d11b027473e69adeaa00ca4cfb5bb68e3d282fa" - integrity sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg== + version "2.3.6" + resolved "https://registry.yarnpkg.com/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz#ff31897aae59f62232e21594eac7ef6b63333e98" + integrity sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg== dependencies: "@types/estree" "^1.0.0" "@types/hast" "^3.0.0" @@ -7653,9 +7180,9 @@ hast-util-to-jsx-runtime@^2.0.0: mdast-util-mdx-expression "^2.0.0" mdast-util-mdx-jsx "^3.0.0" mdast-util-mdxjs-esm "^2.0.0" - property-information "^6.0.0" + property-information "^7.0.0" space-separated-tokens "^2.0.0" - style-to-object "^1.0.0" + style-to-js "^1.0.0" unist-util-position "^5.0.0" vfile-message "^4.0.0" @@ -7696,15 +7223,15 @@ hast-util-whitespace@^3.0.0: dependencies: "@types/hast" "^3.0.0" -hastscript@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-8.0.0.tgz#4ef795ec8dee867101b9f23cc830d4baf4fd781a" - integrity sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw== +hastscript@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-9.0.1.tgz#dbc84bef6051d40084342c229c451cd9dc567dff" + integrity sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w== dependencies: "@types/hast" "^3.0.0" comma-separated-tokens "^2.0.0" hast-util-parse-selector "^4.0.0" - property-information "^6.0.0" + property-information "^7.0.0" space-separated-tokens "^2.0.0" hoist-non-react-statics@^3.3.2: @@ -7724,11 +7251,6 @@ html-void-elements@^3.0.0: resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-3.0.0.tgz#fc9dbd84af9e747249034d4d62602def6517f1d7" integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== -http-cache-semantics@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" - integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== - http-errors@2.0.0, http-errors@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" @@ -7740,15 +7262,6 @@ http-errors@2.0.0, http-errors@^2.0.0: statuses "2.0.1" toidentifier "1.0.1" -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== - dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" - http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.1: version "7.0.2" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" @@ -7757,26 +7270,18 @@ http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.1: agent-base "^7.1.0" debug "^4.3.4" -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.3, https-proxy-agent@^7.0.5: - version "7.0.5" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2" - integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== +https-proxy-agent@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz#da8dfeac7da130b05c2ba4b59c9b6cd66611a6b9" + integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw== dependencies: - agent-base "^7.0.2" + agent-base "^7.1.2" debug "4" -human-id@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/human-id/-/human-id-1.0.2.tgz#e654d4b2b0d8b07e45da9f6020d8af17ec0a5df3" - integrity sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw== +human-id@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/human-id/-/human-id-4.1.1.tgz#2801fbd61b9a5c1c9170f332802db6408a39a4b0" + integrity sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg== human-signals@^2.1.0: version "2.1.0" @@ -7793,51 +7298,44 @@ human-signals@^5.0.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -husky@9.1.6: - version "9.1.6" - resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.6.tgz#e23aa996b6203ab33534bdc82306b0cf2cb07d6c" - integrity sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A== - -iconv-lite@0.4.24, iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" +husky@9.1.7: + version "9.1.7" + resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.7.tgz#d46a38035d101b46a70456a850ff4201344c0b2d" + integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== -iconv-lite@0.6, iconv-lite@^0.6.2: +iconv-lite@0.6, iconv-lite@0.6.3, iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" -ignore@^5.2.0, ignore@^5.2.4, ignore@^5.3.1, ignore@^5.3.2: +ignore@^5.2.0, ignore@^5.2.4, ignore@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== +ignore@^7.0.0: + version "7.0.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.4.tgz#a12c70d0f2607c5bf508fb65a40c75f037d7a078" + integrity sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A== + immutable@~3.7.6: version "3.7.6" resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" integrity sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw== import-fresh@^3.2.1, import-fresh@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + version "3.3.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" + integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -7855,11 +7353,6 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -7868,29 +7361,24 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1: +inherits@2, inherits@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inline-style-parser@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" - integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== - inline-style-parser@0.2.4: version "0.2.4" resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.4.tgz#f4af5fe72e612839fcd453d989a586566d695f22" integrity sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q== -internal-slot@^1.0.4, internal-slot@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" - integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== +internal-slot@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.1.0.tgz#1eac91762947d2f7056bc838d93e13b2e9604961" + integrity sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw== dependencies: es-errors "^1.3.0" - hasown "^2.0.0" - side-channel "^1.0.4" + hasown "^2.0.2" + side-channel "^1.1.0" "internmap@1 - 2", internmap@^1.0.0: version "1.0.1" @@ -7930,21 +7418,14 @@ is-alphanumerical@^2.0.0: is-alphabetical "^2.0.0" is-decimal "^2.0.0" -is-arguments@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" - integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== +is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz#65742e1e687bd2cc666253068fd8707fe4d44280" + integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" + call-bind "^1.0.8" + call-bound "^1.0.3" + get-intrinsic "^1.2.6" is-arrayish@^0.2.1: version "0.2.1" @@ -7956,12 +7437,23 @@ is-arrayish@^0.3.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== +is-async-function@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.1.1.tgz#3e69018c8e04e73b738793d020bfe884b9fd3523" + integrity sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ== + dependencies: + async-function "^1.0.0" + call-bound "^1.0.3" + get-proto "^1.0.1" + has-tostringtag "^1.0.2" + safe-regex-test "^1.1.0" + +is-bigint@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.1.0.tgz#dda7a3445df57a42583db4228682eba7c4170672" + integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== dependencies: - has-bigints "^1.0.1" + has-bigints "^1.0.2" is-binary-path@~2.1.0: version "2.1.0" @@ -7970,44 +7462,42 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== +is-boolean-object@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.2.tgz#7067f47709809a393c71ff5bb3e135d8a9215d9e" + integrity sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A== dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-buffer@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + call-bound "^1.0.3" + has-tostringtag "^1.0.2" -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: +is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0, is-core-module@^2.15.1: - version "2.15.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" - integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== +is-core-module@^2.13.0, is-core-module@^2.15.1, is-core-module@^2.16.0: + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== dependencies: hasown "^2.0.2" -is-data-view@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" - integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== +is-data-view@^1.0.1, is-data-view@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.2.tgz#bae0a41b9688986c2188dda6657e56b8f9e63b8e" + integrity sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw== dependencies: + call-bound "^1.0.2" + get-intrinsic "^1.2.6" is-typed-array "^1.1.13" -is-date-object@^1.0.1, is-date-object@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== +is-date-object@^1.0.5, is-date-object@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.1.0.tgz#ad85541996fc7aa8b2729701d27b7319f95d82f7" + integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== dependencies: - has-tostringtag "^1.0.0" + call-bound "^1.0.2" + has-tostringtag "^1.0.2" is-decimal@^2.0.0: version "2.0.1" @@ -8019,16 +7509,23 @@ is-docker@^2.0.0: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-extendable@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== +is-finalizationregistry@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz#eefdcdc6c94ddd0674d9c85887bf93f944a97c90" + integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== + dependencies: + call-bound "^1.0.3" + is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -8051,6 +7548,16 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== +is-generator-function@^1.0.10: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.0.tgz#bf3eeda931201394f57b5dba2800f91a238309ca" + integrity sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ== + dependencies: + call-bound "^1.0.3" + get-proto "^1.0.0" + has-tostringtag "^1.0.2" + safe-regex-test "^1.1.0" + is-glob@4.0.3, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -8063,38 +7570,31 @@ is-hexadecimal@^2.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== -is-lambda@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" -is-map@^2.0.2, is-map@^2.0.3: +is-map@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== -is-negative-zero@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" - integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== +is-number-object@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.1.tgz#144b21e95a1bc148205dcc2814a9134ec41b2541" + integrity sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw== dependencies: - has-tostringtag "^1.0.0" + call-bound "^1.0.3" + has-tostringtag "^1.0.2" is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== - is-plain-obj@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" @@ -8105,6 +7605,11 @@ is-plain-object@^5.0.0: resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== +is-promise@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" + integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== + is-reference@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.3.tgz#9ef7bf9029c70a67b2152da4adf57c23d718910f" @@ -8112,30 +7617,27 @@ is-reference@^3.0.3: dependencies: "@types/estree" "^1.0.6" -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== +is-regex@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz#76d70a3ed10ef9be48eb577887d74205bf0cad22" + integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" + call-bound "^1.0.2" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + hasown "^2.0.2" -is-set@^2.0.2, is-set@^2.0.3: +is-set@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== -is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" - integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== +is-shared-array-buffer@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz#9b67844bd9b7f246ba0708c3a93e34269c774f6f" + integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A== dependencies: - call-bind "^1.0.7" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + call-bound "^1.0.3" is-stream@^2.0.0: version "2.0.1" @@ -8147,12 +7649,13 @@ is-stream@^3.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== +is-string@^1.0.7, is-string@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz#92ea3f3d5c5b6e039ca8677e5ac8d07ea773cbb9" + integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== dependencies: - has-tostringtag "^1.0.0" + call-bound "^1.0.3" + has-tostringtag "^1.0.2" is-subdir@^1.1.1: version "1.2.0" @@ -8161,39 +7664,41 @@ is-subdir@^1.1.1: dependencies: better-path-resolve "1.0.0" -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== +is-symbol@^1.0.4, is-symbol@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.1.tgz#f47761279f532e2b05a7024a7506dbbedacd0634" + integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== dependencies: - has-symbols "^1.0.2" + call-bound "^1.0.2" + has-symbols "^1.1.0" + safe-regex-test "^1.1.0" -is-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" - integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== +is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b" + integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== dependencies: - which-typed-array "^1.1.14" + which-typed-array "^1.1.16" is-weakmap@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== +is-weakref@^1.0.2, is-weakref@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.1.tgz#eea430182be8d64174bd96bffbc46f21bf3f9293" + integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew== dependencies: - call-bind "^1.0.2" + call-bound "^1.0.3" is-weakset@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007" - integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.4.tgz#c9f5deb0bc1906c6d6f1027f284ddf459249daca" + integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== dependencies: - call-bind "^1.0.7" - get-intrinsic "^1.2.4" + call-bound "^1.0.3" + get-intrinsic "^1.2.6" is-windows@^1.0.0: version "1.0.2" @@ -8207,6 +7712,20 @@ is-wsl@^2.1.1: dependencies: is-docker "^2.0.0" +is-wsl@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" + integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== + dependencies: + is-inside-container "^1.0.0" + +is64bit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is64bit/-/is64bit-2.0.0.tgz#198c627cbcb198bbec402251f88e5e1a51236c07" + integrity sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw== + dependencies: + system-architecture "^0.1.0" + isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" @@ -8275,7 +7794,7 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -iterall@^1.2.1, iterall@^1.3.0: +iterall@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== @@ -8666,31 +8185,10 @@ jest@29.7.0: import-local "^3.0.2" jest-cli "^29.7.0" -jiti@^1.21.0: - version "1.21.6" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" - integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== - -joi@^17.13.3: - version "17.13.3" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.3.tgz#0f5cc1169c999b30d344366d384b12d92558bcec" - integrity sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA== - dependencies: - "@hapi/hoek" "^9.3.0" - "@hapi/topo" "^5.1.0" - "@sideway/address" "^4.1.5" - "@sideway/formula" "^3.0.1" - "@sideway/pinpoint" "^2.0.0" - -jose@^5.0.0: - version "5.9.6" - resolved "https://registry.yarnpkg.com/jose/-/jose-5.9.6.tgz#77f1f901d88ebdc405e57cce08d2a91f47521883" - integrity sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ== - -js-levenshtein@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== +jiti@^1.21.6: + version "1.21.7" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.7.tgz#9dd81043424a3d28458b193d965f0d18a2300ba9" + integrity sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -8705,7 +8203,7 @@ js-yaml@^3.13.1, js-yaml@^3.6.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^4.0.0, js-yaml@^4.1.0: +js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== @@ -8748,16 +8246,17 @@ json-stable-stringify-without-jsonify@^1.0.1: integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stable-stringify@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz#52d4361b47d49168bcc4e564189a42e5a7439454" - integrity sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg== + version "1.3.0" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.3.0.tgz#8903cfac42ea1a0f97f35d63a4ce0518f0cc6a70" + integrity sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg== dependencies: - call-bind "^1.0.5" + call-bind "^1.0.8" + call-bound "^1.0.4" isarray "^2.0.5" jsonify "^0.0.1" object-keys "^1.1.1" -json5@^1.0.1, json5@^1.0.2: +json5@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== @@ -8795,10 +8294,10 @@ jsonify@^0.0.1: resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== -katex@^0.16.0, katex@^0.16.9: - version "0.16.11" - resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.11.tgz#4bc84d5584f996abece5f01c6ad11304276a33f5" - integrity sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ== +katex@^0.16.0, katex@^0.16.21, katex@^0.16.9: + version "0.16.22" + resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.22.tgz#d2b3d66464b1e6d69e6463b28a86ced5a02c5ccd" + integrity sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg== dependencies: commander "^8.3.0" @@ -8814,11 +8313,6 @@ khroma@^2.1.0: resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.1.0.tgz#45f2ce94ce231a437cf5b63c2e886e6eb42bbbb1" integrity sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw== -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - klaw-sync@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" @@ -8836,10 +8330,10 @@ kolorist@^1.8.0: resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.8.0.tgz#edddbbbc7894bc13302cdf740af6374d4a04743c" integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== -langium@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/langium/-/langium-3.0.0.tgz#4938294eb57c59066ef955070ac4d0c917b26026" - integrity sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg== +langium@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/langium/-/langium-3.3.1.tgz#da745a40d5ad8ee565090fed52eaee643be4e591" + integrity sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w== dependencies: chevrotain "~11.0.3" chevrotain-allstar "~0.3.0" @@ -8870,41 +8364,104 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -lilconfig@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" - integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== - -lilconfig@^3.0.0, lilconfig@^3.1.2, lilconfig@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb" - integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== +lightningcss-darwin-arm64@1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.0.tgz#2e8925fc86a6f8568351680524cade9406b0c6c8" + integrity sha512-L9lhvW4rTHL6vaG1WU3Itj0ivtdBuwu7ufrKEbijRCPhS1pt1haXEXI8h9g73qCQsOaYs1GCc9chvSgxPmhpRA== + +lightningcss-darwin-x64@1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.0.tgz#c10aa1c1238d5f260b0ee5f17e86809dbc24fe3f" + integrity sha512-+qNst+L3GGwG5LypEFTmDUOtNarQVh717Enk4AfmKfwlTrKCSe9kAiPyK7ces269a+f0jNSa8Uww8WwGFXzt8w== + +lightningcss-freebsd-x64@1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.0.tgz#bd2da9045c294158902811ca60863bd6367ec464" + integrity sha512-/sfAWALScgggjjk5ZlmGdpFELwGPIwzAdfcBJcT6UTgQoDHzQ4aP41XTq3N4LL01U9dsJp6uAvCvmHX7snqTdg== + +lightningcss-linux-arm-gnueabihf@1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.0.tgz#f3ebc3f3a8937db19d3cb1ea4a5c34651ca57059" + integrity sha512-3B5val/f61unLgfZHEfkZGzunlyyL76l8xRoxFx+G0uwxK7rvaFcnkyf6k4Zto2STVj05FsLs+aTZoTqslPaug== + +lightningcss-linux-arm64-gnu@1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.0.tgz#725c307493c4bb741f922b81a9319fd322c8f94e" + integrity sha512-Q45+fvm7eAAmorsEzc1ZBwajGnXDocB/nRaSldpHQa36QbP93GrzmBqfSdi2pEks2yXMxST4yznio24Q6en7Sg== + +lightningcss-linux-arm64-musl@1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.0.tgz#7a043124e2446df54b0800ebee99a6f2e728892c" + integrity sha512-RNZNW/AyKax8wWR4xMKoyAb40dqhzOtnAw4knjbyxJUUEL0wzBEXO3k44AS3UFRjxTyd/s46adVQXxE/vOaSgg== + +lightningcss-linux-x64-gnu@1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.0.tgz#a28e60bc6d6e5d5e7ae64eec41a31fbe992cdef9" + integrity sha512-ExVnSepsAyQb547i7SvPhS0SrgIDUjA1dYTT0DNFt/YsqfKhkxg405VDtMoV2MQGAyoEQIub+YK5NQo9Lw7IzQ== + +lightningcss-linux-x64-musl@1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.0.tgz#7ab47aca4c339f701a6e6461cb15684707b8d41b" + integrity sha512-e/nHeX5SAEcfAzyLob5H1Jhm8uHLKwpOIHzcURKnXTMFdBqIDOsETMhmcB5AGDqsr6Q5D9u0QVswDdRo+btSgg== + +lightningcss-win32-arm64-msvc@1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.0.tgz#acce833215d51b0e13b1c34a8b109e79ee26dee5" + integrity sha512-Fd9XejM6GPHx5rv7I8aqsc8mBHs+TpHEVDalP5PVP986tF6rmiVfwQzM2Ic4Cn0rXbS3z95Ru8x50hnzfR2GDA== + +lightningcss-win32-x64-msvc@1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.0.tgz#12e7941edcaf5abdf73647d1e15a27428f59237d" + integrity sha512-2BhpVDbNa+HpXPu63EYfcsL2TCBKLeuMckx4d6UZCzaj1KVuSRXi6r7H3rUeaADuX5NB/BT2smP4HI3s6I1/Ag== + +lightningcss@^1.22.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.30.0.tgz#aa12c41502c3c8c80d1bed6829930e5d7218a812" + integrity sha512-uuurN2onfoNwQtaWnX9UYLz6DlZHnUd88SceOXDAQzQ5+FJ+ELPgcC/EVtRJoFOveXe44zRE+foh2KMD/vQxqQ== + dependencies: + detect-libc "^2.0.3" + optionalDependencies: + lightningcss-darwin-arm64 "1.30.0" + lightningcss-darwin-x64 "1.30.0" + lightningcss-freebsd-x64 "1.30.0" + lightningcss-linux-arm-gnueabihf "1.30.0" + lightningcss-linux-arm64-gnu "1.30.0" + lightningcss-linux-arm64-musl "1.30.0" + lightningcss-linux-x64-gnu "1.30.0" + lightningcss-linux-x64-musl "1.30.0" + lightningcss-win32-arm64-msvc "1.30.0" + lightningcss-win32-x64-msvc "1.30.0" + +lilconfig@^3.0.0, lilconfig@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4" + integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -lint-staged@15.2.10: - version "15.2.10" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.10.tgz#92ac222f802ba911897dcf23671da5bb80643cd2" - integrity sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg== - dependencies: - chalk "~5.3.0" - commander "~12.1.0" - debug "~4.3.6" - execa "~8.0.1" - lilconfig "~3.1.2" - listr2 "~8.2.4" - micromatch "~4.0.8" - pidtree "~0.6.0" - string-argv "~0.3.2" - yaml "~2.5.0" - -listr2@~8.2.4: - version "8.2.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.2.5.tgz#5c9db996e1afeb05db0448196d3d5f64fec2593d" - integrity sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ== +lint-staged@16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-16.0.0.tgz#31826709bde6a62542431da3055f038e386a20db" + integrity sha512-sUCprePs6/rbx4vKC60Hez6X10HPkpDJaGcy3D1NdwR7g1RcNkWL8q9mJMreOqmHBTs+1sNFp+wOiX9fr+hoOQ== + dependencies: + chalk "^5.4.1" + commander "^13.1.0" + debug "^4.4.0" + lilconfig "^3.1.3" + listr2 "^8.3.3" + micromatch "^4.0.8" + nano-spawn "^1.0.0" + pidtree "^0.6.0" + string-argv "^0.3.2" + yaml "^2.7.1" + +listr2@^8.3.3: + version "8.3.3" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.3.3.tgz#815fc8f738260ff220981bf9e866b3e11e8121bf" + integrity sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ== dependencies: cli-truncate "^4.0.0" colorette "^2.0.20" @@ -8913,30 +8470,30 @@ listr2@~8.2.4: rfdc "^1.4.1" wrap-ansi "^9.0.0" -lit-element@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-4.1.1.tgz#07905992815076e388cf6f1faffc7d6866c82007" - integrity sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew== +lit-element@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-4.2.0.tgz#75dcf9e5fae3e3b5fd3f02a5d297c582d0bb0ba3" + integrity sha512-MGrXJVAI5x+Bfth/pU9Kst1iWID6GHDLEzFEnyULB/sFiRLgkd8NPK/PeeXxktA3T6EIIaq8U3KcbTU5XFcP2Q== dependencies: "@lit-labs/ssr-dom-shim" "^1.2.0" - "@lit/reactive-element" "^2.0.4" - lit-html "^3.2.0" + "@lit/reactive-element" "^2.1.0" + lit-html "^3.3.0" -lit-html@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-3.2.1.tgz#8fc49e3531ee5947e4d93e8a5aa642ab1649833b" - integrity sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA== +lit-html@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-3.3.0.tgz#f66c734a6c69dbb12abf9a718fa5d3dfb46d0b7c" + integrity sha512-RHoswrFAxY2d8Cf2mm4OZ1DgzCoBKUKSPvA1fhtSELxUERq2aQQ2h05pO9j81gS1o7RIRJ+CePLogfyahwmynw== dependencies: "@types/trusted-types" "^2.0.2" -lit@^3.1.2: - version "3.2.1" - resolved "https://registry.yarnpkg.com/lit/-/lit-3.2.1.tgz#d6dd15eac20db3a098e81e2c85f70a751ff55592" - integrity sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w== +lit@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/lit/-/lit-3.3.0.tgz#b3037ea94676fb89c3dde9951914efefd0441f17" + integrity sha512-DGVsqsOIHBww2DqnuZzW7QsuCdahp50ojuDaBPC7jUDRpYoH0z7kHBBYZewRzer75FwtrkmkKk7iOAwSaWdBmw== dependencies: - "@lit/reactive-element" "^2.0.4" - lit-element "^4.1.0" - lit-html "^3.2.0" + "@lit/reactive-element" "^2.1.0" + lit-element "^4.2.0" + lit-html "^3.3.0" load-script@^1.0.0: version "1.0.0" @@ -8948,22 +8505,14 @@ loader-runner@^4.2.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== -loader-utils@^1.2.3: - version "1.4.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" - integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== +local-pkg@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-1.1.1.tgz#f5fe74a97a3bd3c165788ee08ca9fbe998dc58dd" + integrity sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg== dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -local-pkg@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.0.tgz#093d25a346bae59a99f80e75f6e9d36d7e8c925c" - integrity sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg== - dependencies: - mlly "^1.4.2" - pkg-types "^1.0.3" + mlly "^1.7.4" + pkg-types "^2.0.1" + quansync "^0.2.8" locate-character@^3.0.0: version "3.0.0" @@ -8984,13 +8533,6 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -locate-path@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" - integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== - dependencies: - p-locate "^6.0.0" - lodash-es@4.17.21, lodash-es@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" @@ -9026,12 +8568,7 @@ lodash.startcase@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== - -lodash@4.17.21, lodash@^4.17.20, lodash@^4.17.21: +lodash@4.17.21, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -9047,22 +8584,12 @@ log-update@^6.1.0: strip-ansi "^7.1.0" wrap-ansi "^9.0.0" -loglevel@^1.6.1: - version "1.9.2" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.2.tgz#c2e028d6c757720107df4e64508530db6621ba08" - integrity sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg== - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - longest-streak@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -9081,14 +8608,6 @@ lru-cache@^10.0.0, lru-cache@^10.2.0: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -9096,7 +8615,7 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -lru-cache@^7.14.1, lru-cache@^7.7.1: +lru-cache@^7.14.1: version "7.18.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== @@ -9107,9 +8626,9 @@ lunr@^2.3.9: integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== magic-string@^0.30.11: - version "0.30.12" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.12.tgz#9eb11c9d072b9bcb4940a5b2c2e1a217e4ee1a60" - integrity sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw== + version "0.30.17" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" + integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" @@ -9120,32 +8639,11 @@ make-dir@^4.0.0: dependencies: semver "^7.5.3" -make-error@^1.1.1, make-error@^1.3.6: +make-error@^1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -make-fetch-happen@^11.0.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz#85ceb98079584a9523d4bf71d32996e7e208549f" - integrity sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w== - dependencies: - agentkeepalive "^4.2.1" - cacache "^17.0.0" - http-cache-semantics "^4.1.1" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^7.7.1" - minipass "^5.0.0" - minipass-fetch "^3.0.0" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^0.6.3" - promise-retry "^2.0.1" - socks-proxy-agent "^7.0.0" - ssri "^10.0.0" - makeerror@1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" @@ -9163,16 +8661,21 @@ markdown-table@^3.0.0: resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.4.tgz#fe44d6d410ff9d6f2ea1797a3f60aa4d2b631c2a" integrity sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw== -marked@^13.0.2: - version "13.0.3" - resolved "https://registry.yarnpkg.com/marked/-/marked-13.0.3.tgz#5c5b4a5d0198060c7c9bc6ef9420a7fed30f822d" - integrity sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA== +marked@^15.0.7: + version "15.0.11" + resolved "https://registry.yarnpkg.com/marked/-/marked-15.0.11.tgz#08a8d12c285e16259e44287b89ce0d871c9d55e8" + integrity sha512-1BEXAU2euRCG3xwgLVT1y0xbJEld1XOrmRJpUwRCcy7rxhSCwMrmEu9LXoPhHSCJG41V7YcQ2mjKRr5BA3ITIA== marked@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + mathjax-full@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/mathjax-full/-/mathjax-full-3.2.2.tgz#43f02e55219db393030985d2b6537ceae82f1fa7" @@ -9184,16 +8687,16 @@ mathjax-full@^3.2.2: speech-rule-engine "^4.0.6" mdast-util-find-and-replace@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz#a6fc7b62f0994e973490e45262e4bc07607b04e0" - integrity sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA== + version "3.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz#70a3174c894e14df722abf43bc250cbae44b11df" + integrity sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg== dependencies: "@types/mdast" "^4.0.0" escape-string-regexp "^5.0.0" unist-util-is "^6.0.0" unist-util-visit-parents "^6.0.0" -mdast-util-from-markdown@^2.0.0: +mdast-util-from-markdown@^2.0.0, mdast-util-from-markdown@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz#4850390ca7cf17413a9b9a0fbefcd1bc0eb4160a" integrity sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA== @@ -9235,9 +8738,9 @@ mdast-util-gfm-autolink-literal@^2.0.0: micromark-util-character "^2.0.0" mdast-util-gfm-footnote@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz#25a1753c7d16db8bfd53cd84fe50562bd1e6d6a9" - integrity sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz#7778e9d9ca3df7238cc2bd3fa2b1bf6a65b19403" + integrity sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ== dependencies: "@types/mdast" "^4.0.0" devlop "^1.1.0" @@ -9276,9 +8779,9 @@ mdast-util-gfm-task-list-item@^2.0.0: mdast-util-to-markdown "^2.0.0" mdast-util-gfm@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz#3f2aecc879785c3cb6a81ff3a243dc11eca61095" - integrity sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz#2cdf63b92c2a331406b0fb0db4c077c1b0331751" + integrity sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ== dependencies: mdast-util-from-markdown "^2.0.0" mdast-util-gfm-autolink-literal "^2.0.0" @@ -9314,9 +8817,9 @@ mdast-util-mdx-expression@^2.0.0: mdast-util-to-markdown "^2.0.0" mdast-util-mdx-jsx@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz#76b957b3da18ebcfd0de3a9b4451dcd6fdec2320" - integrity sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ== + version "3.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz#fd04c67a2a7499efb905a8a5c578dddc9fdada0d" + integrity sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q== dependencies: "@types/estree-jsx" "^1.0.0" "@types/hast" "^3.0.0" @@ -9362,7 +8865,7 @@ mdast-util-phrasing@^4.0.0: "@types/mdast" "^4.0.0" unist-util-is "^6.0.0" -mdast-util-to-hast@^13.0.0: +mdast-util-to-hast@^13.0.0, mdast-util-to-hast@^13.2.0: version "13.2.0" resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz#5ca58e5b921cc0a3ded1bc02eed79a4fe4fe41f4" integrity sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA== @@ -9399,30 +8902,20 @@ mdast-util-to-string@^4.0.0: dependencies: "@types/mdast" "^4.0.0" -mdn-data@2.0.28: - version "2.0.28" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" - integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== - -mdn-data@2.0.30: - version "2.0.30" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" - integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== +media-typer@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561" + integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== memoize-one@^5.1.1: version "5.2.1" resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== -merge-descriptors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" - integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== +merge-descriptors@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-2.0.0.tgz#ea922f660635a2249ee565e0449f951e6b603808" + integrity sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g== merge-stream@^2.0.0: version "2.0.0" @@ -9435,31 +8928,30 @@ merge2@^1.3.0, merge2@^1.4.1: integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== mermaid@^11.0.0: - version "11.4.0" - resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-11.4.0.tgz#e510f45700ed4b31e1dc327b3a405ad9f6907ca3" - integrity sha512-mxCfEYvADJqOiHfGpJXLs4/fAjHz448rH0pfY5fAoxiz70rQiDSzUUy4dNET2T08i46IVpjohPd6WWbzmRHiPA== + version "11.6.0" + resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-11.6.0.tgz#eee45cdc3087be561a19faf01745596d946bb575" + integrity sha512-PE8hGUy1LDlWIHWBP05SFdqUHGmRcCcK4IzpOKPE35eOw+G9zZgcnMpyunJVUEOgb//KBORPjysKndw8bFLuRg== dependencies: - "@braintree/sanitize-url" "^7.0.1" - "@iconify/utils" "^2.1.32" - "@mermaid-js/parser" "^0.3.0" + "@braintree/sanitize-url" "^7.0.4" + "@iconify/utils" "^2.1.33" + "@mermaid-js/parser" "^0.4.0" "@types/d3" "^7.4.3" - "@types/dompurify" "^3.0.5" - cytoscape "^3.29.2" + cytoscape "^3.29.3" cytoscape-cose-bilkent "^4.1.0" cytoscape-fcose "^2.2.0" d3 "^7.9.0" d3-sankey "^0.12.3" dagre-d3-es "7.0.11" - dayjs "^1.11.10" - dompurify "^3.0.11 <3.1.7" + dayjs "^1.11.13" + dompurify "^3.2.4" katex "^0.16.9" khroma "^2.1.0" lodash-es "^4.17.21" - marked "^13.0.2" + marked "^15.0.7" roughjs "^4.6.6" - stylis "^4.3.1" + stylis "^4.3.6" ts-dedent "^2.2.0" - uuid "^9.0.1" + uuid "^11.1.0" meros@^1.2.1: version "1.3.0" @@ -9471,20 +8963,15 @@ mersenne-twister@^1.0.1: resolved "https://registry.yarnpkg.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz#f916618ee43d7179efcf641bec4531eb9670978a" integrity sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA== -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - mhchemparser@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/mhchemparser/-/mhchemparser-4.2.1.tgz#d73982e66bc06170a85b1985600ee9dabe157cb0" integrity sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ== micromark-core-commonmark@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz#9a45510557d068605c6e9a80f282b2bb8581e43d" - integrity sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA== + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz#c691630e485021a68cf28dbc2b2ca27ebf678cd4" + integrity sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg== dependencies: decode-named-character-reference "^1.0.0" devlop "^1.0.0" @@ -9550,9 +9037,9 @@ micromark-extension-gfm-strikethrough@^2.0.0: micromark-util-types "^2.0.0" micromark-extension-gfm-table@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz#5cadedfbb29fca7abf752447967003dc3b6583c9" - integrity sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g== + version "2.1.1" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz#fac70bcbf51fe65f5f44033118d39be8a9b5940b" + integrity sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg== dependencies: devlop "^1.0.0" micromark-factory-space "^2.0.0" @@ -9606,9 +9093,9 @@ micromark-extension-math@^3.0.0: micromark-util-types "^2.0.0" micromark-extension-mdx-expression@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz#1407b9ce69916cf5e03a196ad9586889df25302a" - integrity sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ== + version "3.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz#43d058d999532fb3041195a3c3c05c46fa84543b" + integrity sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q== dependencies: "@types/estree" "^1.0.0" devlop "^1.0.0" @@ -9620,11 +9107,10 @@ micromark-extension-mdx-expression@^3.0.0: micromark-util-types "^2.0.0" micromark-extension-mdx-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz#5abb83da5ddc8e473a374453e6ea56fbd66b59ad" - integrity sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg== + version "3.0.2" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz#ffc98bdb649798902fa9fc5689f67f9c1c902044" + integrity sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ== dependencies: - "@types/acorn" "^4.0.0" "@types/estree" "^1.0.0" devlop "^1.0.0" estree-util-is-identifier-name "^3.0.0" @@ -9673,18 +9159,18 @@ micromark-extension-mdxjs@^3.0.0: micromark-util-types "^2.0.0" micromark-factory-destination@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz#857c94debd2c873cba34e0445ab26b74f6a6ec07" - integrity sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz#8fef8e0f7081f0474fbdd92deb50c990a0264639" + integrity sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA== dependencies: micromark-util-character "^2.0.0" micromark-util-symbol "^2.0.0" micromark-util-types "^2.0.0" micromark-factory-label@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz#17c5c2e66ce39ad6f4fc4cbf40d972f9096f726a" - integrity sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz#5267efa97f1e5254efc7f20b459a38cb21058ba1" + integrity sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg== dependencies: devlop "^1.0.0" micromark-util-character "^2.0.0" @@ -9692,9 +9178,9 @@ micromark-factory-label@^2.0.0: micromark-util-types "^2.0.0" micromark-factory-mdx-expression@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz#2afaa8ba6d5f63e0cead3e4dee643cad184ca260" - integrity sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz#bb09988610589c07d1c1e4425285895041b3dfa9" + integrity sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ== dependencies: "@types/estree" "^1.0.0" devlop "^1.0.0" @@ -9707,17 +9193,17 @@ micromark-factory-mdx-expression@^2.0.0: vfile-message "^4.0.0" micromark-factory-space@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz#5e7afd5929c23b96566d0e1ae018ae4fcf81d030" - integrity sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz#36d0212e962b2b3121f8525fc7a3c7c029f334fc" + integrity sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg== dependencies: micromark-util-character "^2.0.0" micromark-util-types "^2.0.0" micromark-factory-title@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz#726140fc77892af524705d689e1cf06c8a83ea95" - integrity sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz#237e4aa5d58a95863f01032d9ee9b090f1de6e94" + integrity sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw== dependencies: micromark-factory-space "^2.0.0" micromark-util-character "^2.0.0" @@ -9725,9 +9211,9 @@ micromark-factory-title@^2.0.0: micromark-util-types "^2.0.0" micromark-factory-whitespace@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz#9e92eb0f5468083381f923d9653632b3cfb5f763" - integrity sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz#06b26b2983c4d27bfcc657b33e25134d4868b0b1" + integrity sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ== dependencies: micromark-factory-space "^2.0.0" micromark-util-character "^2.0.0" @@ -9735,48 +9221,48 @@ micromark-factory-whitespace@^2.0.0: micromark-util-types "^2.0.0" micromark-util-character@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.0.tgz#31320ace16b4644316f6bf057531689c71e2aee1" - integrity sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz#2f987831a40d4c510ac261e89852c4e9703ccda6" + integrity sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q== dependencies: micromark-util-symbol "^2.0.0" micromark-util-types "^2.0.0" micromark-util-chunked@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz#e51f4db85fb203a79dbfef23fd41b2f03dc2ef89" - integrity sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz#47fbcd93471a3fccab86cff03847fc3552db1051" + integrity sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA== dependencies: micromark-util-symbol "^2.0.0" micromark-util-classify-character@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz#8c7537c20d0750b12df31f86e976d1d951165f34" - integrity sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz#d399faf9c45ca14c8b4be98b1ea481bced87b629" + integrity sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q== dependencies: micromark-util-character "^2.0.0" micromark-util-symbol "^2.0.0" micromark-util-types "^2.0.0" micromark-util-combine-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz#75d6ab65c58b7403616db8d6b31315013bfb7ee5" - integrity sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz#2a0f490ab08bff5cc2fd5eec6dd0ca04f89b30a9" + integrity sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg== dependencies: micromark-util-chunked "^2.0.0" micromark-util-types "^2.0.0" micromark-util-decode-numeric-character-reference@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz#2698bbb38f2a9ba6310e359f99fcb2b35a0d2bd5" - integrity sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ== + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz#fcf15b660979388e6f118cdb6bf7d79d73d26fe5" + integrity sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw== dependencies: micromark-util-symbol "^2.0.0" micromark-util-decode-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz#7dfa3a63c45aecaa17824e656bcdb01f9737154a" - integrity sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz#6cb99582e5d271e84efca8e61a807994d7161eb2" + integrity sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ== dependencies: decode-named-character-reference "^1.0.0" micromark-util-character "^2.0.0" @@ -9784,16 +9270,15 @@ micromark-util-decode-string@^2.0.0: micromark-util-symbol "^2.0.0" micromark-util-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz#0921ac7953dc3f1fd281e3d1932decfdb9382ab1" - integrity sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz#0d51d1c095551cfaac368326963cf55f15f540b8" + integrity sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw== micromark-util-events-to-acorn@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz#4275834f5453c088bd29cd72dfbf80e3327cec07" - integrity sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA== + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz#e7a8a6b55a47e5a06c720d5a1c4abae8c37c98f3" + integrity sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg== dependencies: - "@types/acorn" "^4.0.0" "@types/estree" "^1.0.0" "@types/unist" "^3.0.0" devlop "^1.0.0" @@ -9803,37 +9288,37 @@ micromark-util-events-to-acorn@^2.0.0: vfile-message "^4.0.0" micromark-util-html-tag-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz#ae34b01cbe063363847670284c6255bb12138ec4" - integrity sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz#e40403096481986b41c106627f98f72d4d10b825" + integrity sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA== micromark-util-normalize-identifier@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz#91f9a4e65fe66cc80c53b35b0254ad67aa431d8b" - integrity sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz#c30d77b2e832acf6526f8bf1aa47bc9c9438c16d" + integrity sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q== dependencies: micromark-util-symbol "^2.0.0" micromark-util-resolve-all@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz#189656e7e1a53d0c86a38a652b284a252389f364" - integrity sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz#e1a2d62cdd237230a2ae11839027b19381e31e8b" + integrity sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg== dependencies: micromark-util-types "^2.0.0" micromark-util-sanitize-uri@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz#ec8fbf0258e9e6d8f13d9e4770f9be64342673de" - integrity sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz#ab89789b818a58752b73d6b55238621b7faa8fd7" + integrity sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ== dependencies: micromark-util-character "^2.0.0" micromark-util-encode "^2.0.0" micromark-util-symbol "^2.0.0" micromark-util-subtokenize@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz#76129c49ac65da6e479c09d0ec4b5f29ec6eace5" - integrity sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q== + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz#d8ade5ba0f3197a1cf6a2999fbbfe6357a1a19ee" + integrity sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA== dependencies: devlop "^1.0.0" micromark-util-chunked "^2.0.0" @@ -9841,19 +9326,19 @@ micromark-util-subtokenize@^2.0.0: micromark-util-types "^2.0.0" micromark-util-symbol@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz#12225c8f95edf8b17254e47080ce0862d5db8044" - integrity sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz#e5da494e8eb2b071a0d08fb34f6cefec6c0a19b8" + integrity sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q== micromark-util-types@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.0.tgz#63b4b7ffeb35d3ecf50d1ca20e68fc7caa36d95e" - integrity sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w== + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.2.tgz#f00225f5f5a0ebc3254f96c36b6605c4b393908e" + integrity sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA== micromark@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-4.0.0.tgz#84746a249ebd904d9658cfabc1e8e5f32cbc6249" - integrity sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ== + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-4.0.2.tgz#91395a3e1884a198e62116e33c9c568e39936fdb" + integrity sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA== dependencies: "@types/debug" "^4.0.0" debug "^4.0.0" @@ -9873,7 +9358,7 @@ micromark@^4.0.0: micromark-util-symbol "^2.0.0" micromark-util-types "^2.0.0" -micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5, micromatch@^4.0.8, micromatch@~4.0.8: +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== @@ -9886,17 +9371,29 @@ mime-db@1.52.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.24, mime-types@~2.1.34: +mime-db@^1.54.0: + version "1.54.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" + integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== + +mime-types@^2.1.12, mime-types@^2.1.27: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime-types@^3.0.0, mime-types@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-3.0.1.tgz#b1d94d6997a9b32fd69ebaed0db73de8acb519ce" + integrity sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA== + dependencies: + mime-db "^1.54.0" + +mime@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" + integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== mimic-fn@^2.1.0: version "2.1.0" @@ -9913,6 +9410,23 @@ mimic-function@^5.0.0: resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== +miniflare@4.20250507.0: + version "4.20250507.0" + resolved "https://registry.yarnpkg.com/miniflare/-/miniflare-4.20250507.0.tgz#64b5d4290baaaea8b4e4ff7dfaf4d77b8246477d" + integrity sha512-EgbQRt/Hnr8HCmW2J/4LRNE3yOzJTdNd98XJ8gnGXFKcimXxUFPiWP3k1df+ZPCtEHp6cXxi8+jP7v9vuIbIsg== + dependencies: + "@cspotcode/source-map-support" "0.8.1" + acorn "8.14.0" + acorn-walk "8.3.2" + exit-hook "2.2.1" + glob-to-regexp "0.4.1" + stoppable "1.1.0" + undici "^5.28.5" + workerd "1.20250507.0" + ws "8.18.0" + youch "3.3.4" + zod "3.22.3" + minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -9939,71 +9453,12 @@ minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-fetch@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.5.tgz#f0f97e40580affc4a35cc4a1349f05ae36cb1e4c" - integrity sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg== - dependencies: - minipass "^7.0.3" - minipass-sized "^1.0.3" - minizlib "^2.1.2" - optionalDependencies: - encoding "^0.1.13" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass-sized@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" - integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0: - version "3.3.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" - integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== - dependencies: - yallist "^4.0.0" - -minipass@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" - integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3, minipass@^7.1.2: +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== -minizlib@^2.1.1, minizlib@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mitt@3.0.1: +mitt@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== @@ -10013,19 +9468,14 @@ mj-context-menu@^0.6.1: resolved "https://registry.yarnpkg.com/mj-context-menu/-/mj-context-menu-0.6.1.tgz#a043c5282bf7e1cf3821de07b13525ca6f85aa69" integrity sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA== -mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mlly@^1.4.2, mlly@^1.7.1, mlly@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.2.tgz#21c0d04543207495b8d867eff0ac29fac9a023c0" - integrity sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA== +mlly@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.4.tgz#3d7295ea2358ec7a271eaa5d000a0f84febe100f" + integrity sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw== dependencies: - acorn "^8.12.1" - pathe "^1.1.2" - pkg-types "^1.2.0" + acorn "^8.14.0" + pathe "^2.0.1" + pkg-types "^1.3.0" ufo "^1.5.4" moment@^2.15.2: @@ -10039,20 +9489,20 @@ mri@^1.2.0: integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== mrmime@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" - integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + version "2.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.1.tgz#bc3e87f7987853a54c9850eeb1f1078cd44adddc" + integrity sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ== -ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: +ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +mustache@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" + integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== + mvdan-sh@^0.10.1: version "0.10.1" resolved "https://registry.yarnpkg.com/mvdan-sh/-/mvdan-sh-0.10.1.tgz#5b3a4462a89cf20739b12d851589342c875f4d1f" @@ -10067,21 +9517,21 @@ mz@^2.7.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nanoid@^3.3.6, nanoid@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" - integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== +nano-spawn@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/nano-spawn/-/nano-spawn-1.0.1.tgz#c8e4c1e133e567e3efba44041dcfb12113d861b6" + integrity sha512-BfcvzBlUTxSDWfT+oH7vd6CbUV+rThLLHCIym/QO6GGLBsyVXleZs00fto2i2jzC/wPiBYk5jyOmpXWg4YopiA== + +nanoid@^3.3.6, nanoid@^3.3.8: + version "3.3.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" + integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -negotiator@0.6.3, negotiator@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - negotiator@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.0.0.tgz#b6c91bb47172d69f93cfd7c357bbb529019b5f6a" @@ -10107,78 +9557,74 @@ next-sitemap@4.2.3: fast-glob "^3.2.12" minimist "^1.2.8" -next-themes@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/next-themes/-/next-themes-0.3.0.tgz#b4d2a866137a67d42564b07f3a3e720e2ff3871a" - integrity sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w== - -next-videos@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/next-videos/-/next-videos-1.5.0.tgz#bfc55f7db06e079d4559f6f8b4c28d617192582b" - integrity sha512-U6HY68UDxsDMMRgjABYq1S2EIStqZNp8FFtL8LKXJrhGFIO1nM2a3Afy0jw3JI2nK1HSXq4s4anQ96Yn4ukceA== - dependencies: - file-loader "^4.2.0" +next-themes@^0.4.0: + version "0.4.6" + resolved "https://registry.yarnpkg.com/next-themes/-/next-themes-0.4.6.tgz#8d7e92d03b8fea6582892a50a928c9b23502e8b6" + integrity sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA== -next@15.0.2: - version "15.0.2" - resolved "https://registry.yarnpkg.com/next/-/next-15.0.2.tgz#4a2224c007856118010b8cef5e9b2383cd743388" - integrity sha512-rxIWHcAu4gGSDmwsELXacqAPUk+j8dV/A9cDF5fsiCMpkBDYkO2AEaL1dfD+nNmDiU6QMCFN8Q30VEKapT9UHQ== +next@15.3.2: + version "15.3.2" + resolved "https://registry.yarnpkg.com/next/-/next-15.3.2.tgz#97510629e38a058dd154782a5c2ec9c9ab94d0d8" + integrity sha512-CA3BatMyHkxZ48sgOCLdVHjFU36N7TF1HhqAHLFOkV6buwZnvMI84Cug8xD56B9mCuKrqXnLn94417GrZ/jjCQ== dependencies: - "@next/env" "15.0.2" + "@next/env" "15.3.2" "@swc/counter" "0.1.3" - "@swc/helpers" "0.5.13" + "@swc/helpers" "0.5.15" busboy "1.6.0" caniuse-lite "^1.0.30001579" postcss "8.4.31" styled-jsx "5.1.6" optionalDependencies: - "@next/swc-darwin-arm64" "15.0.2" - "@next/swc-darwin-x64" "15.0.2" - "@next/swc-linux-arm64-gnu" "15.0.2" - "@next/swc-linux-arm64-musl" "15.0.2" - "@next/swc-linux-x64-gnu" "15.0.2" - "@next/swc-linux-x64-musl" "15.0.2" - "@next/swc-win32-arm64-msvc" "15.0.2" - "@next/swc-win32-x64-msvc" "15.0.2" - sharp "^0.33.5" - -nextra-theme-docs@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/nextra-theme-docs/-/nextra-theme-docs-3.1.0.tgz#4b797465553dec9f4d40c9eb68290919343bfe9b" - integrity sha512-2zAC+xnqLzl/kLYCaoVfdupyA6pD5OgF+4iR3zQiPOzfnwJikPQePnr3SCT+tPPgYVuoqSDA5GNc9DvvAHtefQ== + "@next/swc-darwin-arm64" "15.3.2" + "@next/swc-darwin-x64" "15.3.2" + "@next/swc-linux-arm64-gnu" "15.3.2" + "@next/swc-linux-arm64-musl" "15.3.2" + "@next/swc-linux-x64-gnu" "15.3.2" + "@next/swc-linux-x64-musl" "15.3.2" + "@next/swc-win32-arm64-msvc" "15.3.2" + "@next/swc-win32-x64-msvc" "15.3.2" + sharp "^0.34.1" + +nextra-theme-docs@4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/nextra-theme-docs/-/nextra-theme-docs-4.0.5.tgz#f649ae12cece6d8bfb05b0f415bbb4ef66d38261" + integrity sha512-aF4HRjbVZvd+VWTssaieXFyJ7xVnGiKlJZ+WfxCG95izoHuYdY3dwibQTc32ERMXWAg//h/t7en5QggF3hKVaA== dependencies: "@headlessui/react" "^2.1.2" - clsx "^2.0.0" - escape-string-regexp "^5.0.0" - flexsearch "^0.7.43" - next-themes "^0.3.0" + clsx "^2.1.0" + next-themes "^0.4.0" + react-compiler-runtime "0.0.0-experimental-22c6e49-20241219" scroll-into-view-if-needed "^3.1.0" zod "^3.22.3" + zod-validation-error "^3.0.0" + zustand "^5.0.1" -nextra@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/nextra/-/nextra-3.1.0.tgz#ad7fa917955ead82afa0a0fde6414fb81c873434" - integrity sha512-IvG8Q/yLAqSju1zwRPUqC/6WpzAgfmNo6gDw6CIBZJ+3RKdJDsirM/v3BNeN6vx3tSjLFybytOt3spNXHFy/WQ== +nextra@4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/nextra/-/nextra-4.0.5.tgz#258cd7c1f288fc74ea630c8404200676a1fefe68" + integrity sha512-wv1rzzQJtREGZDjdR7G41z3d7NewHvpmgNmPwEABIlEfgsmyEdMSZbrkn5jna8/2SUBsSio/lcBIGemkvuBtSA== dependencies: "@formatjs/intl-localematcher" "^0.5.4" "@headlessui/react" "^2.1.2" "@mdx-js/mdx" "^3.0.0" - "@mdx-js/react" "^3.0.0" "@napi-rs/simple-git" "^0.1.9" "@shikijs/twoslash" "^1.0.0" - "@theguild/remark-mermaid" "^0.1.3" + "@theguild/remark-mermaid" "^0.2.0" "@theguild/remark-npm2yarn" "^0.3.2" better-react-mathjax "^2.0.3" - clsx "^2.0.0" + clsx "^2.1.0" estree-util-to-js "^2.0.0" estree-util-value-to-estree "^3.0.1" + fast-glob "^3.3.2" github-slugger "^2.0.0" - graceful-fs "^4.2.11" - gray-matter "^4.0.3" hast-util-to-estree "^3.1.0" - katex "^0.16.9" + katex "^0.16.21" + mdast-util-from-markdown "^2.0.1" + mdast-util-gfm "^3.0.0" + mdast-util-to-hast "^13.2.0" negotiator "^1.0.0" - p-limit "^6.0.0" + react-compiler-runtime "0.0.0-experimental-22c6e49-20241219" + react-medium-image-zoom "^5.2.12" rehype-katex "^7.0.0" rehype-pretty-code "0.14.0" rehype-raw "^7.0.0" @@ -10189,7 +9635,7 @@ nextra@3.1.0: remark-smartypants "^3.0.0" shiki "^1.0.0" slash "^5.1.0" - title "^3.5.3" + title "^4.0.1" unist-util-remove "^4.0.0" unist-util-visit "^5.0.0" yaml "^2.3.2" @@ -10211,37 +9657,36 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" -node-abort-controller@^3.0.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" - integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== - -node-addon-api@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== -node-fetch@^2.5.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.5, node-fetch@^2.6.7: +node-fetch@^2.5.0, node-fetch@^2.6.5, node-fetch@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" -node-gyp-build@^4.2.1: - version "4.8.2" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.2.tgz#4f802b71c1ab2ca16af830e6c1ea7dd1ad9496fa" - integrity sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw== +node-fetch@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" + integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.18: - version "2.0.18" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" - integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== +node-releases@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" + integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== normalize-path@^2.1.1: version "2.1.1" @@ -10255,18 +9700,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== - dependencies: - path-key "^2.0.0" - npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -10282,23 +9715,16 @@ npm-run-path@^5.1.0: path-key "^4.0.0" npm-to-yarn@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/npm-to-yarn/-/npm-to-yarn-3.0.0.tgz#05006d97359e285f0316e249dbbe56f377ca1182" - integrity sha512-76YnmsbfrYp0tMsWxM0RNX0Vs+x8JxpJGu6B/jDn4lW8+laiTcKmKi9MeMh4UikO4RkJ1oqURoDy9bXJmMXS6A== - -nth-check@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - dependencies: - boolbase "^1.0.0" + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-to-yarn/-/npm-to-yarn-3.0.1.tgz#d1ed47551321ad5cd51342729fe21c8146644529" + integrity sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A== nullthrows@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== @@ -10308,18 +9734,10 @@ object-hash@^3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-inspect@^1.13.1: - version "1.13.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.3.tgz#f14c183de51130243d6d18ae149375ff50ea488a" - integrity sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA== - -object-is@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" - integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" +object-inspect@^1.13.3: + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== object-keys@^1.1.1: version "1.1.1" @@ -10331,14 +9749,16 @@ object-path@^0.11.8: resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.8.tgz#ed002c02bbdd0070b78a27455e8ae01fc14d4742" integrity sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA== -object.assign@^4.1.4, object.assign@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== +object.assign@^4.1.7: + version "4.1.7" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d" + integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== dependencies: - call-bind "^1.0.5" + call-bind "^1.0.8" + call-bound "^1.0.3" define-properties "^1.2.1" - has-symbols "^1.0.3" + es-object-atoms "^1.0.0" + has-symbols "^1.1.0" object-keys "^1.1.1" object.fromentries@^2.0.8: @@ -10361,15 +9781,21 @@ object.groupby@^1.0.3: es-abstract "^1.23.2" object.values@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" - integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== + version "1.2.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz#deed520a50809ff7f75a7cfd4bc64c7a038c6216" + integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" define-properties "^1.2.1" es-object-atoms "^1.0.0" -on-finished@2.4.1: +ohash@^2.0.11: + version "2.0.11" + resolved "https://registry.yarnpkg.com/ohash/-/ohash-2.0.11.tgz#60b11e8cff62ca9dee88d13747a5baa145f5900b" + integrity sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ== + +on-finished@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== @@ -10404,12 +9830,14 @@ onetime@^7.0.0: dependencies: mimic-function "^5.0.0" -oniguruma-to-js@0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/oniguruma-to-js/-/oniguruma-to-js-0.4.3.tgz#8d899714c21f5c7d59a3c0008ca50e848086d740" - integrity sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ== +oniguruma-to-es@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/oniguruma-to-es/-/oniguruma-to-es-2.3.0.tgz#35ea9104649b7c05f3963c6b3b474d964625028b" + integrity sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g== dependencies: - regex "^4.3.2" + emoji-regex-xs "^1.0.0" + regex "^5.1.1" + regex-recursion "^5.1.1" open@^7.4.2: version "7.4.2" @@ -10425,13 +9853,13 @@ opener@^1.5.2: integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== optimism@^0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.18.0.tgz#e7bb38b24715f3fdad8a9a7fc18e999144bbfa63" - integrity sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ== + version "0.18.1" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.18.1.tgz#5cf16847921413dbb0ac809907370388b9c6335f" + integrity sha512-mLXNwWPa9dgFyDqkNi54sjDyNJ9/fTI6WGBLgnXku1vdKY/jovHfZT5r+aiVeFFLOz+foPNOm5YJ4mqgld2GBQ== dependencies: "@wry/caches" "^1.0.0" "@wry/context" "^0.7.0" - "@wry/trie" "^0.4.3" + "@wry/trie" "^0.5.0" tslib "^2.3.0" optionator@^0.9.3: @@ -10456,6 +9884,15 @@ outdent@^0.5.0: resolved "https://registry.yarnpkg.com/outdent/-/outdent-0.5.0.tgz#9e10982fdc41492bb473ad13840d22f9655be2ff" integrity sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q== +own-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/own-keys/-/own-keys-1.0.1.tgz#e4006910a2bf913585289676eebd6f390cf51358" + integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg== + dependencies: + get-intrinsic "^1.2.6" + object-keys "^1.1.1" + safe-push-apply "^1.0.0" + p-filter@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" @@ -10463,11 +9900,6 @@ p-filter@^2.1.0: dependencies: p-map "^2.0.0" -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - p-limit@3.1.0, p-limit@^3.0.2, p-limit@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" @@ -10489,13 +9921,6 @@ p-limit@^4.0.0: dependencies: yocto-queue "^1.0.0" -p-limit@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-6.1.0.tgz#d91f9364d3fdff89b0a45c70d04ad4e0df30a0e8" - integrity sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg== - dependencies: - yocto-queue "^1.1.1" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -10510,43 +9935,29 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" -p-locate@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" - integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== - dependencies: - p-limit "^4.0.0" - p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pac-proxy-agent@^7.0.1: - version "7.0.2" - resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-7.0.2.tgz#0fb02496bd9fb8ae7eb11cfd98386daaac442f58" - integrity sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg== +pac-proxy-agent@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz#9cfaf33ff25da36f6147a20844230ec92c06e5df" + integrity sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA== dependencies: "@tootallnate/quickjs-emscripten" "^0.23.0" - agent-base "^7.0.2" + agent-base "^7.1.2" debug "^4.3.4" get-uri "^6.0.1" http-proxy-agent "^7.0.0" - https-proxy-agent "^7.0.5" + https-proxy-agent "^7.0.6" pac-resolver "^7.0.1" - socks-proxy-agent "^8.0.4" + socks-proxy-agent "^8.0.5" pac-resolver@^7.0.1: version "7.0.1" @@ -10562,9 +9973,27 @@ package-json-from-dist@^1.0.0: integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== package-manager-detector@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/package-manager-detector/-/package-manager-detector-0.2.2.tgz#fbbc8afe87cdaee471ca9b89c3700236c6d2d9e5" - integrity sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg== + version "0.2.11" + resolved "https://registry.yarnpkg.com/package-manager-detector/-/package-manager-detector-0.2.11.tgz#3af0b34f99d86d24af0a0620603d2e1180d05c9c" + integrity sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ== + dependencies: + quansync "^0.2.7" + +package-manager-detector@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/package-manager-detector/-/package-manager-detector-1.3.0.tgz#b42d641c448826e03c2b354272456a771ce453c0" + integrity sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ== + +pagefind@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/pagefind/-/pagefind-1.3.0.tgz#467560447dcc7bbe590f1b888cc8bc733bb377fa" + integrity sha512-8KPLGT5g9s+olKMRTU9LFekLizkVIu9tes90O1/aigJ0T5LmyPqTzGJrETnSw3meSYg58YH7JTzhTTW/3z6VAw== + optionalDependencies: + "@pagefind/darwin-arm64" "1.3.0" + "@pagefind/darwin-x64" "1.3.0" + "@pagefind/linux-arm64" "1.3.0" + "@pagefind/linux-x64" "1.3.0" + "@pagefind/windows-x64" "1.3.0" parent-module@^1.0.0: version "1.0.1" @@ -10574,12 +10003,11 @@ parent-module@^1.0.0: callsites "^3.0.0" parse-entities@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.1.tgz#4e2a01111fb1c986549b944af39eeda258fc9e4e" - integrity sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w== + version "4.0.2" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.2.tgz#61d46f5ed28e4ee62e9ddc43d6b010188443f159" + integrity sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw== dependencies: "@types/unist" "^2.0.0" - character-entities "^2.0.0" character-entities-legacy "^3.0.0" character-reference-invalid "^2.0.0" decode-named-character-reference "^1.0.0" @@ -10615,13 +10043,13 @@ parse-numeric-range@^1.3.0: integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ== parse5@^7.0.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.2.1.tgz#8928f55915e6125f430cc44309765bf17556a33a" - integrity sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ== + version "7.3.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05" + integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw== dependencies: - entities "^4.5.0" + entities "^6.0.0" -parseurl@~1.3.3: +parseurl@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== @@ -10665,21 +10093,11 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-exists@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" - integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== - path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-key@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== - path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -10703,27 +10121,32 @@ path-scurry@^1.11.1: lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" -path-to-regexp@0.1.10: - version "0.1.10" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.10.tgz#67e9108c5c0551b9e5326064387de4763c4d5f8b" - integrity sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w== +path-to-regexp@6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.3.0.tgz#2b6a26a337737a8e1416f9272ed0766b1c0389f4" + integrity sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ== + +path-to-regexp@^8.0.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-8.2.0.tgz#73990cc29e57a3ff2a0d914095156df5db79e8b4" + integrity sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ== path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathe@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" - integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== +pathe@^2.0.1, pathe@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" + integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== -picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.0, picocolors@^1.1.1: +picocolors@^1.0.0, picocolors@^1.1.0, picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== @@ -10733,7 +10156,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pidtree@~0.6.0: +pidtree@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== @@ -10749,9 +10172,14 @@ pify@^4.0.1: integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pirates@^4.0.1, pirates@^4.0.4: - version "4.0.6" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + version "4.0.7" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22" + integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== + +pkce-challenge@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pkce-challenge/-/pkce-challenge-5.0.0.tgz#c3a405cb49e272094a38e890a2b51da0228c4d97" + integrity sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ== pkg-dir@^4.2.0: version "4.2.0" @@ -10760,21 +10188,23 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -pkg-dir@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" - integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== +pkg-types@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.3.1.tgz#bd7cc70881192777eef5326c19deb46e890917df" + integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== dependencies: - find-up "^6.3.0" + confbox "^0.1.8" + mlly "^1.7.4" + pathe "^2.0.1" -pkg-types@^1.0.3, pkg-types@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.2.1.tgz#6ac4e455a5bb4b9a6185c1c79abd544c901db2e5" - integrity sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw== +pkg-types@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-2.1.0.tgz#70c9e1b9c74b63fdde749876ee0aa007ea9edead" + integrity sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A== dependencies: - confbox "^0.1.8" - mlly "^1.7.2" - pathe "^1.1.2" + confbox "^0.2.1" + exsolve "^1.0.1" + pathe "^2.0.3" points-on-curve@0.2.0, points-on-curve@^0.2.0: version "0.2.0" @@ -10790,57 +10220,18 @@ points-on-path@^0.2.1: points-on-curve "0.2.0" possible-typed-array-names@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" - integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== - -postcss-calc@^10.0.2: - version "10.0.2" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-10.0.2.tgz#15f01635a27b9d38913a98c4ef2877f5b715b439" - integrity sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg== - dependencies: - postcss-selector-parser "^6.1.2" - postcss-value-parser "^4.2.0" - -postcss-colormin@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-7.0.2.tgz#6f3c53c13158168669f45adc3926f35cb240ef8e" - integrity sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA== - dependencies: - browserslist "^4.23.3" - caniuse-api "^3.0.0" - colord "^2.9.3" - postcss-value-parser "^4.2.0" - -postcss-convert-values@^7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-7.0.4.tgz#fc13ecedded6365f3c794b502dbcf77d298da12c" - integrity sha512-e2LSXPqEHVW6aoGbjV9RsSSNDO3A0rZLCBxN24zvxF25WknMPpX8Dm9UxxThyEbaytzggRuZxaGXqaOhxQ514Q== - dependencies: - browserslist "^4.23.3" - postcss-value-parser "^4.2.0" + version "1.1.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae" + integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== -postcss-discard-comments@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-7.0.3.tgz#9c414e8ee99d3514ad06a3465ccc20ec1dbce780" - integrity sha512-q6fjd4WU4afNhWOA2WltHgCbkRhZPgQe7cXF74fuVB/ge4QbM9HEaOIzGSiMvM+g/cOsNAUGdf2JDzqA2F8iLA== +postcss-import@16.1.0: + version "16.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-16.1.0.tgz#258732175518129667fe1e2e2a05b19b5654b96a" + integrity sha512-7hsAZ4xGXl4MW+OKEWCnF6T5jqBw80/EE9aXg1r2yyn1RsVEU8EtKXbijEODa+rg7iih4bKf7vlvTGYR4CnPNg== dependencies: - postcss-selector-parser "^6.1.2" - -postcss-discard-duplicates@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.1.tgz#f87f2fe47d8f01afb1e98361c1db3ce1e8afd1a3" - integrity sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ== - -postcss-discard-empty@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-7.0.0.tgz#218829d1ef0a5d5142dd62f0aa60e00e599d2033" - integrity sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA== - -postcss-discard-overridden@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-7.0.0.tgz#b123ea51e3d4e1d0a254cf71eaff1201926d319c" - integrity sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w== + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" postcss-import@^15.1.0: version "15.1.0" @@ -10851,15 +10242,6 @@ postcss-import@^15.1.0: read-cache "^1.0.0" resolve "^1.1.7" -postcss-import@^16.1.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-16.1.0.tgz#258732175518129667fe1e2e2a05b19b5654b96a" - integrity sha512-7hsAZ4xGXl4MW+OKEWCnF6T5jqBw80/EE9aXg1r2yyn1RsVEU8EtKXbijEODa+rg7iih4bKf7vlvTGYR4CnPNg== - dependencies: - postcss-value-parser "^4.0.0" - read-cache "^1.0.0" - resolve "^1.1.7" - postcss-js@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" @@ -10867,7 +10249,15 @@ postcss-js@^4.0.1: dependencies: camelcase-css "^2.0.1" -postcss-load-config@^4.0.1: +postcss-lightningcss@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/postcss-lightningcss/-/postcss-lightningcss-1.0.1.tgz#4a28c451e5205e0da6ec9110ad881f8d6b1b222f" + integrity sha512-9IrtZVt2HQ92iZJTkO43Qipx7E3PM+lLzZM8aGwMmMjNQHcir5jNC42U33p3Gh2lj1nES/ireYWEbMrJNiRBoQ== + dependencies: + browserslist "^4.19.1" + lightningcss "^1.22.0" + +postcss-load-config@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== @@ -10875,150 +10265,14 @@ postcss-load-config@^4.0.1: lilconfig "^3.0.0" yaml "^2.3.4" -postcss-merge-longhand@^7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-7.0.4.tgz#a52d0662b4b29420f3b64a8d5b0ac5133d8db776" - integrity sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A== - dependencies: - postcss-value-parser "^4.2.0" - stylehacks "^7.0.4" - -postcss-merge-rules@^7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-7.0.4.tgz#648cc864d3121e6ec72c2a4f08df1cc801e60ce8" - integrity sha512-ZsaamiMVu7uBYsIdGtKJ64PkcQt6Pcpep/uO90EpLS3dxJi6OXamIobTYcImyXGoW0Wpugh7DSD3XzxZS9JCPg== - dependencies: - browserslist "^4.23.3" - caniuse-api "^3.0.0" - cssnano-utils "^5.0.0" - postcss-selector-parser "^6.1.2" - -postcss-minify-font-values@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-7.0.0.tgz#d16a75a2548e000779566b3568fc874ee5d0aa17" - integrity sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-minify-gradients@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-7.0.0.tgz#f6d84456e6d49164a55d0e45bb1b1809c6cf0959" - integrity sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg== - dependencies: - colord "^2.9.3" - cssnano-utils "^5.0.0" - postcss-value-parser "^4.2.0" - -postcss-minify-params@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-7.0.2.tgz#264a76e25f202d8b5ca5290569c0e8c3ac599dfe" - integrity sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ== - dependencies: - browserslist "^4.23.3" - cssnano-utils "^5.0.0" - postcss-value-parser "^4.2.0" - -postcss-minify-selectors@^7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-7.0.4.tgz#2b69c99ec48a1c223fce4840609d9c53340a11f5" - integrity sha512-JG55VADcNb4xFCf75hXkzc1rNeURhlo7ugf6JjiiKRfMsKlDzN9CXHZDyiG6x/zGchpjQS+UAgb1d4nqXqOpmA== - dependencies: - cssesc "^3.0.0" - postcss-selector-parser "^6.1.2" - -postcss-nested@^6.0.1: +postcss-nested@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.2.0.tgz#4c2d22ab5f20b9cb61e2c5c5915950784d068131" integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== dependencies: postcss-selector-parser "^6.1.1" -postcss-normalize-charset@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-7.0.0.tgz#92244ae73c31bf8f8885d5f16ff69e857ac6c001" - integrity sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ== - -postcss-normalize-display-values@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.0.tgz#01fb50e5e97ef8935363629bea5a6d3b3aac1342" - integrity sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-positions@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-7.0.0.tgz#4eebd7c9d3dde40c97b8047cad38124fc844c463" - integrity sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-repeat-style@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.0.tgz#0cb784655d5714d29bd3bda6dee2fb628aa7227b" - integrity sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-string@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-7.0.0.tgz#a119d3e63a9614570d8413d572fb9fc8c6a64e8c" - integrity sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-timing-functions@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.0.tgz#99d0ee8c4b23b7f4355fafb91385833b9b07108b" - integrity sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-unicode@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.2.tgz#095f8d36ea29adfdf494069c1de101112992a713" - integrity sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg== - dependencies: - browserslist "^4.23.3" - postcss-value-parser "^4.2.0" - -postcss-normalize-url@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-7.0.0.tgz#c88cb7cf8952d3ff631e4eba924e7b060ca802f6" - integrity sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-normalize-whitespace@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.0.tgz#46b025f0bea72139ddee63015619b0c21cebd845" - integrity sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-ordered-values@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-7.0.1.tgz#8b4b5b8070ca7756bd49f07d5edf274b8f6782e0" - integrity sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw== - dependencies: - cssnano-utils "^5.0.0" - postcss-value-parser "^4.2.0" - -postcss-reduce-initial@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-7.0.2.tgz#3dc085347a5943e18547d4b0aa5bd4ff5a93b2c5" - integrity sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA== - dependencies: - browserslist "^4.23.3" - caniuse-api "^3.0.0" - -postcss-reduce-transforms@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.0.tgz#0386080a14e5faad9f8eda33375b79fe7c4f9677" - integrity sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.1.1, postcss-selector-parser@^6.1.2: +postcss-selector-parser@^6.1.1, postcss-selector-parser@^6.1.2: version "6.1.2" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== @@ -11026,22 +10280,7 @@ postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.1.1, postcss-selecto cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-7.0.1.tgz#2b63571d8e9568384df334bac9917baff4d23f58" - integrity sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA== - dependencies: - postcss-value-parser "^4.2.0" - svgo "^3.3.2" - -postcss-unique-selectors@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-7.0.3.tgz#483fc11215b23d517d5d9bbe5833d9915619ca33" - integrity sha512-J+58u5Ic5T1QjP/LDV9g3Cx4CNOgB5vz+kM6+OxHHhFACdcDeKhBXjQmB7fnIZM12YSTvsL0Opwco83DmacW2g== - dependencies: - postcss-selector-parser "^6.1.2" - -postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: +postcss-value-parser@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== @@ -11055,12 +10294,12 @@ postcss@8.4.31: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@^8.4.23, postcss@^8.4.38, postcss@^8.4.47: - version "8.4.48" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.48.tgz#765f3f8abaa2a2b065cdddbc57ad4cb5a76e515f" - integrity sha512-GCRK8F6+Dl7xYniR5a4FYbpBzU8XnZVeowqsQFYdcXuSbChgiks7qybSkbvnaeqv0G0B+dd9/jJgH8kkLDQeEA== +postcss@8.5.3, postcss@^8.4.47, postcss@^8.4.48: + version "8.5.3" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.3.tgz#1463b6f1c7fb16fe258736cba29a2de35237eafb" + integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A== dependencies: - nanoid "^3.3.7" + nanoid "^3.3.8" picocolors "^1.1.1" source-map-js "^1.2.1" @@ -11074,23 +10313,23 @@ prettier-plugin-pkg@^0.18.0: resolved "https://registry.yarnpkg.com/prettier-plugin-pkg/-/prettier-plugin-pkg-0.18.1.tgz#e70f669ae9edad137c3b78675104c57df820ca89" integrity sha512-FuUxvsYZR/8rsLH8s/jbPQmgYvv0yxW8LoIHCy6+Q7p4FBjjdP3DNKx8fMTOsc0SlEB1skB4o1LcahRceIh87A== -prettier-plugin-sh@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/prettier-plugin-sh/-/prettier-plugin-sh-0.14.0.tgz#22b186adea79b36212ccd9faa8dd01f33ef34ff6" - integrity sha512-hfXulj5+zEl/ulrO5kMuuTPKmXvOg0bnLHY1hKFNN/N+/903iZbNp8NyZBTsgI8dtkSgFfAEIQq0IQTyP1ZVFQ== +prettier-plugin-sh@^0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/prettier-plugin-sh/-/prettier-plugin-sh-0.15.0.tgz#f05d2ec0829e6571d59f4950dde2f749050eb47b" + integrity sha512-U0PikJr/yr2bzzARl43qI0mApBj0C1xdAfA04AZa6LnvIKawXHhuy2fFo6LNA7weRzGlAiNbaEFfKMFo0nZr/A== dependencies: mvdan-sh "^0.10.1" - sh-syntax "^0.4.1" + sh-syntax "^0.4.2" -prettier-plugin-tailwindcss@0.6.8: - version "0.6.8" - resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.8.tgz#8a178e1679e3f941cc9de396f109c6cffea676d8" - integrity sha512-dGu3kdm7SXPkiW4nzeWKCl3uoImdd5CTZEJGxyypEPL37Wj0HT2pLqjrvSei1nTeuQfO4PUfjeW5cTUNRLZ4sA== +prettier-plugin-tailwindcss@0.6.11: + version "0.6.11" + resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.11.tgz#cfacd60c4f81997353ee913e589037f796df0f5f" + integrity sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA== -prettier@3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105" - integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== +prettier@3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5" + integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw== prettier@^2.7.1: version "2.8.8" @@ -11106,19 +10345,16 @@ pretty-format@^29.0.0, pretty-format@^29.7.0: ansi-styles "^5.0.0" react-is "^18.0.0" +printable-characters@^1.0.42: + version "1.0.42" + resolved "https://registry.yarnpkg.com/printable-characters/-/printable-characters-1.0.42.tgz#3f18e977a9bd8eb37fcc4ff5659d7be90868b3d8" + integrity sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ== + progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -promise-retry@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" - integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== - dependencies: - err-code "^2.0.2" - retry "^0.12.0" - promise@^7.1.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" @@ -11148,7 +10384,12 @@ property-information@^6.0.0: resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec" integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== -proxy-addr@~2.0.7: +property-information@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.1.0.tgz#b622e8646e02b580205415586b40804d3e8bfd5d" + integrity sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ== + +proxy-addr@^2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== @@ -11156,30 +10397,25 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" -proxy-agent@^6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-6.4.0.tgz#b4e2dd51dee2b377748aef8d45604c2d7608652d" - integrity sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ== +proxy-agent@^6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-6.5.0.tgz#9e49acba8e4ee234aacb539f89ed9c23d02f232d" + integrity sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A== dependencies: - agent-base "^7.0.2" + agent-base "^7.1.2" debug "^4.3.4" http-proxy-agent "^7.0.1" - https-proxy-agent "^7.0.3" + https-proxy-agent "^7.0.6" lru-cache "^7.14.1" - pac-proxy-agent "^7.0.1" + pac-proxy-agent "^7.1.0" proxy-from-env "^1.1.0" - socks-proxy-agent "^8.0.2" + socks-proxy-agent "^8.0.5" proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== - pump@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.2.tgz#836f3edd6bc2ee599256c924ffe0d88573ddcbf8" @@ -11193,28 +10429,28 @@ punycode@^2.1.0: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -puppeteer-core@23.8.0: - version "23.8.0" - resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-23.8.0.tgz#745be0a509734c65bd678c08bc9418b0f142cf36" - integrity sha512-c2ymGN2M//We7pC+JhP2dE/g4+qnT89BO+EMSZyJmecN3DN6RNqErA7eH7DrWoNIcU75r2nP4VHa4pswAL6NVg== +puppeteer-core@24.8.2: + version "24.8.2" + resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-24.8.2.tgz#f3e939e39e001d9933e79d980371e380d9e535c1" + integrity sha512-wNw5cRZOHiFibWc0vdYCYO92QuKTbJ8frXiUfOq/UGJWMqhPoBThTKkV+dJ99YyWfzJ2CfQQ4T1nhhR0h8FlVw== dependencies: - "@puppeteer/browsers" "2.4.1" - chromium-bidi "0.8.0" - debug "^4.3.7" - devtools-protocol "0.0.1367902" + "@puppeteer/browsers" "2.10.4" + chromium-bidi "5.1.0" + debug "^4.4.0" + devtools-protocol "0.0.1439962" typed-query-selector "^2.12.0" - ws "^8.18.0" + ws "^8.18.2" -puppeteer@23.8.0: - version "23.8.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-23.8.0.tgz#24f623223ee7fd74f495a36620f940a2eca9ac88" - integrity sha512-MFWDMWoCcOpwNwQIjA9gPKWrEUbj8bLCzkK56w5lZPMUT6wK4FfpgOEPxKffVmXEMYMZzgcjxzqy15b/Q1ibaw== +puppeteer@24.8.2: + version "24.8.2" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-24.8.2.tgz#3ee6cfe74e4cc8dc4dd5cb4b553f4d4416df935f" + integrity sha512-Sn6SBPwJ6ASFvQ7knQkR+yG7pcmr4LfXzmoVp3NR0xXyBbPhJa8a8ybtb6fnw1g/DD/2t34//yirubVczko37w== dependencies: - "@puppeteer/browsers" "2.4.1" - chromium-bidi "0.8.0" + "@puppeteer/browsers" "2.10.4" + chromium-bidi "5.1.0" cosmiconfig "^9.0.0" - devtools-protocol "0.0.1367902" - puppeteer-core "23.8.0" + devtools-protocol "0.0.1439962" + puppeteer-core "24.8.2" typed-query-selector "^2.12.0" pure-rand@^6.0.0: @@ -11222,23 +10458,23 @@ pure-rand@^6.0.0: resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2" integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== -qs@6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" - integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== +qs@^6.14.0: + version "6.14.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930" + integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== dependencies: - side-channel "^1.0.6" + side-channel "^1.1.0" + +quansync@^0.2.7, quansync@^0.2.8: + version "0.2.10" + resolved "https://registry.yarnpkg.com/quansync/-/quansync-0.2.10.tgz#32053cf166fa36511aae95fc49796116f2dc20e1" + integrity sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A== queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -queue-tick@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" - integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== - randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -11246,28 +10482,32 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -range-parser@~1.2.1: +range-parser@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== +raw-body@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-3.0.0.tgz#25b3476f07a51600619dae3fe82ddc28a36e5e0f" + integrity sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g== dependencies: bytes "3.1.2" http-errors "2.0.0" - iconv-lite "0.4.24" + iconv-lite "0.6.3" unpipe "1.0.0" -react-dom@^18.2.0: - version "18.3.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" - integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== +react-compiler-runtime@0.0.0-experimental-22c6e49-20241219: + version "0.0.0-experimental-22c6e49-20241219" + resolved "https://registry.yarnpkg.com/react-compiler-runtime/-/react-compiler-runtime-0.0.0-experimental-22c6e49-20241219.tgz#6f6cfd448c32edab184f632c178fa334d73453e5" + integrity sha512-bOAGaRL1ldfIIpbDsl+uV025Ta6RS6/cOjvvh8r2Vo7KtqB+RSvihVYRsWQz7ECKNPWdq5MClS845acwAwieDw== + +react-dom@19.1.0: + version "19.1.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.1.0.tgz#133558deca37fa1d682708df8904b25186793623" + integrity sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g== dependencies: - loose-envify "^1.1.0" - scheduler "^0.23.2" + scheduler "^0.26.0" react-fast-compare@^3.0.1: version "3.2.2" @@ -11284,6 +10524,11 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== +react-medium-image-zoom@^5.2.12: + version "5.2.14" + resolved "https://registry.yarnpkg.com/react-medium-image-zoom/-/react-medium-image-zoom-5.2.14.tgz#87032d079fce4a21a17770d6709f739872580906" + integrity sha512-nfTVYcAUnBzXQpPDcZL+cG/e6UceYUIG+zDcnemL7jtAqbJjVVkA85RgneGtJeni12dTyiRPZVM6Szkmwd/o8w== + react-paginate@8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/react-paginate/-/react-paginate-8.2.0.tgz#947c3dcb444a6c16c1bcf8361871aa135baa3dcd" @@ -11302,12 +10547,10 @@ react-player@2.16.0: prop-types "^15.7.2" react-fast-compare "^3.0.1" -react@^18.2.0: - version "18.3.1" - resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" - integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== - dependencies: - loose-envify "^1.1.0" +react@19.1.0: + version "19.1.0" + resolved "https://registry.yarnpkg.com/react/-/react-19.1.0.tgz#926864b6c48da7627f004795d6cce50e90793b75" + integrity sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg== read-cache@^1.0.0: version "1.0.0" @@ -11378,6 +10621,20 @@ recma-stringify@^1.0.0: unified "^11.0.0" vfile "^6.0.0" +reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz#c629219e78a3316d8b604c765ef68996964e7bf9" + integrity sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.9" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.7" + get-proto "^1.0.1" + which-builtin-type "^1.2.1" + regenerate-unicode-properties@^10.2.0: version "10.2.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" @@ -11390,42 +10647,47 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" - integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== - -regenerator-transform@^0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" - integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== +regex-recursion@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/regex-recursion/-/regex-recursion-5.1.1.tgz#5a73772d18adbf00f57ad097bf54171b39d78f8b" + integrity sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w== dependencies: - "@babel/runtime" "^7.8.4" + regex "^5.1.1" + regex-utilities "^2.3.0" -regex@^4.3.2: - version "4.4.0" - resolved "https://registry.yarnpkg.com/regex/-/regex-4.4.0.tgz#cb731e2819f230fad69089e1bd854fef7569e90a" - integrity sha512-uCUSuobNVeqUupowbdZub6ggI5/JZkYyJdDogddJr60L764oxC2pMZov1fQ3wM9bdyzUILDG+Sqx6NAKAz9rKQ== +regex-utilities@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/regex-utilities/-/regex-utilities-2.3.0.tgz#87163512a15dce2908cf079c8960d5158ff43280" + integrity sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng== -regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.2: - version "1.5.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42" - integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== +regex@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/regex/-/regex-5.1.1.tgz#cf798903f24d6fe6e531050a36686e082b29bd03" + integrity sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw== dependencies: - call-bind "^1.0.7" + regex-utilities "^2.3.0" + +regexp.prototype.flags@^1.5.3: + version "1.5.4" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19" + integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== + dependencies: + call-bind "^1.0.8" define-properties "^1.2.1" es-errors "^1.3.0" + get-proto "^1.0.1" + gopd "^1.2.0" set-function-name "^2.0.2" -regexpu-core@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.1.1.tgz#b469b245594cb2d088ceebc6369dceb8c00becac" - integrity sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw== +regexpu-core@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.2.0.tgz#0e5190d79e542bf294955dccabae04d3c7d53826" + integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== dependencies: regenerate "^1.4.2" regenerate-unicode-properties "^10.2.0" regjsgen "^0.8.0" - regjsparser "^0.11.0" + regjsparser "^0.12.0" unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.1.0" @@ -11434,10 +10696,10 @@ regjsgen@^0.8.0: resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== -regjsparser@^0.11.0: - version "0.11.2" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.11.2.tgz#7404ad42be00226d72bcf1f003f1f441861913d8" - integrity sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA== +regjsparser@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" + integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== dependencies: jsesc "~3.0.2" @@ -11518,9 +10780,9 @@ remark-frontmatter@^5.0.0: unified "^11.0.0" remark-gfm@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-4.0.0.tgz#aea777f0744701aa288b67d28c43565c7e8c35de" - integrity sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA== + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-4.0.1.tgz#33227b2a74397670d357bf05c098eaf8513f0d6b" + integrity sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg== dependencies: "@types/mdast" "^4.0.0" mdast-util-gfm "^3.0.0" @@ -11539,15 +10801,6 @@ remark-math@^6.0.0: micromark-extension-math "^3.0.0" unified "^11.0.0" -remark-mdx-disable-explicit-jsx@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/remark-mdx-disable-explicit-jsx/-/remark-mdx-disable-explicit-jsx-0.1.0.tgz#0100242914cbf54e42da987be547f71dc5473d5d" - integrity sha512-NC7NUbu4bExZnsWDTJE3UhBRZujW3gyqMufhTHn2GHhZ5LetWzyieyuZerBPdSniLx4d7QKDbf+d3u/qmMGyaQ== - dependencies: - "@types/hast" "^2.3.4" - unified "^10.1.1" - unist-util-visit "^4.1.0" - remark-mdx@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-3.1.0.tgz#f979be729ecb35318fa48e2135c1169607a78343" @@ -11567,19 +10820,19 @@ remark-parse@^11.0.0: unified "^11.0.0" remark-reading-time@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/remark-reading-time/-/remark-reading-time-2.0.1.tgz#fe8bb8e420db7678dc749385167adb4fc99318f7" - integrity sha512-fy4BKy9SRhtYbEHvp6AItbRTnrhiDGbqLQTSYVbQPGuRCncU1ubSsh9p/W5QZSxtYcUXv8KGL0xBgPLyNJA1xw== + version "2.0.2" + resolved "https://registry.yarnpkg.com/remark-reading-time/-/remark-reading-time-2.0.2.tgz#394ec979ae3acf45655fa10fcf15078e806de694" + integrity sha512-ILjIuR0dQQ8pELPgaFvz7ralcSN62rD/L1pTUJgWb4gfua3ZwYEI8mnKGxEQCbrXSUF/OvycTkcUbifGOtOn5A== dependencies: estree-util-is-identifier-name "^2.0.0" - estree-util-value-to-estree "^1.3.0" + estree-util-value-to-estree "^3.3.3" reading-time "^1.3.0" unist-util-visit "^3.1.0" remark-rehype@^11.0.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-11.1.1.tgz#f864dd2947889a11997c0a2667cd6b38f685bca7" - integrity sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ== + version "11.1.2" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-11.1.2.tgz#2addaadda80ca9bd9aa0da763e74d16327683b37" + integrity sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw== dependencies: "@types/hast" "^3.0.0" "@types/mdast" "^4.0.0" @@ -11621,11 +10874,6 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -11649,24 +10897,19 @@ resolve-pkg-maps@^1.0.0: integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== resolve.exports@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" - integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== + version "2.0.3" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.3.tgz#41955e6f1b4013b7586f873749a635dea07ebe3f" + integrity sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A== -resolve@^1.1.7, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.2, resolve@^1.22.4: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== +resolve@^1.1.7, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.4, resolve@^1.22.8: + version "1.22.10" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" + integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== dependencies: - is-core-module "^2.13.0" + is-core-module "^2.16.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -response-iterator@^0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/response-iterator/-/response-iterator-0.2.6.tgz#249005fb14d2e4eeb478a3f735a28fd8b4c9f3da" - integrity sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw== - restore-cursor@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-5.1.0.tgz#0766d95699efacb14150993f55baf0953ea1ebe7" @@ -11712,20 +10955,10 @@ retext@^9.0.0: retext-stringify "^4.0.0" unified "^11.0.0" -retry@0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" + integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== rfdc@^1.4.1: version "1.4.1" @@ -11754,6 +10987,17 @@ roughjs@^4.6.6: points-on-curve "^0.2.0" points-on-path "^0.2.1" +router@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/router/-/router-2.2.0.tgz#019be620b711c87641167cc79b99090f00b146ef" + integrity sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ== + dependencies: + debug "^4.4.0" + depd "^2.0.0" + is-promise "^4.0.0" + parseurl "^1.3.3" + path-to-regexp "^8.0.0" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -11767,70 +11011,59 @@ rw@1: integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== rxjs@^7.8.1: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + version "7.8.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b" + integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== dependencies: tslib "^2.1.0" -safe-array-concat@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" - integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== +safe-array-concat@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz#c9e54ec4f603b0bbb8e7e5007a5ee7aecd1538c3" + integrity sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q== dependencies: - call-bind "^1.0.7" - get-intrinsic "^1.2.4" - has-symbols "^1.0.3" + call-bind "^1.0.8" + call-bound "^1.0.2" + get-intrinsic "^1.2.6" + has-symbols "^1.1.0" isarray "^2.0.5" -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0: +safe-buffer@5.2.1, safe-buffer@^5.1.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-regex-test@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" - integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== +safe-push-apply@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz#01850e981c1602d398c85081f360e4e6d03d27f5" + integrity sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA== dependencies: - call-bind "^1.0.6" es-errors "^1.3.0" - is-regex "^1.1.4" + isarray "^2.0.5" + +safe-regex-test@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz#7f87dfb67a3150782eaaf18583ff5d1711ac10c1" + integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + is-regex "^1.2.1" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -scheduler@^0.23.2: - version "0.23.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" - integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== - dependencies: - loose-envify "^1.1.0" - -schema-utils@^2.5.0: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -schema-utils@^3.1.1, schema-utils@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" +scheduler@^0.26.0: + version "0.26.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.26.0.tgz#4ce8a8c2a2095f13ea11bf9a445be50c555d6337" + integrity sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA== -schema-utils@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" - integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== +schema-utils@^4.3.0, schema-utils@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.2.tgz#0c10878bf4a73fd2b1dfd14b9462b26788c806ae" + integrity sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ== dependencies: "@types/json-schema" "^7.0.9" ajv "^8.9.0" @@ -11844,71 +11077,51 @@ scroll-into-view-if-needed@^3.1.0: dependencies: compute-scroll-into-view "^3.0.2" -scuid@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/scuid/-/scuid-1.1.0.tgz#d3f9f920956e737a60f72d0e4ad280bf324d5dab" - integrity sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg== - -section-matter@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" - integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== - dependencies: - extend-shallow "^2.0.1" - kind-of "^6.0.0" - semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.5, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3: - version "7.6.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== +semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3, semver@^7.7.1: + version "7.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f" + integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== -send@0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" - integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== - 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" +send@^1.1.0, send@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/send/-/send-1.2.0.tgz#32a7554fb777b831dfa828370f773a3808d37212" + integrity sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw== + dependencies: + debug "^4.3.5" + encodeurl "^2.0.0" + escape-html "^1.0.3" + etag "^1.8.1" + fresh "^2.0.0" + http-errors "^2.0.0" + mime-types "^3.0.1" + ms "^2.1.3" + on-finished "^2.4.1" + range-parser "^1.2.1" + statuses "^2.0.1" -serialize-javascript@^6.0.1: +serialize-javascript@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" -serve-static@1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" - integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== +serve-static@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-2.2.0.tgz#9c02564ee259bdd2251b82d659a2e7e1938d66f9" + integrity sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ== dependencies: - encodeurl "~2.0.0" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.19.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + encodeurl "^2.0.0" + escape-html "^1.0.3" + parseurl "^1.3.3" + send "^1.2.0" -set-function-length@^1.2.1: +set-function-length@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== @@ -11930,13 +11143,14 @@ set-function-name@^2.0.2: functions-have-names "^1.2.3" has-property-descriptors "^1.0.2" -setimmediate-napi@^1.0.3: - version "1.0.6" - resolved "https://registry.yarnpkg.com/setimmediate-napi/-/setimmediate-napi-1.0.6.tgz#43cd797ef25d66eb69c782170ea01898787b8720" - integrity sha512-sdNXN15Av1jPXuSal4Mk4tEAKn0+8lfF9Z50/negaQMrAIO9c1qM0eiCh8fT6gctp0RiCObk+6/Xfn5RMGdZoA== +set-proto@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/set-proto/-/set-proto-1.0.0.tgz#0760dbcff30b2d7e801fd6e19983e56da337565e" + integrity sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw== dependencies: - get-symbol-from-current-process-h "^1.0.1" - get-uv-event-loop-napi-h "^1.0.5" + dunder-proto "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" setimmediate@^1.0.5: version "1.0.5" @@ -11948,21 +11162,13 @@ setprototypeof@1.2.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -sh-syntax@^0.4.1: +sh-syntax@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/sh-syntax/-/sh-syntax-0.4.2.tgz#3bad5c6134b510e7b4c53b16f409ce4fd2a65245" integrity sha512-/l2UZ5fhGZLVZa16XQM9/Vq/hezGGbdHeVEA01uWjOL1+7Ek/gt6FquW0iKKws4a9AYPYvlz6RyVvjh3JxOteg== dependencies: tslib "^2.6.2" -sha.js@^2.4.11: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - sharp@^0.33.5: version "0.33.5" resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.33.5.tgz#13e0e4130cc309d6a9497596715240b2ec0c594e" @@ -11992,12 +11198,35 @@ sharp@^0.33.5: "@img/sharp-win32-ia32" "0.33.5" "@img/sharp-win32-x64" "0.33.5" -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== +sharp@^0.34.1: + version "0.34.1" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.34.1.tgz#e5922894b0cc7ddf159eeabc6d5668e4e8b11d61" + integrity sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg== dependencies: - shebang-regex "^1.0.0" + color "^4.2.3" + detect-libc "^2.0.3" + semver "^7.7.1" + optionalDependencies: + "@img/sharp-darwin-arm64" "0.34.1" + "@img/sharp-darwin-x64" "0.34.1" + "@img/sharp-libvips-darwin-arm64" "1.1.0" + "@img/sharp-libvips-darwin-x64" "1.1.0" + "@img/sharp-libvips-linux-arm" "1.1.0" + "@img/sharp-libvips-linux-arm64" "1.1.0" + "@img/sharp-libvips-linux-ppc64" "1.1.0" + "@img/sharp-libvips-linux-s390x" "1.1.0" + "@img/sharp-libvips-linux-x64" "1.1.0" + "@img/sharp-libvips-linuxmusl-arm64" "1.1.0" + "@img/sharp-libvips-linuxmusl-x64" "1.1.0" + "@img/sharp-linux-arm" "0.34.1" + "@img/sharp-linux-arm64" "0.34.1" + "@img/sharp-linux-s390x" "0.34.1" + "@img/sharp-linux-x64" "0.34.1" + "@img/sharp-linuxmusl-arm64" "0.34.1" + "@img/sharp-linuxmusl-x64" "0.34.1" + "@img/sharp-wasm32" "0.34.1" + "@img/sharp-win32-ia32" "0.34.1" + "@img/sharp-win32-x64" "0.34.1" shebang-command@^2.0.0: version "2.0.0" @@ -12006,20 +11235,15 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== - shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shell-quote@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + version "1.8.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.2.tgz#d2d83e057959d53ec261311e9e9b8f51dcb2934a" + integrity sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA== shiki@^0.14.7: version "0.14.7" @@ -12032,28 +11256,60 @@ shiki@^0.14.7: vscode-textmate "^8.0.0" shiki@^1.0.0: - version "1.22.2" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.22.2.tgz#ed109a3d0850504ad5a1edf8496470a2121c5b7b" - integrity sha512-3IZau0NdGKXhH2bBlUk4w1IHNxPh6A5B2sUpyY+8utLu2j/h1QpFkAaUA1bAMxOWWGtTWcAh531vnS4NJKS/lA== - dependencies: - "@shikijs/core" "1.22.2" - "@shikijs/engine-javascript" "1.22.2" - "@shikijs/engine-oniguruma" "1.22.2" - "@shikijs/types" "1.22.2" - "@shikijs/vscode-textmate" "^9.3.0" + version "1.29.2" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.29.2.tgz#5c93771f2d5305ce9c05975c33689116a27dc657" + integrity sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg== + dependencies: + "@shikijs/core" "1.29.2" + "@shikijs/engine-javascript" "1.29.2" + "@shikijs/engine-oniguruma" "1.29.2" + "@shikijs/langs" "1.29.2" + "@shikijs/themes" "1.29.2" + "@shikijs/types" "1.29.2" + "@shikijs/vscode-textmate" "^10.0.1" "@types/hast" "^3.0.4" -side-channel@^1.0.4, side-channel@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" - integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== +side-channel-list@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" + integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + +side-channel@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== dependencies: - call-bind "^1.0.7" es-errors "^1.3.0" - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" + object-inspect "^1.13.3" + side-channel-list "^1.0.0" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -12130,33 +11386,24 @@ smart-buffer@^4.2.0: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== -socks-proxy-agent@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" - integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== - dependencies: - agent-base "^6.0.2" - debug "^4.3.3" - socks "^2.6.2" - -socks-proxy-agent@^8.0.2, socks-proxy-agent@^8.0.4: - version "8.0.4" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz#9071dca17af95f483300316f4b063578fa0db08c" - integrity sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw== +socks-proxy-agent@^8.0.5: + version "8.0.5" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz#b9cdb4e7e998509d7659d689ce7697ac21645bee" + integrity sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw== dependencies: - agent-base "^7.1.1" + agent-base "^7.1.2" debug "^4.3.4" socks "^2.8.3" -socks@^2.6.2, socks@^2.8.3: - version "2.8.3" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5" - integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw== +socks@^2.8.3: + version "2.8.4" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.4.tgz#07109755cdd4da03269bda4725baa061ab56d5cc" + integrity sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ== dependencies: ip-address "^9.0.5" smart-buffer "^4.2.0" -source-map-js@^1.0.1, source-map-js@^1.0.2, source-map-js@^1.2.0, source-map-js@^1.2.1: +source-map-js@^1.0.2, source-map-js@^1.2.0, source-map-js@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== @@ -12192,22 +11439,22 @@ space-separated-tokens@^2.0.0: resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== -spawndamnit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/spawndamnit/-/spawndamnit-2.0.0.tgz#9f762ac5c3476abb994b42ad592b5ad22bb4b0ad" - integrity sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA== +spawndamnit@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spawndamnit/-/spawndamnit-3.0.1.tgz#44410235d3dc4e21f8e4f740ae3266e4486c2aed" + integrity sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg== dependencies: - cross-spawn "^5.1.0" - signal-exit "^3.0.2" + cross-spawn "^7.0.5" + signal-exit "^4.0.1" speech-rule-engine@^4.0.6: - version "4.0.7" - resolved "https://registry.yarnpkg.com/speech-rule-engine/-/speech-rule-engine-4.0.7.tgz#b655dacbad3dae04acc0f7665e26ef258397dd09" - integrity sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g== + version "4.1.2" + resolved "https://registry.yarnpkg.com/speech-rule-engine/-/speech-rule-engine-4.1.2.tgz#3b31b5813a2fc2eaecdfda26ad29c32599e9a537" + integrity sha512-S6ji+flMEga+1QU79NDbwZ8Ivf0S/MpupQQiIC0rTpU/ZTKgcajijJJb1OcByBQDjrXCN1/DJtGz4ZJeBMPGJw== dependencies: - commander "9.2.0" + "@xmldom/xmldom" "0.9.8" + commander "13.1.0" wicked-good-xpath "1.3.0" - xmldom-sre "0.1.31" sprintf-js@^1.1.3: version "1.1.3" @@ -12219,13 +11466,6 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -ssri@^10.0.0: - version "10.0.6" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.6.tgz#a8aade2de60ba2bce8688e3fa349bad05c7dc1e5" - integrity sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ== - dependencies: - minipass "^7.0.3" - stack-utils@^2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" @@ -12233,35 +11473,40 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" -statuses@2.0.1: +stacktracey@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/stacktracey/-/stacktracey-2.1.8.tgz#bf9916020738ce3700d1323b32bd2c91ea71199d" + integrity sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw== + dependencies: + as-table "^1.0.36" + get-source "^2.0.12" + +statuses@2.0.1, statuses@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -stop-iteration-iterator@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" - integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== - dependencies: - internal-slot "^1.0.4" +stoppable@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/stoppable/-/stoppable-1.1.0.tgz#32da568e83ea488b08e4d7ea2c3bcc9d75015d5b" + integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== streamsearch@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== -streamx@^2.15.0, streamx@^2.20.0: - version "2.20.1" - resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.20.1.tgz#471c4f8b860f7b696feb83d5b125caab2fdbb93c" - integrity sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA== +streamx@^2.15.0, streamx@^2.21.0: + version "2.22.0" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.22.0.tgz#cd7b5e57c95aaef0ff9b2aef7905afa62ec6e4a7" + integrity sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw== dependencies: fast-fifo "^1.3.2" - queue-tick "^1.0.1" text-decoder "^1.1.0" optionalDependencies: bare-events "^2.2.0" -string-argv@~0.3.2: +string-argv@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== @@ -12310,22 +11555,26 @@ string-width@^7.0.0: get-east-asian-width "^1.0.0" strip-ansi "^7.1.0" -string.prototype.trim@^1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" - integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== +string.prototype.trim@^1.2.10: + version "1.2.10" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz#40b2dd5ee94c959b4dcfb1d65ce72e90da480c81" + integrity sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.2" + define-data-property "^1.1.4" define-properties "^1.2.1" - es-abstract "^1.23.0" + es-abstract "^1.23.5" es-object-atoms "^1.0.0" + has-property-descriptors "^1.0.2" -string.prototype.trimend@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" - integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== +string.prototype.trimend@^1.0.8, string.prototype.trimend@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz#62e2731272cd285041b36596054e9f66569b6942" + integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.2" define-properties "^1.2.1" es-object-atoms "^1.0.0" @@ -12367,11 +11616,6 @@ strip-ansi@^7.0.1, strip-ansi@^7.1.0: dependencies: ansi-regex "^6.0.1" -strip-bom-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" - integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== - strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -12382,11 +11626,6 @@ strip-bom@^4.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== - strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" @@ -12402,14 +11641,14 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -style-to-object@^0.4.0: - version "0.4.4" - resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.4.tgz#266e3dfd56391a7eefb7770423612d043c3f33ec" - integrity sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg== +style-to-js@^1.0.0: + version "1.1.16" + resolved "https://registry.yarnpkg.com/style-to-js/-/style-to-js-1.1.16.tgz#e6bd6cd29e250bcf8fa5e6591d07ced7575dbe7a" + integrity sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw== dependencies: - inline-style-parser "0.1.1" + style-to-object "1.0.8" -style-to-object@^1.0.0: +style-to-object@1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-1.0.8.tgz#67a29bca47eaa587db18118d68f9d95955e81292" integrity sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g== @@ -12423,18 +11662,10 @@ styled-jsx@5.1.6: dependencies: client-only "0.0.1" -stylehacks@^7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-7.0.4.tgz#9c21f7374f4bccc0082412b859b3c89d77d3277c" - integrity sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww== - dependencies: - browserslist "^4.23.3" - postcss-selector-parser "^6.1.2" - -stylis@^4.3.1: - version "4.3.4" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.4.tgz#ca5c6c4a35c4784e4e93a2a24dc4e9fa075250a4" - integrity sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now== +stylis@^4.3.6: + version "4.3.6" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.6.tgz#7c7b97191cb4f195f03ecab7d52f7902ed378320" + integrity sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ== subscriptions-transport-ws@0.11.0: version "0.11.0" @@ -12447,7 +11678,7 @@ subscriptions-transport-ws@0.11.0: symbol-observable "^1.0.4" ws "^5.2.0 || ^6.0.0 || ^7.0.0" -sucrase@^3.32.0: +sucrase@^3.35.0: version "3.35.0" resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== @@ -12460,13 +11691,6 @@ sucrase@^3.32.0: pirates "^4.0.1" ts-interface-checker "^0.1.9" -supports-color@^4.0.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" - integrity sha512-ycQR/UbvI9xIlEdQT1TQqwoXtEldExbCEAJgRo5YXlmSKjv6ThHnP9/vwGa1gr19Gfw+LkFd7KqYMhzrRC5JYw== - dependencies: - has-flag "^2.0.0" - supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -12486,46 +11710,34 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -svelte2tsx@0.7.24: - version "0.7.24" - resolved "https://registry.yarnpkg.com/svelte2tsx/-/svelte2tsx-0.7.24.tgz#d508e29b4486620c2213dbb66bcb01038e31038f" - integrity sha512-KbKD+5aqTYdRPfAroA72xc3kEz3Dj0Vq7X3IjHLWbwfco7pwioEx4x/V9lOpKmkHlYh9YNPkqXWlbrH7Cc580A== +svelte2tsx@0.7.37: + version "0.7.37" + resolved "https://registry.yarnpkg.com/svelte2tsx/-/svelte2tsx-0.7.37.tgz#81721a204cb15514b2e2934ee424fcf80207d205" + integrity sha512-uQCWibXwUNPGQBGTZP1axIpFGFHTXXN30/ppodLVXCnX23U1nzEhqiVtFSEQjtUK3pFVxPhdnfyxD6ikxMCzPQ== dependencies: dedent-js "^1.0.1" pascal-case "^3.1.1" -svelte@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/svelte/-/svelte-5.2.0.tgz#ba5c909947dbf0f929e3b097000fe09b7920f5bb" - integrity sha512-LOowFhMB0CoTzDsa90snaICFMftrxKlYsOhH4YP1AamjCSDBZvtDq0yB5QY8LJA1tFftcmpAhmLCK/gAOFNrtw== +svelte@5.28.6: + version "5.28.6" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-5.28.6.tgz#c6b1501a84a5a463d214ffe06a210c05de0947db" + integrity sha512-9qqr7mw8YR9PAnxGFfzCK6PUlNGtns7wVavrhnxyf3fpB1mP/Ol55Z2UnIapsSzNNl3k9qw7cZ22PdE8+xT/jQ== dependencies: "@ampproject/remapping" "^2.3.0" "@jridgewell/sourcemap-codec" "^1.5.0" + "@sveltejs/acorn-typescript" "^1.0.5" "@types/estree" "^1.0.5" acorn "^8.12.1" - acorn-typescript "^1.4.13" aria-query "^5.3.1" axobject-query "^4.1.0" - esm-env "^1.0.0" - esrap "^1.2.2" + clsx "^2.1.1" + esm-env "^1.2.1" + esrap "^1.4.6" is-reference "^3.0.3" locate-character "^3.0.0" magic-string "^0.30.11" zimmerframe "^1.1.2" -svgo@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.2.tgz#ad58002652dffbb5986fc9716afe52d869ecbda8" - integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw== - dependencies: - "@trysound/sax" "0.2.0" - commander "^7.2.0" - css-select "^5.1.0" - css-tree "^2.3.1" - css-what "^6.1.0" - csso "^5.0.5" - picocolors "^1.0.0" - symbol-observable@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" @@ -12536,13 +11748,27 @@ symbol-observable@^4.0.0: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== -synckit@^0.9.0: - version "0.9.2" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.9.2.tgz#a3a935eca7922d48b9e7d6c61822ee6c3ae4ec62" - integrity sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw== +sync-fetch@0.6.0-2: + version "0.6.0-2" + resolved "https://registry.yarnpkg.com/sync-fetch/-/sync-fetch-0.6.0-2.tgz#d82d6dc8efaf2d103a9015e7bd7ba0bfc8e078f2" + integrity sha512-c7AfkZ9udatCuAy9RSfiGPpeOKKUAUK5e1cXadLOGUjasdxqYqAK0jTNkM/FSEyJ3a5Ra27j/tw/PS0qLmaF/A== dependencies: - "@pkgr/core" "^0.1.0" - tslib "^2.6.2" + node-fetch "^3.3.2" + timeout-signal "^2.0.0" + whatwg-mimetype "^4.0.0" + +synckit@^0.11.0: + version "0.11.4" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.4.tgz#48972326b59723fc15b8d159803cf8302b545d59" + integrity sha512-Q/XQKRaJiLiFIBNN+mndW7S/RHxvwzuZS6ZwmRzUBqJBv/5QIKCEwkBC8GBf8EQJKYnaFs0wOZbKTXBPj8L9oQ== + dependencies: + "@pkgr/core" "^0.2.3" + tslib "^2.8.1" + +system-architecture@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/system-architecture/-/system-architecture-0.1.0.tgz#71012b3ac141427d97c67c56bc7921af6bff122d" + integrity sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA== tabbable@^6.0.0: version "6.2.0" @@ -12550,53 +11776,53 @@ tabbable@^6.0.0: integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== tailwind-merge@^2.5.2: - version "2.5.4" - resolved "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-2.5.4.tgz#4bf574e81fa061adeceba099ae4df56edcee78d1" - integrity sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q== + version "2.6.0" + resolved "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-2.6.0.tgz#ac5fb7e227910c038d458f396b7400d93a3142d5" + integrity sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA== -tailwindcss@^3.4.3: - version "3.4.14" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.14.tgz#6dd23a7f54ec197b19159e91e3bb1e55e7aa73ac" - integrity sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA== +tailwindcss@3.4.17: + version "3.4.17" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.17.tgz#ae8406c0f96696a631c790768ff319d46d5e5a63" + integrity sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" - chokidar "^3.5.3" + chokidar "^3.6.0" didyoumean "^1.2.2" dlv "^1.1.3" - fast-glob "^3.3.0" + fast-glob "^3.3.2" glob-parent "^6.0.2" is-glob "^4.0.3" - jiti "^1.21.0" - lilconfig "^2.1.0" - micromatch "^4.0.5" + jiti "^1.21.6" + lilconfig "^3.1.3" + micromatch "^4.0.8" normalize-path "^3.0.0" object-hash "^3.0.0" - picocolors "^1.0.0" - postcss "^8.4.23" + picocolors "^1.1.1" + postcss "^8.4.47" postcss-import "^15.1.0" postcss-js "^4.0.1" - postcss-load-config "^4.0.1" - postcss-nested "^6.0.1" - postcss-selector-parser "^6.0.11" - resolve "^1.22.2" - sucrase "^3.32.0" + postcss-load-config "^4.0.2" + postcss-nested "^6.2.0" + postcss-selector-parser "^6.1.2" + resolve "^1.22.8" + sucrase "^3.35.0" tapable@^2.1.1, tapable@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -tar-fs@^3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.6.tgz#eaccd3a67d5672f09ca8e8f9c3d2b89fa173f217" - integrity sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w== +tar-fs@^3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.8.tgz#8f62012537d5ff89252d01e48690dc4ebed33ab7" + integrity sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg== dependencies: pump "^3.0.0" tar-stream "^3.1.5" optionalDependencies: - bare-fs "^2.1.1" - bare-path "^2.1.0" + bare-fs "^4.0.1" + bare-path "^3.0.0" tar-stream@^3.1.5: version "3.1.7" @@ -12607,38 +11833,26 @@ tar-stream@^3.1.5: fast-fifo "^1.2.0" streamx "^2.15.0" -tar@^6.1.11: - version "6.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" - integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^5.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - term-size@^2.1.0: version "2.2.1" resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== -terser-webpack-plugin@^5.3.10: - version "5.3.10" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" - integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== +terser-webpack-plugin@^5.3.11: + version "5.3.14" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz#9031d48e57ab27567f02ace85c7d690db66c3e06" + integrity sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw== dependencies: - "@jridgewell/trace-mapping" "^0.3.20" + "@jridgewell/trace-mapping" "^0.3.25" jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.1" - terser "^5.26.0" + schema-utils "^4.3.0" + serialize-javascript "^6.0.2" + terser "^5.31.1" -terser@^5.26.0: - version "5.36.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.36.0.tgz#8b0dbed459ac40ff7b4c9fd5a3a2029de105180e" - integrity sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w== +terser@^5.31.1: + version "5.39.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.39.0.tgz#0e82033ed57b3ddf1f96708d123cca717d86ca3a" + integrity sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -12655,14 +11869,11 @@ test-exclude@^6.0.0: minimatch "^3.0.4" text-decoder@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/text-decoder/-/text-decoder-1.2.1.tgz#e173f5121d97bfa3ff8723429ad5ba92e1ead67e" - integrity sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ== - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + version "1.2.3" + resolved "https://registry.yarnpkg.com/text-decoder/-/text-decoder-1.2.3.tgz#b19da364d981b2326d5f43099c310cc80d770c65" + integrity sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA== + dependencies: + b4a "^1.6.4" thenify-all@^1.0.0: version "1.6.0" @@ -12678,30 +11889,24 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== +timeout-signal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/timeout-signal/-/timeout-signal-2.0.0.tgz#23207ea448d50258bb0defe3beea4a467643abba" + integrity sha512-YBGpG4bWsHoPvofT6y/5iqulfXIiIErl5B0LdtHT1mGXDFTAhhRrbUpTvBgYbovr+3cKblya2WAOcpoy90XguA== -tinyexec@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.1.tgz#0ab0daf93b43e2c211212396bdb836b468c97c98" - integrity sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ== +tinyexec@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.0.1.tgz#70c31ab7abbb4aea0a24f55d120e5990bfa1e0b1" + integrity sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw== -title@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/title/-/title-3.5.3.tgz#b338d701a3d949db6b49b2c86f409f9c2f36cd91" - integrity sha512-20JyowYglSEeCvZv3EZ0nZ046vLarO37prvV0mbtQV7C8DJPGgN967r8SJkqd3XK3K3lD3/Iyfp3avjfil8Q2Q== +title@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/title/-/title-4.0.1.tgz#f5226a0fbec7b3a1c42c2772d67a493d2f189c87" + integrity sha512-xRnPkJx9nvE5MF6LkB5e8QJjE2FW8269wTu/LQdf7zZqBgPly0QJPf/CWAo7srj5so4yXfoLEdCFgurlpi47zg== dependencies: - arg "1.0.0" - chalk "2.3.0" - clipboardy "1.2.2" - titleize "1.0.0" - -titleize@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-1.0.0.tgz#7d350722061830ba6617631e0cfd3ea08398d95a" - integrity sha512-TARUb7z1pGvlLxgPk++7wJ6aycXF3GJ0sNSBTAsTuJrQG5QuZlkUQP+zl+nbjAh4gMX9yDw9ZYklMd7vAfJKEw== + arg "^5.0.0" + chalk "^5.0.0" + clipboardy "^4.0.0" tmp@^0.0.33: version "0.0.33" @@ -12752,21 +11957,16 @@ trough@^2.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== -ts-api-utils@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.0.tgz#709c6f2076e511a81557f3d07a0cbd566ae8195c" - integrity sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ== +ts-api-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz#595f7094e46eed364c13fd23e75f9513d29baf91" + integrity sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ== ts-dedent@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== -ts-graphviz@^1.5.4: - version "1.8.2" - resolved "https://registry.yarnpkg.com/ts-graphviz/-/ts-graphviz-1.8.2.tgz#6c4768d05f8a36e37abe34855ffe89a4c4bd96cc" - integrity sha512-5YhbFoHmjxa7pgQLkB07MtGnGJ/yhvjmc9uhsnDBEICME6gkPf83SBwLDQqGDoCa3XzUMWLk1AU2Wn1u1naDtA== - ts-interface-checker@^0.1.9: version "0.1.13" resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" @@ -12779,10 +11979,10 @@ ts-invariant@^0.10.3: dependencies: tslib "^2.1.0" -ts-jest@29.2.5: - version "29.2.5" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.2.5.tgz#591a3c108e1f5ebd013d3152142cb5472b399d63" - integrity sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA== +ts-jest@29.3.2: + version "29.3.2" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.3.2.tgz#0576cdf0a507f811fe73dcd16d135ce89f8156cb" + integrity sha512-bJJkrWc6PjFVz5g2DGCNUo8z7oFEYaz1xP1NpeDU7KNLMWPpEyV8Chbpkn8xjzgRDpQhnGMyvyldoL7h8JXyug== dependencies: bs-logger "^0.2.6" ejs "^3.1.10" @@ -12791,28 +11991,10 @@ ts-jest@29.2.5: json5 "^2.2.3" lodash.memoize "^4.1.2" make-error "^1.3.6" - semver "^7.6.3" + semver "^7.7.1" + type-fest "^4.39.1" yargs-parser "^21.1.1" -ts-node@10.9.2: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - tsconfig-paths@^3.15.0: version "3.15.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" @@ -12823,11 +12005,21 @@ tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@2, tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.5.2, tslib@^2.6.2, tslib@^2.6.3: +tslib@2, tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.2, tslib@^2.6.3, tslib@^2.8.0, tslib@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== +tsx@4.19.4: + version "4.19.4" + resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.19.4.tgz#647b4141f4fdd9d773a9b564876773d2846901f4" + integrity sha512-gK5GVzDkJK1SI1zwHf32Mqxf2tSJkNx+eYcNly5+nHvWqXUJYUkWBQtKauoESz3ymezAI++ZwT855x5p5eop+Q== + dependencies: + esbuild "~0.25.0" + get-tsconfig "^4.7.5" + optionalDependencies: + fsevents "~2.3.3" + twoslash-protocol@0.2.12: version "0.2.12" resolved "https://registry.yarnpkg.com/twoslash-protocol/-/twoslash-protocol-0.2.12.tgz#4c22fc287bc0fc32eec8e7faa6092b0dc5cc4ecb" @@ -12858,74 +12050,81 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== +type-fest@^4.39.1: + version "4.41.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.41.0.tgz#6ae1c8e5731273c2bf1f58ad39cbae2c91a46c58" + integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA== + +type-is@^2.0.0, type-is@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-2.0.1.tgz#64f6cf03f92fce4015c2b224793f6bdd4b068c97" + integrity sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw== dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" + content-type "^1.0.5" + media-typer "^1.1.0" + mime-types "^3.0.0" -typed-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" - integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== +typed-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" + integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.3" es-errors "^1.3.0" - is-typed-array "^1.1.13" + is-typed-array "^1.1.14" -typed-array-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" - integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== +typed-array-byte-length@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz#8407a04f7d78684f3d252aa1a143d2b77b4160ce" + integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.14" -typed-array-byte-offset@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" - integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== +typed-array-byte-offset@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz#ae3698b8ec91a8ab945016108aef00d5bff12355" + integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== dependencies: available-typed-arrays "^1.0.7" - call-bind "^1.0.7" + call-bind "^1.0.8" for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.15" + reflect.getprototypeof "^1.0.9" -typed-array-length@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" - integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== +typed-array-length@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.7.tgz#ee4deff984b64be1e118b0de8c9c877d5ce73d3d" + integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== dependencies: call-bind "^1.0.7" for-each "^0.3.3" gopd "^1.0.1" - has-proto "^1.0.3" is-typed-array "^1.1.13" possible-typed-array-names "^1.0.0" + reflect.getprototypeof "^1.0.6" typed-query-selector@^2.12.0: version "2.12.0" resolved "https://registry.yarnpkg.com/typed-query-selector/-/typed-query-selector-2.12.0.tgz#92b65dbc0a42655fccf4aeb1a08b1dddce8af5f2" integrity sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg== -typedoc-plugin-markdown@3.16.0: - version "3.16.0" - resolved "https://registry.yarnpkg.com/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.16.0.tgz#98da250271aafade8b6740a8116a97cd3941abcd" - integrity sha512-eeiC78fDNGFwemPIHiwRC+mEC7W5jwt3fceUev2gJ2nFnXpVHo8eRrpC9BLWZDee6ehnz/sPmNjizbXwpfaTBw== +typedoc-plugin-markdown@3.17.1: + version "3.17.1" + resolved "https://registry.yarnpkg.com/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.17.1.tgz#c33f42363c185adf842f4699166015f7fe0ed02b" + integrity sha512-QzdU3fj0Kzw2XSdoL15ExLASt2WPqD7FbLeaqwT70+XjKyTshBnUlQA5nNREO1C2P8Uen0CDjsBLMsCQ+zd0lw== dependencies: handlebars "^4.7.7" -typedoc-plugin-rename-defaults@0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/typedoc-plugin-rename-defaults/-/typedoc-plugin-rename-defaults-0.7.0.tgz#8cd477b4e914c6021a1a0e1badaa869159bb6945" - integrity sha512-NudSQ1o/XLHNF9c4y7LzIZxfE9ltz09yCDklBPJpP5VMRvuBpYGIbQ0ZgmPz+EIV8vPx9Z/OyKwzp4HT2vDtfg== +typedoc-plugin-rename-defaults@0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/typedoc-plugin-rename-defaults/-/typedoc-plugin-rename-defaults-0.7.3.tgz#3c046730de2c9dcb6003ddb8861ff2b87b9e82ca" + integrity sha512-fDtrWZ9NcDfdGdlL865GW7uIGQXlthPscURPOhDkKUe4DBQSRRFUf33fhWw41FLlsz8ZTeSxzvvuNmh54MynFA== dependencies: camelcase "^8.0.0" @@ -12939,48 +12138,58 @@ typedoc@0.25.13: minimatch "^9.0.3" shiki "^0.14.7" -typescript@5.4.5: - version "5.4.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" - integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== +typescript@5.8.3: + version "5.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e" + integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== ua-parser-js@^1.0.35: - version "1.0.39" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.39.tgz#bfc07f361549bf249bd8f4589a4cccec18fd2018" - integrity sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw== + version "1.0.40" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.40.tgz#ac6aff4fd8ea3e794a6aa743ec9c2fc29e75b675" + integrity sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew== ufo@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.4.tgz#16d6949674ca0c9e0fbbae1fa20a71d7b1ded754" - integrity sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ== + version "1.6.1" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.6.1.tgz#ac2db1d54614d1b22c1d603e3aef44a85d8f146b" + integrity sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA== uglify-js@^3.1.4: version "3.19.3" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.3.tgz#82315e9bbc6f2b25888858acd1fff8441035b77f" integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ== -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== +unbox-primitive@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz#8d9d2c9edeea8460c7f35033a88867944934d1e2" + integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== dependencies: - call-bind "^1.0.2" + call-bound "^1.0.3" has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -unbzip2-stream@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" - integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== - dependencies: - buffer "^5.2.1" - through "^2.3.8" - -undici-types@~6.19.8: - version "6.19.8" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" - integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== + has-symbols "^1.1.0" + which-boxed-primitive "^1.1.1" + +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== + +undici@^5.28.5: + version "5.29.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.29.0.tgz#419595449ae3f2cdcba3580a2e8903399bd1f5a3" + integrity sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg== + dependencies: + "@fastify/busboy" "^2.0.0" + +unenv@2.0.0-rc.15: + version "2.0.0-rc.15" + resolved "https://registry.yarnpkg.com/unenv/-/unenv-2.0.0-rc.15.tgz#7fe427b6634f00bda1ade4fecdbc6b2dd7af63be" + integrity sha512-J/rEIZU8w6FOfLNz/hNKsnY+fFHWnu9MH4yRbSZF3xbbGHovcetXPs7sD+9p8L6CeNC//I9bhRYAOsBt2u7/OA== + dependencies: + defu "^6.1.4" + exsolve "^1.0.4" + ohash "^2.0.11" + pathe "^2.0.3" + ufo "^1.5.4" unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.1" @@ -13005,19 +12214,6 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== -unified@^10.1.1: - version "10.1.2" - resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" - integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== - dependencies: - "@types/unist" "^2.0.0" - bail "^2.0.0" - extend "^3.0.0" - is-buffer "^2.0.0" - is-plain-obj "^4.0.0" - trough "^2.0.0" - vfile "^5.0.0" - unified@^11.0.0, unified@^11.0.4, unified@^11.0.5: version "11.0.5" resolved "https://registry.yarnpkg.com/unified/-/unified-11.0.5.tgz#f66677610a5c0a9ee90cab2b8d4d66037026d9e1" @@ -13031,20 +12227,6 @@ unified@^11.0.0, unified@^11.0.4, unified@^11.0.5: trough "^2.0.0" vfile "^6.0.0" -unique-filename@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" - integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== - dependencies: - unique-slug "^4.0.0" - -unique-slug@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" - integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== - dependencies: - imurmurhash "^0.1.4" - unist-util-find-after@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz#3fccc1b086b56f34c8b798e1ff90b5c54468e896" @@ -13106,13 +12288,6 @@ unist-util-remove@^4.0.0: unist-util-is "^6.0.0" unist-util-visit-parents "^6.0.0" -unist-util-stringify-position@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" - integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-stringify-position@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" @@ -13135,14 +12310,6 @@ unist-util-visit-parents@^4.0.0: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" -unist-util-visit-parents@^5.1.1: - version "5.1.3" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb" - integrity sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - unist-util-visit-parents@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" @@ -13151,6 +12318,15 @@ unist-util-visit-parents@^6.0.0: "@types/unist" "^3.0.0" unist-util-is "^6.0.0" +unist-util-visit@5.0.0, unist-util-visit@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" + integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + unist-util-visit@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-3.1.0.tgz#9420d285e1aee938c7d9acbafc8e160186dbaf7b" @@ -13160,24 +12336,6 @@ unist-util-visit@^3.1.0: unist-util-is "^5.0.0" unist-util-visit-parents "^4.0.0" -unist-util-visit@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" - integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - unist-util-visit-parents "^5.1.1" - -unist-util-visit@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" - integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== - dependencies: - "@types/unist" "^3.0.0" - unist-util-is "^6.0.0" - unist-util-visit-parents "^6.0.0" - universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -13188,25 +12346,25 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unixify@1.0.0, unixify@^1.0.0: +unixify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unixify/-/unixify-1.0.0.tgz#3a641c8c2ffbce4da683a5c70f03a462940c2090" integrity sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg== dependencies: normalize-path "^2.1.1" -unpipe@1.0.0, unpipe@~1.0.0: +unpipe@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -update-browserslist-db@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5" - integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== +update-browserslist-db@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== dependencies: escalade "^3.2.0" - picocolors "^1.1.0" + picocolors "^1.1.1" uri-js@^4.2.2: version "4.4.1" @@ -13215,30 +12373,25 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urlpattern-polyfill@10.0.0, urlpattern-polyfill@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz#f0a03a97bfb03cdf33553e5e79a2aadd22cac8ec" - integrity sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg== +urlpattern-polyfill@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz#1b2517e614136c73ba32948d5e7a3a063cba8e74" + integrity sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw== + +use-sync-external-store@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz#55122e2a3edd2a6c106174c27485e0fd59bcfca0" + integrity sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A== util-deprecate@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^9.0.0, uuid@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" - integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== +uuid@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.0.tgz#9549028be1753bb934fc96e2bca09bb4105ae912" + integrity sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A== v8-to-istanbul@^9.0.1: version "9.3.0" @@ -13249,12 +12402,7 @@ v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^2.0.0" -value-or-promise@^1.0.11, value-or-promise@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" - integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== - -vary@~1.1.2: +vary@^1, vary@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== @@ -13267,14 +12415,6 @@ vfile-location@^5.0.0: "@types/unist" "^3.0.0" vfile "^6.0.0" -vfile-message@^3.0.0: - version "3.1.4" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.4.tgz#15a50816ae7d7c2d1fa87090a7f9f96612b59dea" - integrity sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw== - dependencies: - "@types/unist" "^2.0.0" - unist-util-stringify-position "^3.0.0" - vfile-message@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.2.tgz#c883c9f677c72c166362fd635f21fc165a7d1181" @@ -13283,16 +12423,6 @@ vfile-message@^4.0.0: "@types/unist" "^3.0.0" unist-util-stringify-position "^4.0.0" -vfile@^5.0.0: - version "5.3.7" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.7.tgz#de0677e6683e3380fafc46544cfe603118826ab7" - integrity sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g== - dependencies: - "@types/unist" "^2.0.0" - is-buffer "^2.0.0" - unist-util-stringify-position "^3.0.0" - vfile-message "^3.0.0" - vfile@^6.0.0: version "6.0.3" resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.3.tgz#3652ab1c496531852bf55a6bac57af981ebc38ab" @@ -13346,17 +12476,6 @@ vscode-uri@~3.0.8: resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.8.tgz#1770938d3e72588659a172d0fd4642780083ff9f" integrity sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw== -wait-on@8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-8.0.1.tgz#13c8ec77115517f8fbc2d670521a444201f03f53" - integrity sha512-1wWQOyR2LVVtaqrcIL2+OM+x7bkpmzVROa0Nf6FryXkS+er5Sa1kzFGjzZRqLnHa3n1rACFLeTwUqE1ETL9Mig== - dependencies: - axios "^1.7.7" - joi "^17.13.3" - lodash "^4.17.21" - minimist "^1.2.8" - rxjs "^7.8.1" - walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" @@ -13372,20 +12491,16 @@ watchpack@^2.4.1: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" -weak-napi@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/weak-napi/-/weak-napi-2.0.2.tgz#40662d0931498397979edb38a571409f5afce6d3" - integrity sha512-LcOSVFrghtVXf4QH+DLIy8iPiCktV7lVbqRDYP+bDPpLzC41RCHQPMyQOnPpWO41Ie4CmnDxS+mbL72r5xFMMQ== - dependencies: - node-addon-api "^3.0.0" - node-gyp-build "^4.2.1" - setimmediate-napi "^1.0.3" - web-namespaces@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== +web-streams-polyfill@^3.0.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz#2073b91a2fdb1fbfbd401e7de0ac9f8214cecb4b" + integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -13415,16 +12530,17 @@ webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@5.96.1, webpack@^5: - version "5.96.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.96.1.tgz#3676d1626d8312b6b10d0c18cc049fba7ac01f0c" - integrity sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA== +webpack@5.99.8, webpack@^5: + version "5.99.8" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.99.8.tgz#dd31a020b7c092d30c4c6d9a4edb95809e7f5946" + integrity sha512-lQ3CPiSTpfOnrEGeXDwoq5hIGzSjmwD72GdfVzF7CQAI7t47rJG9eDWvcEkEn3CUQymAElVvDg3YNTlCYj+qUQ== dependencies: "@types/eslint-scope" "^3.7.7" "@types/estree" "^1.0.6" - "@webassemblyjs/ast" "^1.12.1" - "@webassemblyjs/wasm-edit" "^1.12.1" - "@webassemblyjs/wasm-parser" "^1.12.1" + "@types/json-schema" "^7.0.15" + "@webassemblyjs/ast" "^1.14.1" + "@webassemblyjs/wasm-edit" "^1.14.1" + "@webassemblyjs/wasm-parser" "^1.14.1" acorn "^8.14.0" browserslist "^4.24.0" chrome-trace-event "^1.0.2" @@ -13438,12 +12554,17 @@ webpack@5.96.1, webpack@^5: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.2.0" + schema-utils "^4.3.2" tapable "^2.1.1" - terser-webpack-plugin "^5.3.10" + terser-webpack-plugin "^5.3.11" watchpack "^2.4.1" webpack-sources "^3.2.3" +whatwg-mimetype@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz#bc1bf94a985dc50388d54a9258ac405c3ca2fc0a" + integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== + whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" @@ -13452,18 +12573,37 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== +which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz#d76ec27df7fa165f18d5808374a5fe23c29b176e" + integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" + is-bigint "^1.1.0" + is-boolean-object "^1.2.1" + is-number-object "^1.1.1" + is-string "^1.1.1" + is-symbol "^1.1.1" + +which-builtin-type@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz#89183da1b4907ab089a6b02029cc5d8d6574270e" + integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== + dependencies: + call-bound "^1.0.2" + function.prototype.name "^1.1.6" + has-tostringtag "^1.0.2" + is-async-function "^2.0.0" + is-date-object "^1.1.0" + is-finalizationregistry "^1.1.0" + is-generator-function "^1.0.10" + is-regex "^1.2.1" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.1.0" + which-collection "^1.0.2" + which-typed-array "^1.1.16" -which-collection@^1.0.1: +which-collection@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== @@ -13473,29 +12613,19 @@ which-collection@^1.0.1: is-weakmap "^2.0.2" is-weakset "^2.0.3" -which-module@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" - integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== - -which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.15: - version "1.1.15" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" - integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== +which-typed-array@^1.1.16, which-typed-array@^1.1.18: + version "1.1.19" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.19.tgz#df03842e870b6b88e117524a4b364b6fc689f956" + integrity sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw== dependencies: available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" + call-bind "^1.0.8" + call-bound "^1.0.4" + for-each "^0.3.5" + get-proto "^1.0.1" + gopd "^1.2.0" has-tostringtag "^1.0.2" -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -13508,10 +12638,10 @@ wicked-good-xpath@1.3.0: resolved "https://registry.yarnpkg.com/wicked-good-xpath/-/wicked-good-xpath-1.3.0.tgz#81b0e95e8650e49c94b22298fff8686b5553cf6c" integrity sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw== -wonka@6.3.4, wonka@^6.3.2: - version "6.3.4" - resolved "https://registry.yarnpkg.com/wonka/-/wonka-6.3.4.tgz#76eb9316e3d67d7febf4945202b5bdb2db534594" - integrity sha512-CjpbqNtBGNAeyNS/9W6q3kSkKE52+FjIj7AkFlLr11s/VWGUu6a2CdYSdGxocIhIVjaW/zchesBQUKPVU69Cqg== +wonka@6.3.5, wonka@^6.3.2: + version "6.3.5" + resolved "https://registry.yarnpkg.com/wonka/-/wonka-6.3.5.tgz#33fa54ea700ff3e87b56fe32202112a9e8fea1a2" + integrity sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw== word-wrap@^1.2.5: version "1.2.5" @@ -13523,6 +12653,34 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== +workerd@1.20250507.0: + version "1.20250507.0" + resolved "https://registry.yarnpkg.com/workerd/-/workerd-1.20250507.0.tgz#a159414e6f4ee16844feb95f667bf60737b7ecde" + integrity sha512-OXaGjEh5THT9iblwWIyPrYBoaPe/d4zN03Go7/w8CmS8sma7//O9hjbk43sboWkc89taGPmU0/LNyZUUiUlHeQ== + optionalDependencies: + "@cloudflare/workerd-darwin-64" "1.20250507.0" + "@cloudflare/workerd-darwin-arm64" "1.20250507.0" + "@cloudflare/workerd-linux-64" "1.20250507.0" + "@cloudflare/workerd-linux-arm64" "1.20250507.0" + "@cloudflare/workerd-windows-64" "1.20250507.0" + +wrangler@4.14.4: + version "4.14.4" + resolved "https://registry.yarnpkg.com/wrangler/-/wrangler-4.14.4.tgz#2c81e084babe3e0e8f01d477c9db171156dbb4e0" + integrity sha512-HIdOdiMIcJV5ymw80RKsr3Uzen/p1kRX4jnCEmR2XVeoEhV2Qw6GABxS5WMTlSES2/vEX0Y+ezUAdsprcUhJ5g== + dependencies: + "@cloudflare/kv-asset-handler" "0.4.0" + "@cloudflare/unenv-preset" "2.3.1" + blake3-wasm "2.1.5" + esbuild "0.25.4" + miniflare "4.20250507.0" + path-to-regexp "6.3.0" + unenv "2.0.0-rc.15" + workerd "1.20250507.0" + optionalDependencies: + fsevents "~2.3.2" + sharp "^0.33.5" + "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -13532,15 +12690,6 @@ wordwrap@^1.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -13581,86 +12730,41 @@ write-file-atomic@^4.0.2: imurmurhash "^0.1.4" signal-exit "^3.0.7" -"ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.3.1: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -ws@^8.17.1, ws@^8.18.0: +ws@8.18.0: version "8.18.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== -xmldom-sre@0.1.31: - version "0.1.31" - resolved "https://registry.yarnpkg.com/xmldom-sre/-/xmldom-sre-0.1.31.tgz#10860d5bab2c603144597d04bf2c4980e98067f4" - integrity sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw== +"ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.3.1: + version "7.5.10" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== +ws@^8.17.1, ws@^8.18.2: + version "8.18.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.2.tgz#42738b2be57ced85f46154320aabb51ab003705a" + integrity sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ== y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== - yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml-ast-parser@^0.0.43: - version "0.0.43" - resolved "https://registry.yarnpkg.com/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" - integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== - -yaml@^2.2.2, yaml@^2.3.2, yaml@^2.3.4, yaml@~2.5.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.1.tgz#c9772aacf62cb7494a95b0c4f1fb065b563db130" - integrity sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q== - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" +yaml@^2.2.2, yaml@^2.3.2, yaml@^2.3.4, yaml@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.7.1.tgz#44a247d1b88523855679ac7fa7cda6ed7e135cf6" + integrity sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ== yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^15.3.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - yargs@^17.3.1, yargs@^17.6.2, yargs@^17.7.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" @@ -13682,20 +12786,24 @@ yauzl@^2.10.0: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -yocto-queue@^1.0.0, yocto-queue@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.1.1.tgz#fef65ce3ac9f8a32ceac5a634f74e17e5b232110" - integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g== +yocto-queue@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.2.1.tgz#36d7c4739f775b3cbc28e6136e21aa057adec418" + integrity sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg== + +youch@3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/youch/-/youch-3.3.4.tgz#f13ee0966846c6200e7fb9ece89306d95df5e489" + integrity sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg== + dependencies: + cookie "^0.7.1" + mustache "^4.2.0" + stacktracey "^2.1.8" zen-observable-ts@^1.2.5: version "1.2.5" @@ -13714,15 +12822,30 @@ zimmerframe@^1.1.2: resolved "https://registry.yarnpkg.com/zimmerframe/-/zimmerframe-1.1.2.tgz#5b75f1fa83b07ae2a428d51e50f58e2ae6855e5e" integrity sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w== -zod-validation-error@^3.0.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/zod-validation-error/-/zod-validation-error-3.4.0.tgz#3a8a1f55c65579822d7faa190b51336c61bee2a6" - integrity sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ== +zod-to-json-schema@^3.24.1: + version "3.24.5" + resolved "https://registry.yarnpkg.com/zod-to-json-schema/-/zod-to-json-schema-3.24.5.tgz#d1095440b147fb7c2093812a53c54df8d5df50a3" + integrity sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g== -zod@3.23.8, zod@^3.20.2, zod@^3.22.3: - version "3.23.8" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" - integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== +zod-validation-error@^3.0.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/zod-validation-error/-/zod-validation-error-3.4.1.tgz#fb0a64f15d90f4aafe9ccc804331853609aad408" + integrity sha512-1KP64yqDPQ3rupxNv7oXhf7KdhHHgaqbKuspVoiN93TT0xrBjql+Svjkdjq/Qh/7GSMmgQs3AfvBT0heE35thw== + +zod@3.22.3: + version "3.22.3" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.3.tgz#2fbc96118b174290d94e8896371c95629e87a060" + integrity sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug== + +zod@^3.20.2, zod@^3.22.3, zod@^3.23.8, zod@^3.24.1, zod@^3.24.2: + version "3.24.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.24.4.tgz#e2e2cca5faaa012d76e527d0d36622e0a90c315f" + integrity sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg== + +zustand@^5.0.1: + version "5.0.4" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-5.0.4.tgz#33af161f1e337854ccd8b711ef9e92545d6ae53f" + integrity sha512-39VFTN5InDtMd28ZhjLyuTnlytDr9HfwO512Ai4I8ZABCoyAj4F1+sr7sD1jP/+p7k77Iko0Pb5NhgBFDCX0kQ== zwitch@^2.0.0, zwitch@^2.0.4: version "2.0.4"