From de46478c95810522802cadc1ec32c41f7ddfee4a Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 23 Jul 2026 21:51:17 +0200 Subject: [PATCH 1/2] ci: build, test, lint only changed packages and dependants (#9373) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently, every CI run rebuilds all packages from scratch and runs tests, changelog validation, and ESLint across the entire monorepo, regardless of how many packages actually changed. This PR scopes TypeScript builds, tests, changelog validation, and ESLint to only the packages that changed plus their transitive dependants, by: - Using the GitHub Compare API to find the exact merge base between the PR head and the target branch. - Running `git diff --name-only` against that merge base to find changed files. - Expanding the changed set to transitive dependants (so type-correctness across package boundaries is preserved), and also to transitive dependencies when building (so `ts-bridge` has all referenced `dist/` outputs available). - Falling back to a full run when any file outside a package directory changes (e.g., root config files or workflow files), or when there is no merge base (push to `main`). A new `scripts/get-changed-workspaces.mts` script computes the changed package set and is called from the `prepare` job (24.x matrix run only). Downstream jobs read the outputs from `prepare` directly — the separate `get-changed-packages` job has been removed, saving one sequential job hop. The `changed-paths` output gates both ESLint scope and TypeScript build scope: when it is `"full"`, both run against all packages; when it is a JSON array of paths, each runs only against that subset. Four benchmark PRs target this branch to verify the expected behaviour: | PR | Change | Expected | |---|---|---| | [#9486](https://github.com/MetaMask/core/pull/9486) | CI-only change (workflow file comment) | Full run — workflow files are not in `IGNORED_ROOT_FILES` | | [#9487](https://github.com/MetaMask/core/pull/9487) | Single package (`@metamask/logging-controller`) | 3 packages (`logging-controller` + 2 transitive dependants) | | [#9488](https://github.com/MetaMask/core/pull/9488) | Three packages (`accounts-`, `gas-fee-`, `network-controller`) | 38 packages (those 3 + transitive dependants) | | [#9489](https://github.com/MetaMask/core/pull/9489) | `README.md` (ignored) + `logging-controller` | 3 packages — `README.md` does not trigger a full run | - [ ] I've updated the test suite for new or updated code as appropriate - [ ] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate - [ ] I've communicated my changes to consumers by [updating changelogs for packages I've changed](https://github.com/MetaMask/core/tree/main/docs/processes/updating-changelogs.md) - [ ] I've introduced [breaking changes](https://github.com/MetaMask/core/tree/main/docs/processes/breaking-changes.md) in this PR and have prepared draft pull requests for clients and consumer packages to resolve them --- > [!NOTE] > **Medium Risk** > Changes how every PR is validated; incorrect workspace expansion or root-change detection could skip builds or tests, though impact is limited to CI, not shipped product code. > > **Overview** > **CI runs only what the PR touches** instead of rebuilding and testing the whole monorepo on every run. > > The `prepare` job (Node 24.x) resolves the merge base via the GitHub Compare API, runs `get-changed-workspaces.mts`, and exports `package-names`, `changed-paths`, and `merge-base`. Downstream jobs use those outputs: changelog validation and per-Node test matrices iterate only affected workspace names; `wallet-cli` e2e runs only when that package is in the set. > > **ESLint** moves to a dedicated `lint-eslint` job that runs `yarn lint:eslint` on all packages when `changed-paths` is `full`, otherwise only on the listed workspace paths. > > **Build** uses `generate-partial-build-tsconfig.mts` plus `ts-bridge` for a partial TypeScript reference graph (changed packages plus transitive dependants and dependencies) when a merge base exists and there is no root-level change; otherwise it keeps `yarn build`. Root or workflow changes outside ignored files (e.g. not `README.md`) still force a full run; pushes without a merge base fall back to all packages. > > New shared logic lives in `scripts/lib/workspaces.mts` (git diff, dependency graph, root-change detection); `tsconfig.scripts.json` now includes `*.mts` for those scripts. > > Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit b910c315f2667f29cca128d10fd37f2615d8b6c5. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot). --- .github/workflows/lint-build-test.yml | 121 +++++++++++- scripts/generate-partial-build-tsconfig.mts | 53 +++++ scripts/get-changed-workspaces.mts | 61 ++++++ scripts/lib/workspaces.mts | 206 ++++++++++++++++++++ tsconfig.scripts.json | 2 +- 5 files changed, 438 insertions(+), 5 deletions(-) create mode 100644 scripts/generate-partial-build-tsconfig.mts create mode 100644 scripts/get-changed-workspaces.mts create mode 100644 scripts/lib/workspaces.mts diff --git a/.github/workflows/lint-build-test.yml b/.github/workflows/lint-build-test.yml index ceae7f28..629de98a 100644 --- a/.github/workflows/lint-build-test.yml +++ b/.github/workflows/lint-build-test.yml @@ -3,6 +3,9 @@ name: Lint, Build, and Test on: workflow_call: +permissions: + contents: read + jobs: prepare: name: Prepare @@ -12,6 +15,9 @@ jobs: node-version: [20.x, 22.x, 24.x] outputs: child-workspace-package-names: ${{ steps.workspace-package-names.outputs.child-workspace-package-names }} + merge-base: ${{ steps.fetch-merge-base.outputs.merge-base }} + package-names: ${{ steps.packages.outputs.package-names }} + changed-paths: ${{ steps.packages.outputs.changed-paths }} steps: - name: Checkout and setup environment uses: MetaMask/action-checkout-and-setup@v2 @@ -24,6 +30,46 @@ jobs: run: | echo "child-workspace-package-names=$(yarn workspaces list --no-private --json | jq --slurp --raw-output 'map(.name) | @json')" >> "$GITHUB_OUTPUT" shell: bash + - name: Fetch merge base + id: fetch-merge-base + if: matrix.node-version == '24.x' && (github.base_ref != '' || github.event.merge_group.base_ref != '') + run: | + set -euo pipefail + + PREFIXED_REF_REGEX='refs/heads/(.+)' + if [[ "$BASE_REF" =~ $PREFIXED_REF_REGEX ]]; then + BASE_REF="${BASH_REMATCH[1]}" + fi + + MERGE_BASE=$(gh api "repos/$GITHUB_REPOSITORY/compare/$BASE_REF...$HEAD_SHA" --jq '.merge_base_commit.sha') + git fetch --unshallow --filter=blob:none --no-tags origin HEAD + + echo "merge-base=$MERGE_BASE" >> "$GITHUB_OUTPUT" + env: + BASE_REF: ${{ github.event.pull_request.base.ref || github.event.merge_group.base_ref }} + HEAD_SHA: ${{ github.event.pull_request.head.sha || github.event.merge_group.head_sha }} + GH_TOKEN: ${{ github.token }} + - name: Get changed package names + id: packages + if: matrix.node-version == '24.x' + run: | + if [[ -n "$MERGE_BASE" ]]; then + OUTPUT=$(yarn tsx scripts/get-changed-workspaces.mts --merge-base "$MERGE_BASE" --head-ref "$HEAD_SHA") + PACKAGES=$(echo "$OUTPUT" | jq -c '.names') + if [[ $(echo "$OUTPUT" | jq '.hasRootChange') == "true" ]]; then + CHANGED_PATHS="full" + else + CHANGED_PATHS=$(echo "$OUTPUT" | jq -c '.locations') + fi + else + PACKAGES=$(yarn workspaces list --no-private --json | jq --slurp --raw-output 'map(.name) | @json') + CHANGED_PATHS="full" + fi + echo "package-names=$PACKAGES" >> "$GITHUB_OUTPUT" + echo "changed-paths=$CHANGED_PATHS" >> "$GITHUB_OUTPUT" + env: + MERGE_BASE: ${{ steps.fetch-merge-base.outputs.merge-base }} + HEAD_SHA: ${{ github.event.pull_request.head.sha || github.event.merge_group.head_sha }} lint: name: Lint (${{ matrix.script }}) @@ -33,7 +79,6 @@ jobs: matrix: node-version: [24.x] script: - - lint:eslint - lint:misc:check - constraints - lint:dependencies @@ -56,14 +101,52 @@ jobs: exit 1 fi + lint-eslint: + name: Lint (lint:eslint) + runs-on: ubuntu-latest + if: needs.prepare.outputs.changed-paths != '[]' + needs: prepare + strategy: + matrix: + node-version: [24.x] + steps: + - name: Checkout and setup environment + uses: MetaMask/action-checkout-and-setup@v3 + with: + is-high-risk-environment: false + persist-credentials: false + node-version: ${{ matrix.node-version }} + - name: Lint + run: | + if [[ "$CHANGED_PATHS" == "full" ]]; then + echo "Running ESLint on all packages." + echo "" + yarn lint:eslint + else + echo "Running ESLint on:" + echo "$CHANGED_PATHS" | jq -r '"- " + .[]' + echo "" + echo "$CHANGED_PATHS" | jq -r '.[]' | xargs yarn lint:eslint + fi + env: + CHANGED_PATHS: ${{ needs.prepare.outputs.changed-paths }} + - name: Require clean working directory + shell: bash + run: | + if ! git diff --exit-code; then + echo "Working tree dirty at end of job" + exit 1 + fi + validate-changelog: name: Validate changelog runs-on: ubuntu-latest + if: needs.prepare.outputs.package-names != '[]' needs: prepare strategy: matrix: node-version: [24.x] - package-name: ${{ fromJson(needs.prepare.outputs.child-workspace-package-names) }} + package-name: ${{ fromJson(needs.prepare.outputs.package-names) }} steps: - name: Checkout and setup environment uses: MetaMask/action-checkout-and-setup@v2 @@ -102,7 +185,36 @@ jobs: with: is-high-risk-environment: false node-version: ${{ matrix.node-version }} - - run: yarn build + - name: Unshallow checkout + if: needs.prepare.outputs.merge-base != '' + run: | + # Unshallow so git can walk history back to the merge base for + # `git diff --name-only`. Using `--filter=blob:none` avoids + # downloading file content — only commit and tree objects are needed. + git fetch --unshallow --filter=blob:none --no-tags origin HEAD + - name: Build + run: | + if [[ -n "$MERGE_BASE" && "$CHANGED_PATHS" != "full" ]]; then + TSCONFIG=$(mktemp --tmpdir="$GITHUB_WORKSPACE" --suffix=.json) + yarn tsx scripts/generate-partial-build-tsconfig.mts "$MERGE_BASE" "$HEAD_SHA" > "$TSCONFIG" + if [[ -s "$TSCONFIG" ]]; then + echo "Building changed packages:" + jq -r '"- " + (.references[].path | ltrimstr("./") | rtrimstr("/tsconfig.build.json"))' "$TSCONFIG" + echo "" + yarn ts-bridge --project "$TSCONFIG" --verbose + else + echo "No packages to build." + fi + rm -f "$TSCONFIG" + else + echo "Building all packages." + echo "" + yarn build + fi + env: + MERGE_BASE: ${{ needs.prepare.outputs.merge-base }} + HEAD_SHA: ${{ github.event.pull_request.head.sha || github.event.merge_group.head_sha }} + CHANGED_PATHS: ${{ needs.prepare.outputs.changed-paths }} - name: Require clean working directory shell: bash run: | @@ -136,11 +248,12 @@ jobs: test: name: Test runs-on: ubuntu-latest + if: needs.prepare.outputs.package-names != '[]' needs: prepare strategy: matrix: node-version: [20.x, 22.x] - package-name: ${{ fromJson(needs.prepare.outputs.child-workspace-package-names) }} + package-name: ${{ fromJson(needs.prepare.outputs.package-names) }} steps: - name: Checkout and setup environment uses: MetaMask/action-checkout-and-setup@v2 diff --git a/scripts/generate-partial-build-tsconfig.mts b/scripts/generate-partial-build-tsconfig.mts new file mode 100644 index 00000000..3867b72b --- /dev/null +++ b/scripts/generate-partial-build-tsconfig.mts @@ -0,0 +1,53 @@ +import { + getAllWorkspaces, + getTypeScriptWorkspaces, + computeChangedWorkspaces, + getChangedFiles, +} from './lib/workspaces.mjs'; + +/** + * Generate a filtered tsconfig.build.json for partial CI builds. + * + * Given a merge base SHA, outputs a tsconfig that references only the + * TypeScript packages that changed since that commit plus their transitive + * dependants and dependencies. Pipe the output to a temp file and pass it + * to `ts-bridge --project`. + * + * Dependencies are always included because TypeScript project references + * require every referenced project's dist output to already exist on disk. + * + * Usage: `tsx scripts/generate-partial-build-tsconfig.mts []` + */ +async function main(): Promise { + const mergeBase = process.argv[2]; + if (!mergeBase) { + console.error( + 'Usage: generate-partial-build-tsconfig.mts []', + ); + process.exitCode = 1; + return; + } + + const headRef = process.argv[3] ?? 'HEAD'; + + const allWorkspaces = await getAllWorkspaces(); + const typeScriptWorkspaces = await getTypeScriptWorkspaces(); + const changedFiles = await getChangedFiles(mergeBase, headRef); + const packagesToBuild = await computeChangedWorkspaces( + allWorkspaces, + changedFiles, + true, + ); + + const references = typeScriptWorkspaces + .filter(({ name }) => packagesToBuild.has(name)) + .map(({ location }) => ({ path: `./${location}/tsconfig.build.json` })); + + if (references.length === 0) { + return; + } + + console.log(JSON.stringify({ files: [], include: [], references }, null, 2)); +} + +await main(); diff --git a/scripts/get-changed-workspaces.mts b/scripts/get-changed-workspaces.mts new file mode 100644 index 00000000..35bdb42a --- /dev/null +++ b/scripts/get-changed-workspaces.mts @@ -0,0 +1,61 @@ +import yargs from 'yargs'; +import { hideBin } from 'yargs/helpers'; + +import { + getAllWorkspaces, + checkRootChange, + computeChangedWorkspaces, + getChangedFiles, +} from './lib/workspaces.mjs'; + +/** + * List workspaces that need to be checked given a merge base. + * + * Outputs a JSON object to stdout: + * - `names`: package names of changed workspaces and their transitive dependants + * - `locations`: workspace-relative paths (e.g. `packages/foo`) for the same set + * - `hasRootChange`: true if any non-ignored root file changed (triggers a full run) + * + * Usage: `tsx scripts/get-changed-workspaces.mts --merge-base [--head-ref ] [--include-dependencies]` + */ +const argv = await yargs(hideBin(process.argv)) + .usage('$0 --merge-base [--head-ref ] [--include-dependencies]') + .option('merge-base', { + type: 'string', + describe: 'Merge base SHA', + demandOption: true, + }) + .option('head-ref', { + type: 'string', + describe: 'PR branch tip SHA (defaults to HEAD)', + }) + .option('include-dependencies', { + type: 'boolean', + default: false, + describe: + 'Also expand to transitive dependencies (needed for TypeScript builds)', + }) + .help() + .parseAsync(); + +const { mergeBase, headRef = 'HEAD', includeDependencies } = argv; +const workspaces = await getAllWorkspaces(); + +const changedFiles = await getChangedFiles(mergeBase, headRef); +const hasRootChange = checkRootChange(workspaces, changedFiles); + +const changed = await computeChangedWorkspaces( + workspaces, + changedFiles, + includeDependencies, +); + +const changedWorkspaces = workspaces.filter(({ name }) => changed.has(name)); + +console.log( + JSON.stringify({ + names: changedWorkspaces.map(({ name }) => name), + locations: changedWorkspaces.map(({ location }) => location), + hasRootChange, + }), +); diff --git a/scripts/lib/workspaces.mts b/scripts/lib/workspaces.mts new file mode 100644 index 00000000..83e3db44 --- /dev/null +++ b/scripts/lib/workspaces.mts @@ -0,0 +1,206 @@ +import { fileExists } from '@metamask/utils/node'; +import execa from 'execa'; +import { readFile } from 'node:fs/promises'; +import { join } from 'node:path'; + +export const ROOT_WORKSPACE = new URL('../..', import.meta.url).pathname; + +// Files that can change without requiring a full rebuild/test run. +const IGNORED_ROOT_FILES = new Set([ + '.gitignore', + 'AGENTS.md', + 'CLAUDE.md', + 'README.md', + 'teams.json', +]); + +export type Workspace = { + location: string; + name: string; +}; + +export type DependencyGraph = { + dependants: Record>; + dependencies: Record>; +}; + +/** + * Get all non-root workspaces in the monorepo. + * + * @returns All workspaces. + */ +export async function getAllWorkspaces(): Promise { + const { stdout } = await execa( + 'yarn', + ['workspaces', 'list', '--no-private', '--json'], + { + cwd: ROOT_WORKSPACE, + encoding: 'utf8', + }, + ); + + return stdout + .trim() + .split('\n') + .map((line) => JSON.parse(line)) + .filter(({ location }: Workspace) => location !== '.'); +} + +/** + * Get all TypeScript workspaces in the monorepo. This filters to packages + * containing a "tsconfig.build.json" file. + * + * @returns All TypeScript workspaces. + */ +export async function getTypeScriptWorkspaces(): Promise { + const workspaces = await getAllWorkspaces(); + + return ( + await Promise.all( + workspaces.map(async (workspace) => { + const hasTsConfig = await fileExists( + join(ROOT_WORKSPACE, workspace.location, 'tsconfig.build.json'), + ); + return hasTsConfig ? workspace : null; + }), + ) + ).filter((workspace): workspace is Workspace => workspace !== null); +} + +/** + * Get dependency and dependant maps for all workspaces. + * + * @param workspaces - The workspaces to build the graph for. + * @returns Maps of package name to dependants and package name to dependencies. + */ +export async function getWorkspaceDependencies( + workspaces: Workspace[], +): Promise { + const dependants: Record> = Object.fromEntries( + workspaces.map(({ name }) => [name, new Set()]), + ); + const dependencies: Record> = Object.fromEntries( + workspaces.map(({ name }) => [name, new Set()]), + ); + + const packages = await Promise.all( + workspaces.map(({ location }) => + readFile(join(ROOT_WORKSPACE, location, 'package.json'), { + encoding: 'utf-8', + }).then(JSON.parse), + ), + ); + + for (const [index, { name }] of workspaces.entries()) { + const pkg = packages[index]; + for (const dependency of Object.keys({ + ...pkg.dependencies, + ...pkg.devDependencies, + })) { + if (dependants[dependency] !== undefined) { + dependants[dependency].add(name); + dependencies[name].add(dependency); + } + } + } + + return { dependants, dependencies }; +} + +/** + * Get the list of files changed between the merge base and the PR head. + * + * @param mergeBase - The merge base SHA. + * @param headRef - The PR branch tip SHA (or "HEAD" as fallback). + * @returns A list of changed file paths. + */ +export async function getChangedFiles( + mergeBase: string, + headRef: string, +): Promise { + const { stdout } = await execa( + 'git', + ['diff', '--name-only', `${mergeBase}...${headRef}`], + { + cwd: ROOT_WORKSPACE, + encoding: 'utf8', + }, + ); + + return stdout.trim().split('\n').filter(Boolean); +} + +/** + * Check whether any changed file lives outside all package directories and + * is not in the ignored root files list. When true, a full + * rebuild/test/lint run is required. + * + * @param workspaces - The workspace set to check against. + * @param changedFiles - The list of changed file paths. + * @returns Whether any non-ignored root file changed. + */ +export function checkRootChange( + workspaces: Workspace[], + changedFiles: string[], +): boolean { + return changedFiles.some( + (file) => + !IGNORED_ROOT_FILES.has(file) && + !workspaces.some(({ location }) => file.startsWith(`${location}/`)), + ); +} + +/** + * Compute the set of workspace names that need to be checked given a merge + * base, by finding changed packages and expanding to transitive dependants. + * + * When `includeDependencies` is true, also expands to transitive dependencies. + * This is needed for TypeScript project reference builds, where every + * referenced project's dist output must already exist on disk. + * + * @param workspaces - The workspace set to compute against. + * @param changedFiles - List of changed files relative to the repo root. + * @param includeDependencies - Whether to also expand to transitive dependencies. + * @returns The set of workspace names to check. + */ +export async function computeChangedWorkspaces( + workspaces: Workspace[], + changedFiles: string[], + includeDependencies: boolean, +): Promise> { + const { dependants, dependencies } = + await getWorkspaceDependencies(workspaces); + + // If any changed file lives outside all package directories (e.g. root + // configs, workflow files, scripts), rebuild and test everything. + if (checkRootChange(workspaces, changedFiles)) { + return new Set(workspaces.map(({ name }) => name)); + } + + const result = new Set( + changedFiles.flatMap((file) => { + const workspace = workspaces.find(({ location }) => + file.startsWith(`${location}/`), + ); + return workspace ? [workspace.name] : []; + }), + ); + + // Expand to transitive dependants (packages that depend on what changed). + for (const pkg of result) { + for (const dependant of dependants[pkg] ?? []) { + result.add(dependant); + } + } + + if (includeDependencies) { + // Expand to transitive dependencies (dist files must exist to build dependants). + for (const pkg of result) { + for (const dependency of dependencies[pkg] ?? []) { + result.add(dependency); + } + } + } + + return result; +} diff --git a/tsconfig.scripts.json b/tsconfig.scripts.json index b4adc2c5..691fa67f 100644 --- a/tsconfig.scripts.json +++ b/tsconfig.scripts.json @@ -18,6 +18,6 @@ "noErrorTruncation": true, "noUncheckedIndexedAccess": true }, - "include": ["./scripts/**/*.ts"], + "include": ["./scripts/**/*.ts", "./scripts/**/*.mts"], "exclude": ["**/node_modules"] } From cbe779a4f2c78fb6806c1673b2d9b79442247f98 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Fri, 24 Jul 2026 18:33:32 +0200 Subject: [PATCH 2/2] ci: diff root `package.json` and `yarn.lock` to find affected workspaces in incremental CI (#9643) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, any PR that touched `yarn.lock` would fall through to a full rebuild and test run of all packages, because the script had no way to know which packages were actually affected by the lockfile change. Similarly, any change to the root `package.json` (including version-only bumps from release PRs) triggered a full run. This PR adds smart diffing for both files: **`yarn.lock` diffing:** When `yarn.lock` appears in the changed files, it is parsed using `@yarnpkg/parsers` and compared against the merge-base version. Entry checksums are compared (rather than resolutions) so that any change to installed package content is detected, including the rare case of a package being re-released under the same version. The changed package names are then cross-referenced against each workspace's full transitive dependency closure (built by walking the resolved lockfile graph via `@yarnpkg/core`) to produce the minimal set of workspaces that need to be rebuilt and tested. **Root `package.json` diffing:** When `package.json` changes, both sides are parsed and compared with the `version` field stripped. A version-only diff (e.g. a release PR bump) is ignored; any other change (scripts, dependencies, etc.) still triggers a full run. **Refactored `computeChangedWorkspaces`:** The function now fetches workspaces and changed files internally, and returns `{ workspaces: Workspace[], hasRootChange: boolean }` instead of `Set`. This removes boilerplate from both callers and allows `get-changed-workspaces` to short-circuit before doing any workspace computation when `hasRootChange` is true. - Part of the incremental CI build work from #9373 - [ ] I've updated the test suite for new or updated code as appropriate - [ ] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate - [ ] I've communicated my changes to consumers by [updating changelogs for packages I've changed](https://github.com/MetaMask/core/tree/main/docs/processes/updating-changelogs.md) - [ ] I've introduced [breaking changes](https://github.com/MetaMask/core/tree/main/docs/processes/breaking-changes.md) in this PR and have prepared draft pull requests for clients and consumer packages to resolve them --- > [!NOTE] > **Medium Risk** > Changes how CI decides what to build/test; incorrect lockfile or package.json diff logic could skip needed workspaces or over-build. New Yarn Berry APIs in scripts add maintenance surface but no runtime product impact. > > **Overview** > **Incremental CI** no longer treats every `yarn.lock` touch as a full monorepo run. When the lockfile changes, the script diffs merge-base vs head checksums, maps changed packages to workspaces whose **transitive** closure includes them (via `@yarnpkg/core`), then applies the usual dependant/dependency expansion. > > **Root `package.json`** is ignored for “root change” unless something besides `version` changed (release-only bumps stay incremental). `yarn.lock` is also excluded from the generic root-change path so lockfile logic handles it. > > **`computeChangedWorkspaces`** now takes `{ mergeBase, headRef, includeDependencies }`, loads workspaces and git diffs internally, and returns `{ workspaces, hasRootChange }` with dependency graph edges as `Workspace` objects. Callers `get-changed-workspaces.mts` and `generate-partial-build-tsconfig.mts` were simplified to match. > > Adds `@yarnpkg/cli`, `@yarnpkg/core`, `@yarnpkg/fslib`, and `@yarnpkg/parsers` dev deps (large `yarn.lock` churn). **`foundryup`** gets a `@ts-expect-error` on `tar` extract `transform` for `tar@7.5.12` typing. > > Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 4bf933e12ddfbec50acecf0b6c175b9bd6bfce68. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot). --- package.json | 4 + scripts/generate-partial-build-tsconfig.mts | 17 +- scripts/get-changed-workspaces.mts | 25 +- scripts/lib/workspaces.mts | 337 +++- yarn.lock | 2007 +++++++++++++++++-- 5 files changed, 2200 insertions(+), 190 deletions(-) diff --git a/package.json b/package.json index f5167db0..39d1cb58 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,10 @@ "@types/semver": "^7", "@typescript-eslint/eslint-plugin": "^8.48.0", "@typescript-eslint/parser": "^8.48.0", + "@yarnpkg/cli": "^4.17.1", + "@yarnpkg/core": "^4.9.0", + "@yarnpkg/fslib": "^3.1.5", + "@yarnpkg/parsers": "^3.0.3", "@yarnpkg/types": "^4.0.0", "comment-json": "^4.5.1", "depcheck": "^1.4.7", diff --git a/scripts/generate-partial-build-tsconfig.mts b/scripts/generate-partial-build-tsconfig.mts index 3867b72b..84032ccd 100644 --- a/scripts/generate-partial-build-tsconfig.mts +++ b/scripts/generate-partial-build-tsconfig.mts @@ -1,8 +1,6 @@ import { - getAllWorkspaces, getTypeScriptWorkspaces, computeChangedWorkspaces, - getChangedFiles, } from './lib/workspaces.mjs'; /** @@ -30,17 +28,16 @@ async function main(): Promise { const headRef = process.argv[3] ?? 'HEAD'; - const allWorkspaces = await getAllWorkspaces(); const typeScriptWorkspaces = await getTypeScriptWorkspaces(); - const changedFiles = await getChangedFiles(mergeBase, headRef); - const packagesToBuild = await computeChangedWorkspaces( - allWorkspaces, - changedFiles, - true, - ); + const { workspaces: packagesToBuild } = await computeChangedWorkspaces({ + includeDependencies: true, + mergeBase, + headRef, + }); + const packagesToBuildNames = new Set(packagesToBuild.map(({ name }) => name)); const references = typeScriptWorkspaces - .filter(({ name }) => packagesToBuild.has(name)) + .filter(({ name }) => packagesToBuildNames.has(name)) .map(({ location }) => ({ path: `./${location}/tsconfig.build.json` })); if (references.length === 0) { diff --git a/scripts/get-changed-workspaces.mts b/scripts/get-changed-workspaces.mts index 35bdb42a..9ea75db4 100644 --- a/scripts/get-changed-workspaces.mts +++ b/scripts/get-changed-workspaces.mts @@ -1,12 +1,7 @@ import yargs from 'yargs'; import { hideBin } from 'yargs/helpers'; -import { - getAllWorkspaces, - checkRootChange, - computeChangedWorkspaces, - getChangedFiles, -} from './lib/workspaces.mjs'; +import { computeChangedWorkspaces } from './lib/workspaces.mjs'; /** * List workspaces that need to be checked given a merge base. @@ -39,23 +34,17 @@ const argv = await yargs(hideBin(process.argv)) .parseAsync(); const { mergeBase, headRef = 'HEAD', includeDependencies } = argv; -const workspaces = await getAllWorkspaces(); -const changedFiles = await getChangedFiles(mergeBase, headRef); -const hasRootChange = checkRootChange(workspaces, changedFiles); - -const changed = await computeChangedWorkspaces( - workspaces, - changedFiles, +const { workspaces, hasRootChange } = await computeChangedWorkspaces({ includeDependencies, -); - -const changedWorkspaces = workspaces.filter(({ name }) => changed.has(name)); + mergeBase, + headRef, +}); console.log( JSON.stringify({ - names: changedWorkspaces.map(({ name }) => name), - locations: changedWorkspaces.map(({ location }) => location), + names: workspaces.map(({ name }) => name), + locations: workspaces.map(({ location }) => location), hasRootChange, }), ); diff --git a/scripts/lib/workspaces.mts b/scripts/lib/workspaces.mts index 83e3db44..a6e26c8e 100644 --- a/scripts/lib/workspaces.mts +++ b/scripts/lib/workspaces.mts @@ -1,4 +1,14 @@ import { fileExists } from '@metamask/utils/node'; +import { getPluginConfiguration } from '@yarnpkg/cli'; +import { + Configuration, + LocatorHash, + Project, + structUtils, + ThrowReport, +} from '@yarnpkg/core'; +import { ppath } from '@yarnpkg/fslib'; +import { parseSyml } from '@yarnpkg/parsers'; import execa from 'execa'; import { readFile } from 'node:fs/promises'; import { join } from 'node:path'; @@ -12,6 +22,15 @@ const IGNORED_ROOT_FILES = new Set([ 'CLAUDE.md', 'README.md', 'teams.json', + + // The lockfile has special logic for determining whether a package + // build/test/lint run is required, so it should not trigger a full run on its + // own. + 'yarn.lock', + + // The root package.json has special logic: only a version-only change (e.g., + // from a release PR) is safe to ignore. Any other change triggers a full run. + 'package.json', ]); export type Workspace = { @@ -20,8 +39,8 @@ export type Workspace = { }; export type DependencyGraph = { - dependants: Record>; - dependencies: Record>; + dependants: Record>; + dependencies: Record>; }; /** @@ -76,11 +95,11 @@ export async function getTypeScriptWorkspaces(): Promise { export async function getWorkspaceDependencies( workspaces: Workspace[], ): Promise { - const dependants: Record> = Object.fromEntries( - workspaces.map(({ name }) => [name, new Set()]), + const dependants: Record> = Object.fromEntries( + workspaces.map(({ name }) => [name, new Set()]), ); - const dependencies: Record> = Object.fromEntries( - workspaces.map(({ name }) => [name, new Set()]), + const dependencies: Record> = Object.fromEntries( + workspaces.map(({ name }) => [name, new Set()]), ); const packages = await Promise.all( @@ -91,15 +110,21 @@ export async function getWorkspaceDependencies( ), ); - for (const [index, { name }] of workspaces.entries()) { + for (const [index, workspace] of workspaces.entries()) { const pkg = packages[index]; for (const dependency of Object.keys({ ...pkg.dependencies, ...pkg.devDependencies, })) { if (dependants[dependency] !== undefined) { - dependants[dependency].add(name); - dependencies[name].add(dependency); + const dependencyWorkspace = workspaces.find( + (item) => item.name === dependency, + ); + + if (dependencyWorkspace) { + dependants[dependency].add(workspace); + dependencies[workspace.name].add(dependencyWorkspace); + } } } } @@ -130,6 +155,213 @@ export async function getChangedFiles( return stdout.trim().split('\n').filter(Boolean); } +/** + * Get the set of package names whose entries changed in yarn.lock between + * `mergeBase` and `headRef`. + * + * @param mergeBase - The merge base SHA. + * @param headRef - The PR branch tip SHA (or "HEAD"). + * @returns The set of changed package names. + */ +async function getChangedLockfilePackages( + mergeBase: string, + headRef: string, +): Promise> { + const [{ stdout: baseLockContent }, { stdout: currentLockContent }] = + await Promise.all([ + execa('git', ['show', `${mergeBase}:yarn.lock`], { + cwd: ROOT_WORKSPACE, + encoding: 'utf8', + }), + execa('git', ['show', `${headRef}:yarn.lock`], { + cwd: ROOT_WORKSPACE, + encoding: 'utf8', + }), + ]); + + const baseLock = parseSyml(baseLockContent); + const currentLock = parseSyml(currentLockContent); + + const changedPackageNames = new Set(); + const allKeys = new Set([ + ...Object.keys(baseLock), + ...Object.keys(currentLock), + ]); + + for (const key of allKeys) { + // Ignore metadata. + if (key.startsWith('__')) { + continue; + } + + if (baseLock[key]?.checksum === currentLock[key]?.checksum) { + continue; + } + + // A key may be a comma-separated list of descriptors resolving to the same + // version (e.g. "lodash@npm:^4.0.0, lodash@npm:^4.17.0"). + const descriptorKeys = key + .split(',') + .map((descriptorKey) => descriptorKey.trim()); + + for (const descriptorKey of descriptorKeys) { + const descriptor = structUtils.parseDescriptor(descriptorKey); + changedPackageNames.add(structUtils.stringifyIdent(descriptor)); + } + } + + return changedPackageNames; +} + +/** + * Check whether the root `package.json` changed only in its `version` field + * between `mergeBase` and `headRef`. + * + * Release PRs bump only `version`; any other change (scripts, dependencies, + * etc.) requires a full rebuild. + * + * @param mergeBase - The merge base SHA. + * @param headRef - The PR branch tip SHA (or "HEAD"). + * @returns `true` if only the `version` field differs. + */ +async function isRootPackageVersionOnlyChange( + mergeBase: string, + headRef: string, +): Promise { + const [{ stdout: baseContent }, { stdout: currentContent }] = + await Promise.all([ + execa('git', ['show', `${mergeBase}:package.json`], { + cwd: ROOT_WORKSPACE, + encoding: 'utf8', + }), + execa('git', ['show', `${headRef}:package.json`], { + cwd: ROOT_WORKSPACE, + encoding: 'utf8', + }), + ]); + + const base = JSON.parse(baseContent); + const current = JSON.parse(currentContent); + + delete base.version; + delete current.version; + + return JSON.stringify(base) === JSON.stringify(current); +} + +/** + * Build a map from each workspace name to the full set of its transitive + * dependencies, by walking the resolved lockfile graph via `@yarnpkg/core`. + * + * @returns A map from workspace name to the set of all transitive dependency + * names. + */ +async function buildWorkspaceTransitiveDependencies(): Promise< + Map> +> { + const workingDirectory = ppath.cwd(); + const configuration = await Configuration.find( + workingDirectory, + getPluginConfiguration(), + { + // `@yarnpkg/core` is outdated and with `strict: true` fails with + // "Unrecognized or legacy configuration settings found: + // approvedGitRepositories". + strict: false, + }, + ); + + const { project } = await Project.find(configuration, workingDirectory); + await project.resolveEverything({ + lockfileOnly: true, + report: new ThrowReport(), + }); + + const graph = new Map>(); + + for (const workspace of project.workspaces) { + const name = workspace.manifest.name + ? structUtils.stringifyIdent(workspace.manifest.name) + : 'root'; + + const allTransitiveDependencies = new Set(); + const visitedLocatorHashes = new Set(); + + function walkDependencies(locatorHash: LocatorHash): void { + if (visitedLocatorHashes.has(locatorHash)) { + return; + } + + visitedLocatorHashes.add(locatorHash); + + const packageConfig = project.storedPackages.get(locatorHash); + if (!packageConfig) { + return; + } + + for (const descriptor of packageConfig.dependencies.values()) { + const depName = structUtils.stringifyIdent(descriptor); + allTransitiveDependencies.add(depName); + + const resolvedLocatorHash = project.storedResolutions.get( + descriptor.descriptorHash, + ); + + if (resolvedLocatorHash) { + walkDependencies(resolvedLocatorHash); + } + } + } + + walkDependencies(workspace.anchoredLocator.locatorHash); + graph.set(name, allTransitiveDependencies); + } + + return graph; +} + +/** + * Given a merge base SHA and head ref, determine which workspaces are affected + * by changes to `yarn.lock` between those two commits. + * + * A workspace is considered affected if any package that changed in the + * lockfile appears in its transitive dependency closure. + * + * @param mergeBase - The merge base SHA. + * @param headRef - The PR branch tip SHA (or "HEAD"). + * @param workspaces - The workspace set to check against. + * @returns The set of workspace names whose transitive dependencies include + * any package that changed in the lockfile. + */ +async function getLockfileAffectedWorkspaces( + mergeBase: string, + headRef: string, + workspaces: Workspace[], +): Promise> { + const [changedPackages, workspaceGraph] = await Promise.all([ + getChangedLockfilePackages(mergeBase, headRef), + buildWorkspaceTransitiveDependencies(), + ]); + + const result = new Set(); + + for (const workspace of workspaces) { + const transitiveDeps = workspaceGraph.get(workspace.name); + if (!transitiveDeps) { + continue; + } + + for (const pkg of changedPackages) { + if (transitiveDeps.has(pkg)) { + result.add(workspace); + break; + } + } + } + + return result; +} + /** * Check whether any changed file lives outside all package directories and * is not in the ignored root files list. When true, a full @@ -158,23 +390,54 @@ export function checkRootChange( * This is needed for TypeScript project reference builds, where every * referenced project's dist output must already exist on disk. * - * @param workspaces - The workspace set to compute against. - * @param changedFiles - List of changed files relative to the repo root. - * @param includeDependencies - Whether to also expand to transitive dependencies. + * When `yarn.lock` appears in `changedFiles`, the lockfile is diffed against + * `mergeBase` to identify which workspaces have an affected transitive + * dependency, and those are seeded into the result before dependant expansion. + * + * @param options - Options. + * @param options.mergeBase - The merge base SHA, used to diff `yarn.lock` when + * it changed. + * @param options.headRef - The PR branch tip SHA (or "HEAD"), used to read the + * current side of `yarn.lock` when diffing. + * @param options.includeDependencies - Whether to also expand to transitive + * dependencies. * @returns The set of workspace names to check. */ -export async function computeChangedWorkspaces( - workspaces: Workspace[], - changedFiles: string[], - includeDependencies: boolean, -): Promise> { - const { dependants, dependencies } = - await getWorkspaceDependencies(workspaces); +export async function computeChangedWorkspaces({ + mergeBase, + headRef, + includeDependencies, +}: { + mergeBase: string; + headRef: string; + includeDependencies: boolean; +}): Promise<{ + workspaces: Workspace[]; + hasRootChange: boolean; +}> { + const changedFiles = await getChangedFiles(mergeBase, headRef); + const workspaces = await getAllWorkspaces(); - // If any changed file lives outside all package directories (e.g. root + // If any changed file lives outside all package directories (e.g., root // configs, workflow files, scripts), rebuild and test everything. if (checkRootChange(workspaces, changedFiles)) { - return new Set(workspaces.map(({ name }) => name)); + return { + workspaces, + hasRootChange: true, + }; + } + + // The root package.json is ignored by `checkRootChange` (release PRs bump + // only version), but any non-version changes (scripts, dependencies, etc.) + // still require a full rebuild. + if ( + changedFiles.includes('package.json') && + !(await isRootPackageVersionOnlyChange(mergeBase, headRef)) + ) { + return { + workspaces, + hasRootChange: true, + }; } const result = new Set( @@ -182,25 +445,45 @@ export async function computeChangedWorkspaces( const workspace = workspaces.find(({ location }) => file.startsWith(`${location}/`), ); - return workspace ? [workspace.name] : []; + + return workspace ? [workspace] : []; }), ); + // When the lockfile changed, diff it to find which workspaces have an + // affected transitive dependency, and seed them into the result before + // the dependant expansion below. + if (changedFiles.includes('yarn.lock')) { + for (const pkg of await getLockfileAffectedWorkspaces( + mergeBase, + headRef, + workspaces, + )) { + result.add(pkg); + } + } + + const { dependants, dependencies } = + await getWorkspaceDependencies(workspaces); + // Expand to transitive dependants (packages that depend on what changed). - for (const pkg of result) { - for (const dependant of dependants[pkg] ?? []) { + for (const workspace of result) { + for (const dependant of dependants[workspace.name] ?? []) { result.add(dependant); } } if (includeDependencies) { // Expand to transitive dependencies (dist files must exist to build dependants). - for (const pkg of result) { - for (const dependency of dependencies[pkg] ?? []) { + for (const workspace of result) { + for (const dependency of dependencies[workspace.name] ?? []) { result.add(dependency); } } } - return result; + return { + workspaces: Array.from(result), + hasRootChange: false, + }; } diff --git a/yarn.lock b/yarn.lock index 598c6c87..91869c16 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,6 +12,166 @@ __metadata: languageName: node linkType: hard +"@algolia/cache-browser-local-storage@npm:4.27.0": + version: 4.27.0 + resolution: "@algolia/cache-browser-local-storage@npm:4.27.0" + dependencies: + "@algolia/cache-common": "npm:4.27.0" + checksum: 10/f495cc5130caea73effcee371164fd6322deda3c2b78c26f688542e6c44e706925c148cf48675173b2e3ab7eafa8889bc5cccae07c300f2fd5e990d10cbc0b68 + languageName: node + linkType: hard + +"@algolia/cache-common@npm:4.27.0": + version: 4.27.0 + resolution: "@algolia/cache-common@npm:4.27.0" + checksum: 10/0e3629d291ccd4b40919826450bc538a16ec0f1aa77a8f104639dee1de9263a1fa6ff982d1afabae7a14ac91807820d716ed4b8019c0d54dce2b7e9fa361887b + languageName: node + linkType: hard + +"@algolia/cache-in-memory@npm:4.27.0": + version: 4.27.0 + resolution: "@algolia/cache-in-memory@npm:4.27.0" + dependencies: + "@algolia/cache-common": "npm:4.27.0" + checksum: 10/055f6220a7ab4db328102d473bb0e4a40afcc1ad8ec215c401361d063865fde2cfab24c947b66080c2214f6168dbc7a289897513556e6bb74856e32c6a22a438 + languageName: node + linkType: hard + +"@algolia/client-account@npm:4.27.0": + version: 4.27.0 + resolution: "@algolia/client-account@npm:4.27.0" + dependencies: + "@algolia/client-common": "npm:4.27.0" + "@algolia/client-search": "npm:4.27.0" + "@algolia/transporter": "npm:4.27.0" + checksum: 10/c9afa59d111eb9fa17dc4ba235d17190845dbfb640a39e4e54e3d3146fb64072367d0b8d9d40694c143d99883c9c0ca226eea1b42b967c14e230d64d4ec72c34 + languageName: node + linkType: hard + +"@algolia/client-analytics@npm:4.27.0": + version: 4.27.0 + resolution: "@algolia/client-analytics@npm:4.27.0" + dependencies: + "@algolia/client-common": "npm:4.27.0" + "@algolia/client-search": "npm:4.27.0" + "@algolia/requester-common": "npm:4.27.0" + "@algolia/transporter": "npm:4.27.0" + checksum: 10/641ff017787fd941d411a1dfcd66cc5035ca5183d0fbbf96dae9034205228ca4ded7ac02e639aaee20e1d96a9c43fd7fdcb1ab775f4f8a8fc341b1cce9c89c53 + languageName: node + linkType: hard + +"@algolia/client-common@npm:4.27.0": + version: 4.27.0 + resolution: "@algolia/client-common@npm:4.27.0" + dependencies: + "@algolia/requester-common": "npm:4.27.0" + "@algolia/transporter": "npm:4.27.0" + checksum: 10/860aaf97666e0faae3212b761b3a35f4adbd5b8d1630c0b60659b5cac0bbd37c3afbd900021ae2c24f6e0b22cabcad8f4db0a80c23df0a30faa1f71f4260a913 + languageName: node + linkType: hard + +"@algolia/client-personalization@npm:4.27.0": + version: 4.27.0 + resolution: "@algolia/client-personalization@npm:4.27.0" + dependencies: + "@algolia/client-common": "npm:4.27.0" + "@algolia/requester-common": "npm:4.27.0" + "@algolia/transporter": "npm:4.27.0" + checksum: 10/aba1b4b255e201f1d764ef6a55f258d5cd14004d42de982eee360493dc2688bda4a3e89788448977fdee7358837d2eb42fe3724dc817389555d7f3df6581b673 + languageName: node + linkType: hard + +"@algolia/client-search@npm:4.27.0": + version: 4.27.0 + resolution: "@algolia/client-search@npm:4.27.0" + dependencies: + "@algolia/client-common": "npm:4.27.0" + "@algolia/requester-common": "npm:4.27.0" + "@algolia/transporter": "npm:4.27.0" + checksum: 10/c7bdce43de232b4e80910f7f7dfca3156c9d21fcc92aff1934f2b5fc255686a14a0db32a02a272be9f79c67534f06105b8cb1b781da6c91f29dc8819e97df100 + languageName: node + linkType: hard + +"@algolia/logger-common@npm:4.27.0": + version: 4.27.0 + resolution: "@algolia/logger-common@npm:4.27.0" + checksum: 10/1d3c7b445bda72a2696123fcc9bc4e2702908e258ee0596b738e92c169d2524c26b29c7a5eb1c979f1823f5fbb9537113fe3aa56e57c6240c2f51f1ed80f2ec2 + languageName: node + linkType: hard + +"@algolia/logger-console@npm:4.27.0": + version: 4.27.0 + resolution: "@algolia/logger-console@npm:4.27.0" + dependencies: + "@algolia/logger-common": "npm:4.27.0" + checksum: 10/ec187e61c07dd528ae059684dcb99bab1e6b530a8c717b5e5e124da1d998b85a8cd376d55540ea490c2aee2b3bdf24b5d4b41e3f72c4974a15b1bcb309de6189 + languageName: node + linkType: hard + +"@algolia/recommend@npm:4.27.0": + version: 4.27.0 + resolution: "@algolia/recommend@npm:4.27.0" + dependencies: + "@algolia/cache-browser-local-storage": "npm:4.27.0" + "@algolia/cache-common": "npm:4.27.0" + "@algolia/cache-in-memory": "npm:4.27.0" + "@algolia/client-common": "npm:4.27.0" + "@algolia/client-search": "npm:4.27.0" + "@algolia/logger-common": "npm:4.27.0" + "@algolia/logger-console": "npm:4.27.0" + "@algolia/requester-browser-xhr": "npm:4.27.0" + "@algolia/requester-common": "npm:4.27.0" + "@algolia/requester-node-http": "npm:4.27.0" + "@algolia/transporter": "npm:4.27.0" + checksum: 10/d927e4b2ef8d615e7067903ecca33d8247af050e18005fc6ebbea1799d3122068293258b6db66a88c13a0a6c573e74d5cc1e18ca4004f4e75b46af3aa74e0ef4 + languageName: node + linkType: hard + +"@algolia/requester-browser-xhr@npm:4.27.0": + version: 4.27.0 + resolution: "@algolia/requester-browser-xhr@npm:4.27.0" + dependencies: + "@algolia/requester-common": "npm:4.27.0" + checksum: 10/8ca2bc006b68cf703cd659f99db04abcf3ff3e89c0633ecab7eb0d26acad030121fcd3f7e2990efb7fa16f389d0109ee4d4aefc4f95d4d57dacd8ff16289eee9 + languageName: node + linkType: hard + +"@algolia/requester-common@npm:4.27.0": + version: 4.27.0 + resolution: "@algolia/requester-common@npm:4.27.0" + checksum: 10/000c125faa1e69f273c7ce0445284babed6ea519997eaeef06b010be3abdd1e77dc454d4cf712693ebc37f68a564052e2cf3e623ab0916c5f7d7c036a6c2e3f1 + languageName: node + linkType: hard + +"@algolia/requester-node-http@npm:4.27.0": + version: 4.27.0 + resolution: "@algolia/requester-node-http@npm:4.27.0" + dependencies: + "@algolia/requester-common": "npm:4.27.0" + checksum: 10/eb8c47aed7d3245393f6d6b76e8c3cd144fbbe990ca93f45e9d2f08d9ec2fb46a379db7796c2bbca1e0179a86812ecd42eb3ad3613ab44065e95b655855740ed + languageName: node + linkType: hard + +"@algolia/transporter@npm:4.27.0": + version: 4.27.0 + resolution: "@algolia/transporter@npm:4.27.0" + dependencies: + "@algolia/cache-common": "npm:4.27.0" + "@algolia/logger-common": "npm:4.27.0" + "@algolia/requester-common": "npm:4.27.0" + checksum: 10/5efaa7651605ceaca1935b553afdf2c44b4a501fc51ab3852967c632dd86d6084408a5cdcb8202cee001a15863335a290d3d997d2e0666f25f9b4a4175c8cbf5 + languageName: node + linkType: hard + +"@arcanis/slice-ansi@npm:^1.1.1": + version: 1.1.1 + resolution: "@arcanis/slice-ansi@npm:1.1.1" + dependencies: + grapheme-splitter: "npm:^1.0.4" + checksum: 10/14ed60cb45750d386c64229ac7bab20e10eedc193503fa4decff764162d329d6d3363ed2cd3debec833186ee54affe4f824f6e8eff531295117fd1ebda200270 + languageName: node + linkType: hard + "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.29.7": version: 7.29.7 resolution: "@babel/code-frame@npm:7.29.7" @@ -1224,6 +1384,15 @@ __metadata: languageName: node linkType: hard +"@isaacs/fs-minipass@npm:^4.0.0": + version: 4.0.1 + resolution: "@isaacs/fs-minipass@npm:4.0.1" + dependencies: + minipass: "npm:^7.0.4" + checksum: 10/4412e9e6713c89c1e66d80bb0bb5a2a93192f10477623a27d08f228ba0316bb880affabc5bfe7f838f58a34d26c2c190da726e576cdfc18c49a72e89adabdcf5 + languageName: node + linkType: hard + "@istanbuljs/load-nyc-config@npm:^1.0.0": version: 1.1.0 resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" @@ -1681,15 +1850,15 @@ __metadata: linkType: hard "@metamask/approval-controller@npm:^9.0.1": - version: 9.0.1 - resolution: "@metamask/approval-controller@npm:9.0.1" + version: 9.0.2 + resolution: "@metamask/approval-controller@npm:9.0.2" dependencies: - "@metamask/base-controller": "npm:^9.0.1" - "@metamask/messenger": "npm:^1.0.0" + "@metamask/base-controller": "npm:^9.1.0" + "@metamask/messenger": "npm:^1.2.0" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/utils": "npm:^11.9.0" nanoid: "npm:^3.3.8" - checksum: 10/980e7ded7022a887c11693226922f9814d160c93fe5297380addafebe9b6e9191ba3acc7bf54775c8c8eeb7e07bcfcaaf79cc90361ff18fa04c1d449eab2ed33 + checksum: 10/f27d75901a1a8367a8972b30ebb097a063282c8eb40f3188a6255ed1e043313085de6d5feb9300660366d4d93c822ebe6b37219978806db0492c4fed761d3c6a languageName: node linkType: hard @@ -2240,6 +2409,10 @@ __metadata: "@types/semver": "npm:^7" "@typescript-eslint/eslint-plugin": "npm:^8.48.0" "@typescript-eslint/parser": "npm:^8.48.0" + "@yarnpkg/cli": "npm:^4.17.1" + "@yarnpkg/core": "npm:^4.9.0" + "@yarnpkg/fslib": "npm:^3.1.5" + "@yarnpkg/parsers": "npm:^3.0.3" "@yarnpkg/types": "npm:^4.0.0" comment-json: "npm:^4.5.1" depcheck: "npm:^1.4.7" @@ -2342,14 +2515,14 @@ __metadata: linkType: hard "@metamask/keyring-api@npm:^23.0.1, @metamask/keyring-api@npm:^23.1.0, @metamask/keyring-api@npm:^23.2.0": - version: 23.2.0 - resolution: "@metamask/keyring-api@npm:23.2.0" + version: 23.5.0 + resolution: "@metamask/keyring-api@npm:23.5.0" dependencies: "@metamask/keyring-utils": "npm:^3.3.1" - "@metamask/superstruct": "npm:^3.1.0" + "@metamask/superstruct": "npm:^3.3.0" "@metamask/utils": "npm:^11.11.0" bitcoin-address-validation: "npm:^2.2.3" - checksum: 10/31c3d14da1d24e7b0e1d1a73f22dc265a8223e3bccda546f4069f7ae6e6ac54e063640bed04a2934413cc85b8d5e914a4492d5f8a094a5d6ddf706182967dfa0 + checksum: 10/2d8a4b378f5bad77284feb58bc7f3b64d541751527c693e43f7e4d860333bc55593e27fc5264fc908d719912b374f77dabec3f5e491bb49f72501fd2f5c43e68 languageName: node linkType: hard @@ -3228,19 +3401,19 @@ __metadata: linkType: hard "@metamask/storage-service@npm:^1.0.1": - version: 1.0.1 - resolution: "@metamask/storage-service@npm:1.0.1" + version: 1.0.2 + resolution: "@metamask/storage-service@npm:1.0.2" dependencies: - "@metamask/messenger": "npm:^1.0.0" + "@metamask/messenger": "npm:^1.2.0" "@metamask/utils": "npm:^11.9.0" - checksum: 10/3ec18b85ae80d13c4928be327abb1ee0548a6c44afdb7f709434a6621c876c3de95e145ca2603bdf178772982c76f546ec1cac58f28c0a9c74e020342d171349 + checksum: 10/dda8f1a6c63c98bbd8fa61cd5863e54f8e9801389a96efc69fd8d10011cd194370990bac5b8693c7861e23769237e617946e0304a1dc9ea4da83b8d3fb6c8942 languageName: node linkType: hard -"@metamask/superstruct@npm:^3.1.0, @metamask/superstruct@npm:^3.2.1": - version: 3.2.1 - resolution: "@metamask/superstruct@npm:3.2.1" - checksum: 10/9e29380f2cf8b129283ccb2b568296d92682b705109ba62dbd7739ffd6a1982fe38c7228cdcf3cbee94dbcdd5fcc1c846ab9d1dd3582167154f914422fcff547 +"@metamask/superstruct@npm:^3.1.0, @metamask/superstruct@npm:^3.2.1, @metamask/superstruct@npm:^3.3.0": + version: 3.3.0 + resolution: "@metamask/superstruct@npm:3.3.0" + checksum: 10/664d5e330484a86420bc004b1c7f8301e1501cce712f611fe657176b2979edbd7cc6f4c77c8b1610486a685ebbd0b72dacf4bd6cf143d6b52038069d2f4e84ab languageName: node linkType: hard @@ -3442,6 +3615,19 @@ __metadata: languageName: node linkType: hard +"@npmcli/agent@npm:^3.0.0": + version: 3.0.0 + resolution: "@npmcli/agent@npm:3.0.0" + dependencies: + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.1" + lru-cache: "npm:^10.0.1" + socks-proxy-agent: "npm:^8.0.3" + checksum: 10/775c9a7eb1f88c195dfb3bce70c31d0fe2a12b28b754e25c08a3edb4bc4816bfedb7ac64ef1e730579d078ca19dacf11630e99f8f3c3e0fd7b23caa5fd6d30a6 + languageName: node + linkType: hard + "@npmcli/fs@npm:^3.1.0": version: 3.1.1 resolution: "@npmcli/fs@npm:3.1.1" @@ -3451,6 +3637,15 @@ __metadata: languageName: node linkType: hard +"@npmcli/fs@npm:^4.0.0": + version: 4.0.0 + resolution: "@npmcli/fs@npm:4.0.0" + dependencies: + semver: "npm:^7.3.5" + checksum: 10/405c4490e1ff11cf299775449a3c254a366a4b1ffc79d87159b0ee7d5558ac9f6a2f8c0735fd6ff3873cef014cb1a44a5f9127cb6a1b2dbc408718cca9365b5a + languageName: node + linkType: hard + "@npmcli/git@npm:^5.0.0": version: 5.0.8 resolution: "@npmcli/git@npm:5.0.8" @@ -3901,6 +4096,64 @@ __metadata: languageName: node linkType: hard +"@sigstore/bundle@npm:^3.1.0": + version: 3.1.0 + resolution: "@sigstore/bundle@npm:3.1.0" + dependencies: + "@sigstore/protobuf-specs": "npm:^0.4.0" + checksum: 10/21b246ec63462e8508a8d001ca5d7937f63b6e15d5f2947ee2726d1e4674fb3f7640faa47b165bfea1d5b09df93fbdf10d1556427bba7e005e7f3a65b87f89b2 + languageName: node + linkType: hard + +"@sigstore/core@npm:^2.0.0": + version: 2.0.0 + resolution: "@sigstore/core@npm:2.0.0" + checksum: 10/ec1deae9430eeff580ad0f4ef2328b4eb7252db04587474fe9423d97736134ad79ee83aa2dfbc1fccfb18420c249e26e6e72e7176b592d7013eae5379dcb124d + languageName: node + linkType: hard + +"@sigstore/protobuf-specs@npm:^0.4.0, @sigstore/protobuf-specs@npm:^0.4.1": + version: 0.4.3 + resolution: "@sigstore/protobuf-specs@npm:0.4.3" + checksum: 10/05bcb534b6096c095185c74b1718af89666299444490d84d35610f590bc4e2bf1a6a29c2c4f18598ddbd3a8a43c95f0a89faa98c05b44ff0be1dcd8b39f7e323 + languageName: node + linkType: hard + +"@sigstore/sign@npm:^3.1.0": + version: 3.1.0 + resolution: "@sigstore/sign@npm:3.1.0" + dependencies: + "@sigstore/bundle": "npm:^3.1.0" + "@sigstore/core": "npm:^2.0.0" + "@sigstore/protobuf-specs": "npm:^0.4.0" + make-fetch-happen: "npm:^14.0.2" + proc-log: "npm:^5.0.0" + promise-retry: "npm:^2.0.1" + checksum: 10/e0ce0aa52b572eefa06a8260a7329f349c56217f2bbb6f167259c6e02e148987073e0dddc5e3c40ea4aafc89b8b0176e2617fb16f9c8c50cf0c1437b6c90fca4 + languageName: node + linkType: hard + +"@sigstore/tuf@npm:^3.1.0": + version: 3.1.1 + resolution: "@sigstore/tuf@npm:3.1.1" + dependencies: + "@sigstore/protobuf-specs": "npm:^0.4.1" + tuf-js: "npm:^3.0.1" + checksum: 10/f6eeba3fa72fa22b119af84b4a3d5ce2ad50c2e1600241f493ed4d8ec1d128a437d649c9e5cdf0135edf0db82468f8c7c25458ab97978aa5780ab7aece1ade48 + languageName: node + linkType: hard + +"@sigstore/verify@npm:^2.1.0": + version: 2.1.1 + resolution: "@sigstore/verify@npm:2.1.1" + dependencies: + "@sigstore/bundle": "npm:^3.1.0" + "@sigstore/core": "npm:^2.0.0" + "@sigstore/protobuf-specs": "npm:^0.4.1" + checksum: 10/ff2aa8c441fd45b20a048b8746fa1d6096e3385a7098352b24703bca790d0555383d21f29b0ce8223c36dd98e14ed7dae82d044ff005c76e0e68c240f0a0458d + languageName: node + linkType: hard + "@sinclair/typebox@npm:^0.27.8": version: 0.27.8 resolution: "@sinclair/typebox@npm:0.27.8" @@ -3908,6 +4161,13 @@ __metadata: languageName: node linkType: hard +"@sindresorhus/is@npm:^4.0.0": + version: 4.6.0 + resolution: "@sindresorhus/is@npm:4.6.0" + checksum: 10/e7f36ed72abfcd5e0355f7423a72918b9748bb1ef370a59f3e5ad8d40b728b85d63b272f65f63eec1faf417cda89dcb0aeebe94015647b6054659c1442fe5ce0 + languageName: node + linkType: hard + "@sinonjs/commons@npm:^3.0.0": version: 3.0.1 resolution: "@sinonjs/commons@npm:3.0.1" @@ -4115,6 +4375,15 @@ __metadata: languageName: node linkType: hard +"@szmarczak/http-timer@npm:^4.0.5": + version: 4.0.6 + resolution: "@szmarczak/http-timer@npm:4.0.6" + dependencies: + defer-to-connect: "npm:^2.0.0" + checksum: 10/c29df3bcec6fc3bdec2b17981d89d9c9fc9bd7d0c9bcfe92821dc533f4440bc890ccde79971838b4ceed1921d456973c4180d7175ee1d0023ad0562240a58d95 + languageName: node + linkType: hard + "@tanstack/query-core@npm:^5.62.16": version: 5.101.0 resolution: "@tanstack/query-core@npm:5.101.0" @@ -4122,6 +4391,23 @@ __metadata: languageName: node linkType: hard +"@tufjs/canonical-json@npm:2.0.0": + version: 2.0.0 + resolution: "@tufjs/canonical-json@npm:2.0.0" + checksum: 10/cc719a1d0d0ae1aa1ba551a82c87dcbefac088e433c03a3d8a1d547ea721350e47dab4ab5b0fca40d5c7ab1f4882e72edc39c9eae15bf47c45c43bcb6ee39f4f + languageName: node + linkType: hard + +"@tufjs/models@npm:3.0.1": + version: 3.0.1 + resolution: "@tufjs/models@npm:3.0.1" + dependencies: + "@tufjs/canonical-json": "npm:2.0.0" + minimatch: "npm:^9.0.5" + checksum: 10/00636238b2e3ce557e7b5f6884594ee2379fd5a9588401fd6c8be2e2867fcaf836e226c6be81d87006701746037847e13bbc263c0ed0f38b4f28b1108a4b1d81 + languageName: node + linkType: hard + "@types/babel__core@npm:^7.1.14": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" @@ -4172,6 +4458,18 @@ __metadata: languageName: node linkType: hard +"@types/cacheable-request@npm:^6.0.1": + version: 6.0.3 + resolution: "@types/cacheable-request@npm:6.0.3" + dependencies: + "@types/http-cache-semantics": "npm:*" + "@types/keyv": "npm:^3.1.4" + "@types/node": "npm:*" + "@types/responselike": "npm:^1.0.0" + checksum: 10/159f9fdb2a1b7175eef453ae2ced5ea04c0d2b9610cc9ccd9f9abb066d36dacb1f37acd879ace10ad7cbb649490723feb396fb7307004c9670be29636304b988 + languageName: node + linkType: hard + "@types/debug@npm:^4.1.7": version: 4.1.13 resolution: "@types/debug@npm:4.1.13" @@ -4195,6 +4493,13 @@ __metadata: languageName: node linkType: hard +"@types/emscripten@npm:^1.39.6": + version: 1.41.5 + resolution: "@types/emscripten@npm:1.41.5" + checksum: 10/60dfcced39b2d0c94f31907c5cf5d97fe06ed35ed6cb134650a1a96bae861302722d4a6f459b484ea09588cde70cbcc034974454a746be3ce9688b52398d2953 + languageName: node + linkType: hard + "@types/estree@npm:^1.0.6, @types/estree@npm:^1.0.8": version: 1.0.9 resolution: "@types/estree@npm:1.0.9" @@ -4211,6 +4516,13 @@ __metadata: languageName: node linkType: hard +"@types/http-cache-semantics@npm:*": + version: 4.2.0 + resolution: "@types/http-cache-semantics@npm:4.2.0" + checksum: 10/01ea0dc9c1852267f5f9a0190846ac158707994b8e325bca190385ec97aa773d4a99cd333e22e838bde3c9aba59e2b5a6ac399b494c203587c6d8f28d21d6326 + languageName: node + linkType: hard + "@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": version: 2.0.6 resolution: "@types/istanbul-lib-coverage@npm:2.0.6" @@ -4253,6 +4565,15 @@ __metadata: languageName: node linkType: hard +"@types/keyv@npm:^3.1.4": + version: 3.1.4 + resolution: "@types/keyv@npm:3.1.4" + dependencies: + "@types/node": "npm:*" + checksum: 10/e009a2bfb50e90ca9b7c6e8f648f8464067271fd99116f881073fa6fa76dc8d0133181dd65e6614d5fb1220d671d67b0124aef7d97dc02d7e342ab143a47779d + languageName: node + linkType: hard + "@types/lodash@npm:^4.14.191, @types/lodash@npm:^4.17.20": version: 4.17.24 resolution: "@types/lodash@npm:4.17.24" @@ -4290,6 +4611,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^18.19.124": + version: 18.19.130 + resolution: "@types/node@npm:18.19.130" + dependencies: + undici-types: "npm:~5.26.4" + checksum: 10/ebb85c6edcec78df926de27d828ecbeb1b3d77c165ceef95bfc26e171edbc1924245db4eb2d7d6230206fe6b1a1f7665714fe1c70739e9f5980d8ce31af6ef82 + languageName: node + linkType: hard + "@types/parse-json@npm:^4.0.0": version: 4.0.2 resolution: "@types/parse-json@npm:4.0.2" @@ -4330,11 +4660,11 @@ __metadata: linkType: hard "@types/react@npm:*": - version: 19.2.16 - resolution: "@types/react@npm:19.2.16" + version: 19.2.15 + resolution: "@types/react@npm:19.2.15" dependencies: csstype: "npm:^3.2.2" - checksum: 10/b88e77eec8c99757b74539d3495ecd5426e423191fe8c3cdb311f48760046598d9e7c9f876fa6232ee850202205e3165613791ff679e4007d2a92f1512e3b60a + checksum: 10/f77447366a94804feea450568f7ebdadc00155457b4c74240972a73601294b09f45cac4e1a28aa97bc01da9ed130bb5fe9a687835d4da6307d457f92530acc3a languageName: node linkType: hard @@ -4349,6 +4679,15 @@ __metadata: languageName: node linkType: hard +"@types/responselike@npm:^1.0.0": + version: 1.0.3 + resolution: "@types/responselike@npm:1.0.3" + dependencies: + "@types/node": "npm:*" + checksum: 10/6ac4b35723429b11b117e813c7acc42c3af8b5554caaf1fc750404c1ae59f9b7376bc69b9e9e194a5a97357a597c2228b7173d317320f0360d617b6425212f58 + languageName: node + linkType: hard + "@types/scheduler@npm:*": version: 0.26.0 resolution: "@types/scheduler@npm:0.26.0" @@ -4365,10 +4704,10 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:^7, @types/semver@npm:^7.3.6": - version: 7.5.8 - resolution: "@types/semver@npm:7.5.8" - checksum: 10/3496808818ddb36deabfe4974fd343a78101fa242c4690044ccdc3b95dcf8785b494f5d628f2f47f38a702f8db9c53c67f47d7818f2be1b79f2efb09692e1178 +"@types/semver@npm:^7, @types/semver@npm:^7.1.0, @types/semver@npm:^7.3.6": + version: 7.7.1 + resolution: "@types/semver@npm:7.7.1" + checksum: 10/8f09e7e6ca3ded67d78ba7a8f7535c8d9cf8ced83c52e7f3ac3c281fe8c689c3fe475d199d94390dc04fc681d51f2358b430bb7b2e21c62de24f2bee2c719068 languageName: node linkType: hard @@ -4379,6 +4718,13 @@ __metadata: languageName: node linkType: hard +"@types/treeify@npm:^1.0.0": + version: 1.0.3 + resolution: "@types/treeify@npm:1.0.3" + checksum: 10/777e579b30a916a781e7cbad2b7a76bc5473ff7bfe7167dd6de47f80f4386df5bf3d0dc34170afb75d52e75f6ed61cc109abf2324e093c1f9ecd4e79fec58d0c + languageName: node + linkType: hard + "@types/uuid@npm:^8.3.0": version: 8.3.4 resolution: "@types/uuid@npm:8.3.4" @@ -4418,6 +4764,13 @@ __metadata: languageName: node linkType: hard +"@types/yoga-layout@npm:1.9.2": + version: 1.9.2 + resolution: "@types/yoga-layout@npm:1.9.2" + checksum: 10/3cbcab36d9e19d077cc2bc956d3182dc26f35f13f8fcf01648717bcba412be7ed3c4b6f43c4f8f201ea815160d0cb2b96e82698c4b43d4a179c5603a7725f34e + languageName: node + linkType: hard + "@typescript-eslint/eslint-plugin@npm:8.54.0, @typescript-eslint/eslint-plugin@npm:^8.48.0": version: 8.54.0 resolution: "@typescript-eslint/eslint-plugin@npm:8.54.0" @@ -4782,84 +5135,664 @@ __metadata: languageName: node linkType: hard -"@yarnpkg/types@npm:^4.0.0": - version: 4.0.0 - resolution: "@yarnpkg/types@npm:4.0.0" - dependencies: +"@yarnpkg/cli@npm:^4.17.1": + version: 4.17.1 + resolution: "@yarnpkg/cli@npm:4.17.1" + dependencies: + "@yarnpkg/core": "npm:^4.9.0" + "@yarnpkg/fslib": "npm:^3.1.5" + "@yarnpkg/libzip": "npm:^3.2.2" + "@yarnpkg/parsers": "npm:^3.0.3" + "@yarnpkg/plugin-catalog": "npm:^1.0.2" + "@yarnpkg/plugin-compat": "npm:^4.0.13" + "@yarnpkg/plugin-constraints": "npm:^4.0.5" + "@yarnpkg/plugin-dlx": "npm:^4.0.2" + "@yarnpkg/plugin-essentials": "npm:^4.6.1" + "@yarnpkg/plugin-exec": "npm:^3.1.0" + "@yarnpkg/plugin-file": "npm:^3.0.2" + "@yarnpkg/plugin-git": "npm:^3.2.0" + "@yarnpkg/plugin-github": "npm:^3.0.2" + "@yarnpkg/plugin-http": "npm:^3.0.3" + "@yarnpkg/plugin-init": "npm:^4.1.2" + "@yarnpkg/plugin-interactive-tools": "npm:^4.1.0" + "@yarnpkg/plugin-jsr": "npm:^1.1.1" + "@yarnpkg/plugin-link": "npm:^3.0.2" + "@yarnpkg/plugin-nm": "npm:^4.1.0" + "@yarnpkg/plugin-npm": "npm:^3.7.0" + "@yarnpkg/plugin-npm-cli": "npm:^4.5.0" + "@yarnpkg/plugin-pack": "npm:^4.0.4" + "@yarnpkg/plugin-patch": "npm:^4.0.5" + "@yarnpkg/plugin-pnp": "npm:^4.2.0" + "@yarnpkg/plugin-pnpm": "npm:^2.3.0" + "@yarnpkg/plugin-stage": "npm:^4.0.2" + "@yarnpkg/plugin-typescript": "npm:^4.1.3" + "@yarnpkg/plugin-version": "npm:^4.2.0" + "@yarnpkg/plugin-workspace-tools": "npm:^4.1.7" + "@yarnpkg/shell": "npm:^4.1.3" + ci-info: "npm:^4.0.0" + clipanion: "npm:^4.0.0-rc.2" + semver: "npm:^7.1.2" tslib: "npm:^2.4.0" - checksum: 10/f9670e120761a4d17461df2f01aa4b92213fbdd063501a36145d11ea01bd87ba01d44615cba3d6bc8f9bfc39a03a9a6452bf0436c7fb0c9c5311352b975349e6 + typanion: "npm:^3.14.0" + peerDependencies: + "@yarnpkg/core": ^4.9.0 + checksum: 10/e91a2eea7f6dd5f33980302016cf10faee3272830b9c2136ace7738d73c0ea3c0459f81ac7a3c68c11df1fda7a6c4540f6a0a5921150b495efeee25dff0d09f0 languageName: node linkType: hard -"abbrev@npm:^2.0.0": - version: 2.0.0 - resolution: "abbrev@npm:2.0.0" - checksum: 10/ca0a54e35bea4ece0ecb68a47b312e1a9a6f772408d5bcb9051230aaa94b0460671c5b5c9cb3240eb5b7bc94c52476550eb221f65a0bbd0145bdc9f3113a6707 +"@yarnpkg/core@npm:^4.9.0": + version: 4.9.0 + resolution: "@yarnpkg/core@npm:4.9.0" + dependencies: + "@arcanis/slice-ansi": "npm:^1.1.1" + "@types/semver": "npm:^7.1.0" + "@types/treeify": "npm:^1.0.0" + "@yarnpkg/fslib": "npm:^3.1.5" + "@yarnpkg/libzip": "npm:^3.2.2" + "@yarnpkg/parsers": "npm:^3.0.3" + "@yarnpkg/shell": "npm:^4.1.3" + camelcase: "npm:^5.3.1" + chalk: "npm:^4.1.2" + ci-info: "npm:^4.0.0" + clipanion: "npm:^4.0.0-rc.2" + cross-spawn: "npm:^7.0.3" + diff: "npm:^5.1.0" + dotenv: "npm:^16.3.1" + es-toolkit: "npm:^1.39.7" + fast-glob: "npm:^3.2.2" + got: "npm:^11.7.0" + hpagent: "npm:^1.2.0" + micromatch: "npm:^4.0.2" + p-limit: "npm:^2.2.0" + semver: "npm:^7.1.2" + strip-ansi: "npm:^6.0.0" + tar: "npm:^7.5.3" + tinylogic: "npm:^2.0.0" + treeify: "npm:^1.1.0" + tslib: "npm:^2.4.0" + checksum: 10/5f7364855889641c258353c8e06b130bbe09b4d567d4dbfbdf88859b98175714a8b61a223499c92a28eef1bdc1638f12f16938ec116c44363c068f6100faeb92 languageName: node linkType: hard -"abort-controller@npm:^3.0.0": - version: 3.0.0 - resolution: "abort-controller@npm:3.0.0" - dependencies: - event-target-shim: "npm:^5.0.0" - checksum: 10/ed84af329f1828327798229578b4fe03a4dd2596ba304083ebd2252666bdc1d7647d66d0b18704477e1f8aa315f055944aa6e859afebd341f12d0a53c37b4b40 +"@yarnpkg/extensions@npm:^2.0.6": + version: 2.0.6 + resolution: "@yarnpkg/extensions@npm:2.0.6" + peerDependencies: + "@yarnpkg/core": ^4.4.2 + checksum: 10/25c64f8f3db5c7cbabbc3a86f6d018961486b50df1065e64d8acacd6c048d33d18c07d8717f52fd8ecb5eb3429b1f42f8692d82db18fe981f3e85f4ee8d04d09 languageName: node linkType: hard -"accepts@npm:^2.0.0": - version: 2.0.0 - resolution: "accepts@npm:2.0.0" +"@yarnpkg/fslib@npm:^3.1.2, @yarnpkg/fslib@npm:^3.1.3, @yarnpkg/fslib@npm:^3.1.4, @yarnpkg/fslib@npm:^3.1.5": + version: 3.1.5 + resolution: "@yarnpkg/fslib@npm:3.1.5" dependencies: - mime-types: "npm:^3.0.0" - negotiator: "npm:^1.0.0" - checksum: 10/ea1343992b40b2bfb3a3113fa9c3c2f918ba0f9197ae565c48d3f84d44b174f6b1d5cd9989decd7655963eb03a272abc36968cc439c2907f999bd5ef8653d5a7 + tslib: "npm:^2.4.0" + checksum: 10/67b4850cdfbf0c11460302d997c0eacab46246cc8c7718a045beca346c494163e15768e2d20ab719ff6a98adbe7eaa9efcecdfd5cb0b8539f84a96449ac7ceaa languageName: node linkType: hard -"accepts@npm:~1.3.8": - version: 1.3.8 - resolution: "accepts@npm:1.3.8" +"@yarnpkg/libui@npm:^3.0.2, @yarnpkg/libui@npm:^3.1.0": + version: 3.1.0 + resolution: "@yarnpkg/libui@npm:3.1.0" dependencies: - mime-types: "npm:~2.1.34" - negotiator: "npm:0.6.3" - checksum: 10/67eaaa90e2917c58418e7a9b89392002d2b1ccd69bcca4799135d0c632f3b082f23f4ae4ddeedbced5aa59bcc7bdf4699c69ebed4593696c922462b7bc5744d6 + tslib: "npm:^2.4.0" + peerDependencies: + ink: ^3.0.8 + react: ^17.0.2 + checksum: 10/7433bea5b909960e9a19356c615a487bead35e146b66a47835bc51ca41031f909cfa5c21c2a0ba2b62c6d1b8bc9a832cba24ce9159e84ea17eb703fb888dfba7 languageName: node linkType: hard -"acorn-import-phases@npm:^1.0.3": - version: 1.0.4 - resolution: "acorn-import-phases@npm:1.0.4" +"@yarnpkg/libzip@npm:^3.2.1, @yarnpkg/libzip@npm:^3.2.2": + version: 3.2.2 + resolution: "@yarnpkg/libzip@npm:3.2.2" + dependencies: + "@types/emscripten": "npm:^1.39.6" + "@yarnpkg/fslib": "npm:^3.1.3" + tslib: "npm:^2.4.0" peerDependencies: - acorn: ^8.14.0 - checksum: 10/471050ac7d9b61909c837b426de9eeef2958997f6277ad7dea88d5894fd9b3245d8ed4a225c2ca44f814dbb20688009db7a80e525e8196fc9e98c5285b66161d + "@yarnpkg/fslib": ^3.1.3 + checksum: 10/b6548be0a421e2390b74fd767d5f90e6da34a84af3ca28389b86d7f9e7602663f01347b5081cb93f8821877cae3ed48d2cb1cb8c35a4a4f7fc3d00109c85af0f languageName: node linkType: hard -"acorn-jsx@npm:^5.3.2": - version: 5.3.2 - resolution: "acorn-jsx@npm:5.3.2" - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 10/d4371eaef7995530b5b5ca4183ff6f062ca17901a6d3f673c9ac011b01ede37e7a1f7f61f8f5cfe709e88054757bb8f3277dc4061087cdf4f2a1f90ccbcdb977 +"@yarnpkg/nm@npm:^4.1.0": + version: 4.1.0 + resolution: "@yarnpkg/nm@npm:4.1.0" + dependencies: + "@yarnpkg/core": "npm:^4.9.0" + "@yarnpkg/fslib": "npm:^3.1.5" + "@yarnpkg/pnp": "npm:^4.1.7" + checksum: 10/f3876684dbb84a6482e186ce492dd114be46adbc760e8b23b26dd3321e2911003b6a08547ad247a438c8ffc2b7b1a1adc7b73ac187c3f4e17755ffb8e0389159 languageName: node linkType: hard -"acorn-walk@npm:^8.0.0": - version: 8.3.5 - resolution: "acorn-walk@npm:8.3.5" +"@yarnpkg/parsers@npm:^3.0.3": + version: 3.0.3 + resolution: "@yarnpkg/parsers@npm:3.0.3" dependencies: - acorn: "npm:^8.11.0" - checksum: 10/f52a158a1c1f00c82702c7eb9b8ae8aad79748a7689241dcc2d797dce680f1dcb15c78f312f687eeacdfb3a4cac4b87d04af470f0201bd56c6661fca6f94b195 + js-yaml: "npm:^3.10.0" + tslib: "npm:^2.4.0" + checksum: 10/379f7ff8fc1b37d3818dfeba4e18a72f8e9817bb41aab9332b50bbc843e45c9bf135563a7a06882ffb50e4cdd29c8da33c8e4f3739201de2fbcd38ecb59e3a8e languageName: node linkType: hard -"acorn@npm:^8.0.4, acorn@npm:^8.11.0, acorn@npm:^8.15.0, acorn@npm:^8.16.0": - version: 8.16.0 - resolution: "acorn@npm:8.16.0" - bin: - acorn: bin/acorn - checksum: 10/690c673bb4d61b38ef82795fab58526471ad7f7e67c0e40c4ff1e10ecd80ce5312554ef633c9995bfc4e6d170cef165711f9ca9e49040b62c0c66fbf2dd3df2b +"@yarnpkg/plugin-catalog@npm:^1.0.2": + version: 1.0.2 + resolution: "@yarnpkg/plugin-catalog@npm:1.0.2" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.4" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/core": ^4.5.0 + "@yarnpkg/plugin-pack": ^4.0.4 + checksum: 10/75199f87bbbae189445b619aaf009ad2df0ca05217a8a0bddce6a8f5a2f176594981be5cb438749a0fb8ecd27909a4e1befea65c449699439601d099cddb56c4 + languageName: node + linkType: hard + +"@yarnpkg/plugin-compat@npm:^4.0.13": + version: 4.0.13 + resolution: "@yarnpkg/plugin-compat@npm:4.0.13" + dependencies: + "@yarnpkg/extensions": "npm:^2.0.6" + peerDependencies: + "@yarnpkg/core": ^4.9.0 + "@yarnpkg/plugin-patch": ^4.0.5 + checksum: 10/64d2d802a40538e95cf07ca6a77562e4ee1bca7e9babf20f20869fe479272b20715d941e4f6e46993fcb6a88cbbe3f9b54a6b46aa84915f6976c780765d50de8 + languageName: node + linkType: hard + +"@yarnpkg/plugin-constraints@npm:^4.0.5": + version: 4.0.5 + resolution: "@yarnpkg/plugin-constraints@npm:4.0.5" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.2" + clipanion: "npm:^4.0.0-rc.2" + es-toolkit: "npm:^1.39.7" + tau-prolog: "npm:^0.2.66" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/cli": ^4.9.3 + "@yarnpkg/core": ^4.4.3 + checksum: 10/e6ab9ffa6ac617ae7ead85767a0fb93ccdf8767369d865d02a5e4ba1d328b75c1a6249ee59fa19f33c30c9d1789bf47c991f1b6c9495338ffad461f083bd55d0 + languageName: node + linkType: hard + +"@yarnpkg/plugin-dlx@npm:^4.0.2": + version: 4.0.2 + resolution: "@yarnpkg/plugin-dlx@npm:4.0.2" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.2" + clipanion: "npm:^4.0.0-rc.2" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/cli": ^4.9.2 + "@yarnpkg/core": ^4.4.2 + checksum: 10/46bfde91420a20fc04a377c6dbfb5c7e205a9963b78e96e7d6d31a7b2ff3d587d4dd4d54d1fe2786ebe7140df99374620b881ecac0cc30b03a91ff117ffe070b + languageName: node + linkType: hard + +"@yarnpkg/plugin-essentials@npm:^4.6.1": + version: 4.6.1 + resolution: "@yarnpkg/plugin-essentials@npm:4.6.1" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.5" + "@yarnpkg/parsers": "npm:^3.0.3" + ci-info: "npm:^4.0.0" + clipanion: "npm:^4.0.0-rc.2" + enquirer: "npm:^2.3.6" + es-toolkit: "npm:^1.39.7" + micromatch: "npm:^4.0.2" + semver: "npm:^7.1.2" + tslib: "npm:^2.4.0" + typanion: "npm:^3.14.0" + peerDependencies: + "@yarnpkg/cli": ^4.17.0 + "@yarnpkg/core": ^4.9.0 + "@yarnpkg/plugin-git": ^3.2.0 + checksum: 10/6a113484d737f204b39481dd52e2e63584373eccd821855d2b3704b3dd7b2beb0a75ccdaa0c11d0672f502c79f542bcddde3fea751013432cf234cf4e26e8e1c + languageName: node + linkType: hard + +"@yarnpkg/plugin-exec@npm:^3.1.0": + version: 3.1.0 + resolution: "@yarnpkg/plugin-exec@npm:3.1.0" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.5" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/core": ^4.7.0 + checksum: 10/8833036da1f2fc5d73bf230a55b263ce20e7e18f67750e56cb5f5cb9370a6077cc33399370327af683eb25c3196538a539e806c24bacd467b3b8d25c498198d1 + languageName: node + linkType: hard + +"@yarnpkg/plugin-file@npm:^3.0.2": + version: 3.0.2 + resolution: "@yarnpkg/plugin-file@npm:3.0.2" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.2" + "@yarnpkg/libzip": "npm:^3.2.1" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/core": ^4.4.2 + checksum: 10/5503733c110edf04ccdf4cbc0027bd4348f8d898903db608ae39995e15dd2c6ddae3841168307877213728f2ec99d706ea7829184ae1e1747f199a3900e98c0a + languageName: node + linkType: hard + +"@yarnpkg/plugin-git@npm:^3.2.0": + version: 3.2.0 + resolution: "@yarnpkg/plugin-git@npm:3.2.0" + dependencies: + "@types/semver": "npm:^7.1.0" + "@yarnpkg/fslib": "npm:^3.1.5" + clipanion: "npm:^4.0.0-rc.2" + es-toolkit: "npm:^1.39.7" + git-url-parse: "npm:^13.1.0" + semver: "npm:^7.1.2" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/core": ^4.7.0 + checksum: 10/123a130e7d595795867a6ead3e21dc2d424d273fa9cd06f8900bb7beca302e410e22a1a4b4de369746da0bc539856814fa513ab1d3d19e316a0a23e3d425d06f + languageName: node + linkType: hard + +"@yarnpkg/plugin-github@npm:^3.0.2": + version: 3.0.2 + resolution: "@yarnpkg/plugin-github@npm:3.0.2" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.2" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/core": ^4.4.2 + "@yarnpkg/plugin-git": ^3.1.2 + checksum: 10/7c060a43f228e8e830f5d133bbf4128f98995c4bd39f295dc872e9e1024d0977ffde8b94b10c75f638531eeb2c98345d9267ac4d07cf050c8380ae610b37bf4b + languageName: node + linkType: hard + +"@yarnpkg/plugin-http@npm:^3.0.3": + version: 3.0.3 + resolution: "@yarnpkg/plugin-http@npm:3.0.3" + dependencies: + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/core": ^4.4.2 + checksum: 10/d67a1680f445edfed1e86d97bbfac3b8efd3732764afacb8d81aa564f20eb1407482978cc331a24be315617e8d41bfbe4e06ebefe1883cb9f446918ec94672d8 + languageName: node + linkType: hard + +"@yarnpkg/plugin-init@npm:^4.1.2": + version: 4.1.2 + resolution: "@yarnpkg/plugin-init@npm:4.1.2" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.2" + clipanion: "npm:^4.0.0-rc.2" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/cli": ^4.9.2 + "@yarnpkg/core": ^4.4.2 + checksum: 10/34b014c8f70700743e565a9e2d6ee9d676027c9e7e15dfd7fb51c7f1c7bc633123a72a0bafc114ac664475a1e2432bb4e6527a254818d3986869f758aaa6669d + languageName: node + linkType: hard + +"@yarnpkg/plugin-interactive-tools@npm:^4.1.0": + version: 4.1.0 + resolution: "@yarnpkg/plugin-interactive-tools@npm:4.1.0" + dependencies: + "@yarnpkg/libui": "npm:^3.1.0" + algoliasearch: "npm:^4.2.0" + clipanion: "npm:^4.0.0-rc.2" + diff: "npm:^5.1.0" + ink: "npm:^3.2.0" + ink-text-input: "npm:^4.0.3" + react: "npm:^17.0.2" + semver: "npm:^7.1.2" + tslib: "npm:^2.4.0" + typanion: "npm:^3.14.0" + peerDependencies: + "@yarnpkg/cli": ^4.13.0 + "@yarnpkg/core": ^4.6.0 + "@yarnpkg/plugin-essentials": ^4.4.5 + checksum: 10/0e4620fdef2044115fe015197f714e7a8ff1a07f69e31c1a256c1a077a66fc3dbde022e533ee116d0a0ca036b50fc25fbd63c3ec3a7b7de2b4e86069625461b2 + languageName: node + linkType: hard + +"@yarnpkg/plugin-jsr@npm:^1.1.1": + version: 1.1.1 + resolution: "@yarnpkg/plugin-jsr@npm:1.1.1" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.2" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/core": ^4.4.2 + checksum: 10/f207f24c9284f0aad27a3e99df855f13bc9fae1a1ecc14880559a5507a1fde15714cdb6998e38d198aac4edae16f8a4ec5e8f4324f5d1adf3dcca14cf604c47e + languageName: node + linkType: hard + +"@yarnpkg/plugin-link@npm:^3.0.2": + version: 3.0.2 + resolution: "@yarnpkg/plugin-link@npm:3.0.2" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.2" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/core": ^4.4.2 + checksum: 10/48f7c8e3e652b9a6fc78d6027571cadd6bbe290df57deefc05a6a864b021d8894c22e94b74d5587bd6cdf511e4eb5a30a6ca022123e06d81a5833a3849b1d1d0 + languageName: node + linkType: hard + +"@yarnpkg/plugin-nm@npm:^4.1.0": + version: 4.1.0 + resolution: "@yarnpkg/plugin-nm@npm:4.1.0" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.5" + "@yarnpkg/libzip": "npm:^3.2.2" + "@yarnpkg/nm": "npm:^4.1.0" + "@yarnpkg/parsers": "npm:^3.0.3" + "@yarnpkg/plugin-pnp": "npm:^4.2.0" + "@yarnpkg/pnp": "npm:^4.1.7" + "@zkochan/cmd-shim": "npm:^5.1.0" + clipanion: "npm:^4.0.0-rc.2" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/cli": ^4.17.0 + "@yarnpkg/core": ^4.9.0 + checksum: 10/04cf066ca6995bc94b7b7b53c8fd48ecc826271d10e524c8f8df190fb8cce045537d3f34b9a1164bf3361b8380ecb6c0baeb0f0c08277dbf3e2b26e55d4fdef8 + languageName: node + linkType: hard + +"@yarnpkg/plugin-npm-cli@npm:^4.5.0": + version: 4.5.0 + resolution: "@yarnpkg/plugin-npm-cli@npm:4.5.0" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.5" + clipanion: "npm:^4.0.0-rc.2" + enquirer: "npm:^2.3.6" + micromatch: "npm:^4.0.2" + semver: "npm:^7.1.2" + tslib: "npm:^2.4.0" + typanion: "npm:^3.14.0" + peerDependencies: + "@yarnpkg/cli": ^4.16.0 + "@yarnpkg/core": ^4.8.0 + "@yarnpkg/plugin-npm": ^3.6.0 + "@yarnpkg/plugin-pack": ^4.0.4 + checksum: 10/f1214e5453f24711ace7a7a345fc57336002c24703060be5d710daa9340473502439d9927ee9158b78374b3f98c56ea9b45707d21ebe8a716d92b85bc32aca60 + languageName: node + linkType: hard + +"@yarnpkg/plugin-npm@npm:^3.7.0": + version: 3.7.0 + resolution: "@yarnpkg/plugin-npm@npm:3.7.0" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.5" + enquirer: "npm:^2.3.6" + es-toolkit: "npm:^1.39.7" + micromatch: "npm:^4.0.2" + semver: "npm:^7.1.2" + sigstore: "npm:^3.1.0" + ssri: "npm:^12.0.0" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/core": ^4.9.0 + "@yarnpkg/plugin-pack": ^4.0.4 + checksum: 10/3dd4f058600d41ef25f70791efd0b837b355ac3eb2664124856e6ce56224a5f80b894224e38ec31c7fb55a3829a09b7eaabe887cd5ae57b917c2991125fff1cc + languageName: node + linkType: hard + +"@yarnpkg/plugin-pack@npm:^4.0.2, @yarnpkg/plugin-pack@npm:^4.0.4": + version: 4.0.4 + resolution: "@yarnpkg/plugin-pack@npm:4.0.4" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.3" + clipanion: "npm:^4.0.0-rc.2" + micromatch: "npm:^4.0.2" + tar-stream: "npm:^2.0.1" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/cli": ^4.10.1 + "@yarnpkg/core": ^4.4.4 + checksum: 10/f6c5c2c5ac5497341f8f3248b85a7134af1afbd57a30a5dda1e8d01d3151afa10a3585cca9fd12840ffd63cb6ccaaa6c8d8b56f224c9f1769c2b6f22fe3c8372 + languageName: node + linkType: hard + +"@yarnpkg/plugin-patch@npm:^4.0.5": + version: 4.0.5 + resolution: "@yarnpkg/plugin-patch@npm:4.0.5" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.5" + "@yarnpkg/libzip": "npm:^3.2.2" + clipanion: "npm:^4.0.0-rc.2" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/cli": ^4.17.1 + "@yarnpkg/core": ^4.9.0 + checksum: 10/9257b945ffa3f562bc0dcd2154adbb6c83043a7e977636e0d6f48f29a87f1f93646bebdb6e59b5acc35807b2cc7585497a22debe18128867a4bd5e798329c84c + languageName: node + linkType: hard + +"@yarnpkg/plugin-pnp@npm:^4.2.0": + version: 4.2.0 + resolution: "@yarnpkg/plugin-pnp@npm:4.2.0" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.5" + "@yarnpkg/plugin-stage": "npm:^4.0.2" + "@yarnpkg/pnp": "npm:^4.1.7" + clipanion: "npm:^4.0.0-rc.2" + micromatch: "npm:^4.0.2" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/cli": ^4.17.0 + "@yarnpkg/core": ^4.9.0 + checksum: 10/217c5f5dd1a9379208c51d0e55f398412d6f85f30a71e894e37893e42f45bc0c15b12fb3b507788d6007a84cbd48125cc00db4c0000e81db57bd7ab4a57e2bac + languageName: node + linkType: hard + +"@yarnpkg/plugin-pnpm@npm:^2.3.0": + version: 2.3.0 + resolution: "@yarnpkg/plugin-pnpm@npm:2.3.0" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.5" + "@yarnpkg/plugin-pnp": "npm:^4.2.0" + "@yarnpkg/plugin-stage": "npm:^4.0.2" + clipanion: "npm:^4.0.0-rc.2" + p-limit: "npm:^2.2.0" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/cli": ^4.17.0 + "@yarnpkg/core": ^4.9.0 + checksum: 10/85173afc8e31ff4c58394fec0e5abb93f89353ef1e616e103f26882dbcd720839109a1e4abc0444b0953cbf6138725f99bedacf1ea1863cc82cd0f239a827ada + languageName: node + linkType: hard + +"@yarnpkg/plugin-stage@npm:^4.0.2": + version: 4.0.2 + resolution: "@yarnpkg/plugin-stage@npm:4.0.2" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.2" + clipanion: "npm:^4.0.0-rc.2" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/cli": ^4.9.2 + "@yarnpkg/core": ^4.4.2 + checksum: 10/0bd469d5e7062e3dc998f7a4c0a6f905bad49ec8b222e927557ddcb83402b169860e5cc9a4a34cfa6d32084abfa6abefbe75a3f701f72bf487b5ebb098b3eac5 + languageName: node + linkType: hard + +"@yarnpkg/plugin-typescript@npm:^4.1.3": + version: 4.1.3 + resolution: "@yarnpkg/plugin-typescript@npm:4.1.3" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.2" + "@yarnpkg/plugin-pack": "npm:^4.0.2" + algoliasearch: "npm:^4.2.0" + semver: "npm:^7.1.2" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/cli": ^4.9.2 + "@yarnpkg/core": ^4.4.2 + "@yarnpkg/plugin-essentials": ^4.4.1 + checksum: 10/1ad778ee22401c8b7447a9cf9e20dc7af5c0b5a64124375f15c6d551c604c4e82f9954bd85cac4f2f1108aaff00cc9204ae50985d19927b8092e2554460bbd12 + languageName: node + linkType: hard + +"@yarnpkg/plugin-version@npm:^4.2.0": + version: 4.2.0 + resolution: "@yarnpkg/plugin-version@npm:4.2.0" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.2" + "@yarnpkg/libui": "npm:^3.0.2" + "@yarnpkg/parsers": "npm:^3.0.3" + clipanion: "npm:^4.0.0-rc.2" + es-toolkit: "npm:^1.39.7" + ink: "npm:^3.2.0" + react: "npm:^17.0.2" + semver: "npm:^7.1.2" + tslib: "npm:^2.4.0" + peerDependencies: + "@yarnpkg/cli": ^4.9.4 + "@yarnpkg/core": ^4.4.3 + "@yarnpkg/plugin-git": ^3.1.3 + checksum: 10/948b7d7f434b403967ba311080dfe358e292dfa4c98674053d82faec88565abbd00543228f3c8720c1448f30614608121d6c28d957c4bb5a1c5478f334c5d274 + languageName: node + linkType: hard + +"@yarnpkg/plugin-workspace-tools@npm:^4.1.7": + version: 4.1.7 + resolution: "@yarnpkg/plugin-workspace-tools@npm:4.1.7" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.5" + clipanion: "npm:^4.0.0-rc.2" + es-toolkit: "npm:^1.39.7" + micromatch: "npm:^4.0.2" + p-limit: "npm:^2.2.0" + tslib: "npm:^2.4.0" + typanion: "npm:^3.14.0" + peerDependencies: + "@yarnpkg/cli": ^4.13.0 + "@yarnpkg/core": ^4.6.0 + "@yarnpkg/plugin-git": ^3.1.4 + checksum: 10/7e94cc7d8de86aa05bda558d19ab8a61536718a5d55494736fc82d409f853fe86b73cdb261aa91c3c81d0910c12950a010a0e48c8826e605c87882b617fa4e65 + languageName: node + linkType: hard + +"@yarnpkg/pnp@npm:^4.1.7": + version: 4.1.7 + resolution: "@yarnpkg/pnp@npm:4.1.7" + dependencies: + "@types/node": "npm:^18.19.124" + "@yarnpkg/fslib": "npm:^3.1.5" + checksum: 10/7e37f25086daf3226e79572fd871f503fb5e751a55f3a182fb73f111b5a99d70f991e32f561c9a62067312dea4f3f1aacc1ead4fd2869ffd2ffe018c795262cc + languageName: node + linkType: hard + +"@yarnpkg/shell@npm:^4.1.3": + version: 4.1.3 + resolution: "@yarnpkg/shell@npm:4.1.3" + dependencies: + "@yarnpkg/fslib": "npm:^3.1.2" + "@yarnpkg/parsers": "npm:^3.0.3" + chalk: "npm:^4.1.2" + clipanion: "npm:^4.0.0-rc.2" + cross-spawn: "npm:^7.0.3" + fast-glob: "npm:^3.2.2" + micromatch: "npm:^4.0.2" + tslib: "npm:^2.4.0" + bin: + shell: ./lib/cli.js + checksum: 10/5994f92adf960071ac938653c5ad09746285d3fdc452fc6fdd30c3a832b612cc208e8d2274731e35957b457b168d6be524f5ce30ceb18542532d9326b422421b + languageName: node + linkType: hard + +"@yarnpkg/types@npm:^4.0.0": + version: 4.0.0 + resolution: "@yarnpkg/types@npm:4.0.0" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10/f9670e120761a4d17461df2f01aa4b92213fbdd063501a36145d11ea01bd87ba01d44615cba3d6bc8f9bfc39a03a9a6452bf0436c7fb0c9c5311352b975349e6 + languageName: node + linkType: hard + +"@zkochan/cmd-shim@npm:^5.1.0": + version: 5.4.1 + resolution: "@zkochan/cmd-shim@npm:5.4.1" + dependencies: + cmd-extension: "npm:^1.0.2" + graceful-fs: "npm:^4.2.10" + is-windows: "npm:^1.0.2" + checksum: 10/b58962bbe021660b86dad817e6909b628ccc62eb67759aae952cf662486e35fcf0894caf0c700c294cb55e4a50fb81192aecae1f3d6eb24bd4495f4660b1b086 + languageName: node + linkType: hard + +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: 10/ca0a54e35bea4ece0ecb68a47b312e1a9a6f772408d5bcb9051230aaa94b0460671c5b5c9cb3240eb5b7bc94c52476550eb221f65a0bbd0145bdc9f3113a6707 + languageName: node + linkType: hard + +"abort-controller@npm:^3.0.0": + version: 3.0.0 + resolution: "abort-controller@npm:3.0.0" + dependencies: + event-target-shim: "npm:^5.0.0" + checksum: 10/ed84af329f1828327798229578b4fe03a4dd2596ba304083ebd2252666bdc1d7647d66d0b18704477e1f8aa315f055944aa6e859afebd341f12d0a53c37b4b40 + languageName: node + linkType: hard + +"accepts@npm:^2.0.0": + version: 2.0.0 + resolution: "accepts@npm:2.0.0" + dependencies: + mime-types: "npm:^3.0.0" + negotiator: "npm:^1.0.0" + checksum: 10/ea1343992b40b2bfb3a3113fa9c3c2f918ba0f9197ae565c48d3f84d44b174f6b1d5cd9989decd7655963eb03a272abc36968cc439c2907f999bd5ef8653d5a7 + languageName: node + linkType: hard + +"accepts@npm:~1.3.8": + version: 1.3.8 + resolution: "accepts@npm:1.3.8" + dependencies: + mime-types: "npm:~2.1.34" + negotiator: "npm:0.6.3" + checksum: 10/67eaaa90e2917c58418e7a9b89392002d2b1ccd69bcca4799135d0c632f3b082f23f4ae4ddeedbced5aa59bcc7bdf4699c69ebed4593696c922462b7bc5744d6 + languageName: node + linkType: hard + +"acorn-import-phases@npm:^1.0.3": + version: 1.0.4 + resolution: "acorn-import-phases@npm:1.0.4" + peerDependencies: + acorn: ^8.14.0 + checksum: 10/471050ac7d9b61909c837b426de9eeef2958997f6277ad7dea88d5894fd9b3245d8ed4a225c2ca44f814dbb20688009db7a80e525e8196fc9e98c5285b66161d + languageName: node + linkType: hard + +"acorn-jsx@npm:^5.3.2": + version: 5.3.2 + resolution: "acorn-jsx@npm:5.3.2" + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10/d4371eaef7995530b5b5ca4183ff6f062ca17901a6d3f673c9ac011b01ede37e7a1f7f61f8f5cfe709e88054757bb8f3277dc4061087cdf4f2a1f90ccbcdb977 + languageName: node + linkType: hard + +"acorn-walk@npm:^8.0.0": + version: 8.3.5 + resolution: "acorn-walk@npm:8.3.5" + dependencies: + acorn: "npm:^8.11.0" + checksum: 10/f52a158a1c1f00c82702c7eb9b8ae8aad79748a7689241dcc2d797dce680f1dcb15c78f312f687eeacdfb3a4cac4b87d04af470f0201bd56c6661fca6f94b195 + languageName: node + linkType: hard + +"acorn@npm:^8.0.4, acorn@npm:^8.11.0, acorn@npm:^8.15.0, acorn@npm:^8.16.0": + version: 8.16.0 + resolution: "acorn@npm:8.16.0" + bin: + acorn: bin/acorn + checksum: 10/690c673bb4d61b38ef82795fab58526471ad7f7e67c0e40c4ff1e10ecd80ce5312554ef633c9995bfc4e6d170cef165711f9ca9e49040b62c0c66fbf2dd3df2b languageName: node linkType: hard @@ -4884,12 +5817,10 @@ __metadata: languageName: node linkType: hard -"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": - version: 7.1.1 - resolution: "agent-base@npm:7.1.1" - dependencies: - debug: "npm:^4.3.4" - checksum: 10/c478fec8f79953f118704d007a38f2a185458853f5c45579b9669372bd0e12602e88dc2ad0233077831504f7cd6fcc8251c383375bba5eaaf563b102938bda26 +"agent-base@npm:^7.1.0, agent-base@npm:^7.1.1, agent-base@npm:^7.1.2": + version: 7.1.4 + resolution: "agent-base@npm:7.1.4" + checksum: 10/79bef167247789f955aaba113bae74bf64aa1e1acca4b1d6bb444bdf91d82c3e07e9451ef6a6e2e35e8f71a6f97ce33e3d855a5328eb9fad1bc3cc4cfd031ed8 languageName: node linkType: hard @@ -4961,6 +5892,36 @@ __metadata: languageName: node linkType: hard +"algoliasearch@npm:^4.2.0": + version: 4.27.0 + resolution: "algoliasearch@npm:4.27.0" + dependencies: + "@algolia/cache-browser-local-storage": "npm:4.27.0" + "@algolia/cache-common": "npm:4.27.0" + "@algolia/cache-in-memory": "npm:4.27.0" + "@algolia/client-account": "npm:4.27.0" + "@algolia/client-analytics": "npm:4.27.0" + "@algolia/client-common": "npm:4.27.0" + "@algolia/client-personalization": "npm:4.27.0" + "@algolia/client-search": "npm:4.27.0" + "@algolia/logger-common": "npm:4.27.0" + "@algolia/logger-console": "npm:4.27.0" + "@algolia/recommend": "npm:4.27.0" + "@algolia/requester-browser-xhr": "npm:4.27.0" + "@algolia/requester-common": "npm:4.27.0" + "@algolia/requester-node-http": "npm:4.27.0" + "@algolia/transporter": "npm:4.27.0" + checksum: 10/8c791f62dc646f25e0381aec18e3df4464b4f2ff7baa0bb9a63dac34799a267572db6d6f9247242b02e2c05a76f3194d2fcbd4a27c9513f2d1bf34b458282c04 + languageName: node + linkType: hard + +"ansi-colors@npm:^4.1.1": + version: 4.1.3 + resolution: "ansi-colors@npm:4.1.3" + checksum: 10/43d6e2fc7b1c6e4dc373de708ee76311ec2e0433e7e8bd3194e7ff123ea6a747428fc61afdcf5969da5be3a5f0fd054602bec56fc0ebe249ce2fcde6e649e3c2 + languageName: node + linkType: hard + "ansi-escapes@npm:^4.2.1": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" @@ -5106,6 +6067,13 @@ __metadata: languageName: node linkType: hard +"astral-regex@npm:^2.0.0": + version: 2.0.0 + resolution: "astral-regex@npm:2.0.0" + checksum: 10/876231688c66400473ba505731df37ea436e574dd524520294cc3bbc54ea40334865e01fa0d074d74d036ee874ee7e62f486ea38bc421ee8e6a871c06f011766 + languageName: node + linkType: hard + "async-function@npm:^1.0.0": version: 1.0.0 resolution: "async-function@npm:1.0.0" @@ -5129,6 +6097,13 @@ __metadata: languageName: node linkType: hard +"auto-bind@npm:4.0.0": + version: 4.0.0 + resolution: "auto-bind@npm:4.0.0" + checksum: 10/00cad71cce5742faccb7dd65c1b55ebc4f45add4b0c9a1547b10b05bab22813230133b0c892c67ba3eb969a4524710c5e43cc45c72898ec84e56f3a596e7a04f + languageName: node + linkType: hard + "available-typed-arrays@npm:^1.0.7": version: 1.0.7 resolution: "available-typed-arrays@npm:1.0.7" @@ -5477,7 +6452,7 @@ __metadata: languageName: node linkType: hard -"bl@npm:^4.1.0": +"bl@npm:^4.0.3, bl@npm:^4.1.0": version: 4.1.0 resolution: "bl@npm:4.1.0" dependencies: @@ -5844,6 +6819,48 @@ __metadata: languageName: node linkType: hard +"cacache@npm:^19.0.1": + version: 19.0.1 + resolution: "cacache@npm:19.0.1" + dependencies: + "@npmcli/fs": "npm:^4.0.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^10.2.2" + lru-cache: "npm:^10.0.1" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^7.0.2" + ssri: "npm:^12.0.0" + tar: "npm:^7.4.3" + unique-filename: "npm:^4.0.0" + checksum: 10/ea026b27b13656330c2bbaa462a88181dcaa0435c1c2e705db89b31d9bdf7126049d6d0445ba746dca21454a0cfdf1d6f47fd39d34c8c8435296b30bc5738a13 + languageName: node + linkType: hard + +"cacheable-lookup@npm:^5.0.3": + version: 5.0.4 + resolution: "cacheable-lookup@npm:5.0.4" + checksum: 10/618a8b3eea314060e74cb3285a6154e8343c244a34235acf91cfe626ee0705c24e3cd11e4b1a7b3900bd749ee203ae65afe13adf610c8ab173e99d4a208faf75 + languageName: node + linkType: hard + +"cacheable-request@npm:^7.0.2": + version: 7.0.4 + resolution: "cacheable-request@npm:7.0.4" + dependencies: + clone-response: "npm:^1.0.2" + get-stream: "npm:^5.1.0" + http-cache-semantics: "npm:^4.0.0" + keyv: "npm:^4.0.0" + lowercase-keys: "npm:^2.0.0" + normalize-url: "npm:^6.0.1" + responselike: "npm:^2.0.0" + checksum: 10/0f4f2001260ecca78b9f64fc8245e6b5a5dcde24ea53006daab71f5e0e1338095aa1512ec099c4f9895a9e5acfac9da423cb7c079e131485891e9214aca46c41 + languageName: node + linkType: hard + "call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": version: 1.0.2 resolution: "call-bind-apply-helpers@npm:1.0.2" @@ -5951,6 +6968,13 @@ __metadata: languageName: node linkType: hard +"chownr@npm:^3.0.0": + version: 3.0.0 + resolution: "chownr@npm:3.0.0" + checksum: 10/b63cb1f73d171d140a2ed8154ee6566c8ab775d3196b0e03a2a94b5f6a0ce7777ee5685ca56849403c8d17bd457a6540672f9a60696a6137c7a409097495b82c + languageName: node + linkType: hard + "chrome-trace-event@npm:^1.0.2": version: 1.0.4 resolution: "chrome-trace-event@npm:1.0.4" @@ -5972,6 +6996,13 @@ __metadata: languageName: node linkType: hard +"ci-info@npm:^4.0.0": + version: 4.4.0 + resolution: "ci-info@npm:4.4.0" + checksum: 10/dfded0c630267d89660c8abb988ac8395a382bdfefedcc03e3e2858523312c5207db777c239c34774e3fcff11f015477c19d2ac8a58ea58aa476614a2e64f434 + languageName: node + linkType: hard + "cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3": version: 1.0.7 resolution: "cipher-base@npm:1.0.7" @@ -5997,6 +7028,13 @@ __metadata: languageName: node linkType: hard +"cli-boxes@npm:^2.2.0": + version: 2.2.1 + resolution: "cli-boxes@npm:2.2.1" + checksum: 10/be79f8ec23a558b49e01311b39a1ea01243ecee30539c880cf14bf518a12e223ef40c57ead0cb44f509bffdffc5c129c746cd50d863ab879385370112af4f585 + languageName: node + linkType: hard + "cli-cursor@npm:^3.1.0": version: 3.1.0 resolution: "cli-cursor@npm:3.1.0" @@ -6013,6 +7051,27 @@ __metadata: languageName: node linkType: hard +"cli-truncate@npm:^2.1.0": + version: 2.1.0 + resolution: "cli-truncate@npm:2.1.0" + dependencies: + slice-ansi: "npm:^3.0.0" + string-width: "npm:^4.2.0" + checksum: 10/976f1887de067a8cd6ec830a7a8508336aebe6cec79b521d98ed13f67ef073b637f7305675b6247dd22f9e9cf045ec55fe746c7bdb288fbe8db0dfdc9fd52e55 + languageName: node + linkType: hard + +"clipanion@npm:^4.0.0-rc.2": + version: 4.0.0-rc.4 + resolution: "clipanion@npm:4.0.0-rc.4" + dependencies: + typanion: "npm:^3.8.0" + peerDependencies: + typanion: "*" + checksum: 10/c3a94783318d91e6b35380a8aa4a6f166964082a51ff2df21a339266223aaab98f5986dd2c37ca7fd640ad1d233b3cd5b24aad64c51537b54ccc9c66ec070eeb + languageName: node + linkType: hard + "cliui@npm:^7.0.2": version: 7.0.4 resolution: "cliui@npm:7.0.4" @@ -6057,6 +7116,15 @@ __metadata: languageName: node linkType: hard +"clone-response@npm:^1.0.2": + version: 1.0.3 + resolution: "clone-response@npm:1.0.3" + dependencies: + mimic-response: "npm:^1.0.0" + checksum: 10/4e671cac39b11c60aa8ba0a450657194a5d6504df51bca3fac5b3bd0145c4f8e8464898f87c8406b83232e3bc5cca555f51c1f9c8ac023969ebfbf7f6bdabb2e + languageName: node + linkType: hard + "clone@npm:^1.0.2": version: 1.0.4 resolution: "clone@npm:1.0.4" @@ -6064,6 +7132,13 @@ __metadata: languageName: node linkType: hard +"cmd-extension@npm:^1.0.2": + version: 1.0.2 + resolution: "cmd-extension@npm:1.0.2" + checksum: 10/4cbcdd53196a3c1db3484f67aa49ed83c0e6069713f60193a94d747cb84050e8e64d688673aa5159cf0184e054cb806ceb6119e45744f721cbd3a09a3e7038cb + languageName: node + linkType: hard + "cmd-shim@npm:^6.0.0": version: 6.0.3 resolution: "cmd-shim@npm:6.0.3" @@ -6085,6 +7160,15 @@ __metadata: languageName: node linkType: hard +"code-excerpt@npm:^3.0.0": + version: 3.0.0 + resolution: "code-excerpt@npm:3.0.0" + dependencies: + convert-to-spaces: "npm:^1.0.1" + checksum: 10/fa3a8ed15967076a43a4093b0c824cf0ada15d9aab12ea3c028851b72a69b56495aac1eadf18c3b6ae4baf0a95bb1e1faa9dbeeb0a2b2b5ae058da23328e9dd8 + languageName: node + linkType: hard + "collect-v8-coverage@npm:^1.0.0": version: 1.0.2 resolution: "collect-v8-coverage@npm:1.0.2" @@ -6108,6 +7192,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:7.2.0, commander@npm:^7.2.0": + version: 7.2.0 + resolution: "commander@npm:7.2.0" + checksum: 10/9973af10727ad4b44f26703bf3e9fdc323528660a7590efe3aa9ad5042b4584c0deed84ba443f61c9d6f02dade54a5a5d3c95e306a1e1630f8374ae6db16c06d + languageName: node + linkType: hard + "commander@npm:^2.20.0": version: 2.20.3 resolution: "commander@npm:2.20.3" @@ -6115,13 +7206,6 @@ __metadata: languageName: node linkType: hard -"commander@npm:^7.2.0": - version: 7.2.0 - resolution: "commander@npm:7.2.0" - checksum: 10/9973af10727ad4b44f26703bf3e9fdc323528660a7590efe3aa9ad5042b4584c0deed84ba443f61c9d6f02dade54a5a5d3c95e306a1e1630f8374ae6db16c06d - languageName: node - linkType: hard - "comment-json@npm:^4.5.1": version: 4.5.1 resolution: "comment-json@npm:4.5.1" @@ -6227,6 +7311,13 @@ __metadata: languageName: node linkType: hard +"convert-to-spaces@npm:^1.0.1": + version: 1.0.2 + resolution: "convert-to-spaces@npm:1.0.2" + checksum: 10/e73f2ae39eb2b184f0796138eaab9c088b03b94937377d31be5b2282aef6a6ccce6b46f51bd99b3b7dfc70f516e2a6b16c0dd911883bfadf8d1073f462480224 + languageName: node + linkType: hard + "cookie-signature@npm:^1.2.1": version: 1.2.2 resolution: "cookie-signature@npm:1.2.2" @@ -6411,7 +7502,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.6, debug@npm:^4.3.7, debug@npm:^4.4.0, debug@npm:^4.4.3": +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.6, debug@npm:^4.3.7, debug@npm:^4.4.0, debug@npm:^4.4.1, debug@npm:^4.4.3": version: 4.4.3 resolution: "debug@npm:4.4.3" dependencies: @@ -6432,6 +7523,15 @@ __metadata: languageName: node linkType: hard +"decompress-response@npm:^6.0.0": + version: 6.0.0 + resolution: "decompress-response@npm:6.0.0" + dependencies: + mimic-response: "npm:^3.1.0" + checksum: 10/d377cf47e02d805e283866c3f50d3d21578b779731e8c5072d6ce8c13cc31493db1c2f6784da9d1d5250822120cefa44f1deab112d5981015f2e17444b763812 + languageName: node + linkType: hard + "dedent@npm:^1.0.0": version: 1.7.1 resolution: "dedent@npm:1.7.1" @@ -6491,6 +7591,13 @@ __metadata: languageName: node linkType: hard +"defer-to-connect@npm:^2.0.0": + version: 2.0.1 + resolution: "defer-to-connect@npm:2.0.1" + checksum: 10/8a9b50d2f25446c0bfefb55a48e90afd58f85b21bcf78e9207cd7b804354f6409032a1705c2491686e202e64fc05f147aa5aa45f9aa82627563f045937f5791b + languageName: node + linkType: hard + "define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": version: 1.1.4 resolution: "define-data-property@npm:1.1.4" @@ -6619,10 +7726,10 @@ __metadata: languageName: node linkType: hard -"diff@npm:^5.0.0": - version: 5.2.0 - resolution: "diff@npm:5.2.0" - checksum: 10/01b7b440f83a997350a988e9d2f558366c0f90f15be19f4aa7f1bb3109a4e153dfc3b9fbf78e14ea725717017407eeaa2271e3896374a0181e8f52445740846d +"diff@npm:^5.0.0, diff@npm:^5.1.0": + version: 5.2.2 + resolution: "diff@npm:5.2.2" + checksum: 10/8a885b38113d96138d87f6cb474ee959b7e9ab33c0c4cb1b07dcf019ec544945a2309d53d721532af020de4b3a58fb89f1026f64f42f9421aa9c3ae48a36998b languageName: node linkType: hard @@ -6653,6 +7760,13 @@ __metadata: languageName: node linkType: hard +"dotenv@npm:^16.3.1": + version: 16.6.1 + resolution: "dotenv@npm:16.6.1" + checksum: 10/1d1897144344447ffe62aa1a6d664f4cd2e0784e0aff787eeeec1940ded32f8e4b5b506d665134fc87157baa086fce07ec6383970a2b6d2e7985beaed6a4cc14 + languageName: node + linkType: hard + "dotenv@npm:^17.2.1": version: 17.4.2 resolution: "dotenv@npm:17.4.2" @@ -6780,6 +7894,15 @@ __metadata: languageName: node linkType: hard +"end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": + version: 1.4.5 + resolution: "end-of-stream@npm:1.4.5" + dependencies: + once: "npm:^1.4.0" + checksum: 10/1e0cfa6e7f49887544e03314f9dfc56a8cb6dde910cbb445983ecc2ff426fc05946df9d75d8a21a3a64f2cecfe1bf88f773952029f46756b2ed64a24e95b1fb8 + languageName: node + linkType: hard + "enhanced-resolve@npm:^5.15.0, enhanced-resolve@npm:^5.17.1, enhanced-resolve@npm:^5.22.0": version: 5.23.0 resolution: "enhanced-resolve@npm:5.23.0" @@ -6790,6 +7913,16 @@ __metadata: languageName: node linkType: hard +"enquirer@npm:^2.3.6": + version: 2.4.1 + resolution: "enquirer@npm:2.4.1" + dependencies: + ansi-colors: "npm:^4.1.1" + strip-ansi: "npm:^6.0.1" + checksum: 10/b3726486cd98f0d458a851a03326a2a5dd4d84f37ff94ff2a2960c915e0fc865865da3b78f0877dc36ac5c1189069eca603e82ec63d5bc6b0dd9985bf6426d7a + languageName: node + linkType: hard + "entities@npm:^4.5.0": version: 4.5.0 resolution: "entities@npm:4.5.0" @@ -6857,6 +7990,20 @@ __metadata: languageName: node linkType: hard +"es-toolkit@npm:^1.39.7": + version: 1.49.0 + resolution: "es-toolkit@npm:1.49.0" + dependenciesMeta: + "@trivago/prettier-plugin-sort-imports@4.3.0": + unplugged: true + prettier-plugin-sort-re-exports@0.0.1: + unplugged: true + vitepress-plugin-sandpack@1.1.4: + unplugged: true + checksum: 10/ff0377f1fa681e6b58c06ec46cd3683c02df499f5101effb70bfbf4d69fce2e6a13889b182f68c495e25cdee31829f21dfd6094f722d4de82c546c2a32d0c670 + languageName: node + linkType: hard + "esbuild@npm:~0.25.0": version: 0.25.9 resolution: "esbuild@npm:0.25.9" @@ -7643,7 +8790,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.3.2": +"fast-glob@npm:^3.2.2, fast-glob@npm:^3.3.2": version: 3.3.3 resolution: "fast-glob@npm:3.3.3" dependencies: @@ -7946,6 +9093,13 @@ __metadata: languageName: node linkType: hard +"fs-constants@npm:^1.0.0": + version: 1.0.0 + resolution: "fs-constants@npm:1.0.0" + checksum: 10/18f5b718371816155849475ac36c7d0b24d39a11d91348cfcb308b4494824413e03572c403c86d3a260e049465518c4f0d5bd00f0371cdfcad6d4f30a85b350d + languageName: node + linkType: hard + "fs-extra@npm:^10.0.0": version: 10.1.0 resolution: "fs-extra@npm:10.1.0" @@ -8088,6 +9242,15 @@ __metadata: languageName: node linkType: hard +"get-stream@npm:^5.1.0": + version: 5.2.0 + resolution: "get-stream@npm:5.2.0" + dependencies: + pump: "npm:^3.0.0" + checksum: 10/13a73148dca795e41421013da6e3ebff8ccb7fba4d2f023fd0c6da2c166ec4e789bec9774a73a7b49c08daf2cae552f8a3e914042ac23b5f59dd278cc8f9cbfb + languageName: node + linkType: hard + "get-stream@npm:^6.0.0": version: 6.0.1 resolution: "get-stream@npm:6.0.1" @@ -8111,6 +9274,25 @@ __metadata: languageName: node linkType: hard +"git-up@npm:^7.0.0": + version: 7.0.0 + resolution: "git-up@npm:7.0.0" + dependencies: + is-ssh: "npm:^1.4.0" + parse-url: "npm:^8.1.0" + checksum: 10/003ef38424702ac4cbe6d2817ccfb5811251244c955a8011ca40298d12cf1fb6529529f074d5832b5221e193ec05f4742ecf7806e6c4f41a81a2f2cff65d6bf4 + languageName: node + linkType: hard + +"git-url-parse@npm:^13.1.0": + version: 13.1.1 + resolution: "git-url-parse@npm:13.1.1" + dependencies: + git-up: "npm:^7.0.0" + checksum: 10/407f6579f3aa5e4040e215b45c1cfa7f08bd52a298a50310fc3debdd99e9d049d9f05e582b5475218116f312526691e1c3cc368e0d23f97c49735f210e381475 + languageName: node + linkType: hard + "glob-parent@npm:^5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" @@ -8137,8 +9319,8 @@ __metadata: linkType: hard "glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7": - version: 10.4.5 - resolution: "glob@npm:10.4.5" + version: 10.5.0 + resolution: "glob@npm:10.5.0" dependencies: foreground-child: "npm:^3.1.0" jackspeak: "npm:^3.1.2" @@ -8148,7 +9330,7 @@ __metadata: path-scurry: "npm:^1.11.1" bin: glob: dist/esm/bin.mjs - checksum: 10/698dfe11828b7efd0514cd11e573eaed26b2dff611f0400907281ce3eab0c1e56143ef9b35adc7c77ecc71fba74717b510c7c223d34ca8a98ec81777b293d4ac + checksum: 10/ab3bccfefcc0afaedbd1f480cd0c4a2c0e322eb3f0aa7ceaa31b3f00b825069f17cf0f1fc8b6f256795074b903f37c0ade37ddda6a176aa57f1c2bbfe7240653 languageName: node linkType: hard @@ -8204,6 +9386,20 @@ __metadata: languageName: node linkType: hard +"globalyzer@npm:0.1.0": + version: 0.1.0 + resolution: "globalyzer@npm:0.1.0" + checksum: 10/419a0f95ba542534fac0842964d31b3dc2936a479b2b1a8a62bad7e8b61054faa9b0a06ad9f2e12593396b9b2621cac93358d9b3071d33723fb1778608d358a1 + languageName: node + linkType: hard + +"globrex@npm:^0.1.2": + version: 0.1.2 + resolution: "globrex@npm:0.1.2" + checksum: 10/81ce62ee6f800d823d6b7da7687f841676d60ee8f51f934ddd862e4057316d26665c4edc0358d4340a923ac00a514f8b67c787e28fe693aae16350f4e60d55e9 + languageName: node + linkType: hard + "gopd@npm:^1.0.1, gopd@npm:^1.2.0": version: 1.2.0 resolution: "gopd@npm:1.2.0" @@ -8211,13 +9407,39 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"got@npm:^11.7.0": + version: 11.8.6 + resolution: "got@npm:11.8.6" + dependencies: + "@sindresorhus/is": "npm:^4.0.0" + "@szmarczak/http-timer": "npm:^4.0.5" + "@types/cacheable-request": "npm:^6.0.1" + "@types/responselike": "npm:^1.0.0" + cacheable-lookup: "npm:^5.0.3" + cacheable-request: "npm:^7.0.2" + decompress-response: "npm:^6.0.0" + http2-wrapper: "npm:^1.0.0-beta.5.2" + lowercase-keys: "npm:^2.0.0" + p-cancelable: "npm:^2.0.0" + responselike: "npm:^2.0.0" + checksum: 10/a30c74029d81bd5fe50dea1a0c970595d792c568e188ff8be254b5bc11e6158d1b014570772d4a30d0a97723e7dd34e7c8cc1a2f23018f60aece3070a7a5c2a5 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.10, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: 10/bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2 languageName: node linkType: hard +"grapheme-splitter@npm:^1.0.4": + version: 1.0.4 + resolution: "grapheme-splitter@npm:1.0.4" + checksum: 10/fdb2f51fd430ce881e18e44c4934ad30e59736e46213f7ad35ea5970a9ebdf7d0fe56150d15cc98230d55d2fd48c73dc6781494c38d8cf2405718366c36adb88 + languageName: node + linkType: hard + "gzip-size@npm:^6.0.0": version: 6.0.0 resolution: "gzip-size@npm:6.0.0" @@ -8358,6 +9580,13 @@ __metadata: languageName: node linkType: hard +"hpagent@npm:^1.2.0": + version: 1.2.0 + resolution: "hpagent@npm:1.2.0" + checksum: 10/bad186449da7e3456788a8cbae459fc6c0a855d5872a7f460c48ce4a613020d8d914839dad10047297099299c4f9e6c65a0eec3f5886af196c0a516e4ad8a845 + languageName: node + linkType: hard + "html-escaper@npm:^2.0.0, html-escaper@npm:^2.0.2": version: 2.0.2 resolution: "html-escaper@npm:2.0.2" @@ -8365,10 +9594,10 @@ __metadata: languageName: node linkType: hard -"http-cache-semantics@npm:^4.1.1": - version: 4.1.1 - resolution: "http-cache-semantics@npm:4.1.1" - checksum: 10/362d5ed66b12ceb9c0a328fb31200b590ab1b02f4a254a697dc796850cc4385603e75f53ec59f768b2dad3bfa1464bd229f7de278d2899a0e3beffc634b6683f +"http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.1": + version: 4.2.0 + resolution: "http-cache-semantics@npm:4.2.0" + checksum: 10/4efd2dfcfeea9d5e88c84af450b9980be8a43c2c8179508b1c57c7b4421c855f3e8efe92fa53e0b3f4a43c85824ada930eabbc306d1b3beab750b6dcc5187693 languageName: node linkType: hard @@ -8395,6 +9624,16 @@ __metadata: languageName: node linkType: hard +"http2-wrapper@npm:^1.0.0-beta.5.2": + version: 1.0.3 + resolution: "http2-wrapper@npm:1.0.3" + dependencies: + quick-lru: "npm:^5.1.1" + resolve-alpn: "npm:^1.0.0" + checksum: 10/8097ee2699440c2e64bda52124990cc5b0fb347401c7797b1a0c1efd5a0f79a4ebaa68e8a6ac3e2dde5f09460c1602764da6da2412bad628ed0a3b0ae35e72d4 + languageName: node + linkType: hard + "https-browserify@npm:^1.0.0": version: 1.0.0 resolution: "https-browserify@npm:1.0.0" @@ -8403,12 +9642,12 @@ __metadata: linkType: hard "https-proxy-agent@npm:^7.0.1": - version: 7.0.5 - resolution: "https-proxy-agent@npm:7.0.5" + version: 7.0.6 + resolution: "https-proxy-agent@npm:7.0.6" dependencies: - agent-base: "npm:^7.0.2" + agent-base: "npm:^7.1.2" debug: "npm:4" - checksum: 10/6679d46159ab3f9a5509ee80c3a3fc83fba3a920a5e18d32176c3327852c3c00ad640c0c4210a8fd70ea3c4a6d3a1b375bf01942516e7df80e2646bdc77658ab + checksum: 10/784b628cbd55b25542a9d85033bdfd03d4eda630fb8b3c9477959367f3be95dc476ed2ecbb9836c359c7c698027fc7b45723a302324433590f45d6c1706e8c13 languageName: node linkType: hard @@ -8557,6 +9796,56 @@ __metadata: languageName: node linkType: hard +"ink-text-input@npm:^4.0.3": + version: 4.0.3 + resolution: "ink-text-input@npm:4.0.3" + dependencies: + chalk: "npm:^4.1.0" + type-fest: "npm:^0.15.1" + peerDependencies: + ink: ^3.0.0-3 + react: ^16.5.2 || ^17.0.0 + checksum: 10/214db7e7d0b1fb27b1a03ce21e373f71098e6fb87055782e4484fd0318c663b6d80c29a2d878622340e39dce99d66069ff3d6f9ad360cf3794511204089ea0d5 + languageName: node + linkType: hard + +"ink@npm:^3.2.0": + version: 3.2.0 + resolution: "ink@npm:3.2.0" + dependencies: + ansi-escapes: "npm:^4.2.1" + auto-bind: "npm:4.0.0" + chalk: "npm:^4.1.0" + cli-boxes: "npm:^2.2.0" + cli-cursor: "npm:^3.1.0" + cli-truncate: "npm:^2.1.0" + code-excerpt: "npm:^3.0.0" + indent-string: "npm:^4.0.0" + is-ci: "npm:^2.0.0" + lodash: "npm:^4.17.20" + patch-console: "npm:^1.0.0" + react-devtools-core: "npm:^4.19.1" + react-reconciler: "npm:^0.26.2" + scheduler: "npm:^0.20.2" + signal-exit: "npm:^3.0.2" + slice-ansi: "npm:^3.0.0" + stack-utils: "npm:^2.0.2" + string-width: "npm:^4.2.2" + type-fest: "npm:^0.12.0" + widest-line: "npm:^3.1.0" + wrap-ansi: "npm:^6.2.0" + ws: "npm:^7.5.5" + yoga-layout-prebuilt: "npm:^1.9.6" + peerDependencies: + "@types/react": ">=16.8.0" + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/cfbd8808cd1ee995440aac7a89af1156e587fec271bc3bc7460788b8b0c844eaf6364ac3d19dd4caa9f8f19bfb97d3fa0a51a5f7d89b6c6b990686ac68f083f6 + languageName: node + linkType: hard + "ip-address@npm:^9.0.5": version: 9.0.5 resolution: "ip-address@npm:9.0.5" @@ -8763,6 +10052,15 @@ __metadata: languageName: node linkType: hard +"is-ssh@npm:^1.4.0": + version: 1.4.1 + resolution: "is-ssh@npm:1.4.1" + dependencies: + protocols: "npm:^2.0.1" + checksum: 10/f60910cd83fa94e9874655a672c3849312c12af83c0fe3dbff9945755fe838a73985d8f94e32ebf5626ba4148ee10eef51b7240b0218dbb6e9a43a06899b0529 + languageName: node + linkType: hard + "is-stream@npm:^2.0.0": version: 2.0.1 resolution: "is-stream@npm:2.0.1" @@ -8793,7 +10091,7 @@ __metadata: languageName: node linkType: hard -"is-windows@npm:^1.0.1": +"is-windows@npm:^1.0.1, is-windows@npm:^1.0.2": version: 1.0.2 resolution: "is-windows@npm:1.0.2" checksum: 10/438b7e52656fe3b9b293b180defb4e448088e7023a523ec21a91a80b9ff8cdb3377ddb5b6e60f7c7de4fa8b63ab56e121b6705fe081b3cf1b828b0a380009ad7 @@ -9455,22 +10753,22 @@ __metadata: languageName: node linkType: hard -"js-tokens@npm:^4.0.0": +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" checksum: 10/af37d0d913fb56aec6dc0074c163cc71cd23c0b8aad5c2350747b6721d37ba118af35abdd8b33c47ec2800de07dedb16a527ca9c530ee004093e04958bd0cbf2 languageName: node linkType: hard -"js-yaml@npm:^3.13.1, js-yaml@npm:^3.14.1": - version: 3.14.1 - resolution: "js-yaml@npm:3.14.1" +"js-yaml@npm:^3.10.0, js-yaml@npm:^3.13.1, js-yaml@npm:^3.14.1": + version: 3.15.0 + resolution: "js-yaml@npm:3.15.0" dependencies: argparse: "npm:^1.0.7" esprima: "npm:^4.0.0" bin: js-yaml: bin/js-yaml.js - checksum: 10/9e22d80b4d0105b9899135365f746d47466ed53ef4223c529b3c0f7a39907743fdbd3c4379f94f1106f02755b5e90b2faaf84801a891135544e1ea475d1a1379 + checksum: 10/2fdf3a1453ed93a8e06d6ca8054c0bec145cf40ab51f305d1071736a03668b95e40f47cfd0239d7d50019b4780a18cdaca3c935def935594c9876964c49f1185 languageName: node linkType: hard @@ -9605,7 +10903,7 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.5.4": +"keyv@npm:^4.0.0, keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: @@ -9705,7 +11003,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.21": +"lodash@npm:^4.17.20, lodash@npm:^4.17.21": version: 4.18.1 resolution: "lodash@npm:4.18.1" checksum: 10/306fea53dfd39dad1f03d45ba654a2405aebd35797b673077f401edb7df2543623dc44b9effbb98f69b32152295fff725a4cec99c684098947430600c6af0c3f @@ -9729,6 +11027,24 @@ __metadata: languageName: node linkType: hard +"loose-envify@npm:^1.1.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: "npm:^3.0.0 || ^4.0.0" + bin: + loose-envify: cli.js + checksum: 10/6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 + languageName: node + linkType: hard + +"lowercase-keys@npm:^2.0.0": + version: 2.0.0 + resolution: "lowercase-keys@npm:2.0.0" + checksum: 10/1c233d2da35056e8c49fae8097ee061b8c799b2f02e33c2bf32f9913c7de8fb481ab04dab7df35e94156c800f5f34e99acbf32b21781d87c3aa43ef7b748b79e + languageName: node + linkType: hard + "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": version: 10.4.3 resolution: "lru-cache@npm:10.4.3" @@ -9797,6 +11113,25 @@ __metadata: languageName: node linkType: hard +"make-fetch-happen@npm:^14.0.2, make-fetch-happen@npm:^14.0.3": + version: 14.0.3 + resolution: "make-fetch-happen@npm:14.0.3" + dependencies: + "@npmcli/agent": "npm:^3.0.0" + cacache: "npm:^19.0.1" + http-cache-semantics: "npm:^4.1.1" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^4.0.0" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^1.0.0" + proc-log: "npm:^5.0.0" + promise-retry: "npm:^2.0.1" + ssri: "npm:^12.0.0" + checksum: 10/fce0385840b6d86b735053dfe941edc2dd6468fda80fe74da1eeff10cbd82a75760f406194f2bc2fa85b99545b2bc1f84c08ddf994b21830775ba2d1a87e8bdf + languageName: node + linkType: hard + "makeerror@npm:1.0.12": version: 1.0.12 resolution: "makeerror@npm:1.0.12" @@ -9984,6 +11319,20 @@ __metadata: languageName: node linkType: hard +"mimic-response@npm:^1.0.0": + version: 1.0.1 + resolution: "mimic-response@npm:1.0.1" + checksum: 10/034c78753b0e622bc03c983663b1cdf66d03861050e0c8606563d149bc2b02d63f62ce4d32be4ab50d0553ae0ffe647fc34d1f5281184c6e1e8cf4d85e8d9823 + languageName: node + linkType: hard + +"mimic-response@npm:^3.1.0": + version: 3.1.0 + resolution: "mimic-response@npm:3.1.0" + checksum: 10/7e719047612411fe071332a7498cf0448bbe43c485c0d780046c76633a771b223ff49bd00267be122cedebb897037fdb527df72335d0d0f74724604ca70b37ad + languageName: node + linkType: hard + "minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1": version: 1.0.1 resolution: "minimalistic-assert@npm:1.0.1" @@ -10056,6 +11405,21 @@ __metadata: languageName: node linkType: hard +"minipass-fetch@npm:^4.0.0": + version: 4.0.1 + resolution: "minipass-fetch@npm:4.0.1" + dependencies: + encoding: "npm:^0.1.13" + minipass: "npm:^7.0.3" + minipass-sized: "npm:^1.0.3" + minizlib: "npm:^3.0.1" + dependenciesMeta: + encoding: + optional: true + checksum: 10/7ddfebdbb87d9866e7b5f7eead5a9e3d9d507992af932a11d275551f60006cf7d9178e66d586dbb910894f3e3458d27c0ddf93c76e94d49d0a54a541ddc1263d + languageName: node + linkType: hard + "minipass-flush@npm:^1.0.5": version: 1.0.5 resolution: "minipass-flush@npm:1.0.5" @@ -10099,10 +11463,10 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": - version: 7.1.2 - resolution: "minipass@npm:7.1.2" - checksum: 10/c25f0ee8196d8e6036661104bacd743785b2599a21de5c516b32b3fa2b83113ac89a2358465bc04956baab37ffb956ae43be679b2262bf7be15fce467ccd7950 +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": + version: 7.1.3 + resolution: "minipass@npm:7.1.3" + checksum: 10/175e4d5e20980c3cd316ae82d2c031c42f6c746467d8b1905b51060a0ba4461441a0c25bb67c025fd9617f9a3873e152c7b543c6b5ac83a1846be8ade80dffd6 languageName: node linkType: hard @@ -10116,6 +11480,15 @@ __metadata: languageName: node linkType: hard +"minizlib@npm:^3.0.1, minizlib@npm:^3.1.0": + version: 3.1.0 + resolution: "minizlib@npm:3.1.0" + dependencies: + minipass: "npm:^7.1.2" + checksum: 10/f47365cc2cb7f078cbe7e046eb52655e2e7e97f8c0a9a674f4da60d94fb0624edfcec9b5db32e8ba5a99a5f036f595680ae6fe02a262beaa73026e505cc52f99 + languageName: node + linkType: hard + "mkdirp@npm:^1.0.3": version: 1.0.4 resolution: "mkdirp@npm:1.0.4" @@ -10307,6 +11680,13 @@ __metadata: languageName: node linkType: hard +"node-watch@npm:0.7.3": + version: 0.7.3 + resolution: "node-watch@npm:0.7.3" + checksum: 10/40165fe737d928d06b4957f5d7924cea4c4b58d2e696986f48b6d6c26d33fda474b6f5a0cd554a31985c2184524d70c280db61c933739ff6dc5a71e990fe2dff + languageName: node + linkType: hard + "nopt@npm:^7.0.0": version: 7.2.1 resolution: "nopt@npm:7.2.1" @@ -10336,6 +11716,13 @@ __metadata: languageName: node linkType: hard +"normalize-url@npm:^6.0.1": + version: 6.1.0 + resolution: "normalize-url@npm:6.1.0" + checksum: 10/5ae699402c9d5ffa330adc348fcd6fc6e6a155ab7c811b96e30b7ecab60ceef821d8f86443869671dda71bbc47f4b9625739c82ad247e883e9aefe875bfb8659 + languageName: node + linkType: hard + "npm-install-checks@npm:^6.0.0": version: 6.3.0 resolution: "npm-install-checks@npm:6.3.0" @@ -10404,6 +11791,13 @@ __metadata: languageName: node linkType: hard +"object-assign@npm:^4.1.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: 10/fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f + languageName: node + linkType: hard + "object-inspect@npm:^1.13.3, object-inspect@npm:^1.13.4": version: 1.13.4 resolution: "object-inspect@npm:1.13.4" @@ -10451,7 +11845,7 @@ __metadata: languageName: node linkType: hard -"once@npm:^1.3.0, once@npm:^1.4.0": +"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" dependencies: @@ -10606,6 +12000,13 @@ __metadata: languageName: node linkType: hard +"p-cancelable@npm:^2.0.0": + version: 2.1.1 + resolution: "p-cancelable@npm:2.1.1" + checksum: 10/7f1b64db17fc54acf359167d62898115dcf2a64bf6b3b038e4faf36fc059e5ed762fb9624df8ed04b25bee8de3ab8d72dea9879a2a960cd12e23c420a4aca6ed + languageName: node + linkType: hard + "p-limit@npm:^2.2.0": version: 2.3.0 resolution: "p-limit@npm:2.3.0" @@ -10651,6 +12052,13 @@ __metadata: languageName: node linkType: hard +"p-map@npm:^7.0.2": + version: 7.0.6 + resolution: "p-map@npm:7.0.6" + checksum: 10/207bcdd33eb927d8490384bd48221e55b62097eb2d606ae75882b90e7f66b8eb9f0283c373d73139fccbdfbfc869fc47862a74e63eb54de42f440a2fe0840e74 + languageName: node + linkType: hard + "p-try@npm:^2.0.0": version: 2.2.0 resolution: "p-try@npm:2.2.0" @@ -10723,6 +12131,24 @@ __metadata: languageName: node linkType: hard +"parse-path@npm:^7.0.0": + version: 7.1.0 + resolution: "parse-path@npm:7.1.0" + dependencies: + protocols: "npm:^2.0.0" + checksum: 10/6da6c6803fa73bacfee98e694c6c95fa55caae632c765369e4fd917f1043ef71f35ecaae420ef0e39e933bd1f939c4bc1e01522b62145191cdbe72e58d37a8ab + languageName: node + linkType: hard + +"parse-url@npm:^8.1.0": + version: 8.1.0 + resolution: "parse-url@npm:8.1.0" + dependencies: + parse-path: "npm:^7.0.0" + checksum: 10/ceb51dc474568092a50d6d936036dfe438a87aa45bcf20947c8fcdf1544ee9c50255608abae604644e718e91e0b83cfbea4675e8b2fd90bc197432f6d9be263c + languageName: node + linkType: hard + "parseurl@npm:^1.3.3, parseurl@npm:~1.3.3": version: 1.3.3 resolution: "parseurl@npm:1.3.3" @@ -10730,6 +12156,13 @@ __metadata: languageName: node linkType: hard +"patch-console@npm:^1.0.0": + version: 1.0.0 + resolution: "patch-console@npm:1.0.0" + checksum: 10/8cd738aa470f2e9463fca35da6a19403384ac555004f698ddd3dfdb69135ab60fe9bd2edd1dbdd8c09d92c0a2190fd0f7337fe48123013baf8ffec8532885a3a + languageName: node + linkType: hard + "path-browserify@npm:^1.0.1": version: 1.0.1 resolution: "path-browserify@npm:1.0.1" @@ -10839,9 +12272,9 @@ __metadata: linkType: hard "picomatch@npm:^4.0.3": - version: 4.0.3 - resolution: "picomatch@npm:4.0.3" - checksum: 10/57b99055f40b16798f2802916d9c17e9744e620a0db136554af01d19598b96e45e2f00014c91d1b8b13874b80caa8c295b3d589a3f72373ec4aaf54baa5962d5 + version: 4.0.5 + resolution: "picomatch@npm:4.0.5" + checksum: 10/8bad770af9dcdb7f94ad1a893adcbe08a97d75a18872f8fed37161d3124217471c402b3929f051532f795f4ff2e53dcebb1644df4c1a5f3a9c476fef3b9f8c51 languageName: node linkType: hard @@ -10954,6 +12387,13 @@ __metadata: languageName: node linkType: hard +"proc-log@npm:^5.0.0": + version: 5.0.0 + resolution: "proc-log@npm:5.0.0" + checksum: 10/35610bdb0177d3ab5d35f8827a429fb1dc2518d9e639f2151ac9007f01a061c30e0c635a970c9b00c39102216160f6ec54b62377c92fac3b7bfc2ad4b98d195c + languageName: node + linkType: hard + "process-nextick-args@npm:~2.0.0": version: 2.0.1 resolution: "process-nextick-args@npm:2.0.1" @@ -11012,6 +12452,13 @@ __metadata: languageName: node linkType: hard +"protocols@npm:^2.0.0, protocols@npm:^2.0.1": + version: 2.0.2 + resolution: "protocols@npm:2.0.2" + checksum: 10/031cc068eb800468a50eb7c1e1c528bf142fb8314f5df9b9ea3c3f9df1697a19f97b9915b1229cef694d156812393172d9c3051ef7878d26eaa8c6faa5cccec4 + languageName: node + linkType: hard + "proxy-addr@npm:^2.0.7, proxy-addr@npm:~2.0.7": version: 2.0.7 resolution: "proxy-addr@npm:2.0.7" @@ -11036,6 +12483,16 @@ __metadata: languageName: node linkType: hard +"pump@npm:^3.0.0": + version: 3.0.4 + resolution: "pump@npm:3.0.4" + dependencies: + end-of-stream: "npm:^1.1.0" + once: "npm:^1.3.1" + checksum: 10/d043c3e710c56ffd280711e98a94e863ab334f79ea43cee0fb70e1349b2355ffd2ff287c7522e4c960a247699d5b7825f00fa090b85d6179c973be13f78a6c49 + languageName: node + linkType: hard + "punycode@npm:2.1.0": version: 2.1.0 resolution: "punycode@npm:2.1.0" @@ -11087,6 +12544,26 @@ __metadata: languageName: node linkType: hard +"quick-lru@npm:^5.1.1": + version: 5.1.1 + resolution: "quick-lru@npm:5.1.1" + checksum: 10/a516faa25574be7947969883e6068dbe4aa19e8ef8e8e0fd96cddd6d36485e9106d85c0041a27153286b0770b381328f4072aa40d3b18a19f5f7d2b78b94b5ed + languageName: node + linkType: hard + +"qunit@npm:^2.8.0": + version: 2.26.0 + resolution: "qunit@npm:2.26.0" + dependencies: + commander: "npm:7.2.0" + node-watch: "npm:0.7.3" + tiny-glob: "npm:0.2.9" + bin: + qunit: bin/qunit.js + checksum: 10/319386420334127c3bf84b82fd75c6b4ae19f3afab86f40a4529f42cb0dbaa3a3d8bc099f0e8d2aea38806295a25395654d5bf6050471f7d4938781ac8c44e09 + languageName: node + linkType: hard + "randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5, randombytes@npm:^2.1.0": version: 2.1.0 resolution: "randombytes@npm:2.1.0" @@ -11137,6 +12614,16 @@ __metadata: languageName: node linkType: hard +"react-devtools-core@npm:^4.19.1": + version: 4.28.5 + resolution: "react-devtools-core@npm:4.28.5" + dependencies: + shell-quote: "npm:^1.6.1" + ws: "npm:^7" + checksum: 10/7c951a6a9b773e4fd56b2f1894c83aaec417373cf01aa261bd2dd286e6c6f1d8c67a3749ecb1d106dbf9e8cda0e6ed1bfd6ce1b61c81e035f2527be3dd9eebc2 + languageName: node + linkType: hard + "react-is@npm:^18.0.0": version: 18.3.1 resolution: "react-is@npm:18.3.1" @@ -11144,6 +12631,29 @@ __metadata: languageName: node linkType: hard +"react-reconciler@npm:^0.26.2": + version: 0.26.2 + resolution: "react-reconciler@npm:0.26.2" + dependencies: + loose-envify: "npm:^1.1.0" + object-assign: "npm:^4.1.1" + scheduler: "npm:^0.20.2" + peerDependencies: + react: ^17.0.2 + checksum: 10/7b9369a12e57859088aaef052abe03138ad8eefe67308bf8be6ef8f529be06276dc4977a4d665dc9b9e08188bd308b2a0d58dc181253c0205c98e03d7c0901b7 + languageName: node + linkType: hard + +"react@npm:^17.0.2": + version: 17.0.2 + resolution: "react@npm:17.0.2" + dependencies: + loose-envify: "npm:^1.1.0" + object-assign: "npm:^4.1.1" + checksum: 10/ece60c31c1d266d132783aaaffa185d2e4c9b4db144f853933ec690cee1e0600c8929a1dd0a9e79323eea8e2df636c9a06d40f6cfdc9f797f65225433e67f707 + languageName: node + linkType: hard + "read-cmd-shim@npm:^4.0.0": version: 4.0.0 resolution: "read-cmd-shim@npm:4.0.0" @@ -11151,7 +12661,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:3.6.2, readable-stream@npm:^3.0.2, readable-stream@npm:^3.4.0, readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.0, readable-stream@npm:^3.6.2": +"readable-stream@npm:3.6.2, readable-stream@npm:^3.0.2, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.0, readable-stream@npm:^3.6.2": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" dependencies: @@ -11215,6 +12725,13 @@ __metadata: languageName: node linkType: hard +"readline-sync@npm:1.4.9": + version: 1.4.9 + resolution: "readline-sync@npm:1.4.9" + checksum: 10/4eb3e21ec9f48256cdb21a72166d8acfcdf4c5904c913b0715978280c6cd226e9c51df39aa9d119aaaf926063755aa440e7d0bab4994de5bb5db38e3ac08cabf + languageName: node + linkType: hard + "redux-saga@npm:^1.2.3": version: 1.5.0 resolution: "redux-saga@npm:1.5.0" @@ -11278,6 +12795,13 @@ __metadata: languageName: node linkType: hard +"resolve-alpn@npm:^1.0.0": + version: 1.2.1 + resolution: "resolve-alpn@npm:1.2.1" + checksum: 10/744e87888f0b6fa0b256ab454ca0b9c0b80808715e2ef1f3672773665c92a941f6181194e30ccae4a8cd0adbe0d955d3f133102636d2ee0cca0119fec0bc9aec + languageName: node + linkType: hard + "resolve-cwd@npm:^3.0.0": version: 3.0.0 resolution: "resolve-cwd@npm:3.0.0" @@ -11379,6 +12903,15 @@ __metadata: languageName: node linkType: hard +"responselike@npm:^2.0.0": + version: 2.0.1 + resolution: "responselike@npm:2.0.1" + dependencies: + lowercase-keys: "npm:^2.0.0" + checksum: 10/b122535466e9c97b55e69c7f18e2be0ce3823c5d47ee8de0d9c0b114aa55741c6db8bfbfce3766a94d1272e61bfb1ebf0a15e9310ac5629fbb7446a861b4fd3a + languageName: node + linkType: hard + "restore-cursor@npm:^3.1.0": version: 3.1.0 resolution: "restore-cursor@npm:3.1.0" @@ -11529,6 +13062,16 @@ __metadata: languageName: node linkType: hard +"scheduler@npm:^0.20.2": + version: 0.20.2 + resolution: "scheduler@npm:0.20.2" + dependencies: + loose-envify: "npm:^1.1.0" + object-assign: "npm:^4.1.1" + checksum: 10/898917fa475386953d998add9107c04bf2c335eee86172833995dee126d12a68bee3c29edbd61fa0bcbcb8ee511c422eaab23b86b02f95aab26ecfaed8df5e64 + languageName: node + linkType: hard + "schema-utils@npm:^3.1.1": version: 3.3.0 resolution: "schema-utils@npm:3.3.0" @@ -11616,12 +13159,12 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.1.1, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.3, semver@npm:^7.7.3, semver@npm:^7.8.0": - version: 7.8.2 - resolution: "semver@npm:7.8.2" +"semver@npm:^7.1.1, semver@npm:^7.1.2, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.3, semver@npm:^7.7.3, semver@npm:^7.8.0": + version: 7.8.5 + resolution: "semver@npm:7.8.5" bin: semver: bin/semver.js - checksum: 10/52221d8f1cadacda3cc3f0a2e7f7146e0442c7f4219acb25970bed055f5d0a6afbba5f22e293b078c2e93fca3dce0a08b088485e8b75d32a165f16c3627091c8 + checksum: 10/9b01d2ff11e6e4a4539b7ca3c5f280c8704cb397a28504469f2ed4f00ad2194748d756647362a9712fff30984d15772ab7f083108c2fb508e2096ae9e708f22c languageName: node linkType: hard @@ -11787,6 +13330,13 @@ __metadata: languageName: node linkType: hard +"shell-quote@npm:^1.6.1": + version: 1.10.0 + resolution: "shell-quote@npm:1.10.0" + checksum: 10/d4a22aeefe64919290af753ac6098239d7ffee52a5db62c20edef69794bd10b5f86e298f68be26af9606ac435e890dd391994a5405a90bb8aebef1ff1dde839b + languageName: node + linkType: hard + "side-channel-list@npm:^1.0.0": version: 1.0.1 resolution: "side-channel-list@npm:1.0.1" @@ -11849,6 +13399,20 @@ __metadata: languageName: node linkType: hard +"sigstore@npm:^3.1.0": + version: 3.1.0 + resolution: "sigstore@npm:3.1.0" + dependencies: + "@sigstore/bundle": "npm:^3.1.0" + "@sigstore/core": "npm:^2.0.0" + "@sigstore/protobuf-specs": "npm:^0.4.0" + "@sigstore/sign": "npm:^3.1.0" + "@sigstore/tuf": "npm:^3.1.0" + "@sigstore/verify": "npm:^2.1.0" + checksum: 10/fc2a38d11bd0e02b5dc8271e906ba7ea1aaa3dc19010dc6d29602b900532fa16b132cd6c80ec1c294f201f81f1277fb351020d0c65b6a62968f229db0b6c5a4f + languageName: node + linkType: hard + "simple-git-hooks@npm:^2.8.0": version: 2.11.1 resolution: "simple-git-hooks@npm:2.11.1" @@ -11904,6 +13468,17 @@ __metadata: languageName: node linkType: hard +"slice-ansi@npm:^3.0.0": + version: 3.0.0 + resolution: "slice-ansi@npm:3.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + astral-regex: "npm:^2.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + checksum: 10/5ec6d022d12e016347e9e3e98a7eb2a592213a43a65f1b61b74d2c78288da0aded781f665807a9f3876b9daa9ad94f64f77d7633a0458876c3a4fdc4eb223f24 + languageName: node + linkType: hard + "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" @@ -12033,6 +13608,15 @@ __metadata: languageName: node linkType: hard +"ssri@npm:^12.0.0": + version: 12.0.0 + resolution: "ssri@npm:12.0.0" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10/7024c1a6e39b3f18aa8f1c8290e884fe91b0f9ca5a6c6d410544daad54de0ba664db879afe16412e187c6c292fd60b937f047ee44292e5c2af2dcc6d8e1a9b48 + languageName: node + linkType: hard + "stable-hash@npm:^0.0.4": version: 0.0.4 resolution: "stable-hash@npm:0.0.4" @@ -12040,7 +13624,7 @@ __metadata: languageName: node linkType: hard -"stack-utils@npm:^2.0.3": +"stack-utils@npm:^2.0.2, stack-utils@npm:^2.0.3": version: 2.0.6 resolution: "stack-utils@npm:2.0.6" dependencies: @@ -12099,7 +13683,7 @@ __metadata: languageName: node linkType: hard -"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.2, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" dependencies: @@ -12287,6 +13871,19 @@ __metadata: languageName: node linkType: hard +"tar-stream@npm:^2.0.1": + version: 2.2.0 + resolution: "tar-stream@npm:2.2.0" + dependencies: + bl: "npm:^4.0.3" + end-of-stream: "npm:^1.4.1" + fs-constants: "npm:^1.0.0" + inherits: "npm:^2.0.3" + readable-stream: "npm:^3.1.1" + checksum: 10/1a52a51d240c118cbcd30f7368ea5e5baef1eac3e6b793fb1a41e6cd7319296c79c0264ccc5859f5294aa80f8f00b9239d519e627b9aade80038de6f966fec6a + languageName: node + linkType: hard + "tar-stream@npm:^3.1.7": version: 3.2.0 resolution: "tar-stream@npm:3.2.0" @@ -12313,6 +13910,29 @@ __metadata: languageName: node linkType: hard +"tar@npm:^7.4.3, tar@npm:^7.5.3": + version: 7.5.20 + resolution: "tar@npm:7.5.20" + dependencies: + "@isaacs/fs-minipass": "npm:^4.0.0" + chownr: "npm:^3.0.0" + minipass: "npm:^7.1.2" + minizlib: "npm:^3.1.0" + yallist: "npm:^5.0.0" + checksum: 10/90a0fe423ac921197ad5eefc5e5f7ad7f42b06e80444c8c347c1e4112384cbe9cb53ade3ef71748eed3684888756869c2aeef6b6303c766101f3217e254d4be9 + languageName: node + linkType: hard + +"tau-prolog@npm:^0.2.66": + version: 0.2.81 + resolution: "tau-prolog@npm:0.2.81" + dependencies: + qunit: "npm:^2.8.0" + readline-sync: "npm:1.4.9" + checksum: 10/b28f9064e454deb2fcb5b58953e14675a57508056ea62a21477775de4b742cd50841adae5ad2ddf19c37747f5e0c55b39c7befdab27aa8e13d3b933f2216bfac + languageName: node + linkType: hard + "teex@npm:^1.0.1": version: 1.0.1 resolution: "teex@npm:1.0.1" @@ -12404,6 +14024,16 @@ __metadata: languageName: node linkType: hard +"tiny-glob@npm:0.2.9": + version: 0.2.9 + resolution: "tiny-glob@npm:0.2.9" + dependencies: + globalyzer: "npm:0.1.0" + globrex: "npm:^0.1.2" + checksum: 10/5fb773747f6a8fcae4b8884642901fa7b884879695186c422eb24b2213dfe90645f34225ced586329b3080d850472ea938646ab1c8b3a2989f9fa038fef8eee3 + languageName: node + linkType: hard + "tinyglobby@npm:^0.2.15": version: 0.2.15 resolution: "tinyglobby@npm:0.2.15" @@ -12414,6 +14044,13 @@ __metadata: languageName: node linkType: hard +"tinylogic@npm:^2.0.0": + version: 2.0.0 + resolution: "tinylogic@npm:2.0.0" + checksum: 10/6467b1ed9b602dae035726ee3faf2682bddffb5389b42fdb4daf13878037420ed9981a572ca7db467bd26c4ab00fb4eefe654f24e35984ec017fb5e83081db97 + languageName: node + linkType: hard + "tinypool@npm:2.1.0": version: 2.1.0 resolution: "tinypool@npm:2.1.0" @@ -12478,6 +14115,13 @@ __metadata: languageName: node linkType: hard +"treeify@npm:^1.1.0": + version: 1.1.0 + resolution: "treeify@npm:1.1.0" + checksum: 10/5241976a751168fb9894a12d031299f1f6337b7f2cbd3eff22ee86e6777620352a69a1cab0d4709251317ff307eeda0dc45918850974fc44f4c7fc50e623b990 + languageName: node + linkType: hard + "ts-api-utils@npm:^2.4.0": version: 2.4.0 resolution: "ts-api-utils@npm:2.4.0" @@ -12576,6 +14220,17 @@ __metadata: languageName: node linkType: hard +"tuf-js@npm:^3.0.1": + version: 3.1.0 + resolution: "tuf-js@npm:3.1.0" + dependencies: + "@tufjs/models": "npm:3.0.1" + debug: "npm:^4.4.1" + make-fetch-happen: "npm:^14.0.3" + checksum: 10/b0344853c0408312ecf6e6d6e02695f4b1043c28f110a2160d90c8b6716f156ef6d5aeea85b5dd01ee0da0dfee42567b7889a5b89881a116edee37d77c42044a + languageName: node + linkType: hard + "tweetnacl@npm:^1.0.3": version: 1.0.3 resolution: "tweetnacl@npm:1.0.3" @@ -12583,6 +14238,13 @@ __metadata: languageName: node linkType: hard +"typanion@npm:^3.14.0, typanion@npm:^3.8.0": + version: 3.14.0 + resolution: "typanion@npm:3.14.0" + checksum: 10/5e88d9e6121ff0ec543f572152fdd1b70e9cca35406d79013ec8e08defa8ef96de5fec9e98da3afbd1eb4426b9e8e8fe423163d0b482e34a40103cab1ef29abd + languageName: node + linkType: hard + "type-check@npm:^0.4.0, type-check@npm:~0.4.0": version: 0.4.0 resolution: "type-check@npm:0.4.0" @@ -12599,6 +14261,20 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^0.12.0": + version: 0.12.0 + resolution: "type-fest@npm:0.12.0" + checksum: 10/828dd234a0497721622de2907147aff3290a42f86ca01b3d1c1273b4f50bcd00eadcb71c7fad9b34125c7796b8d3a554415f9dda4875993ed51636431488f712 + languageName: node + linkType: hard + +"type-fest@npm:^0.15.1": + version: 0.15.1 + resolution: "type-fest@npm:0.15.1" + checksum: 10/0468c369e3cb6054c59db7eb5846ee9a81d46185d0ddbbb3f6a6122e88508dee4e3a3fd3d74b062d7be6b6ed1f49084f94b605cea395f2fa16dfc4649aec20a6 + languageName: node + linkType: hard + "type-fest@npm:^0.21.3": version: 0.21.3 resolution: "type-fest@npm:0.21.3" @@ -12712,6 +14388,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~5.26.4": + version: 5.26.5 + resolution: "undici-types@npm:5.26.5" + checksum: 10/0097779d94bc0fd26f0418b3a05472410408877279141ded2bd449167be1aed7ea5b76f756562cb3586a07f251b90799bab22d9019ceba49c037c76445f7cddd + languageName: node + linkType: hard + "undici-types@npm:~6.19.2": version: 6.19.8 resolution: "undici-types@npm:6.19.8" @@ -12728,6 +14411,15 @@ __metadata: languageName: node linkType: hard +"unique-filename@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-filename@npm:4.0.0" + dependencies: + unique-slug: "npm:^5.0.0" + checksum: 10/6a62094fcac286b9ec39edbd1f8f64ff92383baa430af303dfed1ffda5e47a08a6b316408554abfddd9730c78b6106bef4ca4d02c1231a735ddd56ced77573df + languageName: node + linkType: hard + "unique-slug@npm:^4.0.0": version: 4.0.0 resolution: "unique-slug@npm:4.0.0" @@ -12737,6 +14429,15 @@ __metadata: languageName: node linkType: hard +"unique-slug@npm:^5.0.0": + version: 5.0.0 + resolution: "unique-slug@npm:5.0.0" + dependencies: + imurmurhash: "npm:^0.1.4" + checksum: 10/beafdf3d6f44990e0a5ce560f8f881b4ee811be70b6ba0db25298c31c8cf525ed963572b48cd03be1c1349084f9e339be4241666d7cf1ebdad20598d3c652b27 + languageName: node + linkType: hard + "universal-user-agent@npm:^6.0.0": version: 6.0.1 resolution: "universal-user-agent@npm:6.0.1" @@ -13104,6 +14805,15 @@ __metadata: languageName: node linkType: hard +"widest-line@npm:^3.1.0": + version: 3.1.0 + resolution: "widest-line@npm:3.1.0" + dependencies: + string-width: "npm:^4.0.0" + checksum: 10/03db6c9d0af9329c37d74378ff1d91972b12553c7d72a6f4e8525fe61563fa7adb0b9d6e8d546b7e059688712ea874edd5ded475999abdeedf708de9849310e0 + languageName: node + linkType: hard + "wif@npm:^2.0.6": version: 2.0.6 resolution: "wif@npm:2.0.6" @@ -13154,6 +14864,17 @@ __metadata: languageName: node linkType: hard +"wrap-ansi@npm:^6.2.0": + version: 6.2.0 + resolution: "wrap-ansi@npm:6.2.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10/0d64f2d438e0b555e693b95aee7b2689a12c3be5ac458192a1ce28f542a6e9e59ddfecc37520910c2c88eb1f82a5411260566dba5064e8f9895e76e169e76187 + languageName: node + linkType: hard + "wrap-ansi@npm:^8.1.0": version: 8.1.0 resolution: "wrap-ansi@npm:8.1.0" @@ -13233,9 +14954,9 @@ __metadata: languageName: node linkType: hard -"ws@npm:^7.3.1": - version: 7.5.11 - resolution: "ws@npm:7.5.11" +"ws@npm:^7, ws@npm:^7.3.1, ws@npm:^7.5.5": + version: 7.5.13 + resolution: "ws@npm:7.5.13" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -13244,7 +14965,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 10/486141e4a01bb75883f9ba39317309c2427e24db1cb75e340fad6e5886b65c03d994a34209f0e4ba06dd6cb9ec95dd1b6a09c52c05eed9a34d6376f4fbbf617c + checksum: 10/0873c813ce75c466b026ce0a4ce9a8b5b5f1dc9ef0dd7ae9690fa4025c66afb165d3a45550357080b29d66a0e3028cd13c72ccefc83ce10723b4822a574ebc99 languageName: node linkType: hard @@ -13292,6 +15013,13 @@ __metadata: languageName: node linkType: hard +"yallist@npm:^5.0.0": + version: 5.0.0 + resolution: "yallist@npm:5.0.0" + checksum: 10/1884d272d485845ad04759a255c71775db0fac56308764b4c77ea56a20d56679fad340213054c8c9c9c26fcfd4c4b2a90df993b7e0aaf3cdb73c618d1d1a802a + languageName: node + linkType: hard + "yaml@npm:^1.10.0": version: 1.10.2 resolution: "yaml@npm:1.10.2" @@ -13300,11 +15028,11 @@ __metadata: linkType: hard "yaml@npm:^2.2.2": - version: 2.8.0 - resolution: "yaml@npm:2.8.0" + version: 2.9.0 + resolution: "yaml@npm:2.9.0" bin: yaml: bin.mjs - checksum: 10/7d4bd9c10d0e467601f496193f2ac254140f8e36f96f5ff7f852b9ce37974168eb7354f4c36dc8837dde527a2043d004b6aff48818ec24a69ab2dd3c6b6c381c + checksum: 10/9a95e8e08651c3d292ab6a5befeb5f57b76801caa097c75bb45c9a70ce19c1b11f57e87a6ef84a579ea070ed2c2c8ac541c88c0ae684d544d5f42c7e77d11b7b languageName: node linkType: hard @@ -13379,3 +15107,12 @@ __metadata: checksum: 10/f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 languageName: node linkType: hard + +"yoga-layout-prebuilt@npm:^1.9.6": + version: 1.10.0 + resolution: "yoga-layout-prebuilt@npm:1.10.0" + dependencies: + "@types/yoga-layout": "npm:1.9.2" + checksum: 10/fe36fadae9b30710083f76c73e87479c2eb291ff7c560c35a9e2b8eb78f43882ace63cc80cdaecae98ee2e4168e1bf84dc65b2f5ae1bfa31df37603c46683bd6 + languageName: node + linkType: hard