diff --git a/.changeset/cfxdevkit-core-cfxdevkit-llm-tools-changeset.md b/.changeset/cfxdevkit-core-cfxdevkit-llm-tools-changeset.md new file mode 100644 index 0000000..d677efa --- /dev/null +++ b/.changeset/cfxdevkit-core-cfxdevkit-llm-tools-changeset.md @@ -0,0 +1,7 @@ +--- +"@cfxdevkit/core": minor +"@cfxdevkit/llm-tools": minor +--- + +Added `test:coverage` script and V8 coverage configuration, improved `hexToBase32` and `base32ToHex` with new options, enhanced `defineChain`, `http`, `ws`, and `signerFromPrivateKey` with additional options and Core Space support, and added comprehensive tests for these features. +Updated `docs-upkeep` to scan `.mdx` files and exclude GitNexus wiki content, refined `test-upkeep` CLI flags and behavior, added safety checks for test file generation, and improved help documentation. diff --git a/.changeset/update-llm-release-ci-tools.md b/.changeset/update-llm-release-ci-tools.md new file mode 100644 index 0000000..34691cd --- /dev/null +++ b/.changeset/update-llm-release-ci-tools.md @@ -0,0 +1,5 @@ +--- +"@cfxdevkit/llm-tools": patch +--- + +Align local LLM commit automation with Changesets and add release, docs, and CI/CD readiness helpers. \ No newline at end of file diff --git a/.dockerignore b/.dockerignore index be7f177..e07e4b5 100644 --- a/.dockerignore +++ b/.dockerignore @@ -3,13 +3,19 @@ .moon/cache .cfxdevkit .devcontainer/.cache - +.next +**/.next node_modules **/node_modules +artifacts +coverage +dist +**/dist +*.log +infrastructure/ansible/inventory.local.ini +infrastructure/ansible/vars/local.yml .pnpm-store .turbo .vite -.vitest -coverage -*.log \ No newline at end of file +.vitest \ No newline at end of file diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml new file mode 100644 index 0000000..b40706a --- /dev/null +++ b/.github/workflows/build-docs.yml @@ -0,0 +1,88 @@ +name: Build docs image + +on: + workflow_dispatch: {} + push: + branches: + - dev + - main + paths: + - repos/cfx-tools/packages/docs-site/** + - .github/workflows/build-docs.yml + - pnpm-lock.yaml + +permissions: + contents: read + packages: write + +concurrency: + group: build-docs-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: Build and push docs image + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: '10.33.2' + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: '24.15.0' + cache: pnpm + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Sync wiki content + run: node repos/cfx-tools/packages/docs-site/scripts/sync-wiki.mjs + + - name: Derive image tags + id: meta + uses: docker/metadata-action@v5 + with: + images: ghcr.io/${{ github.repository }}/docs-site + tags: | + type=raw,value=edge,enable=${{ github.ref == 'refs/heads/main' }} + type=raw,value=dev,enable=${{ github.ref == 'refs/heads/dev' }} + type=raw,value=latest,enable=${{ github.ref == 'refs/heads/main' }} + type=sha,format=short + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push + id: build + uses: docker/build-push-action@v6 + with: + context: . + file: repos/cfx-tools/packages/docs-site/Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max + + - name: Write image digest artifact + run: echo '${{ steps.build.outputs.digest }}' > docs-image-digest.txt + + - name: Upload image digest artifact + uses: actions/upload-artifact@v4 + with: + name: docs-image-digest + path: docs-image-digest.txt \ No newline at end of file diff --git a/.github/workflows/changeset-release.yml b/.github/workflows/changeset-release.yml new file mode 100644 index 0000000..dbaf7af --- /dev/null +++ b/.github/workflows/changeset-release.yml @@ -0,0 +1,53 @@ +name: Changeset release + +on: + push: + branches: + - main + +permissions: + contents: write + pull-requests: write + id-token: write + +concurrency: + group: changeset-release-${{ github.ref }} + cancel-in-progress: false + +jobs: + release: + name: Version or publish packages + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: '10.33.2' + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: '24.15.0' + cache: pnpm + registry-url: https://registry.npmjs.org + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Validate + run: pnpm run check && pnpm run build && pnpm run security:check + + - name: Create release PR or publish + uses: changesets/action@v1 + with: + version: pnpm exec changeset version + publish: node scripts/publish-packages.mjs + title: Version packages + commit: Version packages + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5479f80..b8fbb8a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,15 +15,15 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v6 with: version: '10.33.2' - name: Setup Node - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: '24.15.0' cache: pnpm diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 0000000..1a870ad --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,87 @@ +name: Deploy docs to VPS + +on: + workflow_dispatch: + inputs: + image_tag: + description: Image tag to deploy + required: false + default: edge + workflow_run: + workflows: + - Build docs image + types: + - completed + branches: + - main + +permissions: + contents: read + +concurrency: + group: deploy-docs + cancel-in-progress: false + +jobs: + deploy: + name: Deploy docs site + runs-on: ubuntu-latest + if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }} + steps: + - name: Deploy over SSH + uses: appleboy/ssh-action@v1 + env: + DOCS_IMAGE_TAG: ${{ inputs.image_tag || 'edge' }} + GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} + GHCR_USERNAME: ${{ vars.GHCR_USERNAME || 'cfxdevkit' }} + with: + host: ${{ secrets.VPS_HOST }} + username: deploy + key: ${{ secrets.VPS_SSH_KEY }} + envs: DOCS_IMAGE_TAG,GHCR_TOKEN,GHCR_USERNAME + script_stop: true + script: | + set -euo pipefail + cd /opt/apps/docs + if [ -n "${GHCR_TOKEN:-}" ]; then + echo "$GHCR_TOKEN" | docker login ghcr.io -u "$GHCR_USERNAME" --password-stdin + fi + if [ -n "${DOCS_IMAGE_TAG:-}" ]; then + sed -i "s#ghcr.io/cfxdevkit/framework/docs-site:.*#ghcr.io/cfxdevkit/framework/docs-site:${DOCS_IMAGE_TAG}#" docker-compose.yml + fi + + # Capture current running image digest for rollback + PREVIOUS_DIGEST=$(docker inspect --format='{{.Id}}' cfxdevkit-docs-site 2>/dev/null || true) + + docker compose pull + + # Deploy with rollback on failure + if ! docker compose up -d --remove-orphans; then + echo "ERROR: docker compose up failed; attempting rollback" >&2 + if [ -n "${PREVIOUS_DIGEST:-}" ]; then + docker tag "$PREVIOUS_DIGEST" ghcr.io/cfxdevkit/framework/docs-site:rollback + sed -i "s#ghcr.io/cfxdevkit/framework/docs-site:.*#ghcr.io/cfxdevkit/framework/docs-site:rollback#" docker-compose.yml + docker compose up -d --remove-orphans || true + fi + exit 1 + fi + + # Wait for healthcheck to pass (up to 60s) + for i in $(seq 1 12); do + STATUS=$(docker inspect --format='{{.State.Health.Status}}' cfxdevkit-docs-site 2>/dev/null || echo "none") + if [ "$STATUS" = "healthy" ] || [ "$STATUS" = "none" ]; then + break + fi + if [ "$STATUS" = "unhealthy" ]; then + echo "ERROR: container unhealthy after deploy; attempting rollback" >&2 + if [ -n "${PREVIOUS_DIGEST:-}" ]; then + docker tag "$PREVIOUS_DIGEST" ghcr.io/cfxdevkit/framework/docs-site:rollback + sed -i "s#ghcr.io/cfxdevkit/framework/docs-site:.*#ghcr.io/cfxdevkit/framework/docs-site:rollback#" docker-compose.yml + docker compose up -d --remove-orphans || true + fi + exit 1 + fi + sleep 5 + done + + docker image prune -f \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0c6011c..4f9a323 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,6 +1,6 @@ name: Release -'on': +on: release: types: - published @@ -21,15 +21,15 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v6 with: version: '10.33.2' - name: Setup Node - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: '24.15.0' cache: pnpm @@ -43,10 +43,8 @@ jobs: - name: Publish dry run if: ${{ github.event_name == 'workflow_dispatch' && inputs.dry_run }} - run: pnpm -r publish --provenance --access public --no-git-checks --dry-run + run: node scripts/publish-packages.mjs --dry-run - name: Publish if: ${{ github.event_name == 'release' || (github.event_name == 'workflow_dispatch' && !inputs.dry_run) }} - run: pnpm -r publish --provenance --access public --no-git-checks - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} \ No newline at end of file + run: node scripts/publish-packages.mjs \ No newline at end of file diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index 1667beb..4cf2fca 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -18,15 +18,15 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setup pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v6 with: version: '10.33.2' - name: Setup Node - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: '24.15.0' cache: pnpm @@ -49,15 +49,15 @@ jobs: security-events: write steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Initialize CodeQL - uses: github/codeql-action/init@v3 + uses: github/codeql-action/init@v4 with: languages: javascript-typescript - name: Autobuild - uses: github/codeql-action/autobuild@v3 + uses: github/codeql-action/autobuild@v4 - name: Analyze - uses: github/codeql-action/analyze@v3 + uses: github/codeql-action/analyze@v4 diff --git a/.gitignore b/.gitignore index 527ddb2..957b081 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,8 @@ Thumbs.db *.key *.keystore .cfxdevkit/ +infrastructure/ansible/inventory.local.ini +infrastructure/ansible/vars/local.yml # Dev container runtime socket symlink (generated by detect-docker-socket.sh) .devcontainer/.docker.sock diff --git a/AGENTS.md b/AGENTS.md index adea963..2818536 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,7 +1,7 @@ # GitNexus — Code Intelligence -This project is indexed by GitNexus as **root** (6177 symbols, 10166 relationships, 300 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely. +This project is indexed by GitNexus as **framework** (7156 symbols, 11147 relationships, 300 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely. > If any GitNexus tool warns the index is stale, run `npx gitnexus analyze` in terminal first. @@ -24,10 +24,10 @@ This project is indexed by GitNexus as **root** (6177 symbols, 10166 relationshi | Resource | Use for | |----------|---------| -| `gitnexus://repo/root/context` | Codebase overview, check index freshness | -| `gitnexus://repo/root/clusters` | All functional areas | -| `gitnexus://repo/root/processes` | All execution flows | -| `gitnexus://repo/root/process/{name}` | Step-by-step execution trace | +| `gitnexus://repo/framework/context` | Codebase overview, check index freshness | +| `gitnexus://repo/framework/clusters` | All functional areas | +| `gitnexus://repo/framework/processes` | All execution flows | +| `gitnexus://repo/framework/process/{name}` | Step-by-step execution trace | ## CLI diff --git a/CLAUDE.md b/CLAUDE.md index adea963..2818536 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,7 +1,7 @@ # GitNexus — Code Intelligence -This project is indexed by GitNexus as **root** (6177 symbols, 10166 relationships, 300 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely. +This project is indexed by GitNexus as **framework** (7156 symbols, 11147 relationships, 300 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely. > If any GitNexus tool warns the index is stale, run `npx gitnexus analyze` in terminal first. @@ -24,10 +24,10 @@ This project is indexed by GitNexus as **root** (6177 symbols, 10166 relationshi | Resource | Use for | |----------|---------| -| `gitnexus://repo/root/context` | Codebase overview, check index freshness | -| `gitnexus://repo/root/clusters` | All functional areas | -| `gitnexus://repo/root/processes` | All execution flows | -| `gitnexus://repo/root/process/{name}` | Step-by-step execution trace | +| `gitnexus://repo/framework/context` | Codebase overview, check index freshness | +| `gitnexus://repo/framework/clusters` | All functional areas | +| `gitnexus://repo/framework/processes` | All execution flows | +| `gitnexus://repo/framework/process/{name}` | Step-by-step execution trace | ## CLI diff --git a/docs/llm-automation-agents.md b/docs/llm-automation-agents.md index c8c00eb..bd00876 100644 --- a/docs/llm-automation-agents.md +++ b/docs/llm-automation-agents.md @@ -16,12 +16,16 @@ pnpm run llm:config -- show pnpm run llm:action -- review pnpm run llm:ask -- --quick "Where should a docs alignment scanner live?" pnpm run llm:corpus +pnpm run llm:ci pnpm run llm:docs pnpm run llm:review pnpm run llm:hotspots -pnpm run llm:datasets pnpm run llm:eval pnpm run llm:serve-check +pnpm run llm:changeset +pnpm run llm:release +pnpm run llm:ci-cd +pnpm run llm:docs-pipeline ``` Generated outputs are written under `artifacts/llm/`, which is ignored by git. @@ -32,10 +36,10 @@ Commit only small schemas, manifests, or report excerpts intentionally. | Agent | Purpose | Output | |-------|---------|--------| | `llm:corpus` | Build safe repository metadata for retrieval and later eval seeds | `artifacts/llm/corpus/*.jsonl` | +| `llm:ci` | Check CI/CD workflow, docs image, release, and VPS deploy wiring | `artifacts/llm/reports/ci-cd.*` | | `llm:docs` | Detect broken documentation references, Moon registration drift, package export drift, and current/planned wording risk | `artifacts/llm/reports/docs-alignment.*` | | `llm:review` | Inspect current git changes and suggest targeted validation commands | `artifacts/llm/reports/review.*` | | `llm:hotspots` | Scan source file size and recent churn against the framework component budget | `artifacts/llm/reports/code-hotspots.*` | -| `llm:datasets` | Generate deterministic evaluation seed examples from corpus metadata | `artifacts/llm/datasets/*.jsonl` | | `llm:eval` | Summarize deterministic gates from the generated reports | `artifacts/llm/reports/eval.*` | | `llm:serve-check` | Probe Lemonade Server reachability and model-list endpoints, including `http://localhost:13305/` by default | `artifacts/llm/reports/serve-check.*` | @@ -65,7 +69,10 @@ pnpm run llm:config -- set default-model Qwen3-Coder-Next-GGUF pnpm run llm:config -- set action review Qwen3-Coder-Next-GGUF pnpm run llm:action -- docs-upkeep pnpm run llm:action -- review -pnpm run llm:action -- plan "Add a package export scanner" +pnpm run llm:changeset +pnpm run llm:release +pnpm run llm:ci-cd +pnpm run llm:docs-pipeline pnpm run llm:ask -- --quick "Which validation commands should I run for a docs-only change?" ``` @@ -78,9 +85,11 @@ The available repo actions are: |--------|---------| | `docs-upkeep` | Use docs alignment reports and docs context to recommend minimal documentation fixes | | `review` | Review the current git diff with repo security and contribution context | -| `plan` | Produce implementation plans grounded in the current architecture and LLM automation plan | -| `architecture` | Answer package-boundary and current-vs-planned topology questions | | `validation` | Pick targeted validation commands for the current change set | +| `changeset` | Review changed publishable packages for required Changesets, bump levels, and release notes | +| `release-readiness` | Review Changesets, release workflows, and npm publish provenance before releasing | +| `ci-cd` | Review GitHub Actions, security gates, docs image publishing, and VPS deploy wiring | +| `docs-pipeline` | Review wiki sync, docs build, Docker image, and docs deploy readiness | Local Lemonade configuration is written to `artifacts/llm/config/lemonade.json`, which is ignored by git. LLM outputs are written to @@ -94,7 +103,7 @@ which is ignored by git. LLM outputs are written to available, the agent records discovered model ids, labels, recipes, and sizes. - Lemonade CLI actions ask the model for recommendations only; they do not apply patches, run deployment commands, publish packages, or commit changes. -- Dataset generation creates eval seed records, not approved training data. +- Dataset generation and fine-tuning remain outside this repo automation surface. - The review agent checks uncommitted changes. For committed ranges, compare or checkout the desired diff before running it. - The documentation agent intentionally reports warnings rather than rewriting diff --git a/docs/llm-fine-tuning-plan.md b/docs/llm-fine-tuning-plan.md index d36854d..af46fdc 100644 --- a/docs/llm-fine-tuning-plan.md +++ b/docs/llm-fine-tuning-plan.md @@ -325,8 +325,9 @@ Recommended separation: Repository automation services: - `llm:corpus`: build corpus metadata and chunks. -- `llm:datasets`: generate train/eval JSONL datasets from approved corpus and - examples. +- Dataset generation: deferred until there is a reviewed promotion path for + train/eval JSONL examples. +- `llm:ci`: check CI/CD, docs image, release, and VPS deploy wiring. - `llm:eval`: run completion, review, doc-alignment, and agent-task benchmarks. - `llm:review`: produce a review report for current changes using retrieval and the selected local model. @@ -345,8 +346,8 @@ Initial implementation status: Moon project registration, and current-vs-planned structure language. - `pnpm run llm:review` inspects uncommitted changes, flags security-sensitive surfaces, and suggests validation commands. -- `pnpm run llm:datasets` creates deterministic evaluation seed examples only; - it is not a fine-tuning dataset promotion step. +- `pnpm run llm:ci` checks docs image publishing, deploy workflow, Changesets + release workflow, npm publish helper, and Ansible deployment scaffolding. - `pnpm run llm:eval` summarizes deterministic gates from the generated reports. - `pnpm run llm:serve-check` probes Lemonade Server from `LEMONADE_URL`, then auto-discovers common local and devcontainer host endpoints including diff --git a/infrastructure/README.md b/infrastructure/README.md index 5cdb6cc..99e1276 100644 --- a/infrastructure/README.md +++ b/infrastructure/README.md @@ -9,6 +9,7 @@ does **not** import from here. infrastructure/ ├── README.md ├── STRUCTURE.md +├── ansible/ Hetzner VPS provisioning for docs, monitoring, backups └── secrets/ Policies and templates only — NEVER actual secrets ``` @@ -17,3 +18,17 @@ infrastructure/ - Secrets are stored in a secret manager; this folder may only contain templates and references. - Production signing and deploy secrets must follow [secrets/](secrets/). - CI workflow files currently live directly in `.github/workflows/`. + +## VPS + +The shared Hetzner VPS hosts Dockerized runtime services behind Caddy. The first framework service is the docs site at `www.cfxdevkit.org`; CAS can keep using the same VPS until traffic or operational isolation justifies a split. + +Provisioning is Ansible-based: + +```sh +cd infrastructure/ansible +ansible-galaxy collection install -r requirements.yml +cp inventory.ini inventory.local.ini +cp vars/all.yml vars/local.yml +ansible-playbook playbook.yml -i inventory.local.ini -e @vars/local.yml +``` diff --git a/infrastructure/STRUCTURE.md b/infrastructure/STRUCTURE.md index e7b0ebe..8ac294e 100644 --- a/infrastructure/STRUCTURE.md +++ b/infrastructure/STRUCTURE.md @@ -6,6 +6,18 @@ This file describes the current checked-in infrastructure files. infrastructure/ ├── README.md ├── STRUCTURE.md +├── ansible/ VPS provisioning and app compose templates +│ ├── inventory.ini template inventory; copy to inventory.local.ini +│ ├── playbook.yml base/docker/caddy/backups/monitoring/docs +│ ├── requirements.yml Ansible Galaxy collections +│ ├── vars/all.yml safe variable template; copy to vars/local.yml +│ └── roles/ +│ ├── backups/ +│ ├── base/ +│ ├── caddy/ +│ ├── docker/ +│ ├── docs/ +│ └── monitoring/ └── secrets/ ── Policies, templates, references ONLY ── │ ├── README.md how secrets are sourced (KMS / Vault / OIDC) │ ├── env.template diff --git a/infrastructure/ansible/inventory.ini b/infrastructure/ansible/inventory.ini new file mode 100644 index 0000000..0f59cd2 --- /dev/null +++ b/infrastructure/ansible/inventory.ini @@ -0,0 +1,12 @@ +[vps] +# TODO: replace with the Hetzner public IPv4. +# TODO: replace ~/.ssh/your_deploy_key with the path to your deploy SSH private key. +# +# Bootstrap run (fresh VPS, only root exists): +# ansible-playbook playbook.yml -i inventory.local.ini -e @vars/local.yml \ +# -e ansible_user=root \ +# -e ansible_ssh_private_key_file=~/.ssh/root_key +# +# All subsequent runs use the deploy user created by the base role: +# ansible-playbook playbook.yml -i inventory.local.ini -e @vars/local.yml + ansible_user=deploy ansible_ssh_private_key_file=~/.ssh/your_deploy_key ansible_ssh_common_args='-o IdentitiesOnly=yes' \ No newline at end of file diff --git a/infrastructure/ansible/playbook.yml b/infrastructure/ansible/playbook.yml new file mode 100644 index 0000000..3a521db --- /dev/null +++ b/infrastructure/ansible/playbook.yml @@ -0,0 +1,36 @@ +--- +# Main provisioning playbook for the cfxdevkit framework VPS. +# +# Bootstrap (first run against a fresh VPS): +# ansible-playbook playbook.yml -i inventory.local.ini -e @vars/local.yml \ +# -e ansible_user=root \ +# -e ansible_ssh_private_key_file=~/.ssh/root_key +# +# Subsequent runs: +# ansible-playbook playbook.yml -i inventory.local.ini -e @vars/local.yml + +- name: Provision cfxdevkit framework VPS + hosts: vps + become: true + + vars_files: + - vars/all.yml + + roles: + - role: base + tags: [base, security] + + - role: docker + tags: [docker] + + - role: caddy + tags: [caddy] + + - role: backups + tags: [backups] + + - role: monitoring + tags: [monitoring] + + - role: docs + tags: [docs] \ No newline at end of file diff --git a/infrastructure/ansible/requirements.yml b/infrastructure/ansible/requirements.yml new file mode 100644 index 0000000..ebf7026 --- /dev/null +++ b/infrastructure/ansible/requirements.yml @@ -0,0 +1,7 @@ +--- +# Install with: +# ansible-galaxy collection install -r requirements.yml + +collections: + - name: community.general + - name: community.docker \ No newline at end of file diff --git a/infrastructure/ansible/roles/backups/handlers/main.yml b/infrastructure/ansible/roles/backups/handlers/main.yml new file mode 100644 index 0000000..5e411e3 --- /dev/null +++ b/infrastructure/ansible/roles/backups/handlers/main.yml @@ -0,0 +1,4 @@ +--- +- name: Reload systemd + systemd: + daemon_reload: true \ No newline at end of file diff --git a/infrastructure/ansible/roles/backups/tasks/main.yml b/infrastructure/ansible/roles/backups/tasks/main.yml new file mode 100644 index 0000000..61552f4 --- /dev/null +++ b/infrastructure/ansible/roles/backups/tasks/main.yml @@ -0,0 +1,52 @@ +--- +- name: Install restic + apt: + name: restic + state: present + update_cache: true + +- name: Create backup script from template + template: + src: backup.sh.j2 + dest: /usr/local/bin/backup.sh + owner: root + group: root + mode: "0750" + +- name: Write systemd backup service + copy: + dest: /etc/systemd/system/restic-backup.service + content: | + [Unit] + Description=Restic backup - cfxdevkit framework VPS + After=network-online.target + + [Service] + Type=oneshot + ExecStart=/usr/local/bin/backup.sh + User=root + mode: "0644" + notify: Reload systemd + +- name: Write systemd backup timer + copy: + dest: /etc/systemd/system/restic-backup.timer + content: | + [Unit] + Description=Daily restic backup timer + + [Timer] + OnCalendar=*-*-* 02:00:00 + Persistent=true + + [Install] + WantedBy=timers.target + mode: "0644" + notify: Reload systemd + +- name: Enable and start backup timer + systemd: + name: restic-backup.timer + state: started + enabled: true + daemon_reload: true \ No newline at end of file diff --git a/infrastructure/ansible/roles/backups/templates/backup.sh.j2 b/infrastructure/ansible/roles/backups/templates/backup.sh.j2 new file mode 100644 index 0000000..c247319 --- /dev/null +++ b/infrastructure/ansible/roles/backups/templates/backup.sh.j2 @@ -0,0 +1,19 @@ +#!/bin/bash +# Restic backup script for the cfxdevkit framework VPS. +# Generated by Ansible. Do not edit manually. +set -euo pipefail + +export RESTIC_REPOSITORY="{{ restic_repository }}" +export RESTIC_PASSWORD="{{ restic_password }}" +{% if b2_account_id %} +export B2_ACCOUNT_ID="{{ b2_account_id }}" +export B2_ACCOUNT_KEY="{{ b2_application_key }}" +{% endif %} + +BACKUP_PATHS="{{ backup_paths | join(' ') }}" + +echo "[$(date -u +%Y-%m-%dT%H:%M:%SZ)] Starting restic backup" +restic snapshots &>/dev/null || restic init +restic backup $BACKUP_PATHS --tag cfxdevkit-framework-vps --exclude "*.log" --exclude "node_modules" +restic forget --keep-daily {{ restic_keep_daily }} --keep-weekly {{ restic_keep_weekly }} --keep-monthly {{ restic_keep_monthly }} --prune +echo "[$(date -u +%Y-%m-%dT%H:%M:%SZ)] Backup complete" \ No newline at end of file diff --git a/infrastructure/ansible/roles/base/handlers/main.yml b/infrastructure/ansible/roles/base/handlers/main.yml new file mode 100644 index 0000000..d47253f --- /dev/null +++ b/infrastructure/ansible/roles/base/handlers/main.yml @@ -0,0 +1,10 @@ +--- +- name: Restart SSH + service: + name: ssh + state: restarted + +- name: Restart fail2ban + service: + name: fail2ban + state: restarted \ No newline at end of file diff --git a/infrastructure/ansible/roles/base/tasks/main.yml b/infrastructure/ansible/roles/base/tasks/main.yml new file mode 100644 index 0000000..701aff9 --- /dev/null +++ b/infrastructure/ansible/roles/base/tasks/main.yml @@ -0,0 +1,142 @@ +--- +- name: Set timezone + community.general.timezone: + name: "{{ server_timezone }}" + +- name: Ensure locale is generated + locale_gen: + name: en_US.UTF-8 + state: present + +- name: Install base packages + apt: + name: + - apt-listchanges + - ca-certificates + - curl + - fail2ban + - git + - gnupg + - htop + - logrotate + - rsync + - ufw + - unattended-upgrades + state: present + update_cache: true + +- name: Create deploy group + group: + name: "{{ deploy_group }}" + state: present + +- name: Create deploy user + user: + name: "{{ deploy_user }}" + group: "{{ deploy_group }}" + shell: /bin/bash + create_home: true + state: present + +- name: Install deploy user SSH public key + authorized_key: + user: "{{ deploy_user }}" + key: "{{ deploy_pubkey }}" + state: present + exclusive: true + +- name: Allow deploy user passwordless sudo + copy: + dest: /etc/sudoers.d/deploy-nopasswd + content: "{{ deploy_user }} ALL=(ALL) NOPASSWD: ALL\n" + mode: "0440" + validate: "visudo -cf %s" + +- name: Harden SSH configuration + lineinfile: + path: /etc/ssh/sshd_config + regexp: "{{ item.regexp }}" + line: "{{ item.line }}" + state: present + loop: + - { regexp: "^#?PermitRootLogin", line: "PermitRootLogin no" } + - { regexp: "^#?PasswordAuthentication", line: "PasswordAuthentication no" } + - { regexp: "^#?PubkeyAuthentication", line: "PubkeyAuthentication yes" } + - { regexp: "^#?X11Forwarding", line: "X11Forwarding no" } + - { regexp: "^#?MaxAuthTries", line: "MaxAuthTries 3" } + - { regexp: "^#?LoginGraceTime", line: "LoginGraceTime 30" } + - { regexp: "^#?AllowUsers", line: "AllowUsers {{ deploy_user }}" } + notify: Restart SSH + +- name: Set ufw default policies + ufw: + direction: "{{ item.direction }}" + policy: "{{ item.policy }}" + loop: + - { direction: incoming, policy: deny } + - { direction: outgoing, policy: allow } + +- name: Allow SSH + ufw: + rule: allow + port: "22" + proto: tcp + +- name: Allow HTTP + ufw: + rule: allow + port: "80" + proto: tcp + +- name: Allow HTTPS + ufw: + rule: allow + port: "443" + proto: tcp + +- name: Enable ufw + ufw: + state: enabled + +- name: Write fail2ban jail.local + copy: + dest: /etc/fail2ban/jail.local + content: | + [DEFAULT] + bantime = 3600 + findtime = 600 + maxretry = 5 + + [sshd] + enabled = true + port = ssh + logpath = %(sshd_log)s + backend = %(sshd_backend)s + mode: "0644" + notify: Restart fail2ban + +- name: Enable and start fail2ban + service: + name: fail2ban + state: started + enabled: true + +- name: Configure unattended-upgrades + copy: + dest: /etc/apt/apt.conf.d/50unattended-upgrades + content: | + Unattended-Upgrade::Allowed-Origins { + "${distro_id}:${distro_codename}-security"; + }; + Unattended-Upgrade::Automatic-Reboot "true"; + Unattended-Upgrade::Automatic-Reboot-Time "03:00"; + Unattended-Upgrade::Remove-Unused-Dependencies "true"; + mode: "0644" + +- name: Enable unattended-upgrades periodic timer + copy: + dest: /etc/apt/apt.conf.d/20auto-upgrades + content: | + APT::Periodic::Update-Package-Lists "1"; + APT::Periodic::Unattended-Upgrade "1"; + mode: "0644" \ No newline at end of file diff --git a/infrastructure/ansible/roles/caddy/handlers/main.yml b/infrastructure/ansible/roles/caddy/handlers/main.yml new file mode 100644 index 0000000..1ebe2d8 --- /dev/null +++ b/infrastructure/ansible/roles/caddy/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: Reload Caddy + service: + name: caddy + state: reloaded \ No newline at end of file diff --git a/infrastructure/ansible/roles/caddy/tasks/main.yml b/infrastructure/ansible/roles/caddy/tasks/main.yml new file mode 100644 index 0000000..67de175 --- /dev/null +++ b/infrastructure/ansible/roles/caddy/tasks/main.yml @@ -0,0 +1,53 @@ +--- +- name: Add Caddy GPG key + apt_key: + url: https://dl.cloudsmith.io/public/caddy/stable/gpg.key + state: present + +- name: Add Caddy apt repository + apt_repository: + repo: "deb [trusted=yes] https://apt.fury.io/caddy/ /" + state: present + filename: caddy-stable + +- name: Install Caddy + apt: + name: caddy + state: present + update_cache: true + +- name: Create sites-enabled directory + file: + path: /etc/caddy/sites-enabled + state: directory + owner: root + group: root + mode: "0755" + +- name: Write base Caddyfile + template: + src: Caddyfile.j2 + dest: /etc/caddy/Caddyfile + owner: root + group: root + mode: "0644" + notify: Reload Caddy + +- name: Write per-site Caddy snippets + template: + src: "{{ snippet }}" + dest: "/etc/caddy/sites-enabled/{{ snippet | basename | regex_replace('\\.j2$', '') }}.conf" + owner: root + group: root + mode: "0644" + with_fileglob: + - "{{ role_path }}/templates/sites/*.j2" + loop_control: + loop_var: snippet + notify: Reload Caddy + +- name: Enable and start Caddy + service: + name: caddy + state: started + enabled: true \ No newline at end of file diff --git a/infrastructure/ansible/roles/caddy/templates/Caddyfile.j2 b/infrastructure/ansible/roles/caddy/templates/Caddyfile.j2 new file mode 100644 index 0000000..cdb535d --- /dev/null +++ b/infrastructure/ansible/roles/caddy/templates/Caddyfile.j2 @@ -0,0 +1,8 @@ +# Caddyfile — cfxdevkit framework VPS +# Managed by Ansible. Do not edit manually. + +{ + email {{ acme_email }} +} + +import /etc/caddy/sites-enabled/*.conf \ No newline at end of file diff --git a/infrastructure/ansible/roles/caddy/templates/sites/cas.j2 b/infrastructure/ansible/roles/caddy/templates/sites/cas.j2 new file mode 100644 index 0000000..e4c9578 --- /dev/null +++ b/infrastructure/ansible/roles/caddy/templates/sites/cas.j2 @@ -0,0 +1,6 @@ +# Caddyfile snippet — CAS backend +# Managed by Ansible. Do not edit manually. + +api.cas.{{ base_domain }} { + reverse_proxy localhost:{{ app_ports.cas }} +} \ No newline at end of file diff --git a/infrastructure/ansible/roles/caddy/templates/sites/docs.j2 b/infrastructure/ansible/roles/caddy/templates/sites/docs.j2 new file mode 100644 index 0000000..a034cc5 --- /dev/null +++ b/infrastructure/ansible/roles/caddy/templates/sites/docs.j2 @@ -0,0 +1,6 @@ +# Caddyfile snippet — framework docs +# Managed by Ansible. Do not edit manually. + +{{ docs_domain }} { + reverse_proxy localhost:{{ app_ports.docs }} +} \ No newline at end of file diff --git a/infrastructure/ansible/roles/caddy/templates/sites/monitoring.j2 b/infrastructure/ansible/roles/caddy/templates/sites/monitoring.j2 new file mode 100644 index 0000000..7e127d3 --- /dev/null +++ b/infrastructure/ansible/roles/caddy/templates/sites/monitoring.j2 @@ -0,0 +1,6 @@ +# Caddyfile snippet — Uptime Kuma monitoring dashboard +# Managed by Ansible. Do not edit manually. + +monitor.{{ base_domain }} { + reverse_proxy localhost:{{ app_ports.monitoring }} +} \ No newline at end of file diff --git a/infrastructure/ansible/roles/docker/handlers/main.yml b/infrastructure/ansible/roles/docker/handlers/main.yml new file mode 100644 index 0000000..ba2b2c9 --- /dev/null +++ b/infrastructure/ansible/roles/docker/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: Restart Docker + service: + name: docker + state: restarted \ No newline at end of file diff --git a/infrastructure/ansible/roles/docker/tasks/main.yml b/infrastructure/ansible/roles/docker/tasks/main.yml new file mode 100644 index 0000000..edcb71b --- /dev/null +++ b/infrastructure/ansible/roles/docker/tasks/main.yml @@ -0,0 +1,71 @@ +--- +- name: Remove old Docker packages + apt: + name: + - containerd + - docker + - docker-engine + - docker.io + - runc + state: absent + +- name: Install Docker apt prerequisites + apt: + name: + - apt-transport-https + - ca-certificates + - curl + - gnupg + - lsb-release + state: present + update_cache: true + +- name: Add Docker GPG key + apt_key: + url: https://download.docker.com/linux/ubuntu/gpg + state: present + +- name: Add Docker apt repository + apt_repository: + repo: > + deb [arch=arm64] https://download.docker.com/linux/ubuntu + {{ ansible_distribution_release }} stable + state: present + filename: docker + +- name: Install Docker CE + apt: + name: + - containerd.io + - docker-buildx-plugin + - docker-ce + - docker-ce-cli + - docker-compose-plugin + state: present + update_cache: true + +- name: Enable and start Docker + service: + name: docker + state: started + enabled: true + +- name: Add deploy user to docker group + user: + name: "{{ deploy_user }}" + groups: docker + append: true + +- name: Configure Docker daemon log rotation + copy: + dest: /etc/docker/daemon.json + content: | + { + "log-driver": "json-file", + "log-opts": { + "max-size": "10m", + "max-file": "3" + } + } + mode: "0644" + notify: Restart Docker \ No newline at end of file diff --git a/infrastructure/ansible/roles/docs/tasks/main.yml b/infrastructure/ansible/roles/docs/tasks/main.yml new file mode 100644 index 0000000..9779d67 --- /dev/null +++ b/infrastructure/ansible/roles/docs/tasks/main.yml @@ -0,0 +1,41 @@ +--- +- name: Create docs app directory + file: + path: /opt/apps/docs + state: directory + owner: "{{ deploy_user }}" + group: "{{ deploy_group }}" + mode: "0755" + +- name: Write docs docker-compose.yml + copy: + dest: /opt/apps/docs/docker-compose.yml + owner: "{{ deploy_user }}" + group: "{{ deploy_group }}" + mode: "0644" + content: | + services: + docs-site: + image: {{ docs_image }}:{{ docs_image_tag }} + container_name: cfxdevkit-docs-site + restart: unless-stopped + ports: + - "127.0.0.1:{{ app_ports.docs }}:3100" + environment: + NODE_ENV: production + PORT: "3100" + security_opt: + - no-new-privileges:true + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3100"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 15s + +- name: Start docs site + community.docker.docker_compose_v2: + project_src: /opt/apps/docs + state: present + pull: always + become_user: "{{ deploy_user }}" \ No newline at end of file diff --git a/infrastructure/ansible/roles/monitoring/tasks/main.yml b/infrastructure/ansible/roles/monitoring/tasks/main.yml new file mode 100644 index 0000000..2f1d12c --- /dev/null +++ b/infrastructure/ansible/roles/monitoring/tasks/main.yml @@ -0,0 +1,38 @@ +--- +- name: Create monitoring directory + file: + path: /opt/monitoring + state: directory + owner: "{{ deploy_user }}" + group: "{{ deploy_group }}" + mode: "0755" + +- name: Write Uptime Kuma docker-compose.yml + copy: + dest: /opt/monitoring/docker-compose.yml + owner: "{{ deploy_user }}" + group: "{{ deploy_group }}" + mode: "0644" + content: | + services: + uptime-kuma: + image: louislam/uptime-kuma:1 + container_name: uptime-kuma + restart: unless-stopped + ports: + - "127.0.0.1:{{ app_ports.monitoring }}:3001" + volumes: + - kuma-data:/app/data + security_opt: + - no-new-privileges:true + + volumes: + kuma-data: + driver: local + +- name: Start Uptime Kuma + community.docker.docker_compose_v2: + project_src: /opt/monitoring + state: present + pull: always + become_user: "{{ deploy_user }}" \ No newline at end of file diff --git a/infrastructure/ansible/vars/all.yml b/infrastructure/ansible/vars/all.yml new file mode 100644 index 0000000..a84c94f --- /dev/null +++ b/infrastructure/ansible/vars/all.yml @@ -0,0 +1,34 @@ +--- +# cfxdevkit framework VPS variables. +# Copy to vars/local.yml, fill in TODOs, and never commit local.yml. + +deploy_user: deploy +deploy_group: deploy +deploy_pubkey: "TODO_replace_with_deploy_public_key" + +server_timezone: "UTC" + +base_domain: "cfxdevkit.org" +docs_domain: "www.cfxdevkit.org" +acme_email: "info@cfxdevkit.org" + +app_ports: + docs: 3100 + monitoring: 3002 + cas: 3001 + +docs_image: "ghcr.io/cfxdevkit/framework/docs-site" +docs_image_tag: "edge" + +restic_repository: "/opt/restic-repo" +restic_password: "TODO_set_strong_passphrase" +b2_account_id: "" +b2_application_key: "" + +backup_paths: + - /opt/apps + - /opt/monitoring + +restic_keep_daily: 7 +restic_keep_weekly: 4 +restic_keep_monthly: 3 \ No newline at end of file diff --git a/infrastructure/secrets/README.md b/infrastructure/secrets/README.md index 42debb7..0ffee5c 100644 --- a/infrastructure/secrets/README.md +++ b/infrastructure/secrets/README.md @@ -13,6 +13,16 @@ This directory contains operational policies, templates, and guidance only. Do n Every production secret must have an owner, purpose, storage backend, rotation interval, recovery procedure, and access-review cadence recorded in the deployment runbook that consumes it. +## GitHub Actions Secrets and Variables + +| Name | Type | Used by | Purpose | +| --- | --- | --- | --- | +| `VPS_HOST` | secret | `deploy-docs.yml` | Hetzner VPS public IP or host name | +| `VPS_SSH_KEY` | secret | `deploy-docs.yml` | Private key for the VPS `deploy` user | +| `GHCR_TOKEN` | secret | `deploy-docs.yml` | Optional PAT with `read:packages` when GHCR images are private | +| `GHCR_USERNAME` | variable | `deploy-docs.yml` | Optional GHCR username; defaults to `cfxdevkit` | +| npm trusted publishing | external config | `release.yml`, `changeset-release.yml` | Configure each public package on npmjs.com for OIDC publishing from this repository | + ## Policies - [Rotation](policies/rotation.md) diff --git a/package.json b/package.json index 5fd328f..a5a012e 100644 --- a/package.json +++ b/package.json @@ -25,19 +25,21 @@ "llm": "pnpm --filter @cfxdevkit/llm-tools llm --", "llm:actions": "pnpm --filter @cfxdevkit/llm-tools llm -- actions", "llm:action": "pnpm --filter @cfxdevkit/llm-tools llm -- action", - "llm:architecture": "pnpm --filter @cfxdevkit/llm-tools llm -- architecture", "llm:ask": "pnpm --filter @cfxdevkit/llm-tools llm -- ask", + "llm:changeset": "pnpm --filter @cfxdevkit/llm-tools llm -- changeset", + "llm:ci": "pnpm --filter @cfxdevkit/llm-tools llm -- ci", + "llm:ci-cd": "pnpm --filter @cfxdevkit/llm-tools llm -- ci-cd", "llm:config": "pnpm --filter @cfxdevkit/llm-tools llm -- config", "llm:commit": "pnpm --filter @cfxdevkit/llm-tools llm -- commit", "llm:corpus": "pnpm --filter @cfxdevkit/llm-tools llm -- corpus", - "llm:datasets": "pnpm --filter @cfxdevkit/llm-tools llm -- datasets", "llm:docs": "pnpm --filter @cfxdevkit/llm-tools llm -- docs", + "llm:docs-pipeline": "pnpm --filter @cfxdevkit/llm-tools llm -- docs-pipeline", "llm:docs-upkeep": "pnpm --filter @cfxdevkit/llm-tools llm -- docs-upkeep", "llm:eval": "pnpm --filter @cfxdevkit/llm-tools llm -- eval", "llm:health": "pnpm --filter @cfxdevkit/llm-tools llm -- health", "llm:hotspots": "pnpm --filter @cfxdevkit/llm-tools llm -- hotspots", "llm:models": "pnpm --filter @cfxdevkit/llm-tools llm -- models", - "llm:plan": "pnpm --filter @cfxdevkit/llm-tools llm -- plan", + "llm:release": "pnpm --filter @cfxdevkit/llm-tools llm -- release", "llm:review": "pnpm --filter @cfxdevkit/llm-tools llm -- review", "llm:serve-check": "pnpm --filter @cfxdevkit/llm-tools llm -- serve-check", "llm:test-audit": "pnpm --filter @cfxdevkit/llm-tools llm -- test-audit", @@ -52,7 +54,7 @@ "devDependencies": { "@biomejs/biome": "^2.4.14", "@changesets/cli": "^2.31.0", - "@moonrepo/cli": "^2.2.3", + "@moonrepo/cli": "^2.2.4", "gitnexus": "^1.6.3", "typescript": "^6.0.3", "vite": "^8.0.10", @@ -62,8 +64,11 @@ "pnpm": { "overrides": { "axios": "^1.15.0", + "ip-address": "^10.1.1", + "postcss": "^8.5.10", "tmp": "^0.2.4", - "uuid": "^14.0.0" + "uuid": "^14.0.0", + "zod": "4.3.4" }, "onlyBuiltDependencies": [ "@ladybugdb/core", diff --git a/plan-ciCdVpsInfrastructure.prompt.md b/plan-ciCdVpsInfrastructure.prompt.md new file mode 100644 index 0000000..feb463c --- /dev/null +++ b/plan-ciCdVpsInfrastructure.prompt.md @@ -0,0 +1,137 @@ +# Plan: CI/CD + Hetzner VPS Infrastructure for `cfxdevkit/framework` + +**TL;DR** — Port and adapt devkit's battle-tested CI/CD patterns to the framework monorepo. The VPS (Hetzner CAX11 ARM64) already exists and runs the devkit stack; the framework adds docs hosting and will progressively add npm publishing, project backend containers, and changeset-based releases. The Ansible infra lives in `infrastructure/` and the workflows in `.github/workflows/`. + +--- + +### Phase 1 — VPS Infrastructure (`infrastructure/`) + +*Parallel with Phase 2 — no code dependencies between phases.* + +**1.1 Port Ansible playbook from devkit** +- Copy `devkit/infra/ansible/` → `infrastructure/ansible/` in the framework repo +- Roles to port: `base` (user/SSH/ufw/fail2ban), `docker`, `caddy`, `backups` (restic), `monitoring` (uptime-kuma) +- Same security model as devkit: + - `deploy` user only; root SSH disabled + - ufw — 22/80/443 only + - fail2ban SSH jail + - unattended-upgrades (security-only) +- Update `vars/all.yml` to add `docs` app entry and port, and point DNS `docs.cfxdevkit.org` → VPS IP +- Caddy snippet at `roles/caddy/templates/sites/docs.j2` for `docs.cfxdevkit.org` +- App directory: `/opt/apps/docs/` with a `docker-compose.yml` and `.env` + +**1.2 Document secrets needed** (in `infrastructure/secrets/README.md` — already exists) +| Secret name | Used in | Notes | +|---|---|---| +| `VPS_HOST` | deploy workflows | VPS IP | +| `VPS_SSH_KEY` | deploy workflows | deploy user private key | +| `GHCR_TOKEN` | VPS docker pull (if private) | PAT with `read:packages` | +| `CODECOV_TOKEN` | ci.yml | Coverage upload | +| npm OIDC | release.yml | No secret — repo-level trusted publisher config | + +--- + +### Phase 2 — Docs Deploy Workflow (`.github/workflows/`) + +**2.1 Add `Dockerfile` for docs-site** +- Path: `repos/cfx-tools/packages/docs-site/Dockerfile` +- Multi-stage: `node:24-bookworm-slim` builder → `node:24-bookworm-slim` runner +- `RUN pnpm install --frozen-lockfile && pnpm build` → `CMD ["pnpm", "start"]` +- Expose port 3100 +- Platform: `linux/amd64,linux/arm64` (VPS is ARM64, but amd64 for GitHub runners + Docker Hub flexibility) + +**2.2 Add `build-docs.yml`** +- Triggers: push to `dev`/`main` with path filter on: + - `repos/cfx-tools/packages/docs-site/**` + - `.github/workflows/build-docs.yml` + - `repos/cfx-tools/packages/docs-site/content/wiki/**` (wiki sync output) +- `workflow_dispatch` for manual +- Jobs: + 1. Checkout + pnpm install + 2. Run `node scripts/sync-wiki.mjs` to regenerate wiki MDX + 3. Docker buildx → push to `ghcr.io/cfxdevkit/framework/docs-site:,edge,latest` + 4. Artifact: the built image digest +- Uses `GITHUB_TOKEN` for GHCR push (no extra secret needed for public) + +**2.3 Add `deploy-docs.yml`** +- Triggers: after `build-docs.yml` completes on `main`; `workflow_dispatch` with tag input +- Job: SSH → VPS → `docker compose pull && docker compose up -d --remove-orphans && docker image prune -f` +- Uses `appleboy/ssh-action@v1`, secrets `VPS_HOST` + `VPS_SSH_KEY` +- Pattern identical to devkit's `deploy-cas.yml` + +--- + +### Phase 3 — npm Release Upgrade + +**3.1 Upgrade `release.yml` to OIDC trusted publishing** *(depends on Phase 1 — secrets setup)* +- Remove `NODE_AUTH_TOKEN` secret dependency +- Port devkit's OIDC pattern: `pnpm pack` + `npm publish` (so npm CLI handles OIDC exchange) +- Per-package: iterate all `repos/cfx-*/packages/*/` dirs, skip private/internal packages (e.g., docs-site, moon-config, biome-config, tsconfig) +- Add `id-token: write` permission to the publish job +- Prerequisites: register each npm package as a Trusted Publisher on npmjs.com pointing at this repo + `release.yml` + +**3.2 Add Changesets automation (`changeset-release.yml`)** +- Uses `changesets/action@v1` +- Triggered on push to `main` +- Two modes: + - When changesets exist → open/update a "Version Packages" PR (bumps versions, updates CHANGELOG) + - When the PR merges → runs release.yml (publish to npm) +- Replaces manual `pnpm release patch` flow +- Requires `GITHUB_TOKEN` with `contents: write` + `pull-requests: write` + +--- + +### Phase 4 — Per-project Container Workflows (future, when projects are ready) + +**Pattern (reuse for each project backend):** +- `build-.yml` — path-filtered build → push to GHCR (`edge` on main, semver on tag) +- `deploy-.yml` — SSH deploy after build succeeds +- Reference: devkit's `build-cas.yml` + `deploy-cas.yml` + +*Scope note: CAS, chainbrawler, electro backends are WIP — defer these workflows until the packages are implemented.* + +--- + +### Relevant files to create/modify + +| File | Action | +|---|---| +| `infrastructure/ansible/` | New — port from `devkit/infra/ansible/` | +| `infrastructure/ansible/roles/caddy/templates/sites/docs.j2` | New — Caddy snippet for `docs.cfxdevkit.org` | +| `infrastructure/ansible/vars/all.yml` | New — add docs service + port | +| `repos/cfx-tools/packages/docs-site/Dockerfile` | New — multi-stage Next.js build | +| `.github/workflows/build-docs.yml` | New | +| `.github/workflows/deploy-docs.yml` | New | +| `.github/workflows/release.yml` | Modify — OIDC upgrade | +| `.github/workflows/changeset-release.yml` | New | +| `infrastructure/secrets/README.md` | Modify — document new secrets | + +--- + +### Verification + +1. Run Ansible playbook locally against VPS (dry-run mode: `--check`) +2. Trigger `build-docs.yml` via `workflow_dispatch` — confirm GHCR image appears +3. Trigger `deploy-docs.yml` manually — confirm `https://docs.cfxdevkit.org` serves the docs site +4. Add a test changeset, push to `main` — confirm PR opens with version bump +5. Tag a release, confirm OIDC npm publish runs without `NODE_AUTH_TOKEN` + +--- + +### Decisions to confirm + +**A — Docs domain**: `docs.cfxdevkit.org` vs `www.cfxdevkit.org` + +**B — Docs hosting mode**: Dockerized `next start` (port 3100, Caddy proxy) vs. static export (Caddy file_server). Static export is simpler and has no runtime Node.js process; dockerized is consistent with the rest of the stack and easier to update. **Recommended: Dockerized.** + +**C — VPS scope**: Single VPS for all services (docs + future CAS + monitoring) vs. separate VPS for docs. Given the Hetzner CAX11 is already set up and lightly used, sharing it is the right call for now. + +**D — Release trigger**: Changeset PR merge flow vs. manual semver tag. **Recommended: Changesets** — but manual tag dispatch as escape hatch. + +--- +A) for now let's keep www.cfxdevkit.org, when the project evolve we will move the docs to docs.cfxdevkit.org. +b) let's dockerize the docs site, it will be easier to maintain and update. +c) let's keep using the same VPS for docs and CAS, we can always split later if needed. +d) let's use the changeset PR merge flow for releases, it's more automated and less error-prone than manual tagging. + +*Execution can begin once the VPS SSH key is provided and secrets are added to the repo.* diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 702cf9d..db0449e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,8 +6,11 @@ settings: overrides: axios: ^1.15.0 + ip-address: ^10.1.1 + postcss: ^8.5.10 tmp: ^0.2.4 uuid: ^14.0.0 + zod: 4.3.4 importers: @@ -18,25 +21,25 @@ importers: version: 2.4.14 '@changesets/cli': specifier: ^2.31.0 - version: 2.31.0(@types/node@22.19.17) + version: 2.31.0(@types/node@25.6.0) '@moonrepo/cli': - specifier: ^2.2.3 - version: 2.2.3 + specifier: ^2.2.4 + version: 2.2.4 gitnexus: specifier: ^1.6.3 - version: 1.6.3(graphology-types@0.24.8)(zod@4.3.6) + version: 1.6.3(graphology-types@0.24.8)(zod@4.3.4) typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) projects/examples/apps/hardware-wallet-showcase: dependencies: @@ -54,7 +57,7 @@ importers: version: link:../../../../repos/cfx-keys/packages/wallet '@ledgerhq/hw-app-eth': specifier: ^7.8.1 - version: 7.8.1(react@18.3.1) + version: 7.8.1(react@19.2.5) '@ledgerhq/hw-transport-webhid': specifier: ^6.35.1 version: 6.35.1 @@ -62,14 +65,14 @@ importers: specifier: ^6.0.3 version: 6.0.3 react: - specifier: ^18.3.0 - version: 18.3.1 + specifier: ^19.2.5 + version: 19.2.5 react-dom: specifier: ^18.3.0 - version: 18.3.1(react@18.3.1) + version: 18.3.1(react@19.2.5) viem: specifier: ^2.21.0 - version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) devDependencies: '@biomejs/biome': specifier: ^2.4.14 @@ -81,23 +84,23 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/react': - specifier: ^18.3.0 - version: 18.3.28 + specifier: ^19.2.14 + version: 19.2.14 '@types/react-dom': specifier: ^18.3.0 - version: 18.3.7(@types/react@18.3.28) + version: 18.3.7(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 6.0.1(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) projects/examples/apps/showcase: dependencies: @@ -120,17 +123,17 @@ importers: specifier: ^6.0.3 version: 6.0.3 react: - specifier: ^18.3.0 - version: 18.3.1 + specifier: ^19.2.5 + version: 19.2.5 react-dom: specifier: ^18.3.0 - version: 18.3.1(react@18.3.1) + version: 18.3.1(react@19.2.5) siwe: specifier: ^2.3.2 version: 2.3.2(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) viem: specifier: ^2.21.0 - version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) devDependencies: '@biomejs/biome': specifier: ^2.4.14 @@ -142,23 +145,23 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/react': - specifier: ^18.3.0 - version: 18.3.28 + specifier: ^19.2.14 + version: 19.2.14 '@types/react-dom': specifier: ^18.3.0 - version: 18.3.7(@types/react@18.3.28) + version: 18.3.7(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 6.0.1(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) projects/examples/apps/showcase-backend: dependencies: @@ -181,14 +184,14 @@ importers: specifier: ^2.8.5 version: 2.8.6 express: - specifier: ^4.21.0 - version: 4.22.1 + specifier: ^5.2.1 + version: 5.2.1 siwe: specifier: ^2.3.2 version: 2.3.2(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) viem: specifier: ^2.21.0 - version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) devDependencies: '@biomejs/biome': specifier: ^2.4.14 @@ -203,14 +206,14 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: ^5.0.6 + version: 5.0.6 '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 '@types/supertest': - specifier: ^6.0.2 - version: 6.0.3 + specifier: ^7.2.0 + version: 7.2.0 supertest: specifier: ^7.0.0 version: 7.2.2 @@ -222,13 +225,13 @@ importers: version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) projects/examples/apps/showcase-browser: dependencies: @@ -249,22 +252,22 @@ importers: version: link:../../../../repos/cfx-keys/packages/wallet '@cfxjs/use-wallet-react': specifier: ^0.0.9 - version: 0.0.9(decimal.js@10.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zustand@5.0.12(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1))) + version: 0.0.9(decimal.js@10.6.0)(react-dom@18.3.1(react@19.2.5))(react@19.2.5)(zustand@5.0.12(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.4.0(react@19.2.5))) '@tanstack/react-query': - specifier: ^5.62.0 - version: 5.100.6(react@18.3.1) + specifier: ^5.100.9 + version: 5.100.9(react@19.2.5) react: - specifier: ^18.3.0 - version: 18.3.1 + specifier: ^19.2.5 + version: 19.2.5 react-dom: specifier: ^18.3.0 - version: 18.3.1(react@18.3.1) + version: 18.3.1(react@19.2.5) viem: specifier: ^2.21.0 - version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) wagmi: - specifier: ^2.14.0 - version: 2.19.5(@tanstack/query-core@5.100.6)(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6))(zod@4.3.6) + specifier: ^3.6.9 + version: 3.6.9(@coinbase/wallet-sdk@4.3.6(@types/react@19.2.14)(bufferutil@4.1.0)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-provider@0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@tanstack/query-core@5.100.9)(@tanstack/react-query@5.100.9(react@19.2.5))(@types/react@19.2.14)(@walletconnect/ethereum-provider@2.21.1(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(immer@11.1.5)(porto@0.2.35)(react@19.2.5)(typescript@6.0.3)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)) devDependencies: '@biomejs/biome': specifier: ^2.4.14 @@ -276,23 +279,23 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/react': - specifier: ^18.3.0 - version: 18.3.28 + specifier: ^19.2.14 + version: 19.2.14 '@types/react-dom': specifier: ^18.3.0 - version: 18.3.7(@types/react@18.3.28) + version: 18.3.7(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 6.0.1(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) projects/examples/apps/showcase-gateway: dependencies: @@ -300,11 +303,11 @@ importers: specifier: workspace:* version: link:../../packages/showcase-ui react: - specifier: ^18.3.0 - version: 18.3.1 + specifier: ^19.2.5 + version: 19.2.5 react-dom: specifier: ^18.3.0 - version: 18.3.1(react@18.3.1) + version: 18.3.1(react@19.2.5) devDependencies: '@biomejs/biome': specifier: ^2.4.14 @@ -316,23 +319,23 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/react': - specifier: ^18.3.0 - version: 18.3.28 + specifier: ^19.2.14 + version: 19.2.14 '@types/react-dom': specifier: ^18.3.0 - version: 18.3.7(@types/react@18.3.28) + version: 18.3.7(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 6.0.1(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) projects/examples/apps/showcase-stack: dependencies: @@ -353,28 +356,28 @@ importers: version: link:../../../../repos/cfx-keys/packages/wallet '@cfxjs/use-wallet-react': specifier: ^0.0.9 - version: 0.0.9(decimal.js@10.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zustand@5.0.12(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1))) + version: 0.0.9(decimal.js@10.6.0)(react-dom@18.3.1(react@19.2.5))(react@19.2.5)(zustand@5.0.12(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.6.0(react@19.2.5))) '@tanstack/react-query': - specifier: ^5.62.0 - version: 5.100.6(react@18.3.1) + specifier: ^5.100.9 + version: 5.100.9(react@19.2.5) buffer: specifier: ^6.0.3 version: 6.0.3 react: - specifier: ^18.3.0 - version: 18.3.1 + specifier: ^19.2.5 + version: 19.2.5 react-dom: specifier: ^18.3.0 - version: 18.3.1(react@18.3.1) + version: 18.3.1(react@19.2.5) siwe: specifier: ^2.3.2 version: 2.3.2(ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) viem: specifier: ^2.21.0 - version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) + version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) wagmi: - specifier: ^2.14.0 - version: 2.19.5(@tanstack/query-core@5.100.6)(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) + specifier: ^3.6.9 + version: 3.6.9(@coinbase/wallet-sdk@4.3.6(@types/react@19.2.14)(bufferutil@4.1.0)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.6.0(react@19.2.5))(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-provider@0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@tanstack/query-core@5.100.9)(@tanstack/react-query@5.100.9(react@19.2.5))(@types/react@19.2.14)(@walletconnect/ethereum-provider@2.21.1(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(immer@11.1.5)(porto@0.2.35)(react@19.2.5)(typescript@6.0.3)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)) devDependencies: '@biomejs/biome': specifier: ^2.4.14 @@ -386,23 +389,23 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/react': - specifier: ^18.3.0 - version: 18.3.28 + specifier: ^19.2.14 + version: 19.2.14 '@types/react-dom': specifier: ^18.3.0 - version: 18.3.7(@types/react@18.3.28) + version: 18.3.7(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 6.0.1(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) projects/examples/packages/showcase-ui: devDependencies: @@ -417,34 +420,34 @@ importers: version: link:../../../../tools/tsconfig '@cfxjs/use-wallet-react': specifier: ^0.0.9 - version: 0.0.9(decimal.js@10.6.0)(react-dom@19.0.0(react@18.3.1))(react@18.3.1)(zustand@5.0.12(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1))) + version: 0.0.9(decimal.js@10.6.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zustand@5.0.12(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.6.0(react@19.2.5))) '@tanstack/react-query': - specifier: ^5.62.0 - version: 5.100.6(react@18.3.1) + specifier: ^5.100.9 + version: 5.100.9(react@19.2.5) '@types/react': - specifier: ^18.3.0 - version: 18.3.28 + specifier: ^19.2.14 + version: 19.2.14 react: - specifier: ^18.3.0 - version: 18.3.1 + specifier: ^19.2.5 + version: 19.2.5 typescript: specifier: ^6.0.3 version: 6.0.3 viem: specifier: ^2.21.0 - version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) + version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) wagmi: - specifier: ^2.14.0 - version: 2.19.5(@tanstack/query-core@5.100.6)(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) + specifier: ^3.6.9 + version: 3.6.9(@coinbase/wallet-sdk@4.3.6(@types/react@19.2.14)(bufferutil@4.1.0)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.6.0(react@19.2.5))(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-provider@0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@tanstack/query-core@5.100.9)(@tanstack/react-query@5.100.9(react@19.2.5))(@types/react@19.2.14)(@walletconnect/ethereum-provider@2.21.1(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(immer@11.1.5)(porto@0.2.35)(react@19.2.5)(typescript@6.0.3)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)) repos/cfx-core/packages/core: dependencies: @@ -452,14 +455,14 @@ importers: specifier: ^1.5.0 version: 1.7.0 '@scure/bip39': - specifier: ^1.4.0 - version: 1.6.0 + specifier: ^2.2.0 + version: 2.2.0 cive: specifier: ^0.8.1 version: 0.8.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) viem: specifier: ^2.21.0 - version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) devDependencies: '@biomejs/biome': specifier: ^2.4.14 @@ -471,20 +474,23 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 + '@vitest/coverage-v8': + specifier: ^4.1.5 + version: 4.1.5(vitest@4.1.5) typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-core/packages/devnode: dependencies: @@ -496,7 +502,7 @@ importers: version: 0.8.0(typescript@6.0.3) cive: specifier: ^0.8.1 - version: 0.8.1(typescript@6.0.3) + version: 0.8.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) devDependencies: '@biomejs/biome': specifier: ^2.4.14 @@ -508,20 +514,20 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-core/packages/executor: dependencies: @@ -539,20 +545,20 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-core/packages/protocol: dependencies: @@ -570,20 +576,20 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-core/packages/testing: dependencies: @@ -607,20 +613,20 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-domain/packages/automation: dependencies: @@ -650,20 +656,20 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-domain/packages/game-engine: dependencies: @@ -684,20 +690,20 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-domain/packages/hardware-bridge: dependencies: @@ -715,20 +721,20 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-keys/packages/services: dependencies: @@ -737,13 +743,13 @@ importers: version: link:../../../cfx-core/packages/core '@ledgerhq/hw-app-eth': specifier: ^7.8.1 - version: 7.8.1 + version: 7.8.1(react@19.2.5) '@ledgerhq/hw-transport-node-hid': specifier: ^6.33.1 version: 6.33.1 '@noble/ciphers': - specifier: ^1.3.0 - version: 1.3.0 + specifier: ^2.2.0 + version: 2.2.0 '@noble/hashes': specifier: ^1.8.0 version: 1.8.0 @@ -752,7 +758,7 @@ importers: version: 0.8.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) viem: specifier: ^2.21.0 - version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) devDependencies: '@biomejs/biome': specifier: ^2.4.14 @@ -764,20 +770,20 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-keys/packages/wallet: dependencies: @@ -792,7 +798,7 @@ importers: version: 1.8.0 viem: specifier: ^2.21.0 - version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) devDependencies: '@biomejs/biome': specifier: ^2.4.14 @@ -804,26 +810,26 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-llm/packages/llm-tools: dependencies: '@mariozechner/pi-coding-agent': - specifier: ^0.72.0 - version: 0.72.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.6) + specifier: ^0.73.0 + version: 0.73.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.4))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.4) tsx: specifier: ^4.20.6 version: 4.21.0 @@ -838,26 +844,26 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-solidity/packages/abis: dependencies: viem: specifier: ^2.21.0 - version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) devDependencies: '@biomejs/biome': specifier: ^2.4.14 @@ -869,20 +875,20 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-solidity/packages/compiler: dependencies: @@ -894,7 +900,7 @@ importers: version: 0.8.35 viem: specifier: ^2.21.0 - version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) devDependencies: '@biomejs/biome': specifier: ^2.4.14 @@ -912,20 +918,20 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-solidity/packages/contracts: dependencies: @@ -937,7 +943,7 @@ importers: version: link:../../../cfx-core/packages/core viem: specifier: ^2.21.0 - version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + version: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) devDependencies: '@biomejs/biome': specifier: ^2.4.14 @@ -949,20 +955,20 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-solidity/packages/contracts-extract: devDependencies: @@ -976,20 +982,20 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-tools/packages/cli: dependencies: @@ -1007,20 +1013,54 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + + repos/cfx-tools/packages/docs-site: + dependencies: + mermaid: + specifier: ^11.4.1 + version: 11.14.0 + next: + specifier: ^15.1.6 + version: 15.5.15(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + nextra: + specifier: ^4.2.17 + version: 4.6.1(next@15.5.15(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + nextra-theme-docs: + specifier: ^4.2.17 + version: 4.6.1(@types/react@19.2.14)(immer@11.1.5)(next@15.5.15(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(nextra@4.6.1(next@15.5.15(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(use-sync-external-store@1.6.0(react@19.2.5)) + react: + specifier: 19.2.5 + version: 19.2.5 + react-dom: + specifier: 19.2.5 + version: 19.2.5(react@19.2.5) + devDependencies: + '@types/node': + specifier: ^25.6.0 + version: 25.6.0 + '@types/react': + specifier: ^19.2.14 + version: 19.2.14 + '@types/react-dom': + specifier: ^19.0.2 + version: 19.2.3(@types/react@19.2.14) + typescript: + specifier: ^5.7.3 + version: 5.9.3 repos/cfx-tools/packages/mcp-server: dependencies: @@ -1053,20 +1093,20 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-tools/packages/scaffold-cli: devDependencies: @@ -1080,20 +1120,20 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-tools/packages/vscode-extension: dependencies: @@ -1126,8 +1166,8 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 '@types/vscode': specifier: ^1.85.0 version: 1.118.0 @@ -1150,7 +1190,7 @@ importers: specifier: workspace:^ version: link:../wallet-connect react: - specifier: ^19.0.0 + specifier: ^19.2.5 version: 19.2.5 devDependencies: '@biomejs/biome': @@ -1166,23 +1206,23 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 '@types/react': - specifier: ^19.0.0 + specifier: ^19.2.14 version: 19.2.14 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-ui/packages/react: dependencies: @@ -1190,7 +1230,7 @@ importers: specifier: workspace:^ version: link:../../../cfx-core/packages/core react: - specifier: ^19.0.0 + specifier: ^19.2.5 version: 19.2.5 devDependencies: '@biomejs/biome': @@ -1206,28 +1246,28 @@ importers: specifier: workspace:^ version: link:../../../cfx-keys/packages/wallet '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 '@types/react': - specifier: ^19.0.0 + specifier: ^19.2.14 version: 19.2.14 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-ui/packages/theme: dependencies: react: - specifier: ^19.0.0 + specifier: ^19.2.5 version: 19.2.5 devDependencies: '@biomejs/biome': @@ -1240,23 +1280,23 @@ importers: specifier: workspace:* version: link:../../../../tools/tsconfig '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 '@types/react': - specifier: ^19.0.0 + specifier: ^19.2.14 version: 19.2.14 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) repos/cfx-ui/packages/wallet-connect: dependencies: @@ -1264,7 +1304,7 @@ importers: specifier: workspace:^ version: link:../../../cfx-core/packages/core react: - specifier: ^19.0.0 + specifier: ^19.2.5 version: 19.2.5 devDependencies: '@biomejs/biome': @@ -1280,23 +1320,23 @@ importers: specifier: workspace:^ version: link:../../../cfx-keys/packages/wallet '@types/node': - specifier: ^22.10.0 - version: 22.19.17 + specifier: ^25.6.0 + version: 25.6.0 '@types/react': - specifier: ^19.0.0 + specifier: ^19.2.14 version: 19.2.14 typescript: specifier: ^6.0.3 version: 6.0.3 vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) vite-plugin-dts: specifier: ^5.0.0 - version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) tools/biome-config: {} @@ -1312,11 +1352,14 @@ packages: '@adraffy/ens-normalize@1.11.1': resolution: {integrity: sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==} + '@antfu/install-pkg@1.1.0': + resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} + '@anthropic-ai/sdk@0.91.1': resolution: {integrity: sha512-LAmu761tSN9r66ixvmciswUj/ZC+1Q4iAfpedTfSVLeswRwnY3n2Nb6Tsk+cLPP28aLOPWeMgIuTuCcMC6W/iw==} hasBin: true peerDependencies: - zod: ^3.25.0 || ^4.0.0 + zod: 4.3.4 peerDependenciesMeta: zod: optional: true @@ -1466,12 +1509,30 @@ packages: resolution: {integrity: sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ==} engines: {node: '>=18.0.0'} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.3': + resolution: {integrity: sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/runtime@7.29.2': resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} engines: {node: '>=6.9.0'} - '@base-org/account@2.4.0': - resolution: {integrity: sha512-A4Umpi8B9/pqR78D1Yoze4xHyQaujioVRqqO3d6xuDFw9VRtjg6tK3bPlwE0aW+nVH/ntllCpPa2PbI8Rnjcug==} + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + + '@bcoe/v8-coverage@1.0.2': + resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} + engines: {node: '>=18'} '@biomejs/biome@2.4.14': resolution: {integrity: sha512-TmAvxOEgrpLypzVGJ8FulIZnlyA9TxrO1hyqYrCz9r+bwma9xXxuLA5IuYnj55XQneFx460KjRbx6SWGLkg3bQ==} @@ -1495,24 +1556,28 @@ packages: engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] + libc: [musl] '@biomejs/cli-linux-arm64@2.4.14': resolution: {integrity: sha512-2TELhZnW5RSLL063l9rc5xLpA0ZIw0Ccwy/0q384rvNAgFw3yI76bd59547yxowdQr5MNPET/xDLrLuvgSeeWQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] + libc: [glibc] '@biomejs/cli-linux-x64-musl@2.4.14': resolution: {integrity: sha512-R6BWgJdQOwW9ulJatuTVrQkjnODjqHZkKNOqb1sz++3Noe5LYd0i3PchnOBUCYAPHoPWHhjJqbdZlHEu0hpjdA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] + libc: [musl] '@biomejs/cli-linux-x64@2.4.14': resolution: {integrity: sha512-zHrlQZDBDUz4OLAraYpWKcnLS6HOewBFWYOzY91d1ZjdqZwibOyb6BEu6WuWLugyo0P3riCmsbV9UqV1cSXwQg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] + libc: [glibc] '@biomejs/cli-win32-arm64@2.4.14': resolution: {integrity: sha512-M3EH5hqOI/F/FUA2u4xcLoUgmxd218mvuj/6JL7Hv2toQvr2/AdOvKSpGkoRuWFCtQPVa+ZqkEV3Q5xBA9+XSA==} @@ -1529,6 +1594,9 @@ packages: '@borewit/text-codec@0.2.2': resolution: {integrity: sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==} + '@braintree/sanitize-url@7.1.2': + resolution: {integrity: sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==} + '@cfxjs/use-wallet-react@0.0.9': resolution: {integrity: sha512-Udz+4/YgtPfQgiRs+D2dYXygGqAYLnyAldNdiaa1Zapa2irqhQksQKbEIeqFIn+gWlgKcX2UpreKgl6i9d7r5g==} peerDependencies: @@ -1592,21 +1660,24 @@ packages: '@changesets/write@0.4.0': resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} - '@coinbase/cdp-sdk@1.48.2': - resolution: {integrity: sha512-phsHxF9q4CvF8H1b//aepxy8J/pdORT+btdqv7wbQ1YOi44QYfenima15N8Ok9lZE/XqY81BebsaBkyjqBJgig==} + '@chevrotain/cst-dts-gen@12.0.0': + resolution: {integrity: sha512-fSL4KXjTl7cDgf0B5Rip9Q05BOrYvkJV/RrBTE/bKDN096E4hN/ySpcBK5B24T76dlQ2i32Zc3PAE27jFnFrKg==} + + '@chevrotain/gast@12.0.0': + resolution: {integrity: sha512-1ne/m3XsIT8aEdrvT33so0GUC+wkctpUPK6zU9IlOyJLUbR0rg4G7ZiApiJbggpgPir9ERy3FRjT6T7lpgetnQ==} + + '@chevrotain/regexp-to-ast@12.0.0': + resolution: {integrity: sha512-p+EW9MaJwgaHguhoqwOtx/FwuGr+DnNn857sXWOi/mClXIkPGl3rn7hGNWvo31HA3vyeQxjqe+H36yZJwYU8cA==} + + '@chevrotain/types@12.0.0': + resolution: {integrity: sha512-S+04vjFQKeuYw0/eW3U52LkAHQsB1ASxsPGsLPUyQgrZ2iNNibQrsidruDzjEX2JYfespXMG0eZmXlhA6z7nWA==} - '@coinbase/wallet-sdk@3.9.3': - resolution: {integrity: sha512-N/A2DRIf0Y3PHc1XAMvbBUu4zisna6qAdqABMZwBMNEfWrXpAwx16pZGkYCLGE+Rvv1edbcB2LYDRnACNcmCiw==} + '@chevrotain/utils@12.0.0': + resolution: {integrity: sha512-lB59uJoaGIfOOL9knQqQRfhl9g7x8/wqFkp13zTdkRu1huG9kg6IJs1O8hqj9rs6h7orGxHJUKb+mX3rPbWGhA==} '@coinbase/wallet-sdk@4.3.6': resolution: {integrity: sha512-4q8BNG1ViL4mSAAvPAtpwlOs1gpC+67eQtgIwNvT3xyeyFFd+guwkc8bcX5rTmQhXpqnhzC4f0obACbP9CqMSA==} - '@ecies/ciphers@0.2.6': - resolution: {integrity: sha512-patgsRPKGkhhoBjETV4XxD0En4ui5fbX0hzayqI3M8tvNMGUoUvmyYAIWwlxBc1KX5cturfqByYdj5bYGRpN9g==} - engines: {bun: '>=1', deno: '>=2.7.10', node: '>=16'} - peerDependencies: - '@noble/ciphers': ^1.0.0 - '@emnapi/core@1.10.0': resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} @@ -1772,22 +1843,6 @@ packages: cpu: [x64] os: [win32] - '@ethereumjs/common@3.2.0': - resolution: {integrity: sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==} - - '@ethereumjs/rlp@4.0.1': - resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==} - engines: {node: '>=14'} - hasBin: true - - '@ethereumjs/tx@4.2.0': - resolution: {integrity: sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw==} - engines: {node: '>=14'} - - '@ethereumjs/util@8.1.0': - resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==} - engines: {node: '>=14'} - '@ethersproject/abi@5.8.0': resolution: {integrity: sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q==} @@ -1842,10 +1897,29 @@ packages: '@ethersproject/web@5.8.0': resolution: {integrity: sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw==} - '@gemini-wallet/core@0.3.2': - resolution: {integrity: sha512-Z4aHi3ECFf5oWYWM3F1rW83GJfB9OvhBYPTmb5q+VyK3uvzvS48lwo+jwh2eOoCRWEuT/crpb9Vwp2QaS5JqgQ==} + '@floating-ui/core@1.7.5': + resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} + + '@floating-ui/dom@1.7.6': + resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} + + '@floating-ui/react-dom@2.1.8': + resolution: {integrity: sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==} peerDependencies: - viem: '>=2.0.0' + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/react@0.26.28': + resolution: {integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.11': + resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} + + '@formatjs/intl-localematcher@0.6.2': + resolution: {integrity: sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==} '@google/genai@1.51.0': resolution: {integrity: sha512-vTZZF3CSimN7cn2zsLpW2p5WF0eZa5Gz69ITMPCNHpPrDlAstOfGifSfi0p/s9Z9400f7xJRkgvkQNrcM7pJ6w==} @@ -1856,6 +1930,13 @@ packages: '@modelcontextprotocol/sdk': optional: true + '@headlessui/react@2.2.10': + resolution: {integrity: sha512-5pVLNK9wlpxTUTy9GpgbX/SdcRh+HBnPktjM2wbiLTH4p+2EPHBO1aoSryUCuKUIItdDWO9ITlhUL8UnUN/oIA==} + engines: {node: '>=10'} + peerDependencies: + react: ^18 || ^19 || ^19.0.0-rc + react-dom: ^18 || ^19 || ^19.0.0-rc + '@hono/node-server@1.19.14': resolution: {integrity: sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==} engines: {node: '>=18.14.1'} @@ -1872,6 +1953,12 @@ packages: '@huggingface/transformers@4.2.0': resolution: {integrity: sha512-8BRCoBMH0XsWaEIamuR0LrJGAfftgHAfb2Vrffy0VKlSAE/MnUJ5/h/zTfEP3fDIft+nk7TqB8xXEyABGitBjQ==} + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + '@iconify/utils@3.1.2': + resolution: {integrity: sha512-jVf75icVVgSVGf9+QWBeCHdFL35yZ06HMHl9sCa059pITTP781lOacvRazfwAmXDKiBiUdQQMWVnuiw/RaQNhQ==} + '@img/colour@1.1.0': resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} engines: {node: '>=18'} @@ -1902,89 +1989,105 @@ packages: resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-arm@1.2.4': resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-ppc64@1.2.4': resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} cpu: [ppc64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-riscv64@1.2.4': resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} cpu: [riscv64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-s390x@1.2.4': resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-x64@1.2.4': resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linuxmusl-arm64@1.2.4': resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.2.4': resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-linux-arm64@0.34.5': resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-linux-arm@0.34.5': resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-linux-ppc64@0.34.5': resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@img/sharp-linux-riscv64@0.34.5': resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [riscv64] os: [linux] + libc: [glibc] '@img/sharp-linux-s390x@0.34.5': resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-linux-x64@0.34.5': resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-linuxmusl-arm64@0.34.5': resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-linuxmusl-x64@0.34.5': resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-wasm32@0.34.5': resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} @@ -2018,6 +2121,15 @@ packages: '@types/node': optional: true + '@internationalized/date@3.12.1': + resolution: {integrity: sha512-6IedsVWXyq4P9Tj+TxuU8WGWM70hYLl12nbYU8jkikVpa6WXapFazPUcHUMDMoWftIDE2ILDkFFte6W2nFCkRQ==} + + '@internationalized/number@3.6.6': + resolution: {integrity: sha512-iFgmQaXHE0vytNfpLZWOC2mEJCBRzcUxt53Xf/yCXG93lRvqas237i3r7X4RKMwO3txiyZD4mQjKAByFv6UGSQ==} + + '@internationalized/string@3.2.8': + resolution: {integrity: sha512-NdbMQUSfXLYIQol5VyMtinm9pZDciiMfN7RtmSuSB78io1hqwJ0naYfxyW6vgxWBkzWymQa/3uLDlbfmshtCaA==} + '@isaacs/fs-minipass@4.0.1': resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} @@ -2137,30 +2249,35 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@mariozechner/clipboard-linux-arm64-musl@0.3.2': resolution: {integrity: sha512-0/Gi5Xq2V6goXBop19ePoHvXsmJD9SzFlO3S+d6+T2b+BlPcpOu3Oa0wTjl+cZrLAAEzA86aPNBI+VVAFDFPKw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@mariozechner/clipboard-linux-riscv64-gnu@0.3.2': resolution: {integrity: sha512-2AFFiXB24qf0zOZsxI1GJGb9wQGlOJyN6UwoXqmKS3dpQi/l6ix30IzDDA4c4ZcCcx4D+9HLYXhC1w7Sov8pXA==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] + libc: [glibc] '@mariozechner/clipboard-linux-x64-gnu@0.3.2': resolution: {integrity: sha512-v6fVnsn7WMGg73Dab8QMwyFce7tzGfgEixKgzLP8f1GJqkJZi5zO4k4FOHzSgUufgLil63gnxvMpjWkgfeQN7A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@mariozechner/clipboard-linux-x64-musl@0.3.2': resolution: {integrity: sha512-xVUtnoMQ8v2JVyfJLKKXACA6avdnchdbBkTsZs8BgJQo29qwCp5NIHAUO8gbJ40iaEGToW5RlmVk2M9V0HsHEw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@mariozechner/clipboard-win32-arm64-msvc@0.3.2': resolution: {integrity: sha512-AEgg95TNi8TGgak2wSXZkXKCvAUTjWoU1Pqb0ON7JHrX78p616XUFNTJohtIon3e0w6k0pYPZeCuqRCza/Tqeg==} @@ -2182,107 +2299,29 @@ packages: resolution: {integrity: sha512-faGUlTcXka5l7rv0lP3K3vGW/ejRuOS24RR2aSFWREUQqzjgdsuWNo/IiPqL3kWRGt6Ahl2+qcDAwtdeWeuGUw==} hasBin: true - '@mariozechner/pi-agent-core@0.72.0': - resolution: {integrity: sha512-JQ5XClWNMAQDCnwWHF9H7UpRC9EYXlLC+k900pbqydq0sexydZ/qfZvrJR61jKx3E/gotUINsNNiZHuwahvNwA==} + '@mariozechner/pi-agent-core@0.73.0': + resolution: {integrity: sha512-ugcpvq0X9fr9fTSK29/3S4+KU/eeVMrBb7ZU3HqiF3xD7I1GlgumLj4FYmDrYSEA6+rzgNWlJUKwjKh9o0Z6AA==} engines: {node: '>=20.0.0'} - '@mariozechner/pi-ai@0.72.0': - resolution: {integrity: sha512-7YJJ2t4OlMVETFA7YGXcuQLJZi600iu6P/OPp9mWb+1U/uTcpEcSOlm/gAzrU0uJsDBsz7fyJRgIIwbGo2p59g==} + '@mariozechner/pi-ai@0.73.0': + resolution: {integrity: sha512-phKOpcde/ssz6UYszkmaGJ9LF9mgt/AP8LrtSwsfap+kMSeFfSQ2/mCSBT1mLJ2BqVuff9uXs1/+op1aQeaafQ==} engines: {node: '>=20.0.0'} hasBin: true - '@mariozechner/pi-coding-agent@0.72.0': - resolution: {integrity: sha512-3CrzUZZghoKq1AvWBAMCw+hTSpsOfkgr2uOtIEDgnaqSZ6cuAVu1gSfb+SUA4ElmW3TxOsgLmoMHq5fiGF2nYQ==} + '@mariozechner/pi-coding-agent@0.73.0': + resolution: {integrity: sha512-Fs2dRIgtjDT8X5VDGNGzxj251B0FvkRsgX03YJv1FK4wg5Maj+jkf8/5A6tbPnPcXsCgs41xxJRf3tF5vJRccA==} engines: {node: '>=20.6.0'} hasBin: true - '@mariozechner/pi-tui@0.72.0': - resolution: {integrity: sha512-uwCU/+qYrbHvmgQmIJL9DCtj2Q2EgvgBaz/8IVpKqhTT15JjBlY6M9Kems+2QtY/Q/eermTjswrUhxj1s3HE1w==} + '@mariozechner/pi-tui@0.73.0': + resolution: {integrity: sha512-St1W+tMPKHatfK+lblsKfL+SsFyFVMK2tW6xHpBfCiMuevbOCRo/CMatso7mu1642UO04ncmfCrrpUK5L9aoog==} engines: {node: '>=20.0.0'} - '@metamask/eth-json-rpc-provider@1.0.1': - resolution: {integrity: sha512-whiUMPlAOrVGmX8aKYVPvlKyG4CpQXiNNyt74vE1xb5sPvmx5oA7B/kOi/JdBvhGQq97U1/AVdXEdk2zkP8qyA==} - engines: {node: '>=14.0.0'} - - '@metamask/json-rpc-engine@7.3.3': - resolution: {integrity: sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg==} - engines: {node: '>=16.0.0'} - - '@metamask/json-rpc-engine@8.0.2': - resolution: {integrity: sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==} - engines: {node: '>=16.0.0'} - - '@metamask/json-rpc-middleware-stream@7.0.2': - resolution: {integrity: sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg==} - engines: {node: '>=16.0.0'} - - '@metamask/object-multiplex@2.1.0': - resolution: {integrity: sha512-4vKIiv0DQxljcXwfpnbsXcfa5glMj5Zg9mqn4xpIWqkv6uJ2ma5/GtUfLFSxhlxnR8asRMv8dDmWya1Tc1sDFA==} - engines: {node: ^16.20 || ^18.16 || >=20} - - '@metamask/onboarding@1.0.1': - resolution: {integrity: sha512-FqHhAsCI+Vacx2qa5mAFcWNSrTcVGMNjzxVgaX8ECSny/BJ9/vgXP9V7WF/8vb9DltPeQkxr+Fnfmm6GHfmdTQ==} - - '@metamask/providers@16.1.0': - resolution: {integrity: sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==} - engines: {node: ^18.18 || >=20} - - '@metamask/rpc-errors@6.4.0': - resolution: {integrity: sha512-1ugFO1UoirU2esS3juZanS/Fo8C8XYocCuBpfZI5N7ECtoG+zu0wF+uWZASik6CkO6w9n/Iebt4iI4pT0vptpg==} - engines: {node: '>=16.0.0'} - - '@metamask/rpc-errors@7.0.2': - resolution: {integrity: sha512-YYYHsVYd46XwY2QZzpGeU4PSdRhHdxnzkB8piWGvJW2xbikZ3R+epAYEL4q/K8bh9JPTucsUdwRFnACor1aOYw==} - engines: {node: ^18.20 || ^20.17 || >=22} - - '@metamask/safe-event-emitter@2.0.0': - resolution: {integrity: sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==} - - '@metamask/safe-event-emitter@3.1.2': - resolution: {integrity: sha512-5yb2gMI1BDm0JybZezeoX/3XhPDOtTbcFvpTXM9kxsoZjPZFh4XciqRbpD6N86HYZqWDhEaKUDuOyR0sQHEjMA==} - engines: {node: '>=12.0.0'} - - '@metamask/sdk-analytics@0.0.5': - resolution: {integrity: sha512-fDah+keS1RjSUlC8GmYXvx6Y26s3Ax1U9hGpWb6GSY5SAdmTSIqp2CvYy6yW0WgLhnYhW+6xERuD0eVqV63QIQ==} - deprecated: No longer maintained, superseded by @metamask/connect-analytics - - '@metamask/sdk-communication-layer@0.33.1': - resolution: {integrity: sha512-0bI9hkysxcfbZ/lk0T2+aKVo1j0ynQVTuB3sJ5ssPWlz+Z3VwveCkP1O7EVu1tsVVCb0YV5WxK9zmURu2FIiaA==} - deprecated: No longer maintained, superseded by https://docs.metamask.io/metamask-connect - peerDependencies: - cross-fetch: ^4.0.0 - eciesjs: '*' - eventemitter2: ^6.4.9 - readable-stream: ^3.6.2 - socket.io-client: ^4.5.1 - - '@metamask/sdk-install-modal-web@0.32.1': - resolution: {integrity: sha512-MGmAo6qSjf1tuYXhCu2EZLftq+DSt5Z7fsIKr2P+lDgdTPWgLfZB1tJKzNcwKKOdf6q9Qmmxn7lJuI/gq5LrKw==} - deprecated: No longer maintained, superseded by https://docs.metamask.io/metamask-connect - - '@metamask/sdk@0.33.1': - resolution: {integrity: sha512-1mcOQVGr9rSrVcbKPNVzbZ8eCl1K0FATsYH3WJ/MH4WcZDWGECWrXJPNMZoEAkLxWiMe8jOQBumg2pmcDa9zpQ==} - deprecated: No longer maintained, superseded by https://docs.metamask.io/metamask-connect - - '@metamask/superstruct@3.2.1': - resolution: {integrity: sha512-fLgJnDOXFmuVlB38rUN5SmU7hAFQcCjrg3Vrxz67KTY7YHFnSNEKvX4avmEBdOI0yTCxZjwMCFEqsC8k2+Wd3g==} - engines: {node: '>=16.0.0'} - - '@metamask/utils@11.11.0': - resolution: {integrity: sha512-0nF2CWjWQr/m0Y2t2lJnBTU1/CZPPTvKvcESLplyWe/tyeb8zFOi/FeneDmaFnML6LYRIGZU6f+xR0jKAIUZfw==} - engines: {node: ^18.18 || ^20.14 || >=22} - - '@metamask/utils@5.0.2': - resolution: {integrity: sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g==} - engines: {node: '>=14.0.0'} - - '@metamask/utils@8.5.0': - resolution: {integrity: sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==} - engines: {node: '>=16.0.0'} + '@mdx-js/mdx@3.1.1': + resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} - '@metamask/utils@9.3.0': - resolution: {integrity: sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g==} - engines: {node: '>=16.0.0'} + '@mermaid-js/parser@1.1.0': + resolution: {integrity: sha512-gxK9ZX2+Fex5zu8LhRQoMeMPEHbc73UKZ0FQ54YrQtUxE1VVhMwzeNtKRPAu5aXks4FasbMe4xB4bWrmq6Jlxw==} '@microsoft/api-extractor-model@7.33.8': resolution: {integrity: sha512-aIcoQggPyer3B6Ze3usz0YWC/oBwUHfRH5ETUsr+oT2BRA6SfTJl7IKPcPZkX4UR+PohowzW4uMxsvjrn8vm+w==} @@ -2305,56 +2344,215 @@ packages: engines: {node: '>=18'} peerDependencies: '@cfworker/json-schema': ^4.1.1 - zod: ^3.25 || ^4.0 + zod: 4.3.4 peerDependenciesMeta: '@cfworker/json-schema': optional: true - '@moonrepo/cli@2.2.3': - resolution: {integrity: sha512-Y2yX2yw2ieRQ8/LHmlLgJT0RGPcPbKlrmpTw/trsrMuW5UElzqgObztf1bB3jbOfTVjcbWmNqKP7aDDST0u3/w==} + '@moonrepo/cli@2.2.4': + resolution: {integrity: sha512-eVCFC/JdFM1gOm+n2pZZVlbBXM9Fyqy9OphbgIl5qxqfrj0jlNHMGaDwBiYOlGmi+RqmwAl6uToFrsjqY2+bgw==} hasBin: true - '@moonrepo/core-linux-arm64-gnu@2.2.3': - resolution: {integrity: sha512-O2mLzDvgJd7Bgxkvq37RJsm9XAG5avA+7cD49ZIgeBKlGD8+3KZ+DmOz5SD1CELaxXrgOSh2c2vorlBzaXNmZA==} + '@moonrepo/core-linux-arm64-gnu@2.2.4': + resolution: {integrity: sha512-Mkua5xhOyxgnSJYslIVQNe7nk4dKL717EyJFBaziVa9+a9bJBqOV9Zp6UGBYERJPU3UQvrA/PV2rITizjQ3eSg==} cpu: [arm64] os: [linux] + libc: [glibc] - '@moonrepo/core-linux-arm64-musl@2.2.3': - resolution: {integrity: sha512-QD5mStzFfkhDb5Fha8Jw/rX3SlnOkSKsyBJWsMWn5WahCqV0NMOOOf4PrAAywO3NTKDorGEipqGJdqec7lIizg==} + '@moonrepo/core-linux-arm64-musl@2.2.4': + resolution: {integrity: sha512-40NUVEIUq6Ef5IYXdrsxh5/xpZeLpPV+GKxsHCicyvmz0pWQHADFa3uJP1sQWSyvAt1JiHJtF/COfhBKpkhBEQ==} cpu: [arm64] os: [linux] + libc: [musl] - '@moonrepo/core-linux-x64-gnu@2.2.3': - resolution: {integrity: sha512-Ip68pMsXbVVfCOb3csWFv3jQtatbbHuLgQ50MUVRx8VYi2L8sPwVTGuyU57tNcMLXqeOCJxgBrTvFq/U9ElQ5g==} + '@moonrepo/core-linux-x64-gnu@2.2.4': + resolution: {integrity: sha512-uUHHtalsABNp+XxEcLK8E9h4s7VgMPgmMsUgb2kcrArzYdTQ7bKKS5ZRTxuO8QX2LemF4SZXmxM0JUgbxZHrvQ==} cpu: [x64] os: [linux] + libc: [glibc] - '@moonrepo/core-linux-x64-musl@2.2.3': - resolution: {integrity: sha512-10bUudg3eTrs0N/4tbH2CFWoOEuf3K7WhTypop4zArPCrq5sl5rG2Ik/wZNn40h4JdF09I7A2ZCGWlubsudd5g==} + '@moonrepo/core-linux-x64-musl@2.2.4': + resolution: {integrity: sha512-YnXnm59BX+YAgXYvR2h32ve6K3uqpMiPSFRA+6NwOosxaMUV05lJaDiHVYUOxvTE8z4zwDeep8vf/31xfQ/ZKw==} cpu: [x64] os: [linux] + libc: [musl] + + '@moonrepo/core-macos-arm64@2.2.4': + resolution: {integrity: sha512-8EAMymckmM+UbTyrLOBIkOZUpz43b+qwdY8kvX8TDk+Ysb1LvFxsYDmILYG7aXzNkA8yJlvo12xZUwkG7ByoMQ==} + cpu: [arm64] + os: [darwin] + + '@moonrepo/core-macos-x64@2.2.4': + resolution: {integrity: sha512-l9ME1lPPHNGbMv7yLlhYFZvAnwjmctFQ9k2txiB2umFy0pY8ohTzrCcMpHWzQ20IcASv/tXPiNTLIghy3Mb/HQ==} + cpu: [x64] + os: [darwin] + + '@moonrepo/core-windows-x64-msvc@2.2.4': + resolution: {integrity: sha512-G6RH8daSu0+yO6HozcEnAgvS2x0BYQk2dIApp0QvHbXcYegxLnwjdnPrzeMZm/tEQV02pxVFVsoLZft8eBezkg==} + cpu: [x64] + os: [win32] + + '@napi-rs/simple-git-android-arm-eabi@0.1.22': + resolution: {integrity: sha512-JQZdnDNm8o43A5GOzwN/0Tz3CDBQtBUNqzVwEopm32uayjdjxev1Csp1JeaqF3v9djLDIvsSE39ecsN2LhCKKQ==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + + '@napi-rs/simple-git-android-arm64@0.1.22': + resolution: {integrity: sha512-46OZ0SkhnvM+fapWjzg/eqbJvClxynUpWYyYBn4jAj7GQs1/Yyc8431spzDmkA8mL0M7Xo8SmbkzTDE7WwYAfg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] - '@moonrepo/core-macos-arm64@2.2.3': - resolution: {integrity: sha512-5/2cVkMVwsS/3aKPe5xzL8eegZz3V74xE7Wruf847UavfN0YuoIew14PfaTz5Pt69hAapdnXDiF8kmbSaKkWKA==} + '@napi-rs/simple-git-darwin-arm64@0.1.22': + resolution: {integrity: sha512-zH3h0C8Mkn9//MajPI6kHnttywjsBmZ37fhLX/Fiw5XKu84eHA6dRyVtMzoZxj6s+bjNTgaMgMUucxPn9ktxTQ==} + engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@moonrepo/core-macos-x64@2.2.3': - resolution: {integrity: sha512-T23dHlXqZWUkxLu45Piy8jxlzEImAurWQN1TVr06oTxZMSSTqzfyY+2Vk6GuyYnsZg0ELNnPW2ljnkEkczzy0g==} + '@napi-rs/simple-git-darwin-x64@0.1.22': + resolution: {integrity: sha512-GZN7lRAkGKB6PJxWsoyeYJhh85oOOjVNyl+/uipNX8bR+mFDCqRsCE3rRCFGV9WrZUHXkcuRL2laIRn7lLi3ag==} + engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@moonrepo/core-windows-x64-msvc@2.2.3': - resolution: {integrity: sha512-ez8/0AnMdzfUtbDitynJtR10PhG7CME3UCavLamE5BvV7dHUvtzLHipxVZIHWGx0gTEtQx6XpyDukYOozXGVlA==} + '@napi-rs/simple-git-freebsd-x64@0.1.22': + resolution: {integrity: sha512-xyqX1C5I0WBrUgZONxHjZH5a4LqQ9oki3SKFAVpercVYAcx3pq6BkZy1YUOP4qx78WxU1CCNfHBN7V+XO7D99A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@napi-rs/simple-git-linux-arm-gnueabihf@0.1.22': + resolution: {integrity: sha512-4LOtbp9ll93B9fxRvXiUJd1/RM3uafMJE7dGBZGKWBMGM76+BAcCEUv2BY85EfsU/IgopXI6n09TycRfPWOjxA==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@napi-rs/simple-git-linux-arm64-gnu@0.1.22': + resolution: {integrity: sha512-GVOjP/JjCzbQ0kSqao7ctC/1sodVtv5VF57rW9BFpo2y6tEYPCqHnkQkTpieuwMNe+TVOhBUC1+wH0d9/knIHg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@napi-rs/simple-git-linux-arm64-musl@0.1.22': + resolution: {integrity: sha512-MOs7fPyJiU/wqOpKzAOmOpxJ/TZfP4JwmvPad/cXTOWYwwyppMlXFRms3i98EU3HOazI/wMU2Ksfda3+TBluWA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@napi-rs/simple-git-linux-ppc64-gnu@0.1.22': + resolution: {integrity: sha512-L59dR30VBShRUIZ5/cQHU25upNgKS0AMQ7537J6LCIUEFwwXrKORZKJ8ceR+s3Sr/4jempWVvMdjEpFDE4HYww==} + engines: {node: '>= 10'} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@napi-rs/simple-git-linux-s390x-gnu@0.1.22': + resolution: {integrity: sha512-4FHkPlCSIZUGC6HiADffbe6NVoTBMd65pIwcd40IDbtFKOgFMBA+pWRqKiQ21FERGH16Zed7XHJJoY3jpOqtmQ==} + engines: {node: '>= 10'} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@napi-rs/simple-git-linux-x64-gnu@0.1.22': + resolution: {integrity: sha512-Ei1tM5Ho/dwknF3pOzqkNW9Iv8oFzRxE8uOhrITcdlpxRxVrBVptUF6/0WPdvd7R9747D/q61QG/AVyWsWLFKw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@napi-rs/simple-git-linux-x64-musl@0.1.22': + resolution: {integrity: sha512-zRYxg7it0p3rLyEJYoCoL2PQJNgArVLyNavHW03TFUAYkYi5bxQ/UFNVpgxMaXohr5yu7qCBqeo9j4DWeysalg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@napi-rs/simple-git-win32-arm64-msvc@0.1.22': + resolution: {integrity: sha512-XGFR1fj+Y9cWACcovV2Ey/R2xQOZKs8t+7KHPerYdJ4PtjVzGznI4c2EBHXtdOIYvkw7tL5rZ7FN1HJKdD5Quw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@napi-rs/simple-git-win32-ia32-msvc@0.1.22': + resolution: {integrity: sha512-Gqr9Y0gs6hcNBA1IXBpoqTFnnIoHuZGhrYqaZzEvGMLrTrpbXrXVEtX3DAAD2RLc1b87CPcJ49a7sre3PU3Rfw==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@napi-rs/simple-git-win32-x64-msvc@0.1.22': + resolution: {integrity: sha512-hQjcreHmUcpw4UrtkOron1/TQObfe484lxiXFLLUj7aWnnnOVs1mnXq5/Bo9+3NYZldFpFRJPdPBeHCisXkKJg==} + engines: {node: '>= 10'} cpu: [x64] os: [win32] + '@napi-rs/simple-git@0.1.22': + resolution: {integrity: sha512-bMVoAKhpjTOPHkW/lprDPwv5aD4R4C3Irt8vn+SKA9wudLe9COLxOhurrKRsxmZccUbWXRF7vukNeGUAj5P8kA==} + engines: {node: '>= 10'} + '@napi-rs/wasm-runtime@1.1.4': resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} peerDependencies: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 + '@next/env@15.5.15': + resolution: {integrity: sha512-vcmyu5/MyFzN7CdqRHO3uHO44p/QPCZkuTUXroeUmhNP8bL5PHFEhik22JUazt+CDDoD6EpBYRCaS2pISL+/hg==} + + '@next/swc-darwin-arm64@15.5.15': + resolution: {integrity: sha512-6PvFO2Tzt10GFK2Ro9tAVEtacMqRmTarYMFKAnV2vYMdwWc73xzmDQyAV7SwEdMhzmiRoo7+m88DuiXlJlGeaw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-x64@15.5.15': + resolution: {integrity: sha512-G+YNV+z6FDZTp/+IdGyIMFqalBTaQSnvAA+X/hrt+eaTRFSznRMz9K7rTmzvM6tDmKegNtyzgufZW0HwVzEqaQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-linux-arm64-gnu@15.5.15': + resolution: {integrity: sha512-eVkrMcVIBqGfXB+QUC7jjZ94Z6uX/dNStbQFabewAnk13Uy18Igd1YZ/GtPRzdhtm7QwC0e6o7zOQecul4iC1w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@next/swc-linux-arm64-musl@15.5.15': + resolution: {integrity: sha512-RwSHKMQ7InLy5GfkY2/n5PcFycKA08qI1VST78n09nN36nUPqCvGSMiLXlfUmzmpQpF6XeBYP2KRWHi0UW3uNg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@next/swc-linux-x64-gnu@15.5.15': + resolution: {integrity: sha512-nplqvY86LakS+eeiuWsNWvfmK8pFcOEW7ZtVRt4QH70lL+0x6LG/m1OpJ/tvrbwjmR8HH9/fH2jzW1GlL03TIg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@next/swc-linux-x64-musl@15.5.15': + resolution: {integrity: sha512-eAgl9NKQ84/sww0v81DQINl/vL2IBxD7sMybd0cWRw6wqgouVI53brVRBrggqBRP/NWeIAE1dm5cbKYoiMlqDQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@next/swc-win32-arm64-msvc@15.5.15': + resolution: {integrity: sha512-GJVZC86lzSquh0MtvZT+L7G8+jMnJcldloOjA8Kf3wXvBrvb6OGe2MzPuALxFshSm/IpwUtD2mIoof39ymf52A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-x64-msvc@15.5.15': + resolution: {integrity: sha512-nFucjVdwlFqxh/JG3hWSJ4p8+YJV7Ii8aPDuBQULB6DzUF4UNZETXLfEUk+oI2zEznWWULPt7MeuTE6xtK1HSA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + '@noble/ciphers@1.2.1': resolution: {integrity: sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==} engines: {node: ^14.21.3 || >=16} @@ -2363,12 +2561,13 @@ packages: resolution: {integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==} engines: {node: ^14.21.3 || >=16} + '@noble/ciphers@2.2.0': + resolution: {integrity: sha512-Z6pjIZ/8IJcCGzb2S/0Px5J81yij85xASuk1teLNeg75bfT07MV3a/O2Mtn1I2se43k3lkVEcFaR10N4cgQcZA==} + engines: {node: '>= 20.19.0'} + '@noble/curves@1.2.0': resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} - '@noble/curves@1.4.2': - resolution: {integrity: sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==} - '@noble/curves@1.8.0': resolution: {integrity: sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==} engines: {node: ^14.21.3 || >=16} @@ -2405,6 +2604,10 @@ packages: resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} engines: {node: ^14.21.3 || >=16} + '@noble/hashes@2.2.0': + resolution: {integrity: sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==} + engines: {node: '>= 20.19.0'} + '@nodable/entities@2.1.0': resolution: {integrity: sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==} @@ -2426,10 +2629,6 @@ packages: '@paralleldrive/cuid2@2.3.1': resolution: {integrity: sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==} - '@paulmillr/qr@0.2.1': - resolution: {integrity: sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ==} - deprecated: 'The package is now available as "qr": npm install qr' - '@protobufjs/aspromise@1.1.2': resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} @@ -2460,6 +2659,23 @@ packages: '@protobufjs/utf8@1.1.1': resolution: {integrity: sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==} + '@react-aria/focus@3.22.0': + resolution: {integrity: sha512-ZfDOVuVhqDsM9mkNji3QUZ/d40JhlVgXrDkrfXylM1035QCrcTHN7m2DpbE95sU2A8EQb4wikvt5jM6K/73BPg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/interactions@3.28.0': + resolution: {integrity: sha512-OXwdU1EWFdMxmr/K1CXNGJzmNlCClByb+PuCaqUyzBymHPCGVhawirLIon/CrIN5psh3AiWpHSh4H0WeJdVpng==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/shared@3.34.0': + resolution: {integrity: sha512-gp6xo/s2lX54AlTjOiqwDnxA7UW79BNvI9dB9pr3LZTzRKCd1ZA+ZbgKw/ReIiWuvvVw/8QFJpnqeeFyLocMcQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@reduxjs/toolkit@2.11.2': resolution: {integrity: sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==} peerDependencies: @@ -2535,36 +2751,42 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [glibc] '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17': resolution: {integrity: sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [musl] '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17': resolution: {integrity: sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17': resolution: {integrity: sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] + libc: [glibc] '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17': resolution: {integrity: sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [glibc] '@rolldown/binding-linux-x64-musl@1.0.0-rc.17': resolution: {integrity: sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [musl] '@rolldown/binding-openharmony-arm64@1.0.0-rc.17': resolution: {integrity: sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==} @@ -2638,66 +2860,79 @@ packages: resolution: {integrity: sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.60.2': resolution: {integrity: sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.60.2': resolution: {integrity: sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.60.2': resolution: {integrity: sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loong64-gnu@4.60.2': resolution: {integrity: sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-loong64-musl@4.60.2': resolution: {integrity: sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==} cpu: [loong64] os: [linux] + libc: [musl] '@rollup/rollup-linux-ppc64-gnu@4.60.2': resolution: {integrity: sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-ppc64-musl@4.60.2': resolution: {integrity: sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==} cpu: [ppc64] os: [linux] + libc: [musl] '@rollup/rollup-linux-riscv64-gnu@4.60.2': resolution: {integrity: sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.60.2': resolution: {integrity: sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.60.2': resolution: {integrity: sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.60.2': resolution: {integrity: sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.60.2': resolution: {integrity: sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-openbsd-x64@4.60.2': resolution: {integrity: sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==} @@ -2772,14 +3007,11 @@ packages: '@scarf/scarf@1.4.0': resolution: {integrity: sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==} - '@scure/base@1.1.9': - resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} - '@scure/base@1.2.6': resolution: {integrity: sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==} - '@scure/bip32@1.4.0': - resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} + '@scure/base@2.2.0': + resolution: {integrity: sha512-b8XEupJibegiXV+tDUseI8oLQc8ei3d/4Jkb2RpbHh3MfE054ov3uIz2dhFkB3FI8iwYkEh0gGCApkrYggkPNg==} '@scure/bip32@1.6.2': resolution: {integrity: sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==} @@ -2787,15 +3019,41 @@ packages: '@scure/bip32@1.7.0': resolution: {integrity: sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==} - '@scure/bip39@1.3.0': - resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} - '@scure/bip39@1.5.4': resolution: {integrity: sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==} '@scure/bip39@1.6.0': resolution: {integrity: sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==} + '@scure/bip39@2.2.0': + resolution: {integrity: sha512-T/Bj/YvYMNkIPq6EENO6/rcs2e7qTNuyoUXf0KBFDmp0ZDu0H2X4Lq6yC3i0c8PcWkov5EbW+yQZZbdMmk154A==} + + '@shikijs/core@3.23.0': + resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==} + + '@shikijs/engine-javascript@3.23.0': + resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==} + + '@shikijs/engine-oniguruma@3.23.0': + resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} + + '@shikijs/langs@3.23.0': + resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} + + '@shikijs/themes@3.23.0': + resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} + + '@shikijs/twoslash@3.23.0': + resolution: {integrity: sha512-pNaLJWMA3LU7PhT8tm9OQBZ1epy0jmdgeJzntBtr1EVXLbHxGzTj3mnf9vOdcl84l96qnlJXkJ/NGXZYBpXl5g==} + peerDependencies: + typescript: '>=5.5.0' + + '@shikijs/types@3.23.0': + resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + '@silvia-odwyer/photon-node@0.3.4': resolution: {integrity: sha512-bnly4BKB3KDTFxrUIcgCLbaeVVS8lrAkri1pEzskpmxu9MdfGQTy8b8EgcD83ywD3RPMsIulY8xJH5Awa+t9fA==} @@ -2987,433 +3245,184 @@ packages: resolution: {integrity: sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==} engines: {node: '>=18.0.0'} - '@socket.io/component-emitter@3.1.2': - resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + '@spruceid/siwe-parser@2.1.2': + resolution: {integrity: sha512-d/r3S1LwJyMaRAKQ0awmo9whfXeE88Qt00vRj91q5uv5ATtWIQEGJ67Yr5eSZw5zp1/fZCXZYuEckt8lSkereQ==} - '@solana-program/system@0.10.0': - resolution: {integrity: sha512-Go+LOEZmqmNlfr+Gjy5ZWAdY5HbYzk2RBewD9QinEU/bBSzpFfzqDRT55JjFRBGJUvMgf3C2vfXEGT4i8DSI4g==} - peerDependencies: - '@solana/kit': ^5.0 + '@stablelib/binary@1.0.1': + resolution: {integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==} - '@solana-program/token@0.9.0': - resolution: {integrity: sha512-vnZxndd4ED4Fc56sw93cWZ2djEeeOFxtaPS8SPf5+a+JZjKA/EnKqzbE1y04FuMhIVrLERQ8uR8H2h72eZzlsA==} - peerDependencies: - '@solana/kit': ^5.0 + '@stablelib/int@1.0.1': + resolution: {integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==} - '@solana/accounts@5.5.1': - resolution: {integrity: sha512-TfOY9xixg5rizABuLVuZ9XI2x2tmWUC/OoN556xwfDlhBHBjKfszicYYOyD6nbFmwTGYarCmyGIdteXxTXIdhQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@stablelib/random@1.0.2': + resolution: {integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==} + + '@stablelib/wipe@1.0.1': + resolution: {integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==} + + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + + '@standard-schema/utils@0.3.0': + resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} - '@solana/addresses@5.5.1': - resolution: {integrity: sha512-5xoah3Q9G30HQghu/9BiHLb5pzlPKRC3zydQDmE3O9H//WfayxTFppsUDCL6FjYUHqj/wzK6CWHySglc2RkpdA==} - engines: {node: '>=20.18.0'} + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + + '@swc/helpers@0.5.21': + resolution: {integrity: sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==} + + '@tanstack/query-core@5.100.9': + resolution: {integrity: sha512-SJSFw1S8+kQ0+knv/XGfrbocWoAlT7vDKsSImtLx3ZPQmEcR46hkDjLSvynSy25N8Ms4tIEini1FuBd5k7IscQ==} + + '@tanstack/react-query@5.100.9': + resolution: {integrity: sha512-Oa44XkaI3kCNN6ME0KByU3xT3SEUNOMfZpHxL6+wFoTm+OeUFYHKdeYVe0aOXlRDm/f15sgLwEt2HDorIdW8+A==} peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + react: ^18 || ^19 - '@solana/assertions@5.5.1': - resolution: {integrity: sha512-YTCSWAlGwSlVPnWtWLm3ukz81wH4j2YaCveK+TjpvUU88hTy6fmUqxi0+hvAMAe4zKXpJyj3Az7BrLJRxbIm4Q==} - engines: {node: '>=20.18.0'} + '@tanstack/react-virtual@3.13.24': + resolution: {integrity: sha512-aIJvz5OSkhNIhZIpYivrxrPTKYsjW9Uzy+sP/mx0S3sev2HyvPb7xmjbYvokzEpfgYHy/HjzJ2zFAETuUfgCpg==} peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + '@tanstack/virtual-core@3.14.0': + resolution: {integrity: sha512-JLANqGy/D6k4Ujmh8Tr25lGimuOXNiaVyXaCAZS0W+1390sADdGnyUdSWNIfd49gebtIxGMij4IktRVzrdr12Q==} - '@solana/codecs-core@5.5.1': - resolution: {integrity: sha512-TgBt//bbKBct0t6/MpA8ElaOA3sa8eYVvR7LGslCZ84WiAwwjCY0lW/lOYsFHJQzwREMdUyuEyy5YWBKtdh8Rw==} - engines: {node: '>=20.18.0'} + '@theguild/remark-mermaid@0.3.0': + resolution: {integrity: sha512-Fy1J4FSj8totuHsHFpaeWyWRaRSIvpzGTRoEfnNJc1JmLV9uV70sYE3zcT+Jj5Yw20Xq4iCsiT+3Ho49BBZcBQ==} peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - - '@solana/codecs-data-structures@5.5.1': - resolution: {integrity: sha512-97bJWGyUY9WvBz3mX1UV3YPWGDTez6btCfD0ip3UVEXJbItVuUiOkzcO5iFDUtQT5riKT6xC+Mzl+0nO76gd0w==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - - '@solana/codecs-numbers@5.5.1': - resolution: {integrity: sha512-rllMIZAHqmtvC0HO/dc/21wDuWaD0B8Ryv8o+YtsICQBuiL/0U4AGwH7Pi5GNFySYk0/crSuwfIqQFtmxNSPFw==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - - '@solana/codecs-strings@5.5.1': - resolution: {integrity: sha512-7klX4AhfHYA+uKKC/nxRGP2MntbYQCR3N6+v7bk1W/rSxYuhNmt+FN8aoThSZtWIKwN6BEyR1167ka8Co1+E7A==} - engines: {node: '>=20.18.0'} - peerDependencies: - fastestsmallesttextencoderdecoder: ^1.0.22 - typescript: ^5.0.0 - peerDependenciesMeta: - fastestsmallesttextencoderdecoder: - optional: true - typescript: - optional: true - - '@solana/codecs@5.5.1': - resolution: {integrity: sha512-Vea29nJub/bXjfzEV7ZZQ/PWr1pYLZo3z0qW0LQL37uKKVzVFRQlwetd7INk3YtTD3xm9WUYr7bCvYUk3uKy2g==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - - '@solana/errors@5.5.1': - resolution: {integrity: sha512-vFO3p+S7HoyyrcAectnXbdsMfwUzY2zYFUc2DEe5BwpiE9J1IAxPBGjOWO6hL1bbYdBrlmjNx8DXCslqS+Kcmg==} - engines: {node: '>=20.18.0'} - hasBin: true - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - - '@solana/fast-stable-stringify@5.5.1': - resolution: {integrity: sha512-Ni7s2FN33zTzhTFgRjEbOVFO+UAmK8qi3Iu0/GRFYK4jN696OjKHnboSQH/EacQ+yGqS54bfxf409wU5dsLLCw==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - - '@solana/functional@5.5.1': - resolution: {integrity: sha512-tTHoJcEQq3gQx5qsdsDJ0LEJeFzwNpXD80xApW9o/PPoCNimI3SALkZl+zNW8VnxRrV3l3yYvfHWBKe/X3WG3w==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - - '@solana/instruction-plans@5.5.1': - resolution: {integrity: sha512-7z3CB7YMcFKuVvgcnNY8bY6IsZ8LG61Iytbz7HpNVGX2u1RthOs1tRW8luTzSG1MPL0Ox7afyAVMYeFqSPHnaQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - - '@solana/instructions@5.5.1': - resolution: {integrity: sha512-h0G1CG6S+gUUSt0eo6rOtsaXRBwCq1+Js2a+Ps9Bzk9q7YHNFA75/X0NWugWLgC92waRp66hrjMTiYYnLBoWOQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - - '@solana/keys@5.5.1': - resolution: {integrity: sha512-KRD61cL7CRL+b4r/eB9dEoVxIf/2EJ1Pm1DmRYhtSUAJD2dJ5Xw8QFuehobOGm9URqQ7gaQl+Fkc1qvDlsWqKg==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - - '@solana/kit@5.5.1': - resolution: {integrity: sha512-irKUGiV2yRoyf+4eGQ/ZeCRxa43yjFEL1DUI5B0DkcfZw3cr0VJtVJnrG8OtVF01vT0OUfYOcUn6zJW5TROHvQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + react: ^18.2.0 || ^19.0.0 - '@solana/nominal-types@5.5.1': - resolution: {integrity: sha512-I1ImR+kfrLFxN5z22UDiTWLdRZeKtU0J/pkWkO8qm/8WxveiwdIv4hooi8pb6JnlR4mSrWhq0pCIOxDYrL9GIQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@theguild/remark-npm2yarn@0.3.3': + resolution: {integrity: sha512-ma6DvR03gdbvwqfKx1omqhg9May/VYGdMHvTzB4VuxkyS7KzfZ/lzrj43hmcsggpMje0x7SADA/pcMph0ejRnA==} - '@solana/offchain-messages@5.5.1': - resolution: {integrity: sha512-g+xHH95prTU+KujtbOzj8wn+C7ZNoiLhf3hj6nYq3MTyxOXtBEysguc97jJveUZG0K97aIKG6xVUlMutg5yxhw==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@tokenizer/inflate@0.4.1': + resolution: {integrity: sha512-2mAv+8pkG6GIZiF1kNg1jAjh27IDxEPKwdGul3snfztFerfPGI1LjDezZp3i7BElXompqEtPmoPx6c2wgtWsOA==} + engines: {node: '>=18'} - '@solana/options@5.5.1': - resolution: {integrity: sha512-eo971c9iLNLmk+yOFyo7yKIJzJ/zou6uKpy6mBuyb/thKtS/haiKIc3VLhyTXty3OH2PW8yOlORJnv4DexJB8A==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@tokenizer/token@0.3.0': + resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} - '@solana/plugin-core@5.5.1': - resolution: {integrity: sha512-VUZl30lDQFJeiSyNfzU1EjYt2QZvoBFKEwjn1lilUJw7KgqD5z7mbV7diJhT+dLFs36i0OsjXvq5kSygn8YJ3A==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@tootallnate/quickjs-emscripten@0.23.0': + resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - '@solana/programs@5.5.1': - resolution: {integrity: sha512-7U9kn0Jsx1NuBLn5HRTFYh78MV4XN145Yc3WP/q5BlqAVNlMoU9coG5IUTJIG847TUqC1lRto3Dnpwm6T4YRpA==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@ts-morph/common@0.28.1': + resolution: {integrity: sha512-W74iWf7ILp1ZKNYXY5qbddNaml7e9Sedv5lvU1V8lftlitkc9Pq1A+jlH23ltDgWYeZFFEqGCD1Ies9hqu3O+g==} - '@solana/promises@5.5.1': - resolution: {integrity: sha512-T9lfuUYkGykJmppEcssNiCf6yiYQxJkhiLPP+pyAc2z84/7r3UVIb2tNJk4A9sucS66pzJnVHZKcZVGUUp6wzA==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} - '@solana/rpc-api@5.5.1': - resolution: {integrity: sha512-XWOQQPhKl06Vj0xi3RYHAc6oEQd8B82okYJ04K7N0Vvy3J4PN2cxeK7klwkjgavdcN9EVkYCChm2ADAtnztKnA==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/argparse@1.0.38': + resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} - '@solana/rpc-parsed-types@5.5.1': - resolution: {integrity: sha512-HEi3G2nZqGEsa3vX6U0FrXLaqnUCg4SKIUrOe8CezD+cSFbRTOn3rCLrUmJrhVyXlHoQVaRO9mmeovk31jWxJg==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/body-parser@1.19.6': + resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} - '@solana/rpc-spec-types@5.5.1': - resolution: {integrity: sha512-6OFKtRpIEJQs8Jb2C4OO8KyP2h2Hy1MFhatMAoXA+0Ik8S3H+CicIuMZvGZ91mIu/tXicuOOsNNLu3HAkrakrw==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} - '@solana/rpc-spec@5.5.1': - resolution: {integrity: sha512-m3LX2bChm3E3by4mQrH4YwCAFY57QBzuUSWqlUw7ChuZ+oLLOq7b2czi4i6L4Vna67j3eCmB3e+4tqy1j5wy7Q==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - '@solana/rpc-subscriptions-api@5.5.1': - resolution: {integrity: sha512-5Oi7k+GdeS8xR2ly1iuSFkAv6CZqwG0Z6b1QZKbEgxadE1XGSDrhM2cn59l+bqCozUWCqh4c/A2znU/qQjROlw==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/cookiejar@2.1.5': + resolution: {integrity: sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==} - '@solana/rpc-subscriptions-channel-websocket@5.5.1': - resolution: {integrity: sha512-7tGfBBrYY8TrngOyxSHoCU5shy86iA9SRMRrPSyBhEaZRAk6dnbdpmUTez7gtdVo0BCvh9nzQtUycKWSS7PnFQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/cors@2.8.19': + resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} - '@solana/rpc-subscriptions-spec@5.5.1': - resolution: {integrity: sha512-iq+rGq5fMKP3/mKHPNB6MC8IbVW41KGZg83Us/+LE3AWOTWV1WT20KT2iH1F1ik9roi42COv/TpoZZvhKj45XQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/d3-array@3.2.2': + resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} - '@solana/rpc-subscriptions@5.5.1': - resolution: {integrity: sha512-CTMy5bt/6mDh4tc6vUJms9EcuZj3xvK0/xq8IQ90rhkpYvate91RjBP+egvjgSayUg9yucU9vNuUpEjz4spM7w==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/d3-axis@3.0.6': + resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} - '@solana/rpc-transformers@5.5.1': - resolution: {integrity: sha512-OsWqLCQdcrRJKvHiMmwFhp9noNZ4FARuMkHT5us3ustDLXaxOjF0gfqZLnMkulSLcKt7TGXqMhBV+HCo7z5M8Q==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/d3-brush@3.0.6': + resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} - '@solana/rpc-transport-http@5.5.1': - resolution: {integrity: sha512-yv8GoVSHqEV0kUJEIhkdOVkR2SvJ6yoWC51cJn2rSV7plr6huLGe0JgujCmB7uZhhaLbcbP3zxXxu9sOjsi7Fg==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/d3-chord@3.0.6': + resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} - '@solana/rpc-types@5.5.1': - resolution: {integrity: sha512-bibTFQ7PbHJJjGJPmfYC2I+/5CRFS4O2p9WwbFraX1Keeel+nRrt/NBXIy8veP5AEn2sVJIyJPpWBRpCx1oATA==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/d3-color@3.1.3': + resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} - '@solana/rpc@5.5.1': - resolution: {integrity: sha512-ku8zTUMrkCWci66PRIBC+1mXepEnZH/q1f3ck0kJZ95a06bOTl5KU7HeXWtskkyefzARJ5zvCs54AD5nxjQJ+A==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/d3-contour@3.0.6': + resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} - '@solana/signers@5.5.1': - resolution: {integrity: sha512-FY0IVaBT2kCAze55vEieR6hag4coqcuJ31Aw3hqRH7mv6sV8oqwuJmUrx+uFwOp1gwd5OEAzlv6N4hOOple4sQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/d3-delaunay@6.0.4': + resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} - '@solana/subscribable@5.5.1': - resolution: {integrity: sha512-9K0PsynFq0CsmK1CDi5Y2vUIJpCqkgSS5yfDN0eKPgHqEptLEaia09Kaxc90cSZDZU5mKY/zv1NBmB6Aro9zQQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/d3-dispatch@3.0.7': + resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==} - '@solana/sysvars@5.5.1': - resolution: {integrity: sha512-k3Quq87Mm+geGUu1GWv6knPk0ALsfY6EKSJGw9xUJDHzY/RkYSBnh0RiOrUhtFm2TDNjOailg8/m0VHmi3reFA==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/d3-drag@3.0.7': + resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} - '@solana/transaction-confirmation@5.5.1': - resolution: {integrity: sha512-j4mKlYPHEyu+OD7MBt3jRoX4ScFgkhZC6H65on4Fux6LMScgivPJlwnKoZMnsgxFgWds0pl+BYzSiALDsXlYtw==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/d3-dsv@3.0.7': + resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} - '@solana/transaction-messages@5.5.1': - resolution: {integrity: sha512-aXyhMCEaAp3M/4fP0akwBBQkFPr4pfwoC5CLDq999r/FUwDax2RE/h4Ic7h2Xk+JdcUwsb+rLq85Y52hq84XvQ==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/d3-ease@3.0.2': + resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} - '@solana/transactions@5.5.1': - resolution: {integrity: sha512-8hHtDxtqalZ157pnx6p8k10D7J/KY/biLzfgh9R09VNLLY3Fqi7kJvJCr7M2ik3oRll56pxhraAGCC9yIT6eOA==} - engines: {node: '>=20.18.0'} - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + '@types/d3-fetch@3.0.7': + resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} - '@spruceid/siwe-parser@2.1.2': - resolution: {integrity: sha512-d/r3S1LwJyMaRAKQ0awmo9whfXeE88Qt00vRj91q5uv5ATtWIQEGJ67Yr5eSZw5zp1/fZCXZYuEckt8lSkereQ==} + '@types/d3-force@3.0.10': + resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} - '@stablelib/binary@1.0.1': - resolution: {integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==} + '@types/d3-format@3.0.4': + resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} - '@stablelib/int@1.0.1': - resolution: {integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==} + '@types/d3-geo@3.1.0': + resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} - '@stablelib/random@1.0.2': - resolution: {integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==} + '@types/d3-hierarchy@3.1.7': + resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} - '@stablelib/wipe@1.0.1': - resolution: {integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==} + '@types/d3-interpolate@3.0.4': + resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} - '@standard-schema/spec@1.1.0': - resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@types/d3-path@3.1.1': + resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} - '@standard-schema/utils@0.3.0': - resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} + '@types/d3-polygon@3.0.2': + resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} - '@tanstack/query-core@5.100.6': - resolution: {integrity: sha512-Os2CPUr98to98RYm+D4qGqGkiffn7MGSyl2547a4MljVkHE30AMJRqTiyCqBfMwzAx/I91vCkAxp5tHSla6Twg==} + '@types/d3-quadtree@3.0.6': + resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} - '@tanstack/react-query@5.100.6': - resolution: {integrity: sha512-uVSrps0PV16Cxmcn2rvL+dUhwTpTUtiRW347AEeYxMZXO2pZe9ja7E24PAMGoQ5u2g89DD8u4QhOviBk+RN8RA==} - peerDependencies: - react: ^18 || ^19 + '@types/d3-random@3.0.3': + resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} - '@tokenizer/inflate@0.4.1': - resolution: {integrity: sha512-2mAv+8pkG6GIZiF1kNg1jAjh27IDxEPKwdGul3snfztFerfPGI1LjDezZp3i7BElXompqEtPmoPx6c2wgtWsOA==} - engines: {node: '>=18'} + '@types/d3-scale-chromatic@3.1.0': + resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} - '@tokenizer/token@0.3.0': - resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} + '@types/d3-scale@4.0.9': + resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} - '@tootallnate/quickjs-emscripten@0.23.0': - resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + '@types/d3-selection@3.0.11': + resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} - '@tybys/wasm-util@0.10.1': - resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@types/d3-shape@3.1.8': + resolution: {integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==} - '@types/argparse@1.0.38': - resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} + '@types/d3-time-format@4.0.3': + resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} - '@types/body-parser@1.19.6': - resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} + '@types/d3-time@3.0.4': + resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} - '@types/chai@5.2.3': - resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + '@types/d3-timer@3.0.2': + resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + '@types/d3-transition@3.0.9': + resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} - '@types/cookiejar@2.1.5': - resolution: {integrity: sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==} + '@types/d3-zoom@3.0.8': + resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} - '@types/cors@2.8.19': - resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} + '@types/d3@7.4.3': + resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} '@types/debug@4.1.13': resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} @@ -3421,20 +3430,35 @@ packages: '@types/deep-eql@4.0.2': resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@types/express-serve-static-core@4.19.8': - resolution: {integrity: sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==} + '@types/express-serve-static-core@5.1.1': + resolution: {integrity: sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==} + + '@types/express@5.0.6': + resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==} - '@types/express@4.17.25': - resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} + '@types/geojson@7946.0.16': + resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} '@types/http-errors@2.0.5': resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} - '@types/lodash@4.17.24': - resolution: {integrity: sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==} + '@types/katex@0.16.8': + resolution: {integrity: sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} '@types/methods@1.1.4': resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==} @@ -3442,23 +3466,20 @@ packages: '@types/mime-types@2.1.4': resolution: {integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==} - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + '@types/nlcst@2.0.3': + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} + '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@22.19.17': - resolution: {integrity: sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==} - '@types/node@22.7.5': resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} - '@types/prop-types@15.7.15': - resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} + '@types/node@25.6.0': + resolution: {integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==} '@types/qs@6.15.0': resolution: {integrity: sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==} @@ -3471,8 +3492,10 @@ packages: peerDependencies: '@types/react': ^18.0.0 - '@types/react@18.3.28': - resolution: {integrity: sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==} + '@types/react-dom@19.2.3': + resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} + peerDependencies: + '@types/react': ^19.2.0 '@types/react@19.2.14': resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} @@ -3480,24 +3503,27 @@ packages: '@types/retry@0.12.0': resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - '@types/send@0.17.6': - resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==} - '@types/send@1.2.1': resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} - '@types/serve-static@1.15.10': - resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==} + '@types/serve-static@2.2.0': + resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} '@types/superagent@8.1.9': resolution: {integrity: sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==} - '@types/supertest@6.0.3': - resolution: {integrity: sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==} + '@types/supertest@7.2.0': + resolution: {integrity: sha512-uh2Lv57xvggst6lCqNdFAmDSvoMG7M/HDtX4iUCquxQ5EGPtaPM5PL5Hmi7LCvOG8db7YaCPNJEeoI8s/WzIQw==} '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@types/vscode@1.118.0': resolution: {integrity: sha512-Ah6eTlqDcwIMELEVwQMO++rJAFBRz/oLluLD/vWdYrH1KuI9kfpaM+7pg0OvvascgcJy+ghLCERAYouM4QbzGw==} @@ -3507,6 +3533,17 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + '@typescript/vfs@1.6.4': + resolution: {integrity: sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ==} + peerDependencies: + typescript: '*' + + '@ungap/structured-clone@1.3.1': + resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==} + + '@upsetjs/venn.js@2.0.0': + resolution: {integrity: sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==} + '@vitejs/plugin-react@6.0.1': resolution: {integrity: sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3520,6 +3557,15 @@ packages: babel-plugin-react-compiler: optional: true + '@vitest/coverage-v8@4.1.5': + resolution: {integrity: sha512-38C0/Ddb7HcRG0Z4/DUem8x57d2p9jYgp18mkaYswEOQBGsI1CG4f/hjm0ZCeaJfWhSZ4k7jgs29V1Zom7Ki9A==} + peerDependencies: + '@vitest/browser': 4.1.5 + vitest: 4.1.5 + peerDependenciesMeta: + '@vitest/browser': + optional: true + '@vitest/expect@4.1.5': resolution: {integrity: sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==} @@ -3558,25 +3604,52 @@ packages: '@volar/typescript@2.4.28': resolution: {integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==} - '@wagmi/connectors@6.2.0': - resolution: {integrity: sha512-2NfkbqhNWdjfibb4abRMrn7u6rPjEGolMfApXss6HCDVt9AW2oVC6k8Q5FouzpJezElxLJSagWz9FW1zaRlanA==} - peerDependencies: - '@wagmi/core': 2.22.1 - typescript: '>=5.0.4' + '@wagmi/connectors@8.0.9': + resolution: {integrity: sha512-/wLCFLeQbZRRLeYKxfp1s+Ukcm3PW/cy0HIqS4vbGsKRAH/NAGFSGqsIj7g7Xz11hI5dzQ6N2/o2fuUd8uQZSw==} + peerDependencies: + '@base-org/account': ^2.5.1 + '@coinbase/wallet-sdk': ^4.3.6 + '@metamask/connect-evm': ~1.0.0 + '@safe-global/safe-apps-provider': ~0.18.6 + '@safe-global/safe-apps-sdk': ^9.1.0 + '@wagmi/core': 3.4.8 + '@walletconnect/ethereum-provider': ^2.21.1 + accounts: ~0.8.1 + porto: ~0.2.35 + typescript: '>=5.7.3' viem: 2.x peerDependenciesMeta: + '@base-org/account': + optional: true + '@coinbase/wallet-sdk': + optional: true + '@metamask/connect-evm': + optional: true + '@safe-global/safe-apps-provider': + optional: true + '@safe-global/safe-apps-sdk': + optional: true + '@walletconnect/ethereum-provider': + optional: true + accounts: + optional: true + porto: + optional: true typescript: optional: true - '@wagmi/core@2.22.1': - resolution: {integrity: sha512-cG/xwQWsBEcKgRTkQVhH29cbpbs/TdcUJVFXCyri3ZknxhMyGv0YEjTcrNpRgt2SaswL1KrvslSNYKKo+5YEAg==} + '@wagmi/core@3.4.8': + resolution: {integrity: sha512-G/t3WGCUYY/T86MBzr9mAsyAjuZP8UfiFbdDL+/klUs6oBqLavSxhygvjMnOpTDKOrPqWWGh00wubwBx4rxZEg==} peerDependencies: '@tanstack/query-core': '>=5.0.0' - typescript: '>=5.0.4' + accounts: ~0.8.1 + typescript: '>=5.7.3' viem: 2.x peerDependenciesMeta: '@tanstack/query-core': optional: true + accounts: + optional: true typescript: optional: true @@ -3684,12 +3757,14 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@xcfx/node-linux-x64-gnu@0.8.0': resolution: {integrity: sha512-a61LObLWcnCNJG0UdGbhumUHJg7af171VgUgt7uI/I4r9G2KHBVQTdDhB3Er9uq3N9abzewhJfa8MepaIwj60Q==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@xcfx/node-win32-x64-msvc@0.8.0': resolution: {integrity: sha512-A/o4ql9fzqqBp0TDPqZMHFyLgJhkr1HJ1qOdmSM5Y/fdOeqA/X8hJAnk+K3PbF2iEuyff6BwB7lseo5CoJ4JHw==} @@ -3701,22 +3776,15 @@ packages: resolution: {integrity: sha512-8R5KaDrZhhUb0qbtn+JrJMWNA8jW/yMeOgpT/AMuycHulC20Uu4xCvGRyczTF+poIOyzyRaeV6WfaQu8jG1U1g==} engines: {node: '>= 10'} - abitype@1.0.6: - resolution: {integrity: sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A==} - peerDependencies: - typescript: '>=5.0.4' - zod: ^3 >=3.22.0 - peerDependenciesMeta: - typescript: - optional: true - zod: - optional: true + '@xmldom/xmldom@0.9.10': + resolution: {integrity: sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==} + engines: {node: '>=14.6'} abitype@1.0.8: resolution: {integrity: sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==} peerDependencies: typescript: '>=5.0.4' - zod: ^3 >=3.22.0 + zod: 4.3.4 peerDependenciesMeta: typescript: optional: true @@ -3727,7 +3795,7 @@ packages: resolution: {integrity: sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==} peerDependencies: typescript: '>=5.0.4' - zod: ^3.22.0 || ^4.0.0 + zod: 4.3.4 peerDependenciesMeta: typescript: optional: true @@ -3742,6 +3810,11 @@ packages: resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} engines: {node: '>= 0.6'} + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn@8.16.0: resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} engines: {node: '>=0.4.0'} @@ -3803,15 +3876,25 @@ packages: apg-js@4.4.0: resolution: {integrity: sha512-fefmXFknJmtgtNEXfPwZKYkMFX4Fyeyz+fNF6JWp87biGOPslJbCBVU158zvKRZfHBKnJDy8CMM40oLFGkXT8Q==} + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + engines: {node: '>=10'} + array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + array-iterate@2.0.1: + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} + array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -3827,8 +3910,12 @@ packages: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} - async-mutex@0.2.6: - resolution: {integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==} + ast-v8-to-istanbul@1.0.0: + resolution: {integrity: sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg==} + + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + hasBin: true asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -3837,18 +3924,12 @@ packages: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} engines: {node: '>=8.0.0'} - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - - axios-retry@4.5.0: - resolution: {integrity: sha512-aR99oXhpEDGo0UuAlYcn2iGRds30k366Zfa05XWScR9QaQD4JYiP3/1Qt1u7YlefUOK+cn0CcwoL1oefavQUlQ==} - peerDependencies: - axios: ^1.15.0 - axios@1.15.2: resolution: {integrity: sha512-wLrXxPtcrPTsNlJmKjkPnNPK2Ihe0hn0wGSaTEiHRPxwjvJwT3hKmXF4dpqxmPO9SoNb2FsYXj/xEo0gHN+D5A==} + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + balanced-match@4.0.4: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} @@ -3867,6 +3948,11 @@ packages: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} + better-react-mathjax@2.3.0: + resolution: {integrity: sha512-K0ceQC+jQmB+NLDogO5HCpqmYf18AU2FxDbLdduYgkHYWZApFggkHE4dIaXCV1NqeoscESYXXo1GSkY6fA295w==} + peerDependencies: + react: '>=16.8' + big.js@6.2.2: resolution: {integrity: sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==} @@ -3938,10 +4024,6 @@ packages: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - call-bind@1.0.9: - resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} - engines: {node: '>= 0.4'} - call-bound@1.0.4: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} @@ -3950,6 +4032,12 @@ packages: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} + caniuse-lite@1.0.30001792: + resolution: {integrity: sha512-hVLMUZFgR4JJ6ACt1uEESvQN1/dBVqPAKY0hgrV70eN3391K6juAfTjKZLKvOMsx8PxA7gsY1/tLMMTcfFLLpw==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + chai@6.2.2: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} @@ -3962,11 +4050,29 @@ packages: resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + chardet@2.1.1: resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} - charenc@0.0.2: - resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + chevrotain-allstar@0.4.3: + resolution: {integrity: sha512-2X4mkroolSMKqW+H22pyPMUVDqYZzPhephTmg/NODKb1IGYPHfxfhcW0EjS7wcPJNbze2i4vBWT7zT5FKF2lrQ==} + peerDependencies: + chevrotain: ^12.0.0 + + chevrotain@12.0.0: + resolution: {integrity: sha512-csJvb+6kEiQaqo1woTdSAuOWdN0WTLIydkKrBnS+V5gZz0oqBrp4kQ35519QgK6TpBThiG3V1vNSHlIkv4AglQ==} + engines: {node: '>=22.0.0'} chokidar@5.0.0: resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} @@ -3991,6 +4097,13 @@ packages: resolution: {integrity: sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==} engines: {node: '>=4'} + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + clipboardy@4.0.0: + resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} + engines: {node: '>=18'} + cliui@6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} @@ -4005,11 +4118,21 @@ packages: resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} engines: {node: '>=6'} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + cmake-js@8.0.0: resolution: {integrity: sha512-YbUP88RDwCvoQkZhRtGURYm9RIpWdtvZuhT87fKNoLjk8kIFIFeARpKfuZQGdwfH99GZpUmqSfcDrK62X7lTgg==} engines: {node: ^20.17.0 || >=22.9.0} hasBin: true + code-block-writer@13.0.3: + resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} + + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -4021,17 +4144,24 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + command-exists@1.2.9: resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} - commander@14.0.2: - resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} - engines: {node: '>=20'} + commander@13.1.0: + resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} + engines: {node: '>=18'} commander@14.0.3: resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} engines: {node: '>=20'} + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + commander@8.3.0: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} @@ -4042,6 +4172,9 @@ packages: component-emitter@1.3.1: resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + compute-scroll-into-view@3.1.1: + resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} + confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} @@ -4080,24 +4213,19 @@ packages: cookiejar@2.1.4: resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cors@2.8.6: resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} engines: {node: '>= 0.10'} - crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} - hasBin: true + cose-base@1.0.3: + resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} + + cose-base@2.2.0: + resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} cross-fetch@3.2.0: resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} - cross-fetch@4.1.0: - resolution: {integrity: sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==} - cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -4105,15 +4233,168 @@ packages: crossws@0.3.5: resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} - crypt@0.0.2: - resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} - crypto-js@4.2.0: resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + cytoscape-cose-bilkent@4.1.0: + resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} + peerDependencies: + cytoscape: ^3.2.0 + + cytoscape-fcose@2.2.0: + resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} + peerDependencies: + cytoscape: ^3.2.0 + + cytoscape@3.33.3: + resolution: {integrity: sha512-Gej7U+OKR+LZ8kvX7rb2HhCYJ0IhvEFsnkud4SB1PR+BUY/TsSO0dmOW59WEVLu51b1Rm+gQRKoz4bLYxGSZ2g==} + engines: {node: '>=0.10'} + + d3-array@2.12.1: + resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} + + d3-array@3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} + + d3-axis@3.0.0: + resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} + engines: {node: '>=12'} + + d3-brush@3.0.0: + resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} + engines: {node: '>=12'} + + d3-chord@3.0.1: + resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} + engines: {node: '>=12'} + + d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + + d3-contour@4.0.2: + resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} + engines: {node: '>=12'} + + d3-delaunay@6.0.4: + resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} + engines: {node: '>=12'} + + d3-dispatch@3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} + + d3-drag@3.0.0: + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + engines: {node: '>=12'} + + d3-dsv@3.0.1: + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + engines: {node: '>=12'} + hasBin: true + + d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} + + d3-fetch@3.0.1: + resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} + engines: {node: '>=12'} + + d3-force@3.0.0: + resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} + engines: {node: '>=12'} + + d3-format@3.1.2: + resolution: {integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==} + engines: {node: '>=12'} + + d3-geo@3.1.1: + resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} + engines: {node: '>=12'} + + d3-hierarchy@3.1.2: + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + engines: {node: '>=12'} + + d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + + d3-path@1.0.9: + resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} + + d3-path@3.1.0: + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} + engines: {node: '>=12'} + + d3-polygon@3.0.1: + resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} + engines: {node: '>=12'} + + d3-quadtree@3.0.1: + resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} + engines: {node: '>=12'} + + d3-random@3.0.1: + resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} + engines: {node: '>=12'} + + d3-sankey@0.12.3: + resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} + + d3-scale-chromatic@3.1.0: + resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} + engines: {node: '>=12'} + + d3-scale@4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} + + d3-selection@3.0.0: + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} + engines: {node: '>=12'} + + d3-shape@1.3.7: + resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} + + d3-shape@3.2.0: + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} + engines: {node: '>=12'} + + d3-time-format@4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} + + d3-time@3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} + + d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + + d3-transition@3.0.1: + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + engines: {node: '>=12'} + peerDependencies: + d3-selection: 2 - 3 + + d3-zoom@3.0.0: + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + engines: {node: '>=12'} + + d3@7.9.0: + resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} + engines: {node: '>=12'} + + dagre-d3-es@7.0.14: + resolution: {integrity: sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==} + data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} @@ -4122,13 +4403,12 @@ packages: resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} engines: {node: '>= 14'} - date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} - engines: {node: '>=0.11'} - dayjs@1.11.13: resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + dayjs@1.11.20: + resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -4137,15 +4417,6 @@ packages: supports-color: optional: true - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -4162,6 +4433,9 @@ packages: decimal.js@10.6.0: resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} + decode-named-character-reference@1.3.0: + resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} + decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} @@ -4189,6 +4463,9 @@ packages: resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} engines: {node: '>= 14'} + delaunator@5.1.0: + resolution: {integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -4197,6 +4474,10 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + derive-valtio@0.1.0: resolution: {integrity: sha512-OCg2UsLbXK7GmmpzMXhYkdO64vhJ1ROUUGaTFyHjVwEdMEcTTRj7W1TxLbSBxdY8QLBPCcp66MTyaSy0RpO17A==} peerDependencies: @@ -4223,6 +4504,9 @@ packages: detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dezalgo@1.0.4: resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} @@ -4237,6 +4521,9 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} + dompurify@3.4.2: + resolution: {integrity: sha512-lHeS9SA/IKeIFFyYciHBr2n0v1VMPlSj843HdLOwjb2OxNwdq9Xykxqhk+FE42MzAdHvInbAolSE4mhahPpjXA==} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -4247,10 +4534,6 @@ packages: ecdsa-sig-formatter@1.0.11: resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - eciesjs@0.4.18: - resolution: {integrity: sha512-wG99Zcfcys9fZux7Cft8BAX/YrOJLJSZ3jyYPfhZHqN2E+Ffx+QXBDsv3gubEgPtV6dTzJMSQUwk1H98/t/0wQ==} - engines: {bun: '>=1', deno: '>=2', node: '>=16'} - ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -4273,17 +4556,14 @@ packages: end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - engine.io-client@6.6.4: - resolution: {integrity: sha512-+kjUJnZGwzewFDw951CDWcwj35vMNf2fcj7xQWOctq1F2i1jkDdVvdFG9kM/BEChymCH36KgjnW0NsL58JYRxw==} - - engine.io-parser@5.2.3: - resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} - engines: {node: '>=10.0.0'} - enquirer@2.4.1: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} @@ -4309,6 +4589,12 @@ packages: es6-error@4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + esast-util-from-estree@2.0.0: + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + + esast-util-from-js@2.0.1: + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + esbuild@0.27.7: resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} engines: {node: '>=18'} @@ -4325,11 +4611,19 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + escodegen@2.1.0: resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} engines: {node: '>=6.0'} hasBin: true + esm@3.2.25: + resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} + engines: {node: '>=6'} + esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -4339,6 +4633,27 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + + estree-util-scope@1.0.0: + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-value-to-estree@3.5.0: + resolution: {integrity: sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ==} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} @@ -4353,30 +4668,10 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} - eth-block-tracker@7.1.0: - resolution: {integrity: sha512-8YdplnuE1IK4xfqpf4iU7oBxnOYAc35934o083G8ao+8WM8QQtt/mVlAY6yIAdY1eMeLqg4Z//PZjJGmWGPMRg==} - engines: {node: '>=14.0.0'} - - eth-json-rpc-filters@6.0.1: - resolution: {integrity: sha512-ITJTvqoCw6OVMLs7pI8f4gG92n/St6x80ACtHodeS+IXmO0w+t1T5OOzfSt7KLSMLRkVUoexV7tztLgDxg+iig==} - engines: {node: '>=14.0.0'} - - eth-query@2.1.2: - resolution: {integrity: sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==} - - eth-rpc-errors@4.0.3: - resolution: {integrity: sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==} - - ethereum-cryptography@2.2.1: - resolution: {integrity: sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==} - ethers@6.16.0: resolution: {integrity: sha512-U1wulmetNymijEhpSEQ7Ct/P/Jw9/e7R1j5XIbPRydgV2DjLVMsULDlNksq3RQnFgKoLlZf88ijYtWEXcPa07A==} engines: {node: '>=14.0.0'} - eventemitter2@6.4.9: - resolution: {integrity: sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==} - eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} @@ -4392,6 +4687,10 @@ packages: resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==} engines: {node: '>=18.0.0'} + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + expand-template@2.0.3: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} @@ -4423,10 +4722,6 @@ packages: extendable-error@0.1.7: resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} - extension-port-stream@3.0.0: - resolution: {integrity: sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==} - engines: {node: '>=12.0.0'} - extract-zip@2.0.1: resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} engines: {node: '>= 10.17.0'} @@ -4459,6 +4754,9 @@ packages: fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} @@ -4514,14 +4812,14 @@ packages: debug: optional: true - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - form-data@4.0.5: resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} engines: {node: '>= 6'} + format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -4573,10 +4871,6 @@ packages: resolution: {integrity: sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==} engines: {node: '>=18'} - generator-function@2.0.1: - resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} - engines: {node: '>= 0.4'} - get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -4597,6 +4891,10 @@ packages: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + get-tsconfig@4.14.0: resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} @@ -4607,6 +4905,9 @@ packages: github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + gitnexus@1.6.3: resolution: {integrity: sha512-Yvhc70ESXFHPMtXHSddDgNL3dUxdvmA+CmxoadFBB7rTxIcXi8vrY/jhMvjvzJpBxp4JKi+lD8Pt1m1wL88Mtg==} engines: {node: '>=20.0.0'} @@ -4671,6 +4972,9 @@ packages: h3@1.15.11: resolution: {integrity: sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==} + hachure-fill@0.5.2: + resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -4693,6 +4997,51 @@ packages: resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} engines: {node: '>= 0.4'} + hast-util-from-dom@5.0.1: + resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==} + + hast-util-from-html-isomorphic@2.0.0: + resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==} + + hast-util-from-html@2.0.3: + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} + + hast-util-from-parse5@8.0.3: + resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} + + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-raw@9.1.0: + resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} + + hast-util-to-estree@3.1.3: + resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + + hast-util-to-jsx-runtime@2.3.6: + resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} + + hast-util-to-parse5@8.0.1: + resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} + + hast-util-to-string@3.0.1: + resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} + + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@9.0.1: + resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} + highlight.js@10.7.3: resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} @@ -4707,6 +5056,12 @@ packages: resolution: {integrity: sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==} engines: {node: ^20.17.0 || >=22.9.0} + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + http-errors@2.0.1: resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} engines: {node: '>= 0.8'} @@ -4723,10 +5078,18 @@ packages: resolution: {integrity: sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==} hasBin: true + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + iconv-lite@0.7.2: resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} engines: {node: '>=0.10.0'} @@ -4755,15 +5118,24 @@ packages: resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} engines: {node: '>=8'} + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - ip-address@10.1.0: - resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} - engines: {node: '>= 12'} + inline-style-parser@0.2.7: + resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} + + internmap@1.0.1: + resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} + + internmap@2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} ip-address@10.2.0: resolution: {integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==} @@ -4776,21 +5148,24 @@ packages: iron-webcrypto@1.2.1: resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} - is-arguments@1.2.0: - resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} - engines: {node: '>= 0.4'} - - is-buffer@1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} is-core-module@2.16.1: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -4799,50 +5174,48 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-generator-function@1.1.2: - resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} - engines: {node: '>= 0.4'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + is-promise@4.0.0: resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - - is-retry-allowed@2.2.0: - resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==} - engines: {node: '>=10'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} is-subdir@1.2.0: resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} engines: {node: '>=4'} - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + is-wsl@3.1.1: + resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} + engines: {node: '>=16'} - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + is64bit@2.0.0: + resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} + engines: {node: '>=18'} isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -4861,6 +5234,18 @@ packages: peerDependencies: ws: '*' + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + engines: {node: '>=8'} + jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -4870,6 +5255,9 @@ packages: js-sha3@0.8.0: resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + js-tokens@10.0.0: + resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -4884,13 +5272,6 @@ packages: json-bigint@1.0.0: resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} - json-rpc-engine@6.1.0: - resolution: {integrity: sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==} - engines: {node: '>=10.0.0'} - - json-rpc-random-id@1.0.1: - resolution: {integrity: sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==} - json-schema-to-ts@3.1.1: resolution: {integrity: sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==} engines: {node: '>=16'} @@ -4919,6 +5300,10 @@ packages: jws@4.0.1: resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} + katex@0.16.45: + resolution: {integrity: sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA==} + hasBin: true + keccak@3.0.4: resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} engines: {node: '>=10.0.0'} @@ -4926,12 +5311,25 @@ packages: keyvaluestorage-interface@1.0.0: resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==} + khroma@2.1.0: + resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} + koffi@2.16.1: resolution: {integrity: sha512-0Ie6CfD026dNfWSosDw9dPxPzO9Rlyo0N8m5r05S8YjytIpuilzMFDMY4IDy/8xQsTwpuVinhncD+S8n3bcYZQ==} kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + langium@4.2.3: + resolution: {integrity: sha512-sOPIi4hISFnY7twwV97ca1TsxpBtXq0URu/LL1AvxwccPG/RIBBlKS7a/f/EL6w8lTNaS0EFs/F+IdSOaqYpng==} + engines: {node: '>=20.10.0', npm: '>=10.2.3'} + + layout-base@1.0.2: + resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} + + layout-base@2.0.1: + resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} + lightningcss-android-arm64@1.32.0: resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} engines: {node: '>= 12.0.0'} @@ -4967,24 +5365,28 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] lightningcss-linux-arm64-musl@1.32.0: resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] lightningcss-linux-x64-gnu@1.32.0: resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] lightningcss-linux-x64-musl@1.32.0: resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] lightningcss-win32-arm64-msvc@1.32.0: resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} @@ -5019,6 +5421,9 @@ packages: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} + lodash-es@4.18.1: + resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==} + lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} @@ -5028,6 +5433,9 @@ packages: long@5.3.2: resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -5043,11 +5451,30 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + magicast@0.5.2: + resolution: {integrity: sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + marked@15.0.12: resolution: {integrity: sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==} engines: {node: '>= 18'} hasBin: true + marked@16.4.2: + resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==} + engines: {node: '>= 20'} + hasBin: true + matcher@3.0.0: resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} engines: {node: '>=10'} @@ -5056,20 +5483,75 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - md5@2.3.0: - resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} + mathjax-full@3.2.2: + resolution: {integrity: sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==} + deprecated: Version 4 replaces this package with the scoped package @mathjax/src - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} - media-typer@1.1.0: - resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} - engines: {node: '>= 0.8'} + mdast-util-from-markdown@2.0.3: + resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} - memorystream@0.3.1: - resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} - engines: {node: '>= 0.10.0'} + mdast-util-frontmatter@2.0.1: + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + + mdast-util-math@3.0.0: + resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==} + + mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + + mdast-util-mdx-jsx@3.2.0: + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} + + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + media-typer@1.1.0: + resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + engines: {node: '>= 0.8'} + + memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} @@ -5078,16 +5560,133 @@ packages: resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} engines: {node: '>=18'} + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + mermaid@11.14.0: + resolution: {integrity: sha512-GSGloRsBs+JINmmhl0JDwjpuezCsHB4WGI4NASHxL3fHo3o/BRXTxhDLKnln8/Q0lRFRyDdEjmk1/d5Sn1Xz8g==} + methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} - micro-ftch@0.3.1: - resolution: {integrity: sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==} + mhchemparser@4.2.1: + resolution: {integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==} + + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-frontmatter@2.0.0: + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-extension-math@3.1.0: + resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==} + + micromark-extension-mdx-expression@3.0.1: + resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} + + micromark-extension-mdx-jsx@3.0.2: + resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-mdx-expression@2.0.3: + resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-events-to-acorn@2.0.3: + resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} @@ -5119,6 +5718,10 @@ packages: engines: {node: '>=4.0.0'} hasBin: true + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} @@ -5152,6 +5755,9 @@ packages: typescript: optional: true + mj-context-menu@0.6.1: + resolution: {integrity: sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==} + mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} @@ -5171,9 +5777,6 @@ packages: ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -5203,6 +5806,52 @@ packages: resolution: {integrity: sha512-eonl3sLUha+S1GzTPxychyhnUzKyeQkZ7jLjKrBagJgPla13F+uQ71HgpFefyHgqrjEbCPkDArxYsjY8/+gLKA==} engines: {node: '>= 0.4.0'} + next-themes@0.4.6: + resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==} + peerDependencies: + react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + + next@15.5.15: + resolution: {integrity: sha512-VSqCrJwtLVGwAVE0Sb/yikrQfkwkZW9p+lL/J4+xe+G3ZA+QnWPqgcfH1tDUEuk9y+pthzzVFp4L/U8JerMfMQ==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.51.1 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + + nextra-theme-docs@4.6.1: + resolution: {integrity: sha512-u5Hh8erVcGOXO1FVrwYBgrEjyzdYQY0k/iAhLd8RofKp+Bru3fyLy9V9W34mfJ0KHKHjv/ldlDTlb4KlL4eIuQ==} + peerDependencies: + next: '>=14' + nextra: 4.6.1 + react: '>=18' + react-dom: '>=18' + + nextra@4.6.1: + resolution: {integrity: sha512-yz5WMJFZ5c58y14a6Rmwt+SJUYDdIgzWSxwtnpD4XAJTq3mbOqOg3VTaJqLiJjwRSxoFRHNA1yAhnhbvbw9zSg==} + engines: {node: '>=18'} + peerDependencies: + next: '>=14' + react: '>=18' + react-dom: '>=18' + + nlcst-to-string@4.0.0: + resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + node-abi@3.90.0: resolution: {integrity: sha512-pZNQT7UnYlMwMBy5N1lV5X/YLTbZM5ncytN3xL7CHEzhDN8uVe0u55yaPUJICIJjaCW8NrM5BFdqr7HLweStNA==} engines: {node: '>=10'} @@ -5263,8 +5912,13 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - obj-multiplex@1.0.0: - resolution: {integrity: sha512-0GNJAOsHoBHeNTvl5Vt6IWnpUEcc3uSRxzBri7EDyIcMgYvnY2JL2qdeV5zTMjWQX5OHcD5amcW2HFfDh0gjIA==} + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + npm-to-yarn@3.0.1: + resolution: {integrity: sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -5297,6 +5951,16 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + oniguruma-parser@0.12.2: + resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==} + + oniguruma-to-es@4.3.6: + resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==} + onnxruntime-common@1.24.0-dev.20251116-b39e144322: resolution: {integrity: sha512-BOoomdHYmNRL5r4iQ4bMvsl2t0/hzVQ3OM3PHD0gxeXu1PmggqBv3puZicEUVOA3AtHHYmqZtjMj9FOfGrATTw==} @@ -5315,19 +5979,13 @@ packages: hasBin: true peerDependencies: ws: ^8.18.0 - zod: ^3.25 || ^4.0 + zod: 4.3.4 peerDependenciesMeta: ws: optional: true zod: optional: true - openapi-fetch@0.13.8: - resolution: {integrity: sha512-yJ4QKRyNxE44baQ9mY5+r/kAzZ8yXMemtNAOFwOzRXJscdjSxxzWSNlyBAr+o5JjkUw9Lc3W7OIoca0cY3PYnQ==} - - openapi-typescript-helpers@0.0.15: - resolution: {integrity: sha512-opyTPaunsklCBpTK8JGef6mfPhLSnyy5a0IN9vKtx3+4aExf+KxEqYwIy3hqkedXIB97u357uLMJsOnm3GVjsw==} - outdent@0.5.0: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} @@ -5398,9 +6056,21 @@ packages: package-manager-detector@0.2.11: resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} + package-manager-detector@1.6.0: + resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} + pandemonium@2.4.1: resolution: {integrity: sha512-wRqjisUyiUfXowgm7MFH2rwJzKIr20rca5FsHXCMNm1W5YPP1hCtrZfgmQ62kP7OZ7Xt+cR858aB28lu5NX55g==} + parse-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + + parse-latin@7.0.0: + resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} + + parse-numeric-range@1.3.0: + resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} + parse5-htmlparser2-tree-adapter@6.0.1: resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} @@ -5410,6 +6080,9 @@ packages: parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -5420,6 +6093,9 @@ packages: path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + path-data-parser@0.1.0: + resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -5432,6 +6108,10 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -5466,18 +6146,10 @@ packages: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} - pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} - pify@5.0.0: - resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} - engines: {node: '>=10'} - pino-abstract-transport@0.5.0: resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} @@ -5505,9 +6177,11 @@ packages: resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} engines: {node: '>=10.13.0'} - pony-cause@2.1.11: - resolution: {integrity: sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg==} - engines: {node: '>=12.0.0'} + points-on-curve@0.2.0: + resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} + + points-on-path@0.2.1: + resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==} porto@0.2.35: resolution: {integrity: sha512-gu9FfjjvvYBgQXUHWTp6n3wkTxVtEcqFotM7i3GEZeoQbvLGbssAicCz6hFZ8+xggrJWwi/RLmbwNra50SMmUQ==} @@ -5541,10 +6215,6 @@ packages: wagmi: optional: true - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - postcss@8.5.12: resolution: {integrity: sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==} engines: {node: ^10 || ^12 || >=14} @@ -5552,9 +6222,6 @@ packages: preact@10.24.2: resolution: {integrity: sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==} - preact@10.29.1: - resolution: {integrity: sha512-gQCLc/vWroE8lIpleXtdJhTFDogTdZG9AjMUpVkDf2iTCNwYNWA+u16dL41TqUDJO4gm2IgrcMv3uTpjd4Pwmg==} - prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} engines: {node: '>=10'} @@ -5566,15 +6233,15 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process-warning@1.0.0: resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} proper-lockfile@4.1.2: resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + protobufjs@7.5.6: resolution: {integrity: sha512-M71sTMB146U3u0di3yup8iM+zv8yPRNQVr1KK4tyBitl3qFvEGucq/rGDRShD2rsJhtN02RJaJ7j5X5hmy8SJg==} engines: {node: '>=12.0.0'} @@ -5649,6 +6316,17 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true + react-aria@3.48.0: + resolution: {integrity: sha512-jQjd4rBEIMqecBaAKYJbVGK6EqIHLa5znVQ7jwFyK5vCyljoj6KhgtiahmcIPsG5vG5vEDLw+ba+bEWn6A2P4w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + react-compiler-runtime@19.1.0-rc.3: + resolution: {integrity: sha512-Cssogys2XZu6SqxRdX2xd8cQAf57BBvFbLEBlIa77161lninbKUn/EqbecCe7W3eqDQfg3rIoOwzExzgCh7h/g==} + peerDependencies: + react: ^17.0.0 || ^18.0.0 || ^19.0.0 || ^0.0.0-experimental + react-dom@18.3.1: resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: @@ -5659,9 +6337,21 @@ packages: peerDependencies: react: ^19.0.0 - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} + react-dom@19.2.5: + resolution: {integrity: sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==} + peerDependencies: + react: ^19.2.5 + + react-medium-image-zoom@5.4.5: + resolution: {integrity: sha512-58QSIRK6X3uw2fSTejJRnH0JuKTZl7ZJYX+sAMaYx4YTEm33gsNdnP5RuQSCnBiAvisQeErqZWAT31bR89WB6g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + react-stately@3.46.0: + resolution: {integrity: sha512-OdxhWvHgs2L4OJGIs7hnuTr5WjjMM6enhNEAMRqiekhF8+ITvA2LRwNftOZwcogaoCslGYq5S2VQTQwnm0GbCA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react@19.0.0: resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} @@ -5675,9 +6365,6 @@ packages: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -5686,10 +6373,27 @@ packages: resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} engines: {node: '>= 20.19.0'} + reading-time@1.5.0: + resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} + real-require@0.1.0: resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} engines: {node: '>= 12.13.0'} + recma-build-jsx@1.0.0: + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + + recma-jsx@1.0.1: + resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + recma-parse@1.0.0: + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + + recma-stringify@1.0.0: + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + redux-thunk@3.1.0: resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} peerDependencies: @@ -5698,6 +6402,61 @@ packages: redux@5.0.1: resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@6.1.0: + resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} + + rehype-katex@7.0.1: + resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==} + + rehype-parse@9.0.1: + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} + + rehype-pretty-code@0.14.1: + resolution: {integrity: sha512-IpG4OL0iYlbx78muVldsK86hdfNoht0z63AP7sekQNW2QOTmjxB7RbTO+rhIYNGRljgHxgVZoPwUl6bIC9SbjA==} + engines: {node: '>=18'} + peerDependencies: + shiki: ^1.0.0 || ^2.0.0 || ^3.0.0 + + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + + rehype-recma@1.0.0: + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + + remark-frontmatter@5.0.0: + resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} + + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + + remark-math@6.0.0: + resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==} + + remark-mdx@3.1.1: + resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-reading-time@2.1.0: + resolution: {integrity: sha512-gBsJbQv87TUq4dRMSOgIX6P60Tk9ke8c29KsL7bccmsv2m9AycDfVu3ghRtrNpHLZU3TE5P/vImGOMSPzYU8rA==} + + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + + remark-smartypants@3.0.2: + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} + engines: {node: '>=16.0.0'} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -5724,6 +6483,18 @@ packages: engines: {node: '>= 0.4'} hasBin: true + retext-latin@4.0.0: + resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} + + retext-smartypants@6.2.0: + resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} + + retext-stringify@4.0.0: + resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} + + retext@9.0.0: + resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} + retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} @@ -5740,6 +6511,9 @@ packages: resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} engines: {node: '>=8.0'} + robust-predicates@3.0.3: + resolution: {integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==} + rolldown@1.0.0-rc.17: resolution: {integrity: sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -5750,6 +6524,9 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + roughjs@4.6.6: + resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} + router@2.2.0: resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} engines: {node: '>= 18'} @@ -5757,19 +6534,15 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + rw@1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + rxjs@7.8.2: resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - safe-stable-stringify@2.5.0: resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} @@ -5783,6 +6556,12 @@ packages: scheduler@0.25.0: resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + + scroll-into-view-if-needed@3.1.0: + resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} + semver-compare@1.0.0: resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} @@ -5820,21 +6599,15 @@ packages: resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} engines: {node: '>= 18'} + server-only@0.0.1: + resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} + set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - sha.js@2.4.12: - resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==} - engines: {node: '>= 0.10'} - hasBin: true - sharp@0.34.5: resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -5847,6 +6620,9 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + shiki@3.23.0: + resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==} + side-channel-list@1.0.1: resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} engines: {node: '>= 0.4'} @@ -5888,18 +6664,14 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - socket.io-client@4.8.3: - resolution: {integrity: sha512-uP0bpjWrjQmUt5DTHq9RuoCBdFJF10cdX9X+a368j/Ft0wmaVgxlrjvK3kjvgCODOMMOz9lcaRzxmso0bTWZ/g==} - engines: {node: '>=10.0.0'} - - socket.io-parser@4.2.6: - resolution: {integrity: sha512-asJqbVBDsBCJx0pTqw3WfesSY0iRX+2xzWEWzrpcH7L6fLzrhyF8WPI8UaeM4YCuDfpwA/cgsdugMsmtz8EJeg==} - engines: {node: '>=10.0.0'} - socks-proxy-agent@8.0.5: resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} @@ -5924,9 +6696,20 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + spawndamnit@3.0.1: resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} + speech-rule-engine@4.1.4: + resolution: {integrity: sha512-i/VCLG1fvRc95pMHRqG4aQNscv+9aIsqA2oI7ZQS51sTdUcDHYX6cpT8/tqZ+enjs1tKVwbRBWgxut9SWn+f9g==} + hasBin: true + split-on-first@1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} engines: {node: '>=6'} @@ -5969,12 +6752,12 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -5987,6 +6770,10 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} @@ -5998,14 +6785,32 @@ packages: resolution: {integrity: sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==} engines: {node: '>=18'} + style-to-js@1.1.21: + resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} + + style-to-object@1.0.14: + resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} + + styled-jsx@5.1.6: + resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + + stylis@4.4.0: + resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==} + superagent@10.3.0: resolution: {integrity: sha512-B+4Ik7ROgVKrQsXTV0Jwp2u+PXYLSlqtDAhYnkkD+zn3yg8s/zjA2MeGayPoY/KICrbitwneDHrjSotxKL+0XQ==} engines: {node: '>=14.18.0'} - superstruct@1.0.4: - resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==} - engines: {node: '>=14.0.0'} - supertest@7.2.2: resolution: {integrity: sha512-oK8WG9diS3DlhdUkcFn4tkNIiIbBx9lI2ClF8K+b2/m8Eyv47LSawxUzZQSNKUrVb2KsqeTDCcjAAVPYaSLVTA==} engines: {node: '>=14.18.0'} @@ -6022,6 +6827,13 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + system-architecture@0.1.0: + resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} + engines: {node: '>=18'} + + tabbable@6.4.0: + resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} + tar-fs@2.1.4: resolution: {integrity: sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==} @@ -6062,14 +6874,14 @@ packages: resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} engines: {node: '>=14.0.0'} + title@4.0.1: + resolution: {integrity: sha512-xRnPkJx9nvE5MF6LkB5e8QJjE2FW8269wTu/LQdf7zZqBgPly0QJPf/CWAo7srj5so4yXfoLEdCFgurlpi47zg==} + hasBin: true + tmp@0.2.5: resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} engines: {node: '>=14.14'} - to-buffer@1.2.2: - resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} - engines: {node: '>= 0.4'} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -6209,9 +7021,22 @@ packages: tree-sitter@0.21.1: resolution: {integrity: sha512-7dxoA6kYvtgWw80265MyqJlkRl4yawIjO7S5MigytjELkX43fV2WsAXzsNfO7sBpPPCF5Gp0+XzHk0DwLCq3xQ==} + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + ts-algebra@2.0.0: resolution: {integrity: sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==} + ts-dedent@2.2.0: + resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} + engines: {node: '>=6.10'} + + ts-morph@27.0.2: + resolution: {integrity: sha512-fhUhgeljcrdZ+9DZND1De1029PrE+cMkIP7ooqkLRTrRLTqcki2AstsyJm0vRNbTbVCNJ0idGlbBrfqc7/nA8w==} + tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} @@ -6229,6 +7054,14 @@ packages: tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + twoslash-protocol@0.3.8: + resolution: {integrity: sha512-HmvAHoiEviK8LqvAQyc9/irkdvwTUiR1fHmNwH/0gq8EHxyBt4PWVPixjEXg6wJu1u6yBrILEWXGK9Kw58/8yQ==} + + twoslash@0.3.8: + resolution: {integrity: sha512-OeDz0kDl8sqPUN3nr7gqcvOs70f5lZsdhKYTX3/SgB9OvdadzzoYJI/4SBXhXV1HG8E9fLc+e17itoRYTxmoig==} + peerDependencies: + typescript: ^5.5.0 || ^6.0.0 + type-fest@0.13.1: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} engines: {node: '>=10'} @@ -6244,10 +7077,6 @@ packages: typebox@1.1.37: resolution: {integrity: sha512-jb7jp6KvOvvy5sd+11AfJ0/e0F0AS9RcOXd55oGi2ZnRHIGmFvrTaNF+ZidRmGBmmNTkM5KKl0Z37KzxJ+owEQ==} - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -6274,16 +7103,49 @@ packages: undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - - undici-types@7.25.0: - resolution: {integrity: sha512-AXNgS1Byr27fTI+2bsPEkV9CxkT8H6xNyRI68b3TatlZo3RkzlqQBLL+w7SmGPVpokjHbcuNVQUWE7FRTg+LRA==} + undici-types@7.19.2: + resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} undici@7.25.0: resolution: {integrity: sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==} engines: {node: '>=20.18.1'} + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + + unist-util-modify-children@4.0.0: + resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} + + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + + unist-util-remove@4.0.0: + resolution: {integrity: sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-children@3.0.0: + resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} + + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} + + unist-util-visit@5.1.0: + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} + universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} @@ -6412,6 +7274,11 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + utf-8-validate@5.0.10: resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} engines: {node: '>=6.14.2'} @@ -6419,9 +7286,6 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - utility-types@3.11.0: resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} engines: {node: '>= 4'} @@ -6453,6 +7317,15 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + viem@2.23.2: resolution: {integrity: sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==} peerDependencies: @@ -6567,27 +7440,44 @@ packages: jsdom: optional: true + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + vscode-uri@3.1.0: resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} - wagmi@2.19.5: - resolution: {integrity: sha512-RQUfKMv6U+EcSNNGiPbdkDtJwtuFxZWLmvDiQmjjBgkuPulUwDJsKhi7gjynzJdsx2yDqhHCXkKsbbfbIsHfcQ==} + wagmi@3.6.9: + resolution: {integrity: sha512-9Lrkf7bXyhG/aSK/65V2t+44Kti2m9tqaTS2vQTCeUgfaYlmFfx1RDUm4f8me5zcYclAo1XbJjm5x99dw7xAiA==} peerDependencies: '@tanstack/react-query': '>=5.0.0' react: '>=18' - typescript: '>=5.0.4' + typescript: '>=5.7.3' viem: 2.x peerDependenciesMeta: typescript: optional: true + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} - webextension-polyfill@0.10.0: - resolution: {integrity: sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==} - webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -6600,10 +7490,6 @@ packages: which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - which-typed-array@1.1.20: - resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} - engines: {node: '>= 0.4'} - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -6619,6 +7505,9 @@ packages: engines: {node: '>=8'} hasBin: true + wicked-good-xpath@1.3.0: + resolution: {integrity: sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==} + wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} @@ -6690,14 +7579,6 @@ packages: utf-8-validate: optional: true - xmlhttprequest-ssl@2.1.2: - resolution: {integrity: sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==} - engines: {node: '>=0.4.0'} - - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} @@ -6748,16 +7629,10 @@ packages: zod-to-json-schema@3.25.2: resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} peerDependencies: - zod: ^3.25.28 || ^4 - - zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + zod: 4.3.4 - zod@3.25.76: - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - - zod@4.3.6: - resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + zod@4.3.4: + resolution: {integrity: sha512-Zw/uYiiyF6pUT1qmKbZziChgNPRu+ZRneAsMUDU6IwmXdWt5JwcUfy2bvLOCUtz5UniaN/Zx5aFttZYbYc7O/A==} zustand@5.0.0: resolution: {integrity: sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ==} @@ -6813,17 +7688,25 @@ packages: use-sync-external-store: optional: true + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + snapshots: '@adraffy/ens-normalize@1.10.1': {} '@adraffy/ens-normalize@1.11.1': {} - '@anthropic-ai/sdk@0.91.1(zod@4.3.6)': + '@antfu/install-pkg@1.1.0': + dependencies: + package-manager-detector: 1.6.0 + tinyexec: 1.1.2 + + '@anthropic-ai/sdk@0.91.1(zod@4.3.4)': dependencies: json-schema-to-ts: 3.1.1 optionalDependencies: - zod: 4.3.6 + zod: 4.3.4 '@aws-crypto/crc32@5.2.0': dependencies: @@ -7234,53 +8117,22 @@ snapshots: '@aws/lambda-invoke-store@0.2.4': {} - '@babel/runtime@7.29.2': {} + '@babel/helper-string-parser@7.27.1': {} - '@base-org/account@2.4.0(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@3.25.76)': + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/parser@7.29.3': dependencies: - '@coinbase/cdp-sdk': 1.48.2(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) - '@noble/hashes': 1.4.0 - clsx: 1.2.1 - eventemitter3: 5.0.1 - idb-keyval: 6.2.1 - ox: 0.6.9(typescript@6.0.3)(zod@3.25.76) - preact: 10.24.2 - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - zustand: 5.0.3(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) - transitivePeerDependencies: - - '@types/react' - - bufferutil - - debug - - fastestsmallesttextencoderdecoder - - immer - - react - - typescript - - use-sync-external-store - - utf-8-validate - - zod + '@babel/types': 7.29.0 - '@base-org/account@2.4.0(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@4.3.6)': + '@babel/runtime@7.29.2': {} + + '@babel/types@7.29.0': dependencies: - '@coinbase/cdp-sdk': 1.48.2(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) - '@noble/hashes': 1.4.0 - clsx: 1.2.1 - eventemitter3: 5.0.1 - idb-keyval: 6.2.1 - ox: 0.6.9(typescript@6.0.3)(zod@4.3.6) - preact: 10.24.2 - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - zustand: 5.0.3(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) - transitivePeerDependencies: - - '@types/react' - - bufferutil - - debug - - fastestsmallesttextencoderdecoder - - immer - - react - - typescript - - use-sync-external-store - - utf-8-validate - - zod + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@bcoe/v8-coverage@1.0.2': {} '@biomejs/biome@2.4.14': optionalDependencies: @@ -7319,19 +8171,28 @@ snapshots: '@borewit/text-codec@0.2.2': {} - '@cfxjs/use-wallet-react@0.0.9(decimal.js@10.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zustand@5.0.12(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)))': + '@braintree/sanitize-url@7.1.2': {} + + '@cfxjs/use-wallet-react@0.0.9(decimal.js@10.6.0)(react-dom@18.3.1(react@19.2.5))(react@19.2.5)(zustand@5.0.12(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.4.0(react@19.2.5)))': + dependencies: + decimal.js: 10.6.0 + react: 19.2.5 + react-dom: 18.3.1(react@19.2.5) + zustand: 5.0.12(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.4.0(react@19.2.5)) + + '@cfxjs/use-wallet-react@0.0.9(decimal.js@10.6.0)(react-dom@18.3.1(react@19.2.5))(react@19.2.5)(zustand@5.0.12(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.6.0(react@19.2.5)))': dependencies: decimal.js: 10.6.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - zustand: 5.0.12(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + react: 19.2.5 + react-dom: 18.3.1(react@19.2.5) + zustand: 5.0.12(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.6.0(react@19.2.5)) - '@cfxjs/use-wallet-react@0.0.9(decimal.js@10.6.0)(react-dom@19.0.0(react@18.3.1))(react@18.3.1)(zustand@5.0.12(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)))': + '@cfxjs/use-wallet-react@0.0.9(decimal.js@10.6.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zustand@5.0.12(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.6.0(react@19.2.5)))': dependencies: decimal.js: 10.6.0 - react: 18.3.1 - react-dom: 19.0.0(react@18.3.1) - zustand: 5.0.12(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + zustand: 5.0.12(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.6.0(react@19.2.5)) '@changesets/apply-release-plan@7.1.1': dependencies: @@ -7362,7 +8223,7 @@ snapshots: dependencies: '@changesets/types': 6.1.0 - '@changesets/cli@2.31.0(@types/node@22.19.17)': + '@changesets/cli@2.31.0(@types/node@25.6.0)': dependencies: '@changesets/apply-release-plan': 7.1.1 '@changesets/assemble-release-plan': 6.0.10 @@ -7378,7 +8239,7 @@ snapshots: '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.3(@types/node@22.19.17) + '@inquirer/external-editor': 1.0.3(@types/node@25.6.0) '@manypkg/get-packages': 1.1.3 ansi-colors: 4.1.3 enquirer: 2.4.1 @@ -7476,50 +8337,31 @@ snapshots: human-id: 4.1.3 prettier: 2.8.8 - '@coinbase/cdp-sdk@1.48.2(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)': + '@chevrotain/cst-dts-gen@12.0.0': dependencies: - '@solana-program/system': 0.10.0(@solana/kit@5.5.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)) - '@solana-program/token': 0.9.0(@solana/kit@5.5.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)) - '@solana/kit': 5.5.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) - abitype: 1.0.6(typescript@6.0.3)(zod@3.25.76) - axios: 1.15.2 - axios-retry: 4.5.0(axios@1.15.2) - jose: 6.2.3 - md5: 2.3.0 - uncrypto: 0.1.3 - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - zod: 3.25.76 - transitivePeerDependencies: - - bufferutil - - debug - - fastestsmallesttextencoderdecoder - - typescript - - utf-8-validate + '@chevrotain/gast': 12.0.0 + '@chevrotain/types': 12.0.0 - '@coinbase/wallet-sdk@3.9.3': + '@chevrotain/gast@12.0.0': dependencies: - bn.js: 5.2.3 - buffer: 6.0.3 - clsx: 1.2.1 - eth-block-tracker: 7.1.0 - eth-json-rpc-filters: 6.0.1 - eventemitter3: 5.0.1 - keccak: 3.0.4 - preact: 10.29.1 - sha.js: 2.4.12 - transitivePeerDependencies: - - supports-color + '@chevrotain/types': 12.0.0 + + '@chevrotain/regexp-to-ast@12.0.0': {} + + '@chevrotain/types@12.0.0': {} + + '@chevrotain/utils@12.0.0': {} - '@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@3.25.76)': + '@coinbase/wallet-sdk@4.3.6(@types/react@19.2.14)(bufferutil@4.1.0)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(utf-8-validate@5.0.10)(zod@4.3.4)': dependencies: '@noble/hashes': 1.4.0 clsx: 1.2.1 eventemitter3: 5.0.1 idb-keyval: 6.2.1 - ox: 0.6.9(typescript@6.0.3)(zod@3.25.76) + ox: 0.6.9(typescript@6.0.3)(zod@4.3.4) preact: 10.24.2 - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - zustand: 5.0.3(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + zustand: 5.0.3(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.4.0(react@19.2.5)) transitivePeerDependencies: - '@types/react' - bufferutil @@ -7529,17 +8371,18 @@ snapshots: - use-sync-external-store - utf-8-validate - zod + optional: true - '@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@4.3.6)': + '@coinbase/wallet-sdk@4.3.6(@types/react@19.2.14)(bufferutil@4.1.0)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.6.0(react@19.2.5))(utf-8-validate@5.0.10)(zod@4.3.4)': dependencies: '@noble/hashes': 1.4.0 clsx: 1.2.1 eventemitter3: 5.0.1 idb-keyval: 6.2.1 - ox: 0.6.9(typescript@6.0.3)(zod@4.3.6) + ox: 0.6.9(typescript@6.0.3)(zod@4.3.4) preact: 10.24.2 - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - zustand: 5.0.3(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + zustand: 5.0.3(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.6.0(react@19.2.5)) transitivePeerDependencies: - '@types/react' - bufferutil @@ -7549,10 +8392,7 @@ snapshots: - use-sync-external-store - utf-8-validate - zod - - '@ecies/ciphers@0.2.6(@noble/ciphers@1.3.0)': - dependencies: - '@noble/ciphers': 1.3.0 + optional: true '@emnapi/core@1.10.0': dependencies: @@ -7648,26 +8488,6 @@ snapshots: '@esbuild/win32-x64@0.27.7': optional: true - '@ethereumjs/common@3.2.0': - dependencies: - '@ethereumjs/util': 8.1.0 - crc-32: 1.2.2 - - '@ethereumjs/rlp@4.0.1': {} - - '@ethereumjs/tx@4.2.0': - dependencies: - '@ethereumjs/common': 3.2.0 - '@ethereumjs/rlp': 4.0.1 - '@ethereumjs/util': 8.1.0 - ethereum-cryptography: 2.2.1 - - '@ethereumjs/util@8.1.0': - dependencies: - '@ethereumjs/rlp': 4.0.1 - ethereum-cryptography: 2.2.1 - micro-ftch: 0.3.1 - '@ethersproject/abi@5.8.0': dependencies: '@ethersproject/address': 5.8.0 @@ -7791,35 +8611,58 @@ snapshots: '@ethersproject/properties': 5.8.0 '@ethersproject/strings': 5.8.0 - '@gemini-wallet/core@0.3.2(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76))': + '@floating-ui/core@1.7.5': dependencies: - '@metamask/rpc-errors': 7.0.2 - eventemitter3: 5.0.1 - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - transitivePeerDependencies: - - supports-color + '@floating-ui/utils': 0.2.11 - '@gemini-wallet/core@0.3.2(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6))': + '@floating-ui/dom@1.7.6': dependencies: - '@metamask/rpc-errors': 7.0.2 - eventemitter3: 5.0.1 - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - transitivePeerDependencies: - - supports-color + '@floating-ui/core': 1.7.5 + '@floating-ui/utils': 0.2.11 + + '@floating-ui/react-dom@2.1.8(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@floating-ui/dom': 1.7.6 + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) - '@google/genai@1.51.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)(utf-8-validate@5.0.10)': + '@floating-ui/react@0.26.28(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@floating-ui/react-dom': 2.1.8(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@floating-ui/utils': 0.2.11 + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + tabbable: 6.4.0 + + '@floating-ui/utils@0.2.11': {} + + '@formatjs/intl-localematcher@0.6.2': + dependencies: + tslib: 2.8.1 + + '@google/genai@1.51.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.4))(bufferutil@4.1.0)(utf-8-validate@5.0.10)': dependencies: google-auth-library: 10.6.2 p-retry: 4.6.2 protobufjs: 7.5.6 ws: 8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) optionalDependencies: - '@modelcontextprotocol/sdk': 1.29.0(zod@4.3.6) + '@modelcontextprotocol/sdk': 1.29.0(zod@4.3.4) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate + '@headlessui/react@2.2.10(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@floating-ui/react': 0.26.28(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@react-aria/focus': 3.22.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@react-aria/interactions': 3.28.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@tanstack/react-virtual': 3.13.24(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + use-sync-external-store: 1.6.0(react@19.2.5) + '@hono/node-server@1.19.14(hono@4.12.15)': dependencies: hono: 4.12.15 @@ -7836,6 +8679,14 @@ snapshots: onnxruntime-web: 1.26.0-dev.20260416-b7804b056c sharp: 0.34.5 + '@iconify/types@2.0.0': {} + + '@iconify/utils@3.1.2': + dependencies: + '@antfu/install-pkg': 1.1.0 + '@iconify/types': 2.0.0 + import-meta-resolve: 4.2.0 + '@img/colour@1.1.0': {} '@img/sharp-darwin-arm64@0.34.5': @@ -7932,12 +8783,24 @@ snapshots: '@img/sharp-win32-x64@0.34.5': optional: true - '@inquirer/external-editor@1.0.3(@types/node@22.19.17)': + '@inquirer/external-editor@1.0.3(@types/node@25.6.0)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 25.6.0 + + '@internationalized/date@3.12.1': + dependencies: + '@swc/helpers': 0.5.21 + + '@internationalized/number@3.6.6': + dependencies: + '@swc/helpers': 0.5.21 + + '@internationalized/string@3.2.8': + dependencies: + '@swc/helpers': 0.5.21 '@isaacs/fs-minipass@4.0.1': dependencies: @@ -7986,19 +8849,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@ledgerhq/client-ids@0.8.3(react@18.3.1)': + '@ledgerhq/client-ids@0.8.3(react@19.0.0)': dependencies: '@ledgerhq/live-env': 2.33.0 - '@reduxjs/toolkit': 2.11.2(react@18.3.1) + '@reduxjs/toolkit': 2.11.2(react@19.0.0) uuid: 14.0.0 transitivePeerDependencies: - react - react-redux - '@ledgerhq/client-ids@0.8.3(react@19.0.0)': + '@ledgerhq/client-ids@0.8.3(react@19.2.5)': dependencies: '@ledgerhq/live-env': 2.33.0 - '@reduxjs/toolkit': 2.11.2(react@19.0.0) + '@reduxjs/toolkit': 2.11.2(react@19.2.5) uuid: 14.0.0 transitivePeerDependencies: - react @@ -8036,27 +8899,7 @@ snapshots: transitivePeerDependencies: - debug - '@ledgerhq/hw-app-eth@7.8.1': - dependencies: - '@ethersproject/abi': 5.8.0 - '@ethersproject/rlp': 5.8.0 - '@ethersproject/transactions': 5.8.0 - '@ledgerhq/domain-service': 1.8.1 - '@ledgerhq/errors': 6.34.0 - '@ledgerhq/evm-tools': 1.12.4 - '@ledgerhq/hw-transport': 6.35.1 - '@ledgerhq/hw-transport-mocker': 6.34.1 - '@ledgerhq/logs': 6.17.0 - '@ledgerhq/types-live': 6.106.0 - axios: 1.15.2 - bignumber.js: 9.3.1 - semver: 7.7.3 - transitivePeerDependencies: - - debug - - react - - react-redux - - '@ledgerhq/hw-app-eth@7.8.1(react@18.3.1)': + '@ledgerhq/hw-app-eth@7.8.1(react@19.2.5)': dependencies: '@ethersproject/abi': 5.8.0 '@ethersproject/rlp': 5.8.0 @@ -8067,7 +8910,7 @@ snapshots: '@ledgerhq/hw-transport': 6.35.1 '@ledgerhq/hw-transport-mocker': 6.34.1 '@ledgerhq/logs': 6.17.0 - '@ledgerhq/types-live': 6.106.0(react@18.3.1) + '@ledgerhq/types-live': 6.106.0(react@19.2.5) axios: 1.15.2 bignumber.js: 9.3.1 semver: 7.7.3 @@ -8122,38 +8965,31 @@ snapshots: '@ledgerhq/logs@6.17.0': {} - '@ledgerhq/types-live@6.106.0': - dependencies: - '@ledgerhq/client-ids': 0.8.3(react@18.3.1) - bignumber.js: 9.3.1 - rxjs: 7.8.2 - transitivePeerDependencies: - - react - - react-redux - - '@ledgerhq/types-live@6.106.0(react@18.3.1)': + '@ledgerhq/types-live@6.106.0(react@19.0.0)': dependencies: - '@ledgerhq/client-ids': 0.8.3(react@18.3.1) + '@ledgerhq/client-ids': 0.8.3(react@19.0.0) bignumber.js: 9.3.1 rxjs: 7.8.2 transitivePeerDependencies: - react - react-redux - '@ledgerhq/types-live@6.106.0(react@19.0.0)': + '@ledgerhq/types-live@6.106.0(react@19.2.5)': dependencies: - '@ledgerhq/client-ids': 0.8.3(react@19.0.0) + '@ledgerhq/client-ids': 0.8.3(react@19.2.5) bignumber.js: 9.3.1 rxjs: 7.8.2 transitivePeerDependencies: - react - react-redux - '@lit-labs/ssr-dom-shim@1.5.1': {} + '@lit-labs/ssr-dom-shim@1.5.1': + optional: true '@lit/reactive-element@2.1.2': dependencies: '@lit-labs/ssr-dom-shim': 1.5.1 + optional: true '@manypkg/find-root@1.1.0': dependencies: @@ -8220,9 +9056,9 @@ snapshots: std-env: 3.10.0 yoctocolors: 2.1.2 - '@mariozechner/pi-agent-core@0.72.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.6)': + '@mariozechner/pi-agent-core@0.73.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.4))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.4)': dependencies: - '@mariozechner/pi-ai': 0.72.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.6) + '@mariozechner/pi-ai': 0.73.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.4))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.4) typebox: 1.1.37 transitivePeerDependencies: - '@modelcontextprotocol/sdk' @@ -8233,19 +9069,19 @@ snapshots: - ws - zod - '@mariozechner/pi-ai@0.72.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.6)': + '@mariozechner/pi-ai@0.73.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.4))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.4)': dependencies: - '@anthropic-ai/sdk': 0.91.1(zod@4.3.6) + '@anthropic-ai/sdk': 0.91.1(zod@4.3.4) '@aws-sdk/client-bedrock-runtime': 3.1041.0 - '@google/genai': 1.51.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)(utf-8-validate@5.0.10) + '@google/genai': 1.51.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.4))(bufferutil@4.1.0)(utf-8-validate@5.0.10) '@mistralai/mistralai': 2.2.1(bufferutil@4.1.0)(utf-8-validate@5.0.10) chalk: 5.6.2 - openai: 6.26.0(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.6) + openai: 6.26.0(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.4) partial-json: 0.1.7 proxy-agent: 6.5.0 typebox: 1.1.37 undici: 7.25.0 - zod-to-json-schema: 3.25.2(zod@4.3.6) + zod-to-json-schema: 3.25.2(zod@4.3.4) transitivePeerDependencies: - '@modelcontextprotocol/sdk' - aws-crt @@ -8255,12 +9091,12 @@ snapshots: - ws - zod - '@mariozechner/pi-coding-agent@0.72.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.6)': + '@mariozechner/pi-coding-agent@0.73.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.4))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.4)': dependencies: '@mariozechner/jiti': 2.6.5 - '@mariozechner/pi-agent-core': 0.72.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.6) - '@mariozechner/pi-ai': 0.72.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.6) - '@mariozechner/pi-tui': 0.72.0 + '@mariozechner/pi-agent-core': 0.73.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.4))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.4) + '@mariozechner/pi-ai': 0.73.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.4))(bufferutil@4.1.0)(utf-8-validate@5.0.10)(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.4) + '@mariozechner/pi-tui': 0.73.0 '@silvia-odwyer/photon-node': 0.3.4 chalk: 5.6.2 cli-highlight: 2.1.11 @@ -8289,7 +9125,7 @@ snapshots: - ws - zod - '@mariozechner/pi-tui@0.72.0': + '@mariozechner/pi-tui@0.73.0': dependencies: '@types/mime-types': 2.1.4 chalk: 5.6.2 @@ -8299,209 +9135,58 @@ snapshots: optionalDependencies: koffi: 2.16.1 - '@metamask/eth-json-rpc-provider@1.0.1': - dependencies: - '@metamask/json-rpc-engine': 7.3.3 - '@metamask/safe-event-emitter': 3.1.2 - '@metamask/utils': 5.0.2 - transitivePeerDependencies: - - supports-color - - '@metamask/json-rpc-engine@7.3.3': - dependencies: - '@metamask/rpc-errors': 6.4.0 - '@metamask/safe-event-emitter': 3.1.2 - '@metamask/utils': 8.5.0 - transitivePeerDependencies: - - supports-color - - '@metamask/json-rpc-engine@8.0.2': - dependencies: - '@metamask/rpc-errors': 6.4.0 - '@metamask/safe-event-emitter': 3.1.2 - '@metamask/utils': 8.5.0 - transitivePeerDependencies: - - supports-color - - '@metamask/json-rpc-middleware-stream@7.0.2': - dependencies: - '@metamask/json-rpc-engine': 8.0.2 - '@metamask/safe-event-emitter': 3.1.2 - '@metamask/utils': 8.5.0 - readable-stream: 3.6.2 - transitivePeerDependencies: - - supports-color - - '@metamask/object-multiplex@2.1.0': - dependencies: - once: 1.4.0 - readable-stream: 3.6.2 - - '@metamask/onboarding@1.0.1': - dependencies: - bowser: 2.14.1 - - '@metamask/providers@16.1.0': - dependencies: - '@metamask/json-rpc-engine': 8.0.2 - '@metamask/json-rpc-middleware-stream': 7.0.2 - '@metamask/object-multiplex': 2.1.0 - '@metamask/rpc-errors': 6.4.0 - '@metamask/safe-event-emitter': 3.1.2 - '@metamask/utils': 8.5.0 - detect-browser: 5.3.0 - extension-port-stream: 3.0.0 - fast-deep-equal: 3.1.3 - is-stream: 2.0.1 - readable-stream: 3.6.2 - webextension-polyfill: 0.10.0 - transitivePeerDependencies: - - supports-color - - '@metamask/rpc-errors@6.4.0': - dependencies: - '@metamask/utils': 9.3.0 - fast-safe-stringify: 2.1.1 - transitivePeerDependencies: - - supports-color - - '@metamask/rpc-errors@7.0.2': - dependencies: - '@metamask/utils': 11.11.0 - fast-safe-stringify: 2.1.1 - transitivePeerDependencies: - - supports-color - - '@metamask/safe-event-emitter@2.0.0': {} - - '@metamask/safe-event-emitter@3.1.2': {} - - '@metamask/sdk-analytics@0.0.5': - dependencies: - openapi-fetch: 0.13.8 - - '@metamask/sdk-communication-layer@0.33.1(cross-fetch@4.1.0)(eciesjs@0.4.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.8.3(bufferutil@4.1.0)(utf-8-validate@5.0.10))': - dependencies: - '@metamask/sdk-analytics': 0.0.5 - bufferutil: 4.1.0 - cross-fetch: 4.1.0 - date-fns: 2.30.0 - debug: 4.3.4 - eciesjs: 0.4.18 - eventemitter2: 6.4.9 - readable-stream: 3.6.2 - socket.io-client: 4.8.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) - utf-8-validate: 5.0.10 - uuid: 14.0.0 - transitivePeerDependencies: - - supports-color - - '@metamask/sdk-install-modal-web@0.32.1': - dependencies: - '@paulmillr/qr': 0.2.1 - - '@metamask/sdk@0.33.1(bufferutil@4.1.0)(utf-8-validate@5.0.10)': - dependencies: - '@babel/runtime': 7.29.2 - '@metamask/onboarding': 1.0.1 - '@metamask/providers': 16.1.0 - '@metamask/sdk-analytics': 0.0.5 - '@metamask/sdk-communication-layer': 0.33.1(cross-fetch@4.1.0)(eciesjs@0.4.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.8.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)) - '@metamask/sdk-install-modal-web': 0.32.1 - '@paulmillr/qr': 0.2.1 - bowser: 2.14.1 - cross-fetch: 4.1.0 - debug: 4.3.4 - eciesjs: 0.4.18 - eth-rpc-errors: 4.0.3 - eventemitter2: 6.4.9 - obj-multiplex: 1.0.0 - pump: 3.0.4 - readable-stream: 3.6.2 - socket.io-client: 4.8.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) - tslib: 2.8.1 - util: 0.12.5 - uuid: 14.0.0 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - - '@metamask/superstruct@3.2.1': {} - - '@metamask/utils@11.11.0': - dependencies: - '@ethereumjs/tx': 4.2.0 - '@metamask/superstruct': 3.2.1 - '@noble/hashes': 1.8.0 - '@scure/base': 1.2.6 - '@types/debug': 4.1.13 - '@types/lodash': 4.17.24 - debug: 4.4.3 - lodash: 4.18.1 - pony-cause: 2.1.11 - semver: 7.7.4 - uuid: 14.0.0 - transitivePeerDependencies: - - supports-color - - '@metamask/utils@5.0.2': - dependencies: - '@ethereumjs/tx': 4.2.0 - '@types/debug': 4.1.13 - debug: 4.4.3 - semver: 7.7.4 - superstruct: 1.0.4 - transitivePeerDependencies: - - supports-color - - '@metamask/utils@8.5.0': + '@mdx-js/mdx@3.1.1': dependencies: - '@ethereumjs/tx': 4.2.0 - '@metamask/superstruct': 3.2.1 - '@noble/hashes': 1.8.0 - '@scure/base': 1.2.6 - '@types/debug': 4.1.13 - debug: 4.4.3 - pony-cause: 2.1.11 - semver: 7.7.4 - uuid: 14.0.0 + '@types/estree': 1.0.8 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + acorn: 8.16.0 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 + estree-walker: 3.0.3 + hast-util-to-jsx-runtime: 2.3.6 + markdown-extensions: 2.0.0 + recma-build-jsx: 1.0.0 + recma-jsx: 1.0.1(acorn@8.16.0) + recma-stringify: 1.0.0 + rehype-recma: 1.0.0 + remark-mdx: 3.1.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + source-map: 0.7.6 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 transitivePeerDependencies: - supports-color - '@metamask/utils@9.3.0': + '@mermaid-js/parser@1.1.0': dependencies: - '@ethereumjs/tx': 4.2.0 - '@metamask/superstruct': 3.2.1 - '@noble/hashes': 1.8.0 - '@scure/base': 1.2.6 - '@types/debug': 4.1.13 - debug: 4.4.3 - pony-cause: 2.1.11 - semver: 7.7.4 - uuid: 14.0.0 - transitivePeerDependencies: - - supports-color + langium: 4.2.3 - '@microsoft/api-extractor-model@7.33.8(@types/node@22.19.17)': + '@microsoft/api-extractor-model@7.33.8(@types/node@25.6.0)': dependencies: '@microsoft/tsdoc': 0.16.0 '@microsoft/tsdoc-config': 0.18.1 - '@rushstack/node-core-library': 5.23.1(@types/node@22.19.17) + '@rushstack/node-core-library': 5.23.1(@types/node@25.6.0) transitivePeerDependencies: - '@types/node' optional: true - '@microsoft/api-extractor@7.58.7(@types/node@22.19.17)': + '@microsoft/api-extractor@7.58.7(@types/node@25.6.0)': dependencies: - '@microsoft/api-extractor-model': 7.33.8(@types/node@22.19.17) + '@microsoft/api-extractor-model': 7.33.8(@types/node@25.6.0) '@microsoft/tsdoc': 0.16.0 '@microsoft/tsdoc-config': 0.18.1 - '@rushstack/node-core-library': 5.23.1(@types/node@22.19.17) + '@rushstack/node-core-library': 5.23.1(@types/node@25.6.0) '@rushstack/rig-package': 0.7.3 - '@rushstack/terminal': 0.24.0(@types/node@22.19.17) - '@rushstack/ts-command-line': 5.3.9(@types/node@22.19.17) + '@rushstack/terminal': 0.24.0(@types/node@25.6.0) + '@rushstack/ts-command-line': 5.3.9(@types/node@25.6.0) diff: 8.0.4 minimatch: 10.2.3 resolve: 1.22.12 @@ -8526,13 +9211,13 @@ snapshots: '@mistralai/mistralai@2.2.1(bufferutil@4.1.0)(utf-8-validate@5.0.10)': dependencies: ws: 8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) - zod: 4.3.6 - zod-to-json-schema: 3.25.2(zod@4.3.6) + zod: 4.3.4 + zod-to-json-schema: 3.25.2(zod@4.3.4) transitivePeerDependencies: - bufferutil - utf-8-validate - '@modelcontextprotocol/sdk@1.29.0(zod@4.3.6)': + '@modelcontextprotocol/sdk@1.29.0(zod@4.3.4)': dependencies: '@hono/node-server': 1.19.14(hono@4.12.15) ajv: 8.18.0 @@ -8549,70 +9234,160 @@ snapshots: json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 raw-body: 3.0.2 - zod: 4.3.6 - zod-to-json-schema: 3.25.2(zod@4.3.6) + zod: 4.3.4 + zod-to-json-schema: 3.25.2(zod@4.3.4) transitivePeerDependencies: - supports-color - '@moonrepo/cli@2.2.3': + '@moonrepo/cli@2.2.4': dependencies: detect-libc: 2.1.2 optionalDependencies: - '@moonrepo/core-linux-arm64-gnu': 2.2.3 - '@moonrepo/core-linux-arm64-musl': 2.2.3 - '@moonrepo/core-linux-x64-gnu': 2.2.3 - '@moonrepo/core-linux-x64-musl': 2.2.3 - '@moonrepo/core-macos-arm64': 2.2.3 - '@moonrepo/core-macos-x64': 2.2.3 - '@moonrepo/core-windows-x64-msvc': 2.2.3 + '@moonrepo/core-linux-arm64-gnu': 2.2.4 + '@moonrepo/core-linux-arm64-musl': 2.2.4 + '@moonrepo/core-linux-x64-gnu': 2.2.4 + '@moonrepo/core-linux-x64-musl': 2.2.4 + '@moonrepo/core-macos-arm64': 2.2.4 + '@moonrepo/core-macos-x64': 2.2.4 + '@moonrepo/core-windows-x64-msvc': 2.2.4 - '@moonrepo/core-linux-arm64-gnu@2.2.3': + '@moonrepo/core-linux-arm64-gnu@2.2.4': optional: true - '@moonrepo/core-linux-arm64-musl@2.2.3': + '@moonrepo/core-linux-arm64-musl@2.2.4': optional: true - '@moonrepo/core-linux-x64-gnu@2.2.3': + '@moonrepo/core-linux-x64-gnu@2.2.4': optional: true - '@moonrepo/core-linux-x64-musl@2.2.3': + '@moonrepo/core-linux-x64-musl@2.2.4': optional: true - '@moonrepo/core-macos-arm64@2.2.3': + '@moonrepo/core-macos-arm64@2.2.4': optional: true - '@moonrepo/core-macos-x64@2.2.3': + '@moonrepo/core-macos-x64@2.2.4': optional: true - '@moonrepo/core-windows-x64-msvc@2.2.3': + '@moonrepo/core-windows-x64-msvc@2.2.4': optional: true - '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': - dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@tybys/wasm-util': 0.10.1 + '@napi-rs/simple-git-android-arm-eabi@0.1.22': optional: true - '@noble/ciphers@1.2.1': {} + '@napi-rs/simple-git-android-arm64@0.1.22': + optional: true - '@noble/ciphers@1.3.0': {} + '@napi-rs/simple-git-darwin-arm64@0.1.22': + optional: true - '@noble/curves@1.2.0': - dependencies: - '@noble/hashes': 1.3.2 + '@napi-rs/simple-git-darwin-x64@0.1.22': + optional: true - '@noble/curves@1.4.2': - dependencies: - '@noble/hashes': 1.4.0 + '@napi-rs/simple-git-freebsd-x64@0.1.22': + optional: true - '@noble/curves@1.8.0': - dependencies: + '@napi-rs/simple-git-linux-arm-gnueabihf@0.1.22': + optional: true + + '@napi-rs/simple-git-linux-arm64-gnu@0.1.22': + optional: true + + '@napi-rs/simple-git-linux-arm64-musl@0.1.22': + optional: true + + '@napi-rs/simple-git-linux-ppc64-gnu@0.1.22': + optional: true + + '@napi-rs/simple-git-linux-s390x-gnu@0.1.22': + optional: true + + '@napi-rs/simple-git-linux-x64-gnu@0.1.22': + optional: true + + '@napi-rs/simple-git-linux-x64-musl@0.1.22': + optional: true + + '@napi-rs/simple-git-win32-arm64-msvc@0.1.22': + optional: true + + '@napi-rs/simple-git-win32-ia32-msvc@0.1.22': + optional: true + + '@napi-rs/simple-git-win32-x64-msvc@0.1.22': + optional: true + + '@napi-rs/simple-git@0.1.22': + optionalDependencies: + '@napi-rs/simple-git-android-arm-eabi': 0.1.22 + '@napi-rs/simple-git-android-arm64': 0.1.22 + '@napi-rs/simple-git-darwin-arm64': 0.1.22 + '@napi-rs/simple-git-darwin-x64': 0.1.22 + '@napi-rs/simple-git-freebsd-x64': 0.1.22 + '@napi-rs/simple-git-linux-arm-gnueabihf': 0.1.22 + '@napi-rs/simple-git-linux-arm64-gnu': 0.1.22 + '@napi-rs/simple-git-linux-arm64-musl': 0.1.22 + '@napi-rs/simple-git-linux-ppc64-gnu': 0.1.22 + '@napi-rs/simple-git-linux-s390x-gnu': 0.1.22 + '@napi-rs/simple-git-linux-x64-gnu': 0.1.22 + '@napi-rs/simple-git-linux-x64-musl': 0.1.22 + '@napi-rs/simple-git-win32-arm64-msvc': 0.1.22 + '@napi-rs/simple-git-win32-ia32-msvc': 0.1.22 + '@napi-rs/simple-git-win32-x64-msvc': 0.1.22 + + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@tybys/wasm-util': 0.10.1 + optional: true + + '@next/env@15.5.15': {} + + '@next/swc-darwin-arm64@15.5.15': + optional: true + + '@next/swc-darwin-x64@15.5.15': + optional: true + + '@next/swc-linux-arm64-gnu@15.5.15': + optional: true + + '@next/swc-linux-arm64-musl@15.5.15': + optional: true + + '@next/swc-linux-x64-gnu@15.5.15': + optional: true + + '@next/swc-linux-x64-musl@15.5.15': + optional: true + + '@next/swc-win32-arm64-msvc@15.5.15': + optional: true + + '@next/swc-win32-x64-msvc@15.5.15': + optional: true + + '@noble/ciphers@1.2.1': + optional: true + + '@noble/ciphers@1.3.0': {} + + '@noble/ciphers@2.2.0': {} + + '@noble/curves@1.2.0': + dependencies: + '@noble/hashes': 1.3.2 + + '@noble/curves@1.8.0': + dependencies: '@noble/hashes': 1.7.0 + optional: true '@noble/curves@1.8.1': dependencies: '@noble/hashes': 1.7.1 + optional: true '@noble/curves@1.9.1': dependencies: @@ -8624,14 +9399,19 @@ snapshots: '@noble/hashes@1.3.2': {} - '@noble/hashes@1.4.0': {} + '@noble/hashes@1.4.0': + optional: true - '@noble/hashes@1.7.0': {} + '@noble/hashes@1.7.0': + optional: true - '@noble/hashes@1.7.1': {} + '@noble/hashes@1.7.1': + optional: true '@noble/hashes@1.8.0': {} + '@noble/hashes@2.2.0': {} + '@nodable/entities@2.1.0': {} '@nodelib/fs.scandir@2.1.5': @@ -8652,8 +9432,6 @@ snapshots: dependencies: '@noble/hashes': 1.8.0 - '@paulmillr/qr@0.2.1': {} - '@protobufjs/aspromise@1.1.2': {} '@protobufjs/base64@1.1.2': {} @@ -8677,7 +9455,26 @@ snapshots: '@protobufjs/utf8@1.1.1': {} - '@reduxjs/toolkit@2.11.2(react@18.3.1)': + '@react-aria/focus@3.22.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@swc/helpers': 0.5.21 + react: 19.2.5 + react-aria: 3.48.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + react-dom: 19.2.5(react@19.2.5) + + '@react-aria/interactions@3.28.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@react-types/shared': 3.34.0(react@19.2.5) + '@swc/helpers': 0.5.21 + react: 19.2.5 + react-aria: 3.48.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + react-dom: 19.2.5(react@19.2.5) + + '@react-types/shared@3.34.0(react@19.2.5)': + dependencies: + react: 19.2.5 + + '@reduxjs/toolkit@2.11.2(react@19.0.0)': dependencies: '@standard-schema/spec': 1.1.0 '@standard-schema/utils': 0.3.0 @@ -8686,9 +9483,9 @@ snapshots: redux-thunk: 3.1.0(redux@5.0.1) reselect: 5.1.1 optionalDependencies: - react: 18.3.1 + react: 19.0.0 - '@reduxjs/toolkit@2.11.2(react@19.0.0)': + '@reduxjs/toolkit@2.11.2(react@19.2.5)': dependencies: '@standard-schema/spec': 1.1.0 '@standard-schema/utils': 0.3.0 @@ -8697,119 +9494,27 @@ snapshots: redux-thunk: 3.1.0(redux@5.0.1) reselect: 5.1.1 optionalDependencies: - react: 19.0.0 - - '@reown/appkit-common@1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.22.4)': - dependencies: - big.js: 6.2.2 - dayjs: 1.11.13 - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.22.4) - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod - - '@reown/appkit-common@1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)': - dependencies: - big.js: 6.2.2 - dayjs: 1.11.13 - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod + react: 19.2.5 - '@reown/appkit-common@1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)': + '@reown/appkit-common@1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)': dependencies: big.js: 6.2.2 dayjs: 1.11.13 - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) transitivePeerDependencies: - bufferutil - typescript - utf-8-validate - zod + optional: true - '@reown/appkit-controllers@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)': - dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) - '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - react - - typescript - - uploadthing - - utf-8-validate - - zod - - '@reown/appkit-controllers@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)': + '@reown/appkit-controllers@1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)': dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) - '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - react - - typescript - - uploadthing - - utf-8-validate - - zod - - '@reown/appkit-pay@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)': - dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-ui': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-utils': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) - lit: 3.3.0 - valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) + '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + valtio: 1.13.2(@types/react@19.2.14)(react@19.2.5) + viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -8837,15 +9542,16 @@ snapshots: - uploadthing - utf-8-validate - zod + optional: true - '@reown/appkit-pay@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)': + '@reown/appkit-pay@1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)': dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - '@reown/appkit-ui': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - '@reown/appkit-utils': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@4.3.6) + '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@reown/appkit-controllers': 1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@reown/appkit-ui': 1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@reown/appkit-utils': 1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@19.2.14)(react@19.2.5))(zod@4.3.4) lit: 3.3.0 - valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) + valtio: 1.13.2(@types/react@19.2.14)(react@19.2.5) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -8873,54 +9579,19 @@ snapshots: - uploadthing - utf-8-validate - zod + optional: true '@reown/appkit-polyfills@1.7.8': dependencies: buffer: 6.0.3 + optional: true - '@reown/appkit-scaffold-ui@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76)': - dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-ui': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-utils': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) - '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) - lit: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - react - - typescript - - uploadthing - - utf-8-validate - - valtio - - zod - - '@reown/appkit-scaffold-ui@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@4.3.6)': + '@reown/appkit-scaffold-ui@1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@19.2.14)(react@19.2.5))(zod@4.3.4)': dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - '@reown/appkit-ui': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - '@reown/appkit-utils': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@4.3.6) + '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@reown/appkit-controllers': 1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@reown/appkit-ui': 1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@reown/appkit-utils': 1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@19.2.14)(react@19.2.5))(zod@4.3.4) '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) lit: 3.3.0 transitivePeerDependencies: @@ -8951,11 +9622,12 @@ snapshots: - utf-8-validate - valtio - zod + optional: true - '@reown/appkit-ui@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@reown/appkit-ui@1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)': dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@reown/appkit-controllers': 1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) lit: 3.3.0 qrcode: 1.5.3 @@ -8986,14 +9658,18 @@ snapshots: - uploadthing - utf-8-validate - zod + optional: true - '@reown/appkit-ui@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)': + '@reown/appkit-utils@1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@19.2.14)(react@19.2.5))(zod@4.3.4)': dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@reown/appkit-controllers': 1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@reown/appkit-polyfills': 1.7.8 '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) - lit: 3.3.0 - qrcode: 1.5.3 + '@walletconnect/logger': 2.1.2 + '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + valtio: 1.13.2(@types/react@19.2.14)(react@19.2.5) + viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -9021,55 +9697,35 @@ snapshots: - uploadthing - utf-8-validate - zod + optional: true - '@reown/appkit-utils@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76)': + '@reown/appkit-wallet@1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)': dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) '@reown/appkit-polyfills': 1.7.8 - '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) '@walletconnect/logger': 2.1.2 - '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) + zod: 4.3.4 transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - bufferutil - - db0 - - encoding - - ioredis - - react - typescript - - uploadthing - utf-8-validate - - zod + optional: true - '@reown/appkit-utils@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@4.3.6)': + '@reown/appkit@1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)': dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@reown/appkit-controllers': 1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@reown/appkit-pay': 1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) '@reown/appkit-polyfills': 1.7.8 + '@reown/appkit-scaffold-ui': 1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@19.2.14)(react@19.2.5))(zod@4.3.4) + '@reown/appkit-ui': 1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@reown/appkit-utils': 1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@19.2.14)(react@19.2.5))(zod@4.3.4) '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) - '@walletconnect/logger': 2.1.2 - '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + '@walletconnect/types': 2.21.0 + '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + bs58: 6.0.0 + valtio: 1.13.2(@types/react@19.2.14)(react@19.2.5) + viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -9097,106 +9753,10 @@ snapshots: - uploadthing - utf-8-validate - zod + optional: true - '@reown/appkit-wallet@1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)': - dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.22.4) - '@reown/appkit-polyfills': 1.7.8 - '@walletconnect/logger': 2.1.2 - zod: 3.22.4 - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - '@reown/appkit@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)': - dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-pay': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-polyfills': 1.7.8 - '@reown/appkit-scaffold-ui': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) - '@reown/appkit-ui': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-utils': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) - '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) - '@walletconnect/types': 2.21.0 - '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - bs58: 6.0.0 - valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - react - - typescript - - uploadthing - - utf-8-validate - - zod - - '@reown/appkit@1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)': - dependencies: - '@reown/appkit-common': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - '@reown/appkit-controllers': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - '@reown/appkit-pay': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - '@reown/appkit-polyfills': 1.7.8 - '@reown/appkit-scaffold-ui': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@4.3.6) - '@reown/appkit-ui': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - '@reown/appkit-utils': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@4.3.6) - '@reown/appkit-wallet': 1.7.8(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) - '@walletconnect/types': 2.21.0 - '@walletconnect/universal-provider': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - bs58: 6.0.0 - valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - react - - typescript - - uploadthing - - utf-8-validate - - zod - - '@rolldown/binding-android-arm64@1.0.0-rc.17': - optional: true + '@rolldown/binding-android-arm64@1.0.0-rc.17': + optional: true '@rolldown/binding-darwin-arm64@1.0.0-rc.17': optional: true @@ -9331,7 +9891,7 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.60.2': optional: true - '@rushstack/node-core-library@5.23.1(@types/node@22.19.17)': + '@rushstack/node-core-library@5.23.1(@types/node@25.6.0)': dependencies: ajv: 8.18.0 ajv-draft-04: 1.0.0(ajv@8.18.0) @@ -9342,12 +9902,12 @@ snapshots: resolve: 1.22.12 semver: 7.7.4 optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 25.6.0 optional: true - '@rushstack/problem-matcher@0.2.1(@types/node@22.19.17)': + '@rushstack/problem-matcher@0.2.1(@types/node@25.6.0)': optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 25.6.0 optional: true '@rushstack/rig-package@0.7.3': @@ -9356,18 +9916,18 @@ snapshots: resolve: 1.22.12 optional: true - '@rushstack/terminal@0.24.0(@types/node@22.19.17)': + '@rushstack/terminal@0.24.0(@types/node@25.6.0)': dependencies: - '@rushstack/node-core-library': 5.23.1(@types/node@22.19.17) - '@rushstack/problem-matcher': 0.2.1(@types/node@22.19.17) + '@rushstack/node-core-library': 5.23.1(@types/node@25.6.0) + '@rushstack/problem-matcher': 0.2.1(@types/node@25.6.0) supports-color: 8.1.1 optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 25.6.0 optional: true - '@rushstack/ts-command-line@5.3.9(@types/node@22.19.17)': + '@rushstack/ts-command-line@5.3.9(@types/node@25.6.0)': dependencies: - '@rushstack/terminal': 0.24.0(@types/node@22.19.17) + '@rushstack/terminal': 0.24.0(@types/node@25.6.0) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -9375,65 +9935,43 @@ snapshots: - '@types/node' optional: true - '@safe-global/safe-apps-provider@0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)': - dependencies: - '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - events: 3.3.0 - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod - - '@safe-global/safe-apps-provider@0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)': + '@safe-global/safe-apps-provider@0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)': dependencies: - '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) events: 3.3.0 transitivePeerDependencies: - bufferutil - typescript - utf-8-validate - zod + optional: true - '@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)': - dependencies: - '@safe-global/safe-gateway-typescript-sdk': 3.23.1 - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod - - '@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)': + '@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)': dependencies: '@safe-global/safe-gateway-typescript-sdk': 3.23.1 - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) transitivePeerDependencies: - bufferutil - typescript - utf-8-validate - zod + optional: true - '@safe-global/safe-gateway-typescript-sdk@3.23.1': {} + '@safe-global/safe-gateway-typescript-sdk@3.23.1': + optional: true '@scarf/scarf@1.4.0': {} - '@scure/base@1.1.9': {} - '@scure/base@1.2.6': {} - '@scure/bip32@1.4.0': - dependencies: - '@noble/curves': 1.4.2 - '@noble/hashes': 1.4.0 - '@scure/base': 1.1.9 + '@scure/base@2.2.0': {} '@scure/bip32@1.6.2': dependencies: '@noble/curves': 1.8.1 '@noble/hashes': 1.7.1 '@scure/base': 1.2.6 + optional: true '@scure/bip32@1.7.0': dependencies: @@ -9441,21 +9979,64 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/base': 1.2.6 - '@scure/bip39@1.3.0': - dependencies: - '@noble/hashes': 1.4.0 - '@scure/base': 1.1.9 - '@scure/bip39@1.5.4': dependencies: '@noble/hashes': 1.7.1 '@scure/base': 1.2.6 + optional: true '@scure/bip39@1.6.0': dependencies: '@noble/hashes': 1.8.0 '@scure/base': 1.2.6 + '@scure/bip39@2.2.0': + dependencies: + '@noble/hashes': 2.2.0 + '@scure/base': 2.2.0 + + '@shikijs/core@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + + '@shikijs/engine-javascript@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.6 + + '@shikijs/engine-oniguruma@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + + '@shikijs/themes@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + + '@shikijs/twoslash@3.23.0(typescript@5.9.3)': + dependencies: + '@shikijs/core': 3.23.0 + '@shikijs/types': 3.23.0 + twoslash: 0.3.8(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@shikijs/types@3.23.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.2': {} + '@silvia-odwyer/photon-node@0.3.4': {} '@smithy/config-resolver@4.4.17': @@ -9758,568 +10339,298 @@ snapshots: dependencies: tslib: 2.8.1 - '@socket.io/component-emitter@3.1.2': {} - - '@solana-program/system@0.10.0(@solana/kit@5.5.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10))': + '@spruceid/siwe-parser@2.1.2': dependencies: - '@solana/kit': 5.5.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) + '@noble/hashes': 1.8.0 + apg-js: 4.4.0 + uri-js: 4.4.1 + valid-url: 1.0.9 - '@solana-program/token@0.9.0(@solana/kit@5.5.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10))': + '@stablelib/binary@1.0.1': dependencies: - '@solana/kit': 5.5.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) + '@stablelib/int': 1.0.1 - '@solana/accounts@5.5.1(typescript@6.0.3)': + '@stablelib/int@1.0.1': {} + + '@stablelib/random@1.0.2': dependencies: - '@solana/addresses': 5.5.1(typescript@6.0.3) - '@solana/codecs-core': 5.5.1(typescript@6.0.3) - '@solana/codecs-strings': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/rpc-spec': 5.5.1(typescript@6.0.3) - '@solana/rpc-types': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + '@stablelib/binary': 1.0.1 + '@stablelib/wipe': 1.0.1 + + '@stablelib/wipe@1.0.1': {} + + '@standard-schema/spec@1.1.0': {} - '@solana/addresses@5.5.1(typescript@6.0.3)': + '@standard-schema/utils@0.3.0': {} + + '@swc/helpers@0.5.15': dependencies: - '@solana/assertions': 5.5.1(typescript@6.0.3) - '@solana/codecs-core': 5.5.1(typescript@6.0.3) - '@solana/codecs-strings': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/nominal-types': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + tslib: 2.8.1 - '@solana/assertions@5.5.1(typescript@6.0.3)': + '@swc/helpers@0.5.21': dependencies: - '@solana/errors': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 + tslib: 2.8.1 + + '@tanstack/query-core@5.100.9': {} - '@solana/codecs-core@5.5.1(typescript@6.0.3)': + '@tanstack/react-query@5.100.9(react@19.2.5)': dependencies: - '@solana/errors': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 + '@tanstack/query-core': 5.100.9 + react: 19.2.5 - '@solana/codecs-data-structures@5.5.1(typescript@6.0.3)': + '@tanstack/react-virtual@3.13.24(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@solana/codecs-core': 5.5.1(typescript@6.0.3) - '@solana/codecs-numbers': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 + '@tanstack/virtual-core': 3.14.0 + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) - '@solana/codecs-numbers@5.5.1(typescript@6.0.3)': + '@tanstack/virtual-core@3.14.0': {} + + '@theguild/remark-mermaid@0.3.0(react@19.2.5)': dependencies: - '@solana/codecs-core': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 + mermaid: 11.14.0 + react: 19.2.5 + unist-util-visit: 5.1.0 - '@solana/codecs-strings@5.5.1(typescript@6.0.3)': + '@theguild/remark-npm2yarn@0.3.3': dependencies: - '@solana/codecs-core': 5.5.1(typescript@6.0.3) - '@solana/codecs-numbers': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 + npm-to-yarn: 3.0.1 + unist-util-visit: 5.1.0 - '@solana/codecs@5.5.1(typescript@6.0.3)': + '@tokenizer/inflate@0.4.1': dependencies: - '@solana/codecs-core': 5.5.1(typescript@6.0.3) - '@solana/codecs-data-structures': 5.5.1(typescript@6.0.3) - '@solana/codecs-numbers': 5.5.1(typescript@6.0.3) - '@solana/codecs-strings': 5.5.1(typescript@6.0.3) - '@solana/options': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 + debug: 4.4.3 + token-types: 6.1.2 transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + - supports-color + + '@tokenizer/token@0.3.0': {} + + '@tootallnate/quickjs-emscripten@0.23.0': {} - '@solana/errors@5.5.1(typescript@6.0.3)': + '@ts-morph/common@0.28.1': dependencies: - chalk: 5.6.2 - commander: 14.0.2 - optionalDependencies: - typescript: 6.0.3 + minimatch: 10.2.3 + path-browserify: 1.0.1 + tinyglobby: 0.2.16 - '@solana/fast-stable-stringify@5.5.1(typescript@6.0.3)': - optionalDependencies: - typescript: 6.0.3 + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true - '@solana/functional@5.5.1(typescript@6.0.3)': - optionalDependencies: - typescript: 6.0.3 + '@types/argparse@1.0.38': + optional: true - '@solana/instruction-plans@5.5.1(typescript@6.0.3)': + '@types/body-parser@1.19.6': dependencies: - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/instructions': 5.5.1(typescript@6.0.3) - '@solana/keys': 5.5.1(typescript@6.0.3) - '@solana/promises': 5.5.1(typescript@6.0.3) - '@solana/transaction-messages': 5.5.1(typescript@6.0.3) - '@solana/transactions': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + '@types/connect': 3.4.38 + '@types/node': 25.6.0 - '@solana/instructions@5.5.1(typescript@6.0.3)': + '@types/chai@5.2.3': dependencies: - '@solana/codecs-core': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 - '@solana/keys@5.5.1(typescript@6.0.3)': + '@types/connect@3.4.38': dependencies: - '@solana/assertions': 5.5.1(typescript@6.0.3) - '@solana/codecs-core': 5.5.1(typescript@6.0.3) - '@solana/codecs-strings': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/nominal-types': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - '@solana/kit@5.5.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)': - dependencies: - '@solana/accounts': 5.5.1(typescript@6.0.3) - '@solana/addresses': 5.5.1(typescript@6.0.3) - '@solana/codecs': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/functional': 5.5.1(typescript@6.0.3) - '@solana/instruction-plans': 5.5.1(typescript@6.0.3) - '@solana/instructions': 5.5.1(typescript@6.0.3) - '@solana/keys': 5.5.1(typescript@6.0.3) - '@solana/offchain-messages': 5.5.1(typescript@6.0.3) - '@solana/plugin-core': 5.5.1(typescript@6.0.3) - '@solana/programs': 5.5.1(typescript@6.0.3) - '@solana/rpc': 5.5.1(typescript@6.0.3) - '@solana/rpc-api': 5.5.1(typescript@6.0.3) - '@solana/rpc-parsed-types': 5.5.1(typescript@6.0.3) - '@solana/rpc-spec-types': 5.5.1(typescript@6.0.3) - '@solana/rpc-subscriptions': 5.5.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) - '@solana/rpc-types': 5.5.1(typescript@6.0.3) - '@solana/signers': 5.5.1(typescript@6.0.3) - '@solana/sysvars': 5.5.1(typescript@6.0.3) - '@solana/transaction-confirmation': 5.5.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) - '@solana/transaction-messages': 5.5.1(typescript@6.0.3) - '@solana/transactions': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - bufferutil - - fastestsmallesttextencoderdecoder - - utf-8-validate + '@types/node': 25.6.0 - '@solana/nominal-types@5.5.1(typescript@6.0.3)': - optionalDependencies: - typescript: 6.0.3 + '@types/cookiejar@2.1.5': {} - '@solana/offchain-messages@5.5.1(typescript@6.0.3)': + '@types/cors@2.8.19': dependencies: - '@solana/addresses': 5.5.1(typescript@6.0.3) - '@solana/codecs-core': 5.5.1(typescript@6.0.3) - '@solana/codecs-data-structures': 5.5.1(typescript@6.0.3) - '@solana/codecs-numbers': 5.5.1(typescript@6.0.3) - '@solana/codecs-strings': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/keys': 5.5.1(typescript@6.0.3) - '@solana/nominal-types': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + '@types/node': 25.6.0 + + '@types/d3-array@3.2.2': {} - '@solana/options@5.5.1(typescript@6.0.3)': + '@types/d3-axis@3.0.6': dependencies: - '@solana/codecs-core': 5.5.1(typescript@6.0.3) - '@solana/codecs-data-structures': 5.5.1(typescript@6.0.3) - '@solana/codecs-numbers': 5.5.1(typescript@6.0.3) - '@solana/codecs-strings': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + '@types/d3-selection': 3.0.11 - '@solana/plugin-core@5.5.1(typescript@6.0.3)': - optionalDependencies: - typescript: 6.0.3 + '@types/d3-brush@3.0.6': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-chord@3.0.6': {} + + '@types/d3-color@3.1.3': {} - '@solana/programs@5.5.1(typescript@6.0.3)': + '@types/d3-contour@3.0.6': dependencies: - '@solana/addresses': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + '@types/d3-array': 3.2.2 + '@types/geojson': 7946.0.16 - '@solana/promises@5.5.1(typescript@6.0.3)': - optionalDependencies: - typescript: 6.0.3 + '@types/d3-delaunay@6.0.4': {} - '@solana/rpc-api@5.5.1(typescript@6.0.3)': - dependencies: - '@solana/addresses': 5.5.1(typescript@6.0.3) - '@solana/codecs-core': 5.5.1(typescript@6.0.3) - '@solana/codecs-strings': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/keys': 5.5.1(typescript@6.0.3) - '@solana/rpc-parsed-types': 5.5.1(typescript@6.0.3) - '@solana/rpc-spec': 5.5.1(typescript@6.0.3) - '@solana/rpc-transformers': 5.5.1(typescript@6.0.3) - '@solana/rpc-types': 5.5.1(typescript@6.0.3) - '@solana/transaction-messages': 5.5.1(typescript@6.0.3) - '@solana/transactions': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + '@types/d3-dispatch@3.0.7': {} - '@solana/rpc-parsed-types@5.5.1(typescript@6.0.3)': - optionalDependencies: - typescript: 6.0.3 + '@types/d3-drag@3.0.7': + dependencies: + '@types/d3-selection': 3.0.11 - '@solana/rpc-spec-types@5.5.1(typescript@6.0.3)': - optionalDependencies: - typescript: 6.0.3 + '@types/d3-dsv@3.0.7': {} + + '@types/d3-ease@3.0.2': {} - '@solana/rpc-spec@5.5.1(typescript@6.0.3)': + '@types/d3-fetch@3.0.7': dependencies: - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/rpc-spec-types': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 + '@types/d3-dsv': 3.0.7 - '@solana/rpc-subscriptions-api@5.5.1(typescript@6.0.3)': + '@types/d3-force@3.0.10': {} + + '@types/d3-format@3.0.4': {} + + '@types/d3-geo@3.1.0': dependencies: - '@solana/addresses': 5.5.1(typescript@6.0.3) - '@solana/keys': 5.5.1(typescript@6.0.3) - '@solana/rpc-subscriptions-spec': 5.5.1(typescript@6.0.3) - '@solana/rpc-transformers': 5.5.1(typescript@6.0.3) - '@solana/rpc-types': 5.5.1(typescript@6.0.3) - '@solana/transaction-messages': 5.5.1(typescript@6.0.3) - '@solana/transactions': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + '@types/geojson': 7946.0.16 + + '@types/d3-hierarchy@3.1.7': {} - '@solana/rpc-subscriptions-channel-websocket@5.5.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)': + '@types/d3-interpolate@3.0.4': dependencies: - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/functional': 5.5.1(typescript@6.0.3) - '@solana/rpc-subscriptions-spec': 5.5.1(typescript@6.0.3) - '@solana/subscribable': 5.5.1(typescript@6.0.3) - ws: 8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate + '@types/d3-color': 3.1.3 + + '@types/d3-path@3.1.1': {} + + '@types/d3-polygon@3.0.2': {} + + '@types/d3-quadtree@3.0.6': {} + + '@types/d3-random@3.0.3': {} - '@solana/rpc-subscriptions-spec@5.5.1(typescript@6.0.3)': + '@types/d3-scale-chromatic@3.1.0': {} + + '@types/d3-scale@4.0.9': dependencies: - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/promises': 5.5.1(typescript@6.0.3) - '@solana/rpc-spec-types': 5.5.1(typescript@6.0.3) - '@solana/subscribable': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 + '@types/d3-time': 3.0.4 - '@solana/rpc-subscriptions@5.5.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)': - dependencies: - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/fast-stable-stringify': 5.5.1(typescript@6.0.3) - '@solana/functional': 5.5.1(typescript@6.0.3) - '@solana/promises': 5.5.1(typescript@6.0.3) - '@solana/rpc-spec-types': 5.5.1(typescript@6.0.3) - '@solana/rpc-subscriptions-api': 5.5.1(typescript@6.0.3) - '@solana/rpc-subscriptions-channel-websocket': 5.5.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) - '@solana/rpc-subscriptions-spec': 5.5.1(typescript@6.0.3) - '@solana/rpc-transformers': 5.5.1(typescript@6.0.3) - '@solana/rpc-types': 5.5.1(typescript@6.0.3) - '@solana/subscribable': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - bufferutil - - fastestsmallesttextencoderdecoder - - utf-8-validate + '@types/d3-selection@3.0.11': {} - '@solana/rpc-transformers@5.5.1(typescript@6.0.3)': + '@types/d3-shape@3.1.8': dependencies: - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/functional': 5.5.1(typescript@6.0.3) - '@solana/nominal-types': 5.5.1(typescript@6.0.3) - '@solana/rpc-spec-types': 5.5.1(typescript@6.0.3) - '@solana/rpc-types': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + '@types/d3-path': 3.1.1 + + '@types/d3-time-format@4.0.3': {} - '@solana/rpc-transport-http@5.5.1(typescript@6.0.3)': + '@types/d3-time@3.0.4': {} + + '@types/d3-timer@3.0.2': {} + + '@types/d3-transition@3.0.9': dependencies: - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/rpc-spec': 5.5.1(typescript@6.0.3) - '@solana/rpc-spec-types': 5.5.1(typescript@6.0.3) - undici-types: 7.25.0 - optionalDependencies: - typescript: 6.0.3 + '@types/d3-selection': 3.0.11 - '@solana/rpc-types@5.5.1(typescript@6.0.3)': + '@types/d3-zoom@3.0.8': dependencies: - '@solana/addresses': 5.5.1(typescript@6.0.3) - '@solana/codecs-core': 5.5.1(typescript@6.0.3) - '@solana/codecs-numbers': 5.5.1(typescript@6.0.3) - '@solana/codecs-strings': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/nominal-types': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + '@types/d3-interpolate': 3.0.4 + '@types/d3-selection': 3.0.11 - '@solana/rpc@5.5.1(typescript@6.0.3)': + '@types/d3@7.4.3': dependencies: - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/fast-stable-stringify': 5.5.1(typescript@6.0.3) - '@solana/functional': 5.5.1(typescript@6.0.3) - '@solana/rpc-api': 5.5.1(typescript@6.0.3) - '@solana/rpc-spec': 5.5.1(typescript@6.0.3) - '@solana/rpc-spec-types': 5.5.1(typescript@6.0.3) - '@solana/rpc-transformers': 5.5.1(typescript@6.0.3) - '@solana/rpc-transport-http': 5.5.1(typescript@6.0.3) - '@solana/rpc-types': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder + '@types/d3-array': 3.2.2 + '@types/d3-axis': 3.0.6 + '@types/d3-brush': 3.0.6 + '@types/d3-chord': 3.0.6 + '@types/d3-color': 3.1.3 + '@types/d3-contour': 3.0.6 + '@types/d3-delaunay': 6.0.4 + '@types/d3-dispatch': 3.0.7 + '@types/d3-drag': 3.0.7 + '@types/d3-dsv': 3.0.7 + '@types/d3-ease': 3.0.2 + '@types/d3-fetch': 3.0.7 + '@types/d3-force': 3.0.10 + '@types/d3-format': 3.0.4 + '@types/d3-geo': 3.1.0 + '@types/d3-hierarchy': 3.1.7 + '@types/d3-interpolate': 3.0.4 + '@types/d3-path': 3.1.1 + '@types/d3-polygon': 3.0.2 + '@types/d3-quadtree': 3.0.6 + '@types/d3-random': 3.0.3 + '@types/d3-scale': 4.0.9 + '@types/d3-scale-chromatic': 3.1.0 + '@types/d3-selection': 3.0.11 + '@types/d3-shape': 3.1.8 + '@types/d3-time': 3.0.4 + '@types/d3-time-format': 4.0.3 + '@types/d3-timer': 3.0.2 + '@types/d3-transition': 3.0.9 + '@types/d3-zoom': 3.0.8 - '@solana/signers@5.5.1(typescript@6.0.3)': - dependencies: - '@solana/addresses': 5.5.1(typescript@6.0.3) - '@solana/codecs-core': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/instructions': 5.5.1(typescript@6.0.3) - '@solana/keys': 5.5.1(typescript@6.0.3) - '@solana/nominal-types': 5.5.1(typescript@6.0.3) - '@solana/offchain-messages': 5.5.1(typescript@6.0.3) - '@solana/transaction-messages': 5.5.1(typescript@6.0.3) - '@solana/transactions': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - '@solana/subscribable@5.5.1(typescript@6.0.3)': - dependencies: - '@solana/errors': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - - '@solana/sysvars@5.5.1(typescript@6.0.3)': - dependencies: - '@solana/accounts': 5.5.1(typescript@6.0.3) - '@solana/codecs': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/rpc-types': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - '@solana/transaction-confirmation@5.5.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)': - dependencies: - '@solana/addresses': 5.5.1(typescript@6.0.3) - '@solana/codecs-strings': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/keys': 5.5.1(typescript@6.0.3) - '@solana/promises': 5.5.1(typescript@6.0.3) - '@solana/rpc': 5.5.1(typescript@6.0.3) - '@solana/rpc-subscriptions': 5.5.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) - '@solana/rpc-types': 5.5.1(typescript@6.0.3) - '@solana/transaction-messages': 5.5.1(typescript@6.0.3) - '@solana/transactions': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - bufferutil - - fastestsmallesttextencoderdecoder - - utf-8-validate - - '@solana/transaction-messages@5.5.1(typescript@6.0.3)': - dependencies: - '@solana/addresses': 5.5.1(typescript@6.0.3) - '@solana/codecs-core': 5.5.1(typescript@6.0.3) - '@solana/codecs-data-structures': 5.5.1(typescript@6.0.3) - '@solana/codecs-numbers': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/functional': 5.5.1(typescript@6.0.3) - '@solana/instructions': 5.5.1(typescript@6.0.3) - '@solana/nominal-types': 5.5.1(typescript@6.0.3) - '@solana/rpc-types': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - '@solana/transactions@5.5.1(typescript@6.0.3)': - dependencies: - '@solana/addresses': 5.5.1(typescript@6.0.3) - '@solana/codecs-core': 5.5.1(typescript@6.0.3) - '@solana/codecs-data-structures': 5.5.1(typescript@6.0.3) - '@solana/codecs-numbers': 5.5.1(typescript@6.0.3) - '@solana/codecs-strings': 5.5.1(typescript@6.0.3) - '@solana/errors': 5.5.1(typescript@6.0.3) - '@solana/functional': 5.5.1(typescript@6.0.3) - '@solana/instructions': 5.5.1(typescript@6.0.3) - '@solana/keys': 5.5.1(typescript@6.0.3) - '@solana/nominal-types': 5.5.1(typescript@6.0.3) - '@solana/rpc-types': 5.5.1(typescript@6.0.3) - '@solana/transaction-messages': 5.5.1(typescript@6.0.3) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - fastestsmallesttextencoderdecoder - - '@spruceid/siwe-parser@2.1.2': - dependencies: - '@noble/hashes': 1.8.0 - apg-js: 4.4.0 - uri-js: 4.4.1 - valid-url: 1.0.9 - - '@stablelib/binary@1.0.1': - dependencies: - '@stablelib/int': 1.0.1 - - '@stablelib/int@1.0.1': {} - - '@stablelib/random@1.0.2': - dependencies: - '@stablelib/binary': 1.0.1 - '@stablelib/wipe': 1.0.1 - - '@stablelib/wipe@1.0.1': {} - - '@standard-schema/spec@1.1.0': {} - - '@standard-schema/utils@0.3.0': {} - - '@tanstack/query-core@5.100.6': {} - - '@tanstack/react-query@5.100.6(react@18.3.1)': - dependencies: - '@tanstack/query-core': 5.100.6 - react: 18.3.1 - - '@tokenizer/inflate@0.4.1': - dependencies: - debug: 4.4.3 - token-types: 6.1.2 - transitivePeerDependencies: - - supports-color - - '@tokenizer/token@0.3.0': {} - - '@tootallnate/quickjs-emscripten@0.23.0': {} - - '@tybys/wasm-util@0.10.1': - dependencies: - tslib: 2.8.1 - optional: true - - '@types/argparse@1.0.38': - optional: true - - '@types/body-parser@1.19.6': - dependencies: - '@types/connect': 3.4.38 - '@types/node': 22.19.17 - - '@types/chai@5.2.3': - dependencies: - '@types/deep-eql': 4.0.2 - assertion-error: 2.0.1 - - '@types/connect@3.4.38': - dependencies: - '@types/node': 22.19.17 - - '@types/cookiejar@2.1.5': {} - - '@types/cors@2.8.19': - dependencies: - '@types/node': 22.19.17 - - '@types/debug@4.1.13': + '@types/debug@4.1.13': dependencies: '@types/ms': 2.1.0 '@types/deep-eql@4.0.2': {} + '@types/estree-jsx@1.0.5': + dependencies: + '@types/estree': 1.0.8 + '@types/estree@1.0.8': {} - '@types/express-serve-static-core@4.19.8': + '@types/express-serve-static-core@5.1.1': dependencies: - '@types/node': 22.19.17 + '@types/node': 25.6.0 '@types/qs': 6.15.0 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 - '@types/express@4.17.25': + '@types/express@5.0.6': dependencies: '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 4.19.8 - '@types/qs': 6.15.0 - '@types/serve-static': 1.15.10 + '@types/express-serve-static-core': 5.1.1 + '@types/serve-static': 2.2.0 + + '@types/geojson@7946.0.16': {} + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 '@types/http-errors@2.0.5': {} - '@types/lodash@4.17.24': {} + '@types/katex@0.16.8': {} + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdx@2.0.13': {} '@types/methods@1.1.4': {} '@types/mime-types@2.1.4': {} - '@types/mime@1.3.5': {} - '@types/ms@2.1.0': {} - '@types/node@12.20.55': {} - - '@types/node@22.19.17': + '@types/nlcst@2.0.3': dependencies: - undici-types: 6.21.0 + '@types/unist': 3.0.3 + + '@types/node@12.20.55': {} '@types/node@22.7.5': dependencies: undici-types: 6.19.8 - '@types/prop-types@15.7.15': {} + '@types/node@25.6.0': + dependencies: + undici-types: 7.19.2 '@types/qs@6.15.0': {} '@types/range-parser@1.2.7': {} - '@types/react-dom@18.3.7(@types/react@18.3.28)': + '@types/react-dom@18.3.7(@types/react@19.2.14)': dependencies: - '@types/react': 18.3.28 + '@types/react': 19.2.14 - '@types/react@18.3.28': + '@types/react-dom@19.2.3(@types/react@19.2.14)': dependencies: - '@types/prop-types': 15.7.15 - csstype: 3.2.3 + '@types/react': 19.2.14 '@types/react@19.2.14': dependencies: @@ -10327,34 +10638,33 @@ snapshots: '@types/retry@0.12.0': {} - '@types/send@0.17.6': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 22.19.17 - '@types/send@1.2.1': dependencies: - '@types/node': 22.19.17 + '@types/node': 25.6.0 - '@types/serve-static@1.15.10': + '@types/serve-static@2.2.0': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 22.19.17 - '@types/send': 0.17.6 + '@types/node': 25.6.0 '@types/superagent@8.1.9': dependencies: '@types/cookiejar': 2.1.5 '@types/methods': 1.1.4 - '@types/node': 22.19.17 + '@types/node': 25.6.0 form-data: 4.0.5 - '@types/supertest@6.0.3': + '@types/supertest@7.2.0': dependencies: '@types/methods': 1.1.4 '@types/superagent': 8.1.9 - '@types/trusted-types@2.0.7': {} + '@types/trusted-types@2.0.7': + optional: true + + '@types/unist@2.0.11': {} + + '@types/unist@3.0.3': {} '@types/vscode@1.118.0': {} @@ -10362,13 +10672,41 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.19.17 + '@types/node': 25.6.0 optional: true - '@vitejs/plugin-react@6.0.1(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4))': + '@typescript/vfs@1.6.4(typescript@5.9.3)': + dependencies: + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@ungap/structured-clone@1.3.1': {} + + '@upsetjs/venn.js@2.0.0': + optionalDependencies: + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + + '@vitejs/plugin-react@6.0.1(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.7 - vite: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + + '@vitest/coverage-v8@4.1.5(vitest@4.1.5)': + dependencies: + '@bcoe/v8-coverage': 1.0.2 + '@vitest/utils': 4.1.5 + ast-v8-to-istanbul: 1.0.0 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.2.0 + magicast: 0.5.2 + obug: 2.1.1 + std-env: 4.1.0 + tinyrainbow: 3.1.0 + vitest: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) '@vitest/expect@4.1.5': dependencies: @@ -10379,13 +10717,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.5(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4))': + '@vitest/mocker@4.1.5(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4))': dependencies: '@vitest/spy': 4.1.5 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) '@vitest/pretty-format@4.1.5': dependencies: @@ -10423,120 +10761,38 @@ snapshots: path-browserify: 1.0.1 vscode-uri: 3.1.0 - '@wagmi/connectors@6.2.0(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.100.6)(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.100.6)(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76))(zod@3.25.76)': - dependencies: - '@base-org/account': 2.4.0(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@3.25.76) - '@coinbase/wallet-sdk': 4.3.6(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@3.25.76) - '@gemini-wallet/core': 0.3.2(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)) - '@metamask/sdk': 0.33.1(bufferutil@4.1.0)(utf-8-validate@5.0.10) - '@safe-global/safe-apps-provider': 0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@wagmi/core': 2.22.1(@tanstack/query-core@5.100.6)(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)) - '@walletconnect/ethereum-provider': 2.21.1(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - cbw-sdk: '@coinbase/wallet-sdk@3.9.3' - porto: 0.2.35(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.100.6)(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)))(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.100.6)(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76)) - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) + '@wagmi/connectors@8.0.9(@coinbase/wallet-sdk@4.3.6(@types/react@19.2.14)(bufferutil@4.1.0)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-provider@0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@wagmi/core@3.4.8(@tanstack/query-core@5.100.9)(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)))(@walletconnect/ethereum-provider@2.21.1(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(porto@0.2.35)(typescript@6.0.3)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))': + dependencies: + '@wagmi/core': 3.4.8(@tanstack/query-core@5.100.9)(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)) + viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) optionalDependencies: + '@coinbase/wallet-sdk': 4.3.6(@types/react@19.2.14)(bufferutil@4.1.0)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(utf-8-validate@5.0.10)(zod@4.3.4) + '@safe-global/safe-apps-provider': 0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@walletconnect/ethereum-provider': 2.21.1(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + porto: 0.2.35(@tanstack/react-query@5.100.9(react@19.2.5))(@types/react@19.2.14)(@wagmi/core@3.4.8(@tanstack/query-core@5.100.9)(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)))(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(wagmi@3.6.9) typescript: 6.0.3 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@tanstack/react-query' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - debug - - encoding - - expo-auth-session - - expo-crypto - - expo-web-browser - - fastestsmallesttextencoderdecoder - - immer - - ioredis - - react - - react-native - - supports-color - - uploadthing - - use-sync-external-store - - utf-8-validate - - wagmi - - zod - '@wagmi/connectors@6.2.0(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.100.6)(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)))(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6))(wagmi@2.19.5(@tanstack/query-core@5.100.6)(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6))(zod@4.3.6))(zod@4.3.6)': - dependencies: - '@base-org/account': 2.4.0(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@4.3.6) - '@coinbase/wallet-sdk': 4.3.6(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@4.3.6) - '@gemini-wallet/core': 0.3.2(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)) - '@metamask/sdk': 0.33.1(bufferutil@4.1.0)(utf-8-validate@5.0.10) - '@safe-global/safe-apps-provider': 0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - '@wagmi/core': 2.22.1(@tanstack/query-core@5.100.6)(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)) - '@walletconnect/ethereum-provider': 2.21.1(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - cbw-sdk: '@coinbase/wallet-sdk@3.9.3' - porto: 0.2.35(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.100.6)(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)))(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6))(wagmi@2.19.5(@tanstack/query-core@5.100.6)(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6))(zod@4.3.6)) - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + '@wagmi/connectors@8.0.9(@coinbase/wallet-sdk@4.3.6(@types/react@19.2.14)(bufferutil@4.1.0)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.6.0(react@19.2.5))(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-provider@0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@wagmi/core@3.4.8(@tanstack/query-core@5.100.9)(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.6.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)))(@walletconnect/ethereum-provider@2.21.1(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(porto@0.2.35)(typescript@6.0.3)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))': + dependencies: + '@wagmi/core': 3.4.8(@tanstack/query-core@5.100.9)(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.6.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)) + viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) optionalDependencies: + '@coinbase/wallet-sdk': 4.3.6(@types/react@19.2.14)(bufferutil@4.1.0)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.6.0(react@19.2.5))(utf-8-validate@5.0.10)(zod@4.3.4) + '@safe-global/safe-apps-provider': 0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@walletconnect/ethereum-provider': 2.21.1(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + porto: 0.2.35(@tanstack/react-query@5.100.9(react@19.2.5))(@types/react@19.2.14)(@wagmi/core@3.4.8(@tanstack/query-core@5.100.9)(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.6.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)))(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.6.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(wagmi@3.6.9) typescript: 6.0.3 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@tanstack/react-query' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - debug - - encoding - - expo-auth-session - - expo-crypto - - expo-web-browser - - fastestsmallesttextencoderdecoder - - immer - - ioredis - - react - - react-native - - supports-color - - uploadthing - - use-sync-external-store - - utf-8-validate - - wagmi - - zod - '@wagmi/core@2.22.1(@tanstack/query-core@5.100.6)(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76))': + '@wagmi/core@3.4.8(@tanstack/query-core@5.100.9)(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))': dependencies: eventemitter3: 5.0.1 mipd: 0.0.7(typescript@6.0.3) - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - zustand: 5.0.0(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + zustand: 5.0.0(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.4.0(react@19.2.5)) optionalDependencies: - '@tanstack/query-core': 5.100.6 + '@tanstack/query-core': 5.100.9 typescript: 6.0.3 transitivePeerDependencies: - '@types/react' @@ -10544,14 +10800,14 @@ snapshots: - react - use-sync-external-store - '@wagmi/core@2.22.1(@tanstack/query-core@5.100.6)(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6))': + '@wagmi/core@3.4.8(@tanstack/query-core@5.100.9)(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.6.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))': dependencies: eventemitter3: 5.0.1 mipd: 0.0.7(typescript@6.0.3) - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - zustand: 5.0.0(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + zustand: 5.0.0(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.6.0(react@19.2.5)) optionalDependencies: - '@tanstack/query-core': 5.100.6 + '@tanstack/query-core': 5.100.9 typescript: 6.0.3 transitivePeerDependencies: - '@types/react' @@ -10559,7 +10815,7 @@ snapshots: - react - use-sync-external-store - '@walletconnect/core@2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@walletconnect/core@2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)': dependencies: '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-provider': 1.0.14 @@ -10573,95 +10829,7 @@ snapshots: '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 '@walletconnect/types': 2.21.0 - '@walletconnect/utils': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@walletconnect/window-getters': 1.0.1 - es-toolkit: 1.33.0 - events: 3.3.0 - uint8arrays: 3.1.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - ioredis - - typescript - - uploadthing - - utf-8-validate - - zod - - '@walletconnect/core@2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)': - dependencies: - '@walletconnect/heartbeat': 1.2.2 - '@walletconnect/jsonrpc-provider': 1.0.14 - '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/jsonrpc-ws-connection': 1.0.16(bufferutil@4.1.0)(utf-8-validate@5.0.10) - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/logger': 2.1.2 - '@walletconnect/relay-api': 1.0.11 - '@walletconnect/relay-auth': 1.1.0 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.0 - '@walletconnect/utils': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - '@walletconnect/window-getters': 1.0.1 - es-toolkit: 1.33.0 - events: 3.3.0 - uint8arrays: 3.1.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - ioredis - - typescript - - uploadthing - - utf-8-validate - - zod - - '@walletconnect/core@2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)': - dependencies: - '@walletconnect/heartbeat': 1.2.2 - '@walletconnect/jsonrpc-provider': 1.0.14 - '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/jsonrpc-ws-connection': 1.0.16(bufferutil@4.1.0)(utf-8-validate@5.0.10) - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/logger': 2.1.2 - '@walletconnect/relay-api': 1.0.11 - '@walletconnect/relay-auth': 1.1.0 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.1 - '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/utils': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) '@walletconnect/window-getters': 1.0.1 es-toolkit: 1.33.0 events: 3.3.0 @@ -10690,8 +10858,9 @@ snapshots: - uploadthing - utf-8-validate - zod + optional: true - '@walletconnect/core@2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)': + '@walletconnect/core@2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)': dependencies: '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-provider': 1.0.14 @@ -10705,7 +10874,7 @@ snapshots: '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 '@walletconnect/types': 2.21.1 - '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) '@walletconnect/window-getters': 1.0.1 es-toolkit: 1.33.0 events: 3.3.0 @@ -10734,64 +10903,25 @@ snapshots: - uploadthing - utf-8-validate - zod + optional: true '@walletconnect/environment@1.0.1': dependencies: tslib: 1.14.1 + optional: true - '@walletconnect/ethereum-provider@2.21.1(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)': - dependencies: - '@reown/appkit': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@walletconnect/jsonrpc-http-connection': 1.0.8 - '@walletconnect/jsonrpc-provider': 1.0.14 - '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/sign-client': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@walletconnect/types': 2.21.1 - '@walletconnect/universal-provider': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - react - - typescript - - uploadthing - - utf-8-validate - - zod - - '@walletconnect/ethereum-provider@2.21.1(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)': + '@walletconnect/ethereum-provider@2.21.1(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)': dependencies: - '@reown/appkit': 1.7.8(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + '@reown/appkit': 1.7.8(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) '@walletconnect/jsonrpc-http-connection': 1.0.8 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/sign-client': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + '@walletconnect/sign-client': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) '@walletconnect/types': 2.21.1 - '@walletconnect/universal-provider': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + '@walletconnect/universal-provider': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -10820,17 +10950,20 @@ snapshots: - uploadthing - utf-8-validate - zod + optional: true '@walletconnect/events@1.0.1': dependencies: keyvaluestorage-interface: 1.0.0 tslib: 1.14.1 + optional: true '@walletconnect/heartbeat@1.2.2': dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/time': 1.0.2 events: 3.3.0 + optional: true '@walletconnect/jsonrpc-http-connection@1.0.8': dependencies: @@ -10840,23 +10973,27 @@ snapshots: events: 3.3.0 transitivePeerDependencies: - encoding + optional: true '@walletconnect/jsonrpc-provider@1.0.14': dependencies: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/safe-json': 1.0.2 events: 3.3.0 + optional: true '@walletconnect/jsonrpc-types@1.0.4': dependencies: events: 3.3.0 keyvaluestorage-interface: 1.0.0 + optional: true '@walletconnect/jsonrpc-utils@1.0.8': dependencies: '@walletconnect/environment': 1.0.1 '@walletconnect/jsonrpc-types': 1.0.4 tslib: 1.14.1 + optional: true '@walletconnect/jsonrpc-ws-connection@1.0.16(bufferutil@4.1.0)(utf-8-validate@5.0.10)': dependencies: @@ -10867,6 +11004,7 @@ snapshots: transitivePeerDependencies: - bufferutil - utf-8-validate + optional: true '@walletconnect/keyvaluestorage@1.1.1': dependencies: @@ -10892,15 +11030,18 @@ snapshots: - db0 - ioredis - uploadthing + optional: true '@walletconnect/logger@2.1.2': dependencies: '@walletconnect/safe-json': 1.0.2 pino: 7.11.0 + optional: true '@walletconnect/relay-api@1.0.11': dependencies: '@walletconnect/jsonrpc-types': 1.0.4 + optional: true '@walletconnect/relay-auth@1.1.0': dependencies: @@ -10909,93 +11050,23 @@ snapshots: '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 uint8arrays: 3.1.0 + optional: true '@walletconnect/safe-json@1.0.2': dependencies: tslib: 1.14.1 + optional: true - '@walletconnect/sign-client@2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)': - dependencies: - '@walletconnect/core': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@walletconnect/events': 1.0.1 - '@walletconnect/heartbeat': 1.2.2 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/logger': 2.1.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.0 - '@walletconnect/utils': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - ioredis - - typescript - - uploadthing - - utf-8-validate - - zod - - '@walletconnect/sign-client@2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)': + '@walletconnect/sign-client@2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)': dependencies: - '@walletconnect/core': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + '@walletconnect/core': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 '@walletconnect/time': 1.0.2 '@walletconnect/types': 2.21.0 - '@walletconnect/utils': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - ioredis - - typescript - - uploadthing - - utf-8-validate - - zod - - '@walletconnect/sign-client@2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)': - dependencies: - '@walletconnect/core': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@walletconnect/events': 1.0.1 - '@walletconnect/heartbeat': 1.2.2 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/logger': 2.1.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.1 - '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) + '@walletconnect/utils': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -11021,17 +11092,18 @@ snapshots: - uploadthing - utf-8-validate - zod + optional: true - '@walletconnect/sign-client@2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)': + '@walletconnect/sign-client@2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)': dependencies: - '@walletconnect/core': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + '@walletconnect/core': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 '@walletconnect/time': 1.0.2 '@walletconnect/types': 2.21.1 - '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -11057,10 +11129,12 @@ snapshots: - uploadthing - utf-8-validate - zod + optional: true '@walletconnect/time@1.0.2': dependencies: tslib: 1.14.1 + optional: true '@walletconnect/types@2.21.0': dependencies: @@ -11090,6 +11164,7 @@ snapshots: - db0 - ioredis - uploadthing + optional: true '@walletconnect/types@2.21.1': dependencies: @@ -11119,48 +11194,9 @@ snapshots: - db0 - ioredis - uploadthing + optional: true - '@walletconnect/universal-provider@2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)': - dependencies: - '@walletconnect/events': 1.0.1 - '@walletconnect/jsonrpc-http-connection': 1.0.8 - '@walletconnect/jsonrpc-provider': 1.0.14 - '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@walletconnect/types': 2.21.0 - '@walletconnect/utils': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - es-toolkit: 1.33.0 - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - typescript - - uploadthing - - utf-8-validate - - zod - - '@walletconnect/universal-provider@2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)': + '@walletconnect/universal-provider@2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)': dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/jsonrpc-http-connection': 1.0.8 @@ -11169,89 +11205,9 @@ snapshots: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/keyvaluestorage': 1.1.1 '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + '@walletconnect/sign-client': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) '@walletconnect/types': 2.21.0 - '@walletconnect/utils': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - es-toolkit: 1.33.0 - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - typescript - - uploadthing - - utf-8-validate - - zod - - '@walletconnect/universal-provider@2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)': - dependencies: - '@walletconnect/events': 1.0.1 - '@walletconnect/jsonrpc-http-connection': 1.0.8 - '@walletconnect/jsonrpc-provider': 1.0.14 - '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@walletconnect/types': 2.21.1 - '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - es-toolkit: 1.33.0 - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - encoding - - ioredis - - typescript - - uploadthing - - utf-8-validate - - zod - - '@walletconnect/universal-provider@2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)': - dependencies: - '@walletconnect/events': 1.0.1 - '@walletconnect/jsonrpc-http-connection': 1.0.8 - '@walletconnect/jsonrpc-provider': 1.0.14 - '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - '@walletconnect/types': 2.21.1 - '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + '@walletconnect/utils': 2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) es-toolkit: 1.33.0 events: 3.3.0 transitivePeerDependencies: @@ -11279,70 +11235,22 @@ snapshots: - uploadthing - utf-8-validate - zod - - '@walletconnect/utils@2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)': - dependencies: - '@noble/ciphers': 1.2.1 - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/relay-api': 1.0.11 - '@walletconnect/relay-auth': 1.1.0 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.0 - '@walletconnect/window-getters': 1.0.1 - '@walletconnect/window-metadata': 1.0.1 - bs58: 6.0.0 - detect-browser: 5.3.0 - query-string: 7.1.3 - uint8arrays: 3.1.0 - viem: 2.23.2(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - ioredis - - typescript - - uploadthing - - utf-8-validate - - zod - - '@walletconnect/utils@2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)': - dependencies: - '@noble/ciphers': 1.2.1 - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/relay-api': 1.0.11 - '@walletconnect/relay-auth': 1.1.0 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.0 - '@walletconnect/window-getters': 1.0.1 - '@walletconnect/window-metadata': 1.0.1 - bs58: 6.0.0 - detect-browser: 5.3.0 - query-string: 7.1.3 - uint8arrays: 3.1.0 - viem: 2.23.2(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + optional: true + + '@walletconnect/universal-provider@2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)': + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/jsonrpc-http-connection': 1.0.8 + '@walletconnect/jsonrpc-provider': 1.0.14 + '@walletconnect/jsonrpc-types': 1.0.4 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/logger': 2.1.2 + '@walletconnect/sign-client': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + '@walletconnect/types': 2.21.1 + '@walletconnect/utils': 2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + es-toolkit: 1.33.0 + events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -11362,13 +11270,15 @@ snapshots: - aws4fetch - bufferutil - db0 + - encoding - ioredis - typescript - uploadthing - utf-8-validate - zod + optional: true - '@walletconnect/utils@2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@walletconnect/utils@2.21.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)': dependencies: '@noble/ciphers': 1.2.1 '@noble/curves': 1.8.1 @@ -11379,14 +11289,14 @@ snapshots: '@walletconnect/relay-auth': 1.1.0 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.1 + '@walletconnect/types': 2.21.0 '@walletconnect/window-getters': 1.0.1 '@walletconnect/window-metadata': 1.0.1 bs58: 6.0.0 detect-browser: 5.3.0 query-string: 7.1.3 uint8arrays: 3.1.0 - viem: 2.23.2(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.23.2(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -11411,8 +11321,9 @@ snapshots: - uploadthing - utf-8-validate - zod + optional: true - '@walletconnect/utils@2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)': + '@walletconnect/utils@2.21.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)': dependencies: '@noble/ciphers': 1.2.1 '@noble/curves': 1.8.1 @@ -11430,7 +11341,7 @@ snapshots: detect-browser: 5.3.0 query-string: 7.1.3 uint8arrays: 3.1.0 - viem: 2.23.2(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + viem: 2.23.2(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -11455,15 +11366,18 @@ snapshots: - uploadthing - utf-8-validate - zod + optional: true '@walletconnect/window-getters@1.0.1': dependencies: tslib: 1.14.1 + optional: true '@walletconnect/window-metadata@1.0.1': dependencies: '@walletconnect/window-getters': 1.0.1 tslib: 1.14.1 + optional: true '@xcfx/node-darwin-arm64@0.8.0': optional: true @@ -11479,7 +11393,7 @@ snapshots: '@xcfx/node@0.8.0(typescript@6.0.3)': dependencies: - cive: 0.8.1(typescript@6.0.3) + cive: 0.8.1(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10) optionalDependencies: '@xcfx/node-darwin-arm64': 0.8.0 '@xcfx/node-linux-arm64-gnu': 0.8.0 @@ -11490,35 +11404,18 @@ snapshots: - typescript - utf-8-validate - abitype@1.0.6(typescript@6.0.3)(zod@3.25.76): - optionalDependencies: - typescript: 6.0.3 - zod: 3.25.76 - - abitype@1.0.8(typescript@6.0.3)(zod@3.25.76): - optionalDependencies: - typescript: 6.0.3 - zod: 3.25.76 - - abitype@1.0.8(typescript@6.0.3)(zod@4.3.6): - optionalDependencies: - typescript: 6.0.3 - zod: 4.3.6 - - abitype@1.2.3(typescript@6.0.3)(zod@3.22.4): - optionalDependencies: - typescript: 6.0.3 - zod: 3.22.4 + '@xmldom/xmldom@0.9.10': {} - abitype@1.2.3(typescript@6.0.3)(zod@3.25.76): + abitype@1.0.8(typescript@6.0.3)(zod@4.3.4): optionalDependencies: typescript: 6.0.3 - zod: 3.25.76 + zod: 4.3.4 + optional: true - abitype@1.2.3(typescript@6.0.3)(zod@4.3.6): + abitype@1.2.3(typescript@6.0.3)(zod@4.3.4): optionalDependencies: typescript: 6.0.3 - zod: 4.3.6 + zod: 4.3.4 accepts@1.3.8: dependencies: @@ -11530,6 +11427,10 @@ snapshots: mime-types: 3.0.2 negotiator: 1.0.0 + acorn-jsx@5.3.2(acorn@8.16.0): + dependencies: + acorn: 8.16.0 + acorn@8.16.0: {} adm-zip@0.5.17: {} @@ -11570,17 +11471,26 @@ snapshots: dependencies: normalize-path: 3.0.0 picomatch: 2.3.2 + optional: true apg-js@4.4.0: {} + arg@5.0.2: {} + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 argparse@2.0.1: {} + aria-hidden@1.2.6: + dependencies: + tslib: 2.8.1 + array-flatten@1.1.1: {} + array-iterate@2.0.1: {} + array-union@2.1.0: {} asap@2.0.6: {} @@ -11591,22 +11501,18 @@ snapshots: dependencies: tslib: 2.8.1 - async-mutex@0.2.6: + ast-v8-to-istanbul@1.0.0: dependencies: - tslib: 2.8.1 - - asynckit@0.4.0: {} + '@jridgewell/trace-mapping': 0.3.31 + estree-walker: 3.0.3 + js-tokens: 10.0.0 - atomic-sleep@1.0.0: {} + astring@1.9.0: {} - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 + asynckit@0.4.0: {} - axios-retry@4.5.0(axios@1.15.2): - dependencies: - axios: 1.15.2 - is-retry-allowed: 2.2.0 + atomic-sleep@1.0.0: + optional: true axios@1.15.2: dependencies: @@ -11616,9 +11522,12 @@ snapshots: transitivePeerDependencies: - debug + bail@2.0.2: {} + balanced-match@4.0.4: {} - base-x@5.0.1: {} + base-x@5.0.1: + optional: true base64-js@1.5.1: {} @@ -11628,7 +11537,13 @@ snapshots: dependencies: is-windows: 1.0.2 - big.js@6.2.2: {} + better-react-mathjax@2.3.0(react@19.2.5): + dependencies: + mathjax-full: 3.2.2 + react: 19.2.5 + + big.js@6.2.2: + optional: true bignumber.js@9.3.1: {} @@ -11694,6 +11609,7 @@ snapshots: bs58@6.0.0: dependencies: base-x: 5.0.1 + optional: true buffer-crc32@0.2.13: {} @@ -11712,6 +11628,7 @@ snapshots: bufferutil@4.1.0: dependencies: node-gyp-build: 4.8.4 + optional: true bytes@3.1.2: {} @@ -11720,19 +11637,17 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.9: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - call-bound@1.0.4: dependencies: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 - camelcase@5.3.1: {} + camelcase@5.3.1: + optional: true + + caniuse-lite@1.0.30001792: {} + + ccount@2.0.1: {} chai@6.2.2: {} @@ -11743,13 +11658,33 @@ snapshots: chalk@5.6.2: {} + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + character-reference-invalid@2.0.1: {} + chardet@2.1.1: {} - charenc@0.0.2: {} + chevrotain-allstar@0.4.3(chevrotain@12.0.0): + dependencies: + chevrotain: 12.0.0 + lodash-es: 4.18.1 + + chevrotain@12.0.0: + dependencies: + '@chevrotain/cst-dts-gen': 12.0.0 + '@chevrotain/gast': 12.0.0 + '@chevrotain/regexp-to-ast': 12.0.0 + '@chevrotain/types': 12.0.0 + '@chevrotain/utils': 12.0.0 chokidar@5.0.0: dependencies: readdirp: 5.0.0 + optional: true chownr@1.1.4: {} @@ -11761,21 +11696,8 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - zod: 3.25.76 - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - cive@0.8.1(typescript@6.0.3): - dependencies: - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - viem: 2.48.4(typescript@6.0.3)(zod@3.25.76) - zod: 3.25.76 + viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + zod: 4.3.4 transitivePeerDependencies: - bufferutil - typescript @@ -11794,11 +11716,20 @@ snapshots: dependencies: string-width: 4.2.3 + client-only@0.0.1: {} + + clipboardy@4.0.0: + dependencies: + execa: 8.0.1 + is-wsl: 3.1.1 + is64bit: 2.0.0 + cliui@6.0.0: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 6.2.0 + optional: true cliui@7.0.4: dependencies: @@ -11812,7 +11743,10 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - clsx@1.2.1: {} + clsx@1.2.1: + optional: true + + clsx@2.1.1: {} cmake-js@8.0.0: dependencies: @@ -11828,6 +11762,10 @@ snapshots: transitivePeerDependencies: - supports-color + code-block-writer@13.0.3: {} + + collapse-white-space@2.1.0: {} + color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -11838,18 +11776,24 @@ snapshots: dependencies: delayed-stream: 1.0.0 + comma-separated-tokens@2.0.3: {} + command-exists@1.2.9: {} - commander@14.0.2: {} + commander@13.1.0: {} commander@14.0.3: {} + commander@7.2.0: {} + commander@8.3.0: {} compare-versions@6.1.1: {} component-emitter@1.3.1: {} + compute-scroll-into-view@3.1.1: {} + confbox@0.1.8: {} confbox@0.2.4: {} @@ -11864,7 +11808,8 @@ snapshots: convert-source-map@2.0.0: {} - cookie-es@1.2.3: {} + cookie-es@1.2.3: + optional: true cookie-signature@1.0.7: {} @@ -11874,26 +11819,25 @@ snapshots: cookiejar@2.1.4: {} - core-util-is@1.0.3: {} - cors@2.8.6: dependencies: object-assign: 4.1.1 vary: 1.1.2 - crc-32@1.2.2: {} + cose-base@1.0.3: + dependencies: + layout-base: 1.0.2 - cross-fetch@3.2.0: + cose-base@2.2.0: dependencies: - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding + layout-base: 2.0.1 - cross-fetch@4.1.0: + cross-fetch@3.2.0: dependencies: node-fetch: 2.7.0 transitivePeerDependencies: - encoding + optional: true cross-spawn@7.0.6: dependencies: @@ -11904,40 +11848,224 @@ snapshots: crossws@0.3.5: dependencies: uncrypto: 0.1.3 - - crypt@0.0.2: {} + optional: true crypto-js@4.2.0: {} csstype@3.2.3: {} + cytoscape-cose-bilkent@4.1.0(cytoscape@3.33.3): + dependencies: + cose-base: 1.0.3 + cytoscape: 3.33.3 + + cytoscape-fcose@2.2.0(cytoscape@3.33.3): + dependencies: + cose-base: 2.2.0 + cytoscape: 3.33.3 + + cytoscape@3.33.3: {} + + d3-array@2.12.1: + dependencies: + internmap: 1.0.1 + + d3-array@3.2.4: + dependencies: + internmap: 2.0.3 + + d3-axis@3.0.0: {} + + d3-brush@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + + d3-chord@3.0.1: + dependencies: + d3-path: 3.1.0 + + d3-color@3.1.0: {} + + d3-contour@4.0.2: + dependencies: + d3-array: 3.2.4 + + d3-delaunay@6.0.4: + dependencies: + delaunator: 5.1.0 + + d3-dispatch@3.0.1: {} + + d3-drag@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-selection: 3.0.0 + + d3-dsv@3.0.1: + dependencies: + commander: 7.2.0 + iconv-lite: 0.6.3 + rw: 1.3.3 + + d3-ease@3.0.1: {} + + d3-fetch@3.0.1: + dependencies: + d3-dsv: 3.0.1 + + d3-force@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-quadtree: 3.0.1 + d3-timer: 3.0.1 + + d3-format@3.1.2: {} + + d3-geo@3.1.1: + dependencies: + d3-array: 3.2.4 + + d3-hierarchy@3.1.2: {} + + d3-interpolate@3.0.1: + dependencies: + d3-color: 3.1.0 + + d3-path@1.0.9: {} + + d3-path@3.1.0: {} + + d3-polygon@3.0.1: {} + + d3-quadtree@3.0.1: {} + + d3-random@3.0.1: {} + + d3-sankey@0.12.3: + dependencies: + d3-array: 2.12.1 + d3-shape: 1.3.7 + + d3-scale-chromatic@3.1.0: + dependencies: + d3-color: 3.1.0 + d3-interpolate: 3.0.1 + + d3-scale@4.0.2: + dependencies: + d3-array: 3.2.4 + d3-format: 3.1.2 + d3-interpolate: 3.0.1 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + + d3-selection@3.0.0: {} + + d3-shape@1.3.7: + dependencies: + d3-path: 1.0.9 + + d3-shape@3.2.0: + dependencies: + d3-path: 3.1.0 + + d3-time-format@4.1.0: + dependencies: + d3-time: 3.1.0 + + d3-time@3.1.0: + dependencies: + d3-array: 3.2.4 + + d3-timer@3.0.1: {} + + d3-transition@3.0.1(d3-selection@3.0.0): + dependencies: + d3-color: 3.1.0 + d3-dispatch: 3.0.1 + d3-ease: 3.0.1 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-timer: 3.0.1 + + d3-zoom@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + + d3@7.9.0: + dependencies: + d3-array: 3.2.4 + d3-axis: 3.0.0 + d3-brush: 3.0.0 + d3-chord: 3.0.1 + d3-color: 3.1.0 + d3-contour: 4.0.2 + d3-delaunay: 6.0.4 + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-dsv: 3.0.1 + d3-ease: 3.0.1 + d3-fetch: 3.0.1 + d3-force: 3.0.0 + d3-format: 3.1.2 + d3-geo: 3.1.1 + d3-hierarchy: 3.1.2 + d3-interpolate: 3.0.1 + d3-path: 3.1.0 + d3-polygon: 3.0.1 + d3-quadtree: 3.0.1 + d3-random: 3.0.1 + d3-scale: 4.0.2 + d3-scale-chromatic: 3.1.0 + d3-selection: 3.0.0 + d3-shape: 3.2.0 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + d3-timer: 3.0.1 + d3-transition: 3.0.1(d3-selection@3.0.0) + d3-zoom: 3.0.0 + + dagre-d3-es@7.0.14: + dependencies: + d3: 7.9.0 + lodash-es: 4.18.1 + data-uri-to-buffer@4.0.1: {} data-uri-to-buffer@6.0.2: {} - date-fns@2.30.0: - dependencies: - '@babel/runtime': 7.29.2 + dayjs@1.11.13: + optional: true - dayjs@1.11.13: {} + dayjs@1.11.20: {} debug@2.6.9: dependencies: ms: 2.0.0 - debug@4.3.4: - dependencies: - ms: 2.1.2 - debug@4.4.3: dependencies: ms: 2.1.3 - decamelize@1.2.0: {} + decamelize@1.2.0: + optional: true decimal.js@10.6.0: {} - decode-uri-component@0.2.2: {} + decode-named-character-reference@1.3.0: + dependencies: + character-entities: 2.0.2 + + decode-uri-component@0.2.2: + optional: true decompress-response@6.0.0: dependencies: @@ -11957,7 +12085,8 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 - defu@6.1.7: {} + defu@6.1.7: + optional: true degenerator@5.0.1: dependencies: @@ -11965,19 +12094,28 @@ snapshots: escodegen: 2.1.0 esprima: 4.0.1 + delaunator@5.1.0: + dependencies: + robust-predicates: 3.0.3 + delayed-stream@1.0.0: {} depd@2.0.0: {} - derive-valtio@0.1.0(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1)): + dequal@2.0.3: {} + + derive-valtio@0.1.0(valtio@1.13.2(@types/react@19.2.14)(react@19.2.5)): dependencies: - valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) + valtio: 1.13.2(@types/react@19.2.14)(react@19.2.5) + optional: true - destr@2.0.5: {} + destr@2.0.5: + optional: true destroy@1.2.0: {} - detect-browser@5.3.0: {} + detect-browser@5.3.0: + optional: true detect-indent@6.1.0: {} @@ -11985,6 +12123,10 @@ snapshots: detect-node@2.1.0: {} + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + dezalgo@1.0.4: dependencies: asap: 2.0.6 @@ -11992,12 +12134,17 @@ snapshots: diff@8.0.4: {} - dijkstrajs@1.0.3: {} + dijkstrajs@1.0.3: + optional: true dir-glob@3.0.1: dependencies: path-type: 4.0.0 + dompurify@3.4.2: + optionalDependencies: + '@types/trusted-types': 2.0.7 + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -12010,18 +12157,12 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 stream-shift: 1.0.3 + optional: true ecdsa-sig-formatter@1.0.11: dependencies: safe-buffer: 5.2.1 - eciesjs@0.4.18: - dependencies: - '@ecies/ciphers': 0.2.6(@noble/ciphers@1.3.0) - '@noble/ciphers': 1.3.0 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - ee-first@1.1.1: {} eip55@2.1.1: @@ -12040,7 +12181,8 @@ snapshots: emoji-regex@8.0.0: {} - encode-utf8@1.0.3: {} + encode-utf8@1.0.3: + optional: true encodeurl@2.0.0: {} @@ -12048,25 +12190,13 @@ snapshots: dependencies: once: 1.4.0 - engine.io-client@6.6.4(bufferutil@4.1.0)(utf-8-validate@5.0.10): - dependencies: - '@socket.io/component-emitter': 3.1.2 - debug: 4.4.3 - engine.io-parser: 5.2.3 - ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) - xmlhttprequest-ssl: 2.1.2 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - engine.io-parser@5.2.3: {} - enquirer@2.4.1: dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 + entities@6.0.1: {} + es-define-property@1.0.1: {} es-errors@1.3.0: {} @@ -12084,10 +12214,25 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.3 - es-toolkit@1.33.0: {} + es-toolkit@1.33.0: + optional: true es6-error@4.1.1: {} + esast-util-from-estree@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + unist-util-position-from-estree: 2.0.0 + + esast-util-from-js@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + acorn: 8.16.0 + esast-util-from-estree: 2.0.0 + vfile-message: 4.0.3 + esbuild@0.27.7: optionalDependencies: '@esbuild/aix-ppc64': 0.27.7 @@ -12123,6 +12268,8 @@ snapshots: escape-string-regexp@4.0.0: {} + escape-string-regexp@5.0.0: {} + escodegen@2.1.0: dependencies: esprima: 4.0.1 @@ -12131,53 +12278,54 @@ snapshots: optionalDependencies: source-map: 0.6.1 + esm@3.2.25: {} + esprima@4.0.1: {} estraverse@5.3.0: {} - estree-walker@2.0.2: {} - - estree-walker@3.0.3: + estree-util-attach-comments@3.0.0: dependencies: '@types/estree': 1.0.8 - esutils@2.0.3: {} + estree-util-build-jsx@3.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 - etag@1.8.1: {} + estree-util-is-identifier-name@3.0.0: {} - eth-block-tracker@7.1.0: + estree-util-scope@1.0.0: dependencies: - '@metamask/eth-json-rpc-provider': 1.0.1 - '@metamask/safe-event-emitter': 3.1.2 - '@metamask/utils': 5.0.2 - json-rpc-random-id: 1.0.1 - pify: 3.0.0 - transitivePeerDependencies: - - supports-color + '@types/estree': 1.0.8 + devlop: 1.1.0 - eth-json-rpc-filters@6.0.1: + estree-util-to-js@2.0.0: dependencies: - '@metamask/safe-event-emitter': 3.1.2 - async-mutex: 0.2.6 - eth-query: 2.1.2 - json-rpc-engine: 6.1.0 - pify: 5.0.0 + '@types/estree-jsx': 1.0.5 + astring: 1.9.0 + source-map: 0.7.6 - eth-query@2.1.2: + estree-util-value-to-estree@3.5.0: dependencies: - json-rpc-random-id: 1.0.1 - xtend: 4.0.2 + '@types/estree': 1.0.8 - eth-rpc-errors@4.0.3: + estree-util-visit@2.0.0: dependencies: - fast-safe-stringify: 2.1.1 + '@types/estree-jsx': 1.0.5 + '@types/unist': 3.0.3 - ethereum-cryptography@2.2.1: + estree-walker@2.0.2: {} + + estree-walker@3.0.3: dependencies: - '@noble/curves': 1.4.2 - '@noble/hashes': 1.4.0 - '@scure/bip32': 1.4.0 - '@scure/bip39': 1.3.0 + '@types/estree': 1.0.8 + + esutils@2.0.3: {} + + etag@1.8.1: {} ethers@6.16.0(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: @@ -12192,8 +12340,6 @@ snapshots: - bufferutil - utf-8-validate - eventemitter2@6.4.9: {} - eventemitter3@5.0.1: {} events@3.3.0: {} @@ -12204,6 +12350,18 @@ snapshots: dependencies: eventsource-parser: 3.0.8 + execa@8.0.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + expand-template@2.0.3: {} expect-type@1.3.0: {} @@ -12211,7 +12369,7 @@ snapshots: express-rate-limit@8.4.1(express@5.2.1): dependencies: express: 5.2.1 - ip-address: 10.1.0 + ip-address: 10.2.0 express@4.22.1: dependencies: @@ -12288,11 +12446,6 @@ snapshots: extendable-error@0.1.7: {} - extension-port-stream@3.0.0: - dependencies: - readable-stream: 3.6.2 - webextension-polyfill: 0.10.0 - extract-zip@2.0.1: dependencies: debug: 4.4.3 @@ -12313,7 +12466,8 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 - fast-redact@3.5.0: {} + fast-redact@3.5.0: + optional: true fast-safe-stringify@2.1.1: {} @@ -12334,6 +12488,10 @@ snapshots: dependencies: reusify: 1.1.0 + fault@2.0.1: + dependencies: + format: 0.2.2 + fd-slicer@1.1.0: dependencies: pend: 1.2.0 @@ -12362,7 +12520,8 @@ snapshots: dependencies: to-regex-range: 5.0.1 - filter-obj@1.1.0: {} + filter-obj@1.1.0: + optional: true finalhandler@1.3.2: dependencies: @@ -12396,10 +12555,6 @@ snapshots: follow-redirects@1.16.0: {} - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - form-data@4.0.5: dependencies: asynckit: 0.4.0 @@ -12408,6 +12563,8 @@ snapshots: hasown: 2.0.3 mime-types: 2.1.35 + format@0.2.2: {} + formdata-polyfill@4.0.10: dependencies: fetch-blob: 3.2.0 @@ -12465,8 +12622,6 @@ snapshots: transitivePeerDependencies: - supports-color - generator-function@2.0.1: {} - get-caller-file@2.0.5: {} get-east-asian-width@1.5.0: {} @@ -12493,6 +12648,8 @@ snapshots: dependencies: pump: 3.0.4 + get-stream@8.0.1: {} + get-tsconfig@4.14.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -12507,11 +12664,13 @@ snapshots: github-from-package@0.0.0: {} - gitnexus@1.6.3(graphology-types@0.24.8)(zod@4.3.6): + github-slugger@2.0.0: {} + + gitnexus@1.6.3(graphology-types@0.24.8)(zod@4.3.4): dependencies: '@huggingface/transformers': 4.2.0 '@ladybugdb/core': 0.15.4 - '@modelcontextprotocol/sdk': 1.29.0(zod@4.3.6) + '@modelcontextprotocol/sdk': 1.29.0(zod@4.3.4) '@scarf/scarf': 1.4.0 cli-progress: 3.12.0 commander: 14.0.3 @@ -12634,6 +12793,9 @@ snapshots: radix3: 1.1.2 ufo: 1.6.3 uncrypto: 0.1.3 + optional: true + + hachure-fill@0.5.2: {} has-flag@4.0.0: {} @@ -12656,6 +12818,151 @@ snapshots: dependencies: function-bind: 1.1.2 + hast-util-from-dom@5.0.1: + dependencies: + '@types/hast': 3.0.4 + hastscript: 9.0.1 + web-namespaces: 2.0.1 + + hast-util-from-html-isomorphic@2.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-from-dom: 5.0.1 + hast-util-from-html: 2.0.3 + unist-util-remove-position: 5.0.0 + + hast-util-from-html@2.0.3: + dependencies: + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.3 + parse5: 7.3.0 + vfile: 6.0.3 + vfile-message: 4.0.3 + + hast-util-from-parse5@8.0.3: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + devlop: 1.1.0 + hastscript: 9.0.1 + property-information: 7.1.0 + vfile: 6.0.3 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 + + hast-util-is-element@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-raw@9.1.0: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + '@ungap/structured-clone': 1.3.1 + hast-util-from-parse5: 8.0.3 + hast-util-to-parse5: 8.0.1 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + parse5: 7.3.0 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-estree@3.1.3: + dependencies: + '@types/estree': 1.0.8 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.21 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + + hast-util-to-html@9.0.5: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-to-jsx-runtime@2.3.6: + dependencies: + '@types/estree': 1.0.8 + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.21 + unist-util-position: 5.0.0 + vfile-message: 4.0.3 + transitivePeerDependencies: + - supports-color + + hast-util-to-parse5@8.0.1: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-string@3.0.1: + dependencies: + '@types/hast': 3.0.4 + + hast-util-to-text@4.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hastscript@9.0.1: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + highlight.js@10.7.3: {} hmac-drbg@1.0.1: @@ -12670,6 +12977,10 @@ snapshots: dependencies: lru-cache: 11.3.5 + html-escaper@2.0.2: {} + + html-void-elements@3.0.0: {} + http-errors@2.0.1: dependencies: depd: 2.0.0 @@ -12694,17 +13005,25 @@ snapshots: human-id@4.1.3: {} + human-signals@5.0.0: {} + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + iconv-lite@0.7.2: dependencies: safer-buffer: 2.1.2 - idb-keyval@6.2.1: {} + idb-keyval@6.2.1: + optional: true - idb-keyval@6.2.2: {} + idb-keyval@6.2.2: + optional: true ieee754@1.2.1: {} @@ -12717,76 +13036,76 @@ snapshots: import-lazy@4.0.0: optional: true + import-meta-resolve@4.2.0: {} + inherits@2.0.4: {} ini@1.3.8: {} - ip-address@10.1.0: {} + inline-style-parser@0.2.7: {} + + internmap@1.0.1: {} + + internmap@2.0.3: {} ip-address@10.2.0: {} ipaddr.js@1.9.1: {} - iron-webcrypto@1.2.1: {} - - is-arguments@1.2.0: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 + iron-webcrypto@1.2.1: + optional: true - is-buffer@1.1.6: {} + is-alphabetical@2.0.1: {} - is-callable@1.2.7: {} + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 is-core-module@2.16.1: dependencies: hasown: 2.0.3 optional: true + is-decimal@2.0.1: {} + + is-docker@3.0.0: {} + is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} - is-generator-function@1.1.2: - dependencies: - call-bound: 1.0.4 - generator-function: 2.0.1 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - is-number@7.0.0: {} - - is-promise@4.0.0: {} + is-hexadecimal@2.0.1: {} - is-regex@1.2.1: + is-inside-container@1.0.0: dependencies: - call-bound: 1.0.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.3 + is-docker: 3.0.0 + + is-number@7.0.0: {} - is-retry-allowed@2.2.0: {} + is-plain-obj@4.1.0: {} - is-stream@2.0.1: {} + is-promise@4.0.0: {} + + is-stream@3.0.0: {} is-subdir@1.2.0: dependencies: better-path-resolve: 1.0.0 - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.20 - is-windows@1.0.2: {} - isarray@1.0.0: {} + is-wsl@3.1.1: + dependencies: + is-inside-container: 1.0.0 - isarray@2.0.5: {} + is64bit@2.0.0: + dependencies: + system-architecture: 0.1.0 isexe@2.0.0: {} @@ -12795,11 +13114,25 @@ snapshots: isows@1.0.6(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)): dependencies: ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) + optional: true isows@1.0.7(ws@8.18.3): dependencies: ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-reports@3.2.0: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + jju@1.4.0: optional: true @@ -12807,6 +13140,8 @@ snapshots: js-sha3@0.8.0: {} + js-tokens@10.0.0: {} + js-tokens@4.0.0: {} js-yaml@3.14.2: @@ -12822,13 +13157,6 @@ snapshots: dependencies: bignumber.js: 9.3.1 - json-rpc-engine@6.1.0: - dependencies: - '@metamask/safe-event-emitter': 2.0.0 - eth-rpc-errors: 4.0.3 - - json-rpc-random-id@1.0.1: {} - json-schema-to-ts@3.1.1: dependencies: '@babel/runtime': 7.29.2 @@ -12863,19 +13191,39 @@ snapshots: jwa: 2.0.1 safe-buffer: 5.2.1 + katex@0.16.45: + dependencies: + commander: 8.3.0 + keccak@3.0.4: dependencies: node-addon-api: 2.0.2 node-gyp-build: 4.8.4 readable-stream: 3.6.2 - keyvaluestorage-interface@1.0.0: {} + keyvaluestorage-interface@1.0.0: + optional: true + + khroma@2.1.0: {} koffi@2.16.1: optional: true kolorist@1.8.0: {} + langium@4.2.3: + dependencies: + '@chevrotain/regexp-to-ast': 12.0.0 + chevrotain: 12.0.0 + chevrotain-allstar: 0.4.3(chevrotain@12.0.0) + vscode-languageserver: 9.0.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.1.0 + + layout-base@1.0.2: {} + + layout-base@2.0.1: {} + lightningcss-android-arm64@1.32.0: optional: true @@ -12930,16 +13278,19 @@ snapshots: '@lit-labs/ssr-dom-shim': 1.5.1 '@lit/reactive-element': 2.1.2 lit-html: 3.3.2 + optional: true lit-html@3.3.2: dependencies: '@types/trusted-types': 2.0.7 + optional: true lit@3.3.0: dependencies: '@lit/reactive-element': 2.1.2 lit-element: 4.2.2 lit-html: 3.3.2 + optional: true local-pkg@1.1.2: dependencies: @@ -12951,12 +13302,16 @@ snapshots: dependencies: p-locate: 4.1.0 + lodash-es@4.18.1: {} + lodash.startcase@4.4.0: {} lodash@4.18.1: {} long@5.3.2: {} + longest-streak@3.1.0: {} + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 @@ -12969,19 +13324,222 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + magicast@0.5.2: + dependencies: + '@babel/parser': 7.29.3 + '@babel/types': 7.29.0 + source-map-js: 1.2.1 + + make-dir@4.0.0: + dependencies: + semver: 7.7.4 + + markdown-extensions@2.0.0: {} + + markdown-table@3.0.4: {} + marked@15.0.12: {} + marked@16.4.2: {} + matcher@3.0.0: dependencies: escape-string-regexp: 4.0.0 math-intrinsics@1.1.0: {} - md5@2.3.0: + mathjax-full@3.2.2: + dependencies: + esm: 3.2.25 + mhchemparser: 4.2.1 + mj-context-menu: 0.6.1 + speech-rule-engine: 4.1.4 + + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + mdast-util-from-markdown@2.0.3: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-frontmatter@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + escape-string-regexp: 5.0.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + micromark-extension-frontmatter: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0: + dependencies: + mdast-util-from-markdown: 2.0.3 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-math@3.0.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + longest-streak: 3.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + unist-util-remove-position: 5.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-expression@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-jsx@3.2.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + parse-entities: 4.0.2 + stringify-entities: 4.0.4 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.3 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.3 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdxjs-esm@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.1 + + mdast-util-to-hast@13.2.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.1 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.1.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: dependencies: - charenc: 0.0.2 - crypt: 0.0.2 - is-buffer: 1.1.6 + '@types/mdast': 4.0.4 media-typer@0.3.0: {} @@ -12993,11 +13551,318 @@ snapshots: merge-descriptors@2.0.0: {} + merge-stream@2.0.0: {} + merge2@1.4.1: {} + mermaid@11.14.0: + dependencies: + '@braintree/sanitize-url': 7.1.2 + '@iconify/utils': 3.1.2 + '@mermaid-js/parser': 1.1.0 + '@types/d3': 7.4.3 + '@upsetjs/venn.js': 2.0.0 + cytoscape: 3.33.3 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.33.3) + cytoscape-fcose: 2.2.0(cytoscape@3.33.3) + d3: 7.9.0 + d3-sankey: 0.12.3 + dagre-d3-es: 7.0.14 + dayjs: 1.11.20 + dompurify: 3.4.2 + katex: 0.16.45 + khroma: 2.1.0 + lodash-es: 4.18.1 + marked: 16.4.2 + roughjs: 4.6.6 + stylis: 4.4.0 + ts-dedent: 2.2.0 + uuid: 14.0.0 + methods@1.1.2: {} - micro-ftch@0.3.1: {} + mhchemparser@4.2.1: {} + + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-frontmatter@2.0.0: + dependencies: + fault: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-math@3.1.0: + dependencies: + '@types/katex': 0.16.8 + devlop: 1.1.0 + katex: 0.16.45 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-expression@3.0.1: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-jsx@3.0.2: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.3 + + micromark-extension-mdx-md@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-mdxjs-esm@3.0.0: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.3 + + micromark-extension-mdxjs@3.0.0: + dependencies: + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + micromark-extension-mdx-expression: 3.0.1 + micromark-extension-mdx-jsx: 3.0.2 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-mdx-expression@2.0.3: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.3 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.3.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-events-to-acorn@2.0.3: + dependencies: + '@types/estree': 1.0.8 + '@types/unist': 3.0.3 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.3 + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.13 + debug: 4.4.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color micromatch@4.0.8: dependencies: @@ -13020,6 +13885,8 @@ snapshots: mime@2.6.0: {} + mimic-fn@4.0.0: {} + mimic-response@3.1.0: {} minimalistic-assert@1.0.1: {} @@ -13042,6 +13909,8 @@ snapshots: optionalDependencies: typescript: 6.0.3 + mj-context-menu@0.6.1: {} + mkdirp-classic@0.5.3: {} mlly@1.8.2: @@ -13063,11 +13932,10 @@ snapshots: ms@2.0.0: {} - ms@2.1.2: {} - ms@2.1.3: {} - multiformats@9.9.0: {} + multiformats@9.9.0: + optional: true mz@2.7.0: dependencies: @@ -13085,6 +13953,104 @@ snapshots: netmask@2.1.1: {} + next-themes@0.4.6(react-dom@19.2.5(react@19.2.5))(react@19.2.5): + dependencies: + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + + next@15.5.15(react-dom@19.2.5(react@19.2.5))(react@19.2.5): + dependencies: + '@next/env': 15.5.15 + '@swc/helpers': 0.5.15 + caniuse-lite: 1.0.30001792 + postcss: 8.5.12 + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + styled-jsx: 5.1.6(react@19.2.5) + optionalDependencies: + '@next/swc-darwin-arm64': 15.5.15 + '@next/swc-darwin-x64': 15.5.15 + '@next/swc-linux-arm64-gnu': 15.5.15 + '@next/swc-linux-arm64-musl': 15.5.15 + '@next/swc-linux-x64-gnu': 15.5.15 + '@next/swc-linux-x64-musl': 15.5.15 + '@next/swc-win32-arm64-msvc': 15.5.15 + '@next/swc-win32-x64-msvc': 15.5.15 + sharp: 0.34.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + nextra-theme-docs@4.6.1(@types/react@19.2.14)(immer@11.1.5)(next@15.5.15(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(nextra@4.6.1(next@15.5.15(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(use-sync-external-store@1.6.0(react@19.2.5)): + dependencies: + '@headlessui/react': 2.2.10(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + clsx: 2.1.1 + next: 15.5.15(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + next-themes: 0.4.6(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + nextra: 4.6.1(next@15.5.15(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + react: 19.2.5 + react-compiler-runtime: 19.1.0-rc.3(react@19.2.5) + react-dom: 19.2.5(react@19.2.5) + scroll-into-view-if-needed: 3.1.0 + zod: 4.3.4 + zustand: 5.0.12(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.6.0(react@19.2.5)) + transitivePeerDependencies: + - '@types/react' + - immer + - use-sync-external-store + + nextra@4.6.1(next@15.5.15(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3): + dependencies: + '@formatjs/intl-localematcher': 0.6.2 + '@headlessui/react': 2.2.10(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@mdx-js/mdx': 3.1.1 + '@napi-rs/simple-git': 0.1.22 + '@shikijs/twoslash': 3.23.0(typescript@5.9.3) + '@theguild/remark-mermaid': 0.3.0(react@19.2.5) + '@theguild/remark-npm2yarn': 0.3.3 + better-react-mathjax: 2.3.0(react@19.2.5) + clsx: 2.1.1 + estree-util-to-js: 2.0.0 + estree-util-value-to-estree: 3.5.0 + fast-glob: 3.3.3 + github-slugger: 2.0.0 + hast-util-to-estree: 3.1.3 + katex: 0.16.45 + mdast-util-from-markdown: 2.0.3 + mdast-util-gfm: 3.1.0 + mdast-util-to-hast: 13.2.1 + negotiator: 1.0.0 + next: 15.5.15(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + react: 19.2.5 + react-compiler-runtime: 19.1.0-rc.3(react@19.2.5) + react-dom: 19.2.5(react@19.2.5) + react-medium-image-zoom: 5.4.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + rehype-katex: 7.0.1 + rehype-pretty-code: 0.14.1(shiki@3.23.0) + rehype-raw: 7.0.0 + remark-frontmatter: 5.0.0 + remark-gfm: 4.0.1 + remark-math: 6.0.0 + remark-reading-time: 2.1.0 + remark-smartypants: 3.0.2 + server-only: 0.0.1 + shiki: 3.23.0 + slash: 5.1.0 + title: 4.0.1 + ts-morph: 27.0.2 + unist-util-remove: 4.0.0 + unist-util-visit: 5.1.0 + unist-util-visit-children: 3.0.0 + yaml: 2.8.4 + zod: 4.3.4 + transitivePeerDependencies: + - supports-color + - typescript + + nlcst-to-string@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + node-abi@3.90.0: dependencies: semver: 7.7.4 @@ -13104,11 +14070,13 @@ snapshots: node-domexception@1.0.0: {} - node-fetch-native@1.6.7: {} + node-fetch-native@1.6.7: + optional: true node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 + optional: true node-fetch@3.3.2: dependencies: @@ -13124,15 +14092,17 @@ snapshots: node-addon-api: 3.2.1 prebuild-install: 7.1.3 - node-mock-http@1.0.4: {} + node-mock-http@1.0.4: + optional: true - normalize-path@3.0.0: {} + normalize-path@3.0.0: + optional: true - obj-multiplex@1.0.0: + npm-run-path@5.3.0: dependencies: - end-of-stream: 1.4.5 - once: 1.4.0 - readable-stream: 2.3.8 + path-key: 4.0.0 + + npm-to-yarn@3.0.1: {} object-assign@4.1.1: {} @@ -13149,8 +14119,10 @@ snapshots: destr: 2.0.5 node-fetch-native: 1.6.7 ufo: 1.6.3 + optional: true - on-exit-leak-free@0.2.0: {} + on-exit-leak-free@0.2.0: + optional: true on-finished@2.4.1: dependencies: @@ -13160,6 +14132,18 @@ snapshots: dependencies: wrappy: 1.0.2 + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + oniguruma-parser@0.12.2: {} + + oniguruma-to-es@4.3.6: + dependencies: + oniguruma-parser: 0.12.2 + regex: 6.1.0 + regex-recursion: 6.0.2 + onnxruntime-common@1.24.0-dev.20251116-b39e144322: {} onnxruntime-common@1.24.3: {} @@ -13179,50 +14163,14 @@ snapshots: platform: 1.3.6 protobufjs: 7.5.6 - openai@6.26.0(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.6): + openai@6.26.0(ws@8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.4): optionalDependencies: ws: 8.20.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) - zod: 4.3.6 - - openapi-fetch@0.13.8: - dependencies: - openapi-typescript-helpers: 0.0.15 - - openapi-typescript-helpers@0.0.15: {} + zod: 4.3.4 outdent@0.5.0: {} - ox@0.14.20(typescript@6.0.3)(zod@3.22.4): - dependencies: - '@adraffy/ens-normalize': 1.11.1 - '@noble/ciphers': 1.3.0 - '@noble/curves': 1.9.1 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@6.0.3)(zod@3.22.4) - eventemitter3: 5.0.1 - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - zod - - ox@0.14.20(typescript@6.0.3)(zod@3.25.76): - dependencies: - '@adraffy/ens-normalize': 1.11.1 - '@noble/ciphers': 1.3.0 - '@noble/curves': 1.9.1 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@6.0.3)(zod@3.25.76) - eventemitter3: 5.0.1 - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - zod - - ox@0.14.20(typescript@6.0.3)(zod@4.3.6): + ox@0.14.20(typescript@6.0.3)(zod@4.3.4): dependencies: '@adraffy/ens-normalize': 1.11.1 '@noble/ciphers': 1.3.0 @@ -13230,70 +14178,44 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@6.0.3)(zod@4.3.6) - eventemitter3: 5.0.1 - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - zod - - ox@0.6.7(typescript@6.0.3)(zod@3.25.76): - dependencies: - '@adraffy/ens-normalize': 1.11.1 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@6.0.3)(zod@3.25.76) - eventemitter3: 5.0.1 - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - zod - - ox@0.6.7(typescript@6.0.3)(zod@4.3.6): - dependencies: - '@adraffy/ens-normalize': 1.11.1 - '@noble/curves': 1.9.7 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@6.0.3)(zod@4.3.6) + abitype: 1.2.3(typescript@6.0.3)(zod@4.3.4) eventemitter3: 5.0.1 optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: - zod - ox@0.6.9(typescript@6.0.3)(zod@3.25.76): + ox@0.6.7(typescript@6.0.3)(zod@4.3.4): dependencies: '@adraffy/ens-normalize': 1.11.1 '@noble/curves': 1.9.7 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@6.0.3)(zod@3.25.76) + abitype: 1.2.3(typescript@6.0.3)(zod@4.3.4) eventemitter3: 5.0.1 optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: - zod + optional: true - ox@0.6.9(typescript@6.0.3)(zod@4.3.6): + ox@0.6.9(typescript@6.0.3)(zod@4.3.4): dependencies: '@adraffy/ens-normalize': 1.11.1 '@noble/curves': 1.9.7 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@6.0.3)(zod@4.3.6) + abitype: 1.2.3(typescript@6.0.3)(zod@4.3.4) eventemitter3: 5.0.1 optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: - zod + optional: true - ox@0.9.17(typescript@6.0.3)(zod@4.3.6): + ox@0.9.17(typescript@6.0.3)(zod@4.3.4): dependencies: '@adraffy/ens-normalize': 1.11.1 '@noble/ciphers': 1.3.0 @@ -13301,12 +14223,13 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@6.0.3)(zod@4.3.6) + abitype: 1.2.3(typescript@6.0.3)(zod@4.3.4) eventemitter3: 5.0.1 optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: - zod + optional: true p-filter@2.1.0: dependencies: @@ -13351,10 +14274,33 @@ snapshots: dependencies: quansync: 0.2.11 + package-manager-detector@1.6.0: {} + pandemonium@2.4.1: dependencies: mnemonist: 0.39.8 + parse-entities@4.0.2: + dependencies: + '@types/unist': 2.0.11 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.3.0 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + + parse-latin@7.0.0: + dependencies: + '@types/nlcst': 2.0.3 + '@types/unist': 3.0.3 + nlcst-to-string: 4.0.0 + unist-util-modify-children: 4.0.0 + unist-util-visit-children: 3.0.0 + vfile: 6.0.3 + + parse-numeric-range@1.3.0: {} + parse5-htmlparser2-tree-adapter@6.0.1: dependencies: parse5: 6.0.1 @@ -13363,18 +14309,26 @@ snapshots: parse5@6.0.1: {} + parse5@7.3.0: + dependencies: + entities: 6.0.1 + parseurl@1.3.3: {} partial-json@0.1.7: {} path-browserify@1.0.1: {} + path-data-parser@0.1.0: {} + path-exists@4.0.0: {} path-expression-matcher@1.5.0: {} path-key@3.1.1: {} + path-key@4.0.0: {} + path-parse@1.0.7: optional: true @@ -13399,18 +14353,16 @@ snapshots: picomatch@4.0.4: {} - pify@3.0.0: {} - pify@4.0.1: {} - pify@5.0.0: {} - pino-abstract-transport@0.5.0: dependencies: duplexify: 4.1.3 split2: 4.2.0 + optional: true - pino-std-serializers@4.0.0: {} + pino-std-serializers@4.0.0: + optional: true pino@7.11.0: dependencies: @@ -13425,6 +14377,7 @@ snapshots: safe-stable-stringify: 2.5.0 sonic-boom: 2.8.0 thread-stream: 0.15.2 + optional: true pkce-challenge@5.0.1: {} @@ -13442,51 +14395,57 @@ snapshots: platform@1.3.6: {} - pngjs@5.0.0: {} + pngjs@5.0.0: + optional: true - pony-cause@2.1.11: {} + points-on-curve@0.2.0: {} + + points-on-path@0.2.1: + dependencies: + path-data-parser: 0.1.0 + points-on-curve: 0.2.0 - porto@0.2.35(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.100.6)(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)))(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.100.6)(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76)): + porto@0.2.35(@tanstack/react-query@5.100.9(react@19.2.5))(@types/react@19.2.14)(@wagmi/core@3.4.8(@tanstack/query-core@5.100.9)(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)))(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(wagmi@3.6.9): dependencies: - '@wagmi/core': 2.22.1(@tanstack/query-core@5.100.6)(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)) + '@wagmi/core': 3.4.8(@tanstack/query-core@5.100.9)(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)) hono: 4.12.15 idb-keyval: 6.2.2 mipd: 0.0.7(typescript@6.0.3) - ox: 0.9.17(typescript@6.0.3)(zod@4.3.6) - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) - zod: 4.3.6 - zustand: 5.0.12(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + ox: 0.9.17(typescript@6.0.3)(zod@4.3.4) + viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + zod: 4.3.4 + zustand: 5.0.12(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.4.0(react@19.2.5)) optionalDependencies: - '@tanstack/react-query': 5.100.6(react@18.3.1) - react: 18.3.1 + '@tanstack/react-query': 5.100.9(react@19.2.5) + react: 19.2.5 typescript: 6.0.3 - wagmi: 2.19.5(@tanstack/query-core@5.100.6)(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) + wagmi: 3.6.9(@coinbase/wallet-sdk@4.3.6(@types/react@19.2.14)(bufferutil@4.1.0)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-provider@0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@tanstack/query-core@5.100.9)(@tanstack/react-query@5.100.9(react@19.2.5))(@types/react@19.2.14)(@walletconnect/ethereum-provider@2.21.1(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(immer@11.1.5)(porto@0.2.35)(react@19.2.5)(typescript@6.0.3)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)) transitivePeerDependencies: - '@types/react' - immer - use-sync-external-store + optional: true - porto@0.2.35(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.100.6)(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)))(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6))(wagmi@2.19.5(@tanstack/query-core@5.100.6)(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6))(zod@4.3.6)): + porto@0.2.35(@tanstack/react-query@5.100.9(react@19.2.5))(@types/react@19.2.14)(@wagmi/core@3.4.8(@tanstack/query-core@5.100.9)(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.6.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)))(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.6.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(wagmi@3.6.9): dependencies: - '@wagmi/core': 2.22.1(@tanstack/query-core@5.100.6)(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)) + '@wagmi/core': 3.4.8(@tanstack/query-core@5.100.9)(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.6.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)) hono: 4.12.15 idb-keyval: 6.2.2 mipd: 0.0.7(typescript@6.0.3) - ox: 0.9.17(typescript@6.0.3)(zod@4.3.6) - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) - zod: 4.3.6 - zustand: 5.0.12(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + ox: 0.9.17(typescript@6.0.3)(zod@4.3.4) + viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) + zod: 4.3.4 + zustand: 5.0.12(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.6.0(react@19.2.5)) optionalDependencies: - '@tanstack/react-query': 5.100.6(react@18.3.1) - react: 18.3.1 + '@tanstack/react-query': 5.100.9(react@19.2.5) + react: 19.2.5 typescript: 6.0.3 - wagmi: 2.19.5(@tanstack/query-core@5.100.6)(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6))(zod@4.3.6) + wagmi: 3.6.9(@coinbase/wallet-sdk@4.3.6(@types/react@19.2.14)(bufferutil@4.1.0)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.6.0(react@19.2.5))(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-provider@0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@tanstack/query-core@5.100.9)(@tanstack/react-query@5.100.9(react@19.2.5))(@types/react@19.2.14)(@walletconnect/ethereum-provider@2.21.1(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(immer@11.1.5)(porto@0.2.35)(react@19.2.5)(typescript@6.0.3)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)) transitivePeerDependencies: - '@types/react' - immer - use-sync-external-store - - possible-typed-array-names@1.1.0: {} + optional: true postcss@8.5.12: dependencies: @@ -13494,9 +14453,8 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - preact@10.24.2: {} - - preact@10.29.1: {} + preact@10.24.2: + optional: true prebuild-install@7.1.3: dependencies: @@ -13515,9 +14473,8 @@ snapshots: prettier@2.8.8: {} - process-nextick-args@2.0.1: {} - - process-warning@1.0.0: {} + process-warning@1.0.0: + optional: true proper-lockfile@4.1.2: dependencies: @@ -13525,6 +14482,8 @@ snapshots: retry: 0.12.0 signal-exit: 3.0.7 + property-information@7.1.0: {} + protobufjs@7.5.6: dependencies: '@protobufjs/aspromise': 1.1.2 @@ -13537,7 +14496,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.1 - '@types/node': 22.19.17 + '@types/node': 25.6.0 long: 5.3.2 proxy-addr@2.0.7: @@ -13558,7 +14517,8 @@ snapshots: transitivePeerDependencies: - supports-color - proxy-compare@2.6.0: {} + proxy-compare@2.6.0: + optional: true proxy-from-env@1.1.0: {} @@ -13577,6 +14537,7 @@ snapshots: encode-utf8: 1.0.3 pngjs: 5.0.0 yargs: 15.4.1 + optional: true qs@6.14.2: dependencies: @@ -13594,12 +14555,15 @@ snapshots: filter-obj: 1.1.0 split-on-first: 1.1.0 strict-uri-encode: 2.0.0 + optional: true queue-microtask@1.2.3: {} - quick-format-unescaped@4.0.4: {} + quick-format-unescaped@4.0.4: + optional: true - radix3@1.1.2: {} + radix3@1.1.2: + optional: true range-parser@1.2.1: {} @@ -13624,25 +14588,54 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-dom@18.3.1(react@18.3.1): + react-aria@3.48.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5): dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 + '@internationalized/date': 3.12.1 + '@internationalized/number': 3.6.6 + '@internationalized/string': 3.2.8 + '@react-types/shared': 3.34.0(react@19.2.5) + '@swc/helpers': 0.5.21 + aria-hidden: 1.2.6 + clsx: 2.1.1 + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + react-stately: 3.46.0(react@19.2.5) + use-sync-external-store: 1.6.0(react@19.2.5) - react-dom@19.0.0(react@18.3.1): + react-compiler-runtime@19.1.0-rc.3(react@19.2.5): dependencies: - react: 18.3.1 - scheduler: 0.25.0 + react: 19.2.5 + + react-dom@18.3.1(react@19.2.5): + dependencies: + loose-envify: 1.4.0 + react: 19.2.5 + scheduler: 0.23.2 react-dom@19.0.0(react@19.0.0): dependencies: react: 19.0.0 scheduler: 0.25.0 - react@18.3.1: + react-dom@19.2.5(react@19.2.5): dependencies: - loose-envify: 1.4.0 + react: 19.2.5 + scheduler: 0.27.0 + + react-medium-image-zoom@5.4.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5): + dependencies: + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + + react-stately@3.46.0(react@19.2.5): + dependencies: + '@internationalized/date': 3.12.1 + '@internationalized/number': 3.6.6 + '@internationalized/string': 3.2.8 + '@react-types/shared': 3.34.0(react@19.2.5) + '@swc/helpers': 0.5.21 + react: 19.2.5 + use-sync-external-store: 1.6.0(react@19.2.5) react@19.0.0: {} @@ -13655,25 +14648,48 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - readdirp@5.0.0: {} + readdirp@5.0.0: + optional: true + + reading-time@1.5.0: {} + + real-require@0.1.0: + optional: true + + recma-build-jsx@1.0.0: + dependencies: + '@types/estree': 1.0.8 + estree-util-build-jsx: 3.0.1 + vfile: 6.0.3 + + recma-jsx@1.0.1(acorn@8.16.0): + dependencies: + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + estree-util-to-js: 2.0.0 + recma-parse: 1.0.0 + recma-stringify: 1.0.0 + unified: 11.0.5 + + recma-parse@1.0.0: + dependencies: + '@types/estree': 1.0.8 + esast-util-from-js: 2.0.1 + unified: 11.0.5 + vfile: 6.0.3 - real-require@0.1.0: {} + recma-stringify@1.0.0: + dependencies: + '@types/estree': 1.0.8 + estree-util-to-js: 2.0.0 + unified: 11.0.5 + vfile: 6.0.3 redux-thunk@3.1.0(redux@5.0.1): dependencies: @@ -13681,11 +14697,135 @@ snapshots: redux@5.0.1: {} + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@6.1.0: + dependencies: + regex-utilities: 2.3.0 + + rehype-katex@7.0.1: + dependencies: + '@types/hast': 3.0.4 + '@types/katex': 0.16.8 + hast-util-from-html-isomorphic: 2.0.0 + hast-util-to-text: 4.0.2 + katex: 0.16.45 + unist-util-visit-parents: 6.0.2 + vfile: 6.0.3 + + rehype-parse@9.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-from-html: 2.0.3 + unified: 11.0.5 + + rehype-pretty-code@0.14.1(shiki@3.23.0): + dependencies: + '@types/hast': 3.0.4 + hast-util-to-string: 3.0.1 + parse-numeric-range: 1.3.0 + rehype-parse: 9.0.1 + shiki: 3.23.0 + unified: 11.0.5 + unist-util-visit: 5.1.0 + + rehype-raw@7.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-raw: 9.1.0 + vfile: 6.0.3 + + rehype-recma@1.0.0: + dependencies: + '@types/estree': 1.0.8 + '@types/hast': 3.0.4 + hast-util-to-estree: 3.1.3 + transitivePeerDependencies: + - supports-color + + remark-frontmatter@5.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-frontmatter: 2.0.1 + micromark-extension-frontmatter: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-gfm@4.0.1: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.1.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-math@6.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-math: 3.0.0 + micromark-extension-math: 3.1.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-mdx@3.1.1: + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.3 + micromark-util-types: 2.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-reading-time@2.1.0: + dependencies: + estree-util-is-identifier-name: 3.0.0 + estree-util-value-to-estree: 3.5.0 + reading-time: 1.5.0 + unist-util-visit: 5.1.0 + + remark-rehype@11.1.2: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.1 + unified: 11.0.5 + vfile: 6.0.3 + + remark-smartypants@3.0.2: + dependencies: + retext: 9.0.0 + retext-smartypants: 6.2.0 + unified: 11.0.5 + unist-util-visit: 5.1.0 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + require-directory@2.1.1: {} require-from-string@2.0.2: {} - require-main-filename@2.0.0: {} + require-main-filename@2.0.0: + optional: true reselect@5.1.1: {} @@ -13701,6 +14841,31 @@ snapshots: supports-preserve-symlinks-flag: 1.0.0 optional: true + retext-latin@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + parse-latin: 7.0.0 + unified: 11.0.5 + + retext-smartypants@6.2.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unist-util-visit: 5.1.0 + + retext-stringify@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unified: 11.0.5 + + retext@9.0.0: + dependencies: + '@types/nlcst': 2.0.3 + retext-latin: 4.0.0 + retext-stringify: 4.0.0 + unified: 11.0.5 + retry@0.12.0: {} retry@0.13.1: {} @@ -13716,6 +14881,8 @@ snapshots: semver-compare: 1.0.0 sprintf-js: 1.1.3 + robust-predicates@3.0.3: {} + rolldown@1.0.0-rc.17: dependencies: '@oxc-project/types': 0.127.0 @@ -13769,6 +14936,13 @@ snapshots: fsevents: 2.3.3 optional: true + roughjs@4.6.6: + dependencies: + hachure-fill: 0.5.2 + path-data-parser: 0.1.0 + points-on-curve: 0.2.0 + points-on-path: 0.2.1 + router@2.2.0: dependencies: debug: 4.4.3 @@ -13783,21 +14957,16 @@ snapshots: dependencies: queue-microtask: 1.2.3 + rw@1.3.3: {} + rxjs@7.8.2: dependencies: tslib: 2.8.1 - safe-buffer@5.1.2: {} - safe-buffer@5.2.1: {} - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-regex: 1.2.1 - - safe-stable-stringify@2.5.0: {} + safe-stable-stringify@2.5.0: + optional: true safer-buffer@2.1.2: {} @@ -13807,6 +14976,12 @@ snapshots: scheduler@0.25.0: {} + scheduler@0.27.0: {} + + scroll-into-view-if-needed@3.1.0: + dependencies: + compute-scroll-into-view: 3.1.1 + semver-compare@1.0.0: {} semver@5.7.2: {} @@ -13871,25 +15046,13 @@ snapshots: transitivePeerDependencies: - supports-color - set-blocking@2.0.0: {} + server-only@0.0.1: {} - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 + set-blocking@2.0.0: + optional: true setprototypeof@1.2.0: {} - sha.js@2.4.12: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - to-buffer: 1.2.2 - sharp@0.34.5: dependencies: '@img/colour': 1.1.0 @@ -13927,6 +15090,17 @@ snapshots: shebang-regex@3.0.0: {} + shiki@3.23.0: + dependencies: + '@shikijs/core': 3.23.0 + '@shikijs/engine-javascript': 3.23.0 + '@shikijs/engine-oniguruma': 3.23.0 + '@shikijs/langs': 3.23.0 + '@shikijs/themes': 3.23.0 + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + side-channel-list@1.0.1: dependencies: es-errors: 1.3.0 @@ -13979,25 +15153,9 @@ snapshots: slash@3.0.0: {} - smart-buffer@4.2.0: {} - - socket.io-client@4.8.3(bufferutil@4.1.0)(utf-8-validate@5.0.10): - dependencies: - '@socket.io/component-emitter': 3.1.2 - debug: 4.4.3 - engine.io-client: 6.6.4(bufferutil@4.1.0)(utf-8-validate@5.0.10) - socket.io-parser: 4.2.6 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate + slash@5.1.0: {} - socket.io-parser@4.2.6: - dependencies: - '@socket.io/component-emitter': 3.1.2 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color + smart-buffer@4.2.0: {} socks-proxy-agent@8.0.5: dependencies: @@ -14027,20 +15185,33 @@ snapshots: sonic-boom@2.8.0: dependencies: atomic-sleep: 1.0.0 + optional: true source-map-js@1.2.1: {} source-map@0.6.1: optional: true + source-map@0.7.6: {} + + space-separated-tokens@2.0.2: {} + spawndamnit@3.0.1: dependencies: cross-spawn: 7.0.6 signal-exit: 4.1.0 - split-on-first@1.1.0: {} + speech-rule-engine@4.1.4: + dependencies: + '@xmldom/xmldom': 0.9.10 + commander: 13.1.0 + wicked-good-xpath: 1.3.0 + + split-on-first@1.1.0: + optional: true - split2@4.2.0: {} + split2@4.2.0: + optional: true sprintf-js@1.0.3: {} @@ -14054,9 +15225,11 @@ snapshots: std-env@4.1.0: {} - stream-shift@1.0.3: {} + stream-shift@1.0.3: + optional: true - strict-uri-encode@2.0.0: {} + strict-uri-encode@2.0.0: + optional: true string-argv@0.3.2: optional: true @@ -14067,14 +15240,15 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string_decoder@1.1.1: - dependencies: - safe-buffer: 5.1.2 - string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -14085,6 +15259,8 @@ snapshots: strip-bom@3.0.0: {} + strip-final-newline@3.0.0: {} + strip-json-comments@2.0.1: {} strnum@2.2.3: {} @@ -14093,6 +15269,21 @@ snapshots: dependencies: '@tokenizer/token': 0.3.0 + style-to-js@1.1.21: + dependencies: + style-to-object: 1.0.14 + + style-to-object@1.0.14: + dependencies: + inline-style-parser: 0.2.7 + + styled-jsx@5.1.6(react@19.2.5): + dependencies: + client-only: 0.0.1 + react: 19.2.5 + + stylis@4.4.0: {} + superagent@10.3.0: dependencies: component-emitter: 1.3.1 @@ -14107,8 +15298,6 @@ snapshots: transitivePeerDependencies: - supports-color - superstruct@1.0.4: {} - supertest@7.2.2: dependencies: cookie-signature: 1.2.2 @@ -14129,6 +15318,10 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: optional: true + system-architecture@0.1.0: {} + + tabbable@6.4.0: {} + tar-fs@2.1.4: dependencies: chownr: 1.1.4 @@ -14165,6 +15358,7 @@ snapshots: thread-stream@0.15.2: dependencies: real-require: 0.1.0 + optional: true tinybench@2.9.0: {} @@ -14177,13 +15371,13 @@ snapshots: tinyrainbow@3.1.0: {} - tmp@0.2.5: {} - - to-buffer@1.2.2: + title@4.0.1: dependencies: - isarray: 2.0.5 - safe-buffer: 5.2.1 - typed-array-buffer: 1.0.3 + arg: 5.0.2 + chalk: 5.6.2 + clipboardy: 4.0.0 + + tmp@0.2.5: {} to-regex-range@5.0.1: dependencies: @@ -14197,7 +15391,8 @@ snapshots: '@tokenizer/token': 0.3.0 ieee754: 1.2.1 - tr46@0.0.3: {} + tr46@0.0.3: + optional: true tree-sitter-c-sharp@0.23.1(tree-sitter@0.21.1): dependencies: @@ -14309,9 +15504,21 @@ snapshots: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 + trim-lines@3.0.1: {} + + trough@2.2.0: {} + ts-algebra@2.0.0: {} - tslib@1.14.1: {} + ts-dedent@2.2.0: {} + + ts-morph@27.0.2: + dependencies: + '@ts-morph/common': 0.28.1 + code-block-writer: 13.0.3 + + tslib@1.14.1: + optional: true tslib@2.7.0: {} @@ -14328,6 +15535,16 @@ snapshots: dependencies: safe-buffer: 5.2.1 + twoslash-protocol@0.3.8: {} + + twoslash@0.3.8(typescript@5.9.3): + dependencies: + '@typescript/vfs': 1.6.4(typescript@5.9.3) + twoslash-protocol: 0.3.8 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + type-fest@0.13.1: {} type-is@1.6.18: @@ -14343,14 +15560,7 @@ snapshots: typebox@1.1.37: {} - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - - typescript@5.9.3: - optional: true + typescript@5.9.3: {} typescript@6.0.3: {} @@ -14361,24 +15571,86 @@ snapshots: uint8arrays@3.1.0: dependencies: multiformats: 9.9.0 + optional: true - uncrypto@0.1.3: {} + uncrypto@0.1.3: + optional: true undici-types@6.19.8: {} - undici-types@6.21.0: {} - - undici-types@7.25.0: {} + undici-types@7.19.2: {} undici@7.25.0: {} + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unist-util-find-after@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + + unist-util-is@6.0.1: + dependencies: + '@types/unist': 3.0.3 + + unist-util-modify-children@4.0.0: + dependencies: + '@types/unist': 3.0.3 + array-iterate: 2.0.1 + + unist-util-position-from-estree@2.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-remove-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-visit: 5.1.0 + + unist-util-remove@4.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-children@3.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + + unist-util-visit@5.1.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + universalify@0.1.2: {} universalify@2.0.1: {} unpipe@1.0.0: {} - unplugin-dts@1.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)): + unplugin-dts@1.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)): dependencies: '@rollup/pluginutils': 5.3.0(rollup@4.60.2) '@volar/typescript': 2.4.28 @@ -14390,10 +15662,10 @@ snapshots: typescript: 6.0.3 unplugin: 2.3.11 optionalDependencies: - '@microsoft/api-extractor': 7.58.7(@types/node@22.19.17) + '@microsoft/api-extractor': 7.58.7(@types/node@25.6.0) esbuild: 0.27.7 rollup: 4.60.2 - vite: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) transitivePeerDependencies: - supports-color @@ -14416,6 +15688,7 @@ snapshots: ufo: 1.6.3 optionalDependencies: idb-keyval: 6.2.2 + optional: true uri-js@4.4.1: dependencies: @@ -14429,28 +15702,26 @@ snapshots: node-addon-api: 6.1.0 node-gyp-build: 4.8.4 - use-sync-external-store@1.2.0(react@18.3.1): + use-sync-external-store@1.2.0(react@19.2.5): + dependencies: + react: 19.2.5 + optional: true + + use-sync-external-store@1.4.0(react@19.2.5): dependencies: - react: 18.3.1 + react: 19.2.5 - use-sync-external-store@1.4.0(react@18.3.1): + use-sync-external-store@1.6.0(react@19.2.5): dependencies: - react: 18.3.1 + react: 19.2.5 utf-8-validate@5.0.10: dependencies: node-gyp-build: 4.8.4 + optional: true util-deprecate@1.0.2: {} - util@0.12.5: - dependencies: - inherits: 2.0.4 - is-arguments: 1.2.0 - is-generator-function: 1.1.2 - is-typed-array: 1.1.15 - which-typed-array: 1.1.20 - utility-types@3.11.0: {} utils-merge@1.0.1: {} @@ -14459,43 +15730,42 @@ snapshots: valid-url@1.0.9: {} - valtio@1.13.2(@types/react@18.3.28)(react@18.3.1): + valtio@1.13.2(@types/react@19.2.14)(react@19.2.5): dependencies: - derive-valtio: 0.1.0(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1)) + derive-valtio: 0.1.0(valtio@1.13.2(@types/react@19.2.14)(react@19.2.5)) proxy-compare: 2.6.0 - use-sync-external-store: 1.2.0(react@18.3.1) + use-sync-external-store: 1.2.0(react@19.2.5) optionalDependencies: - '@types/react': 18.3.28 - react: 18.3.1 + '@types/react': 19.2.14 + react: 19.2.5 + optional: true vary@1.1.2: {} - viem@2.23.2(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76): + vfile-location@5.0.3: dependencies: - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 - '@scure/bip32': 1.6.2 - '@scure/bip39': 1.5.4 - abitype: 1.0.8(typescript@6.0.3)(zod@3.25.76) - isows: 1.0.6(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) - ox: 0.6.7(typescript@6.0.3)(zod@3.25.76) - ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - zod + '@types/unist': 3.0.3 + vfile: 6.0.3 + + vfile-message@4.0.3: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.3 - viem@2.23.2(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6): + viem@2.23.2(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4): dependencies: '@noble/curves': 1.8.1 '@noble/hashes': 1.7.1 '@scure/bip32': 1.6.2 '@scure/bip39': 1.5.4 - abitype: 1.0.8(typescript@6.0.3)(zod@4.3.6) + abitype: 1.0.8(typescript@6.0.3)(zod@4.3.4) isows: 1.0.6(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) - ox: 0.6.7(typescript@6.0.3)(zod@4.3.6) + ox: 0.6.7(typescript@6.0.3)(zod@4.3.4) ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) optionalDependencies: typescript: 6.0.3 @@ -14503,67 +15773,17 @@ snapshots: - bufferutil - utf-8-validate - zod + optional: true - viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.22.4): - dependencies: - '@noble/curves': 1.9.1 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@6.0.3)(zod@3.22.4) - isows: 1.0.7(ws@8.18.3) - ox: 0.14.20(typescript@6.0.3)(zod@3.22.4) - ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - zod - - viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76): - dependencies: - '@noble/curves': 1.9.1 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@6.0.3)(zod@3.25.76) - isows: 1.0.7(ws@8.18.3) - ox: 0.14.20(typescript@6.0.3)(zod@3.25.76) - ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - zod - - viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6): - dependencies: - '@noble/curves': 1.9.1 - '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@6.0.3)(zod@4.3.6) - isows: 1.0.7(ws@8.18.3) - ox: 0.14.20(typescript@6.0.3)(zod@4.3.6) - ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - zod - - viem@2.48.4(typescript@6.0.3)(zod@3.25.76): + viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4): dependencies: '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.2.3(typescript@6.0.3)(zod@3.25.76) + abitype: 1.2.3(typescript@6.0.3)(zod@4.3.4) isows: 1.0.7(ws@8.18.3) - ox: 0.14.20(typescript@6.0.3)(zod@3.25.76) + ox: 0.14.20(typescript@6.0.3)(zod@4.3.4) ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) optionalDependencies: typescript: 6.0.3 @@ -14572,13 +15792,13 @@ snapshots: - utf-8-validate - zod - vite-plugin-dts@5.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)): + vite-plugin-dts@5.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)): dependencies: - unplugin-dts: 1.0.0(@microsoft/api-extractor@7.58.7(@types/node@22.19.17))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + unplugin-dts: 1.0.0(@microsoft/api-extractor@7.58.7(@types/node@25.6.0))(esbuild@0.27.7)(rollup@4.60.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) optionalDependencies: - '@microsoft/api-extractor': 7.58.7(@types/node@22.19.17) + '@microsoft/api-extractor': 7.58.7(@types/node@25.6.0) rollup: 4.60.2 - vite: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) transitivePeerDependencies: - '@rspack/core' - '@vue/language-core' @@ -14588,7 +15808,7 @@ snapshots: - typescript - webpack - vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4): + vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -14596,16 +15816,16 @@ snapshots: rolldown: 1.0.0-rc.17 tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 25.6.0 esbuild: 0.27.7 fsevents: 2.3.3 tsx: 4.21.0 yaml: 2.8.4 - vitest@4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)): + vitest@4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)): dependencies: '@vitest/expect': 4.1.5 - '@vitest/mocker': 4.1.5(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) + '@vitest/mocker': 4.1.5(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4)) '@vitest/pretty-format': 4.1.5 '@vitest/runner': 4.1.5 '@vitest/snapshot': 4.1.5 @@ -14622,110 +15842,83 @@ snapshots: tinyexec: 1.1.2 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 8.0.10(@types/node@22.19.17)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.4) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 25.6.0 + '@vitest/coverage-v8': 4.1.5(vitest@4.1.5) transitivePeerDependencies: - msw + vscode-jsonrpc@8.2.0: {} + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver@9.0.1: + dependencies: + vscode-languageserver-protocol: 3.17.5 + vscode-uri@3.1.0: {} - wagmi@2.19.5(@tanstack/query-core@5.100.6)(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76): + wagmi@3.6.9(@coinbase/wallet-sdk@4.3.6(@types/react@19.2.14)(bufferutil@4.1.0)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-provider@0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@tanstack/query-core@5.100.9)(@tanstack/react-query@5.100.9(react@19.2.5))(@types/react@19.2.14)(@walletconnect/ethereum-provider@2.21.1(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(immer@11.1.5)(porto@0.2.35)(react@19.2.5)(typescript@6.0.3)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)): dependencies: - '@tanstack/react-query': 5.100.6(react@18.3.1) - '@wagmi/connectors': 6.2.0(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.100.6)(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@tanstack/query-core@5.100.6)(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76))(zod@3.25.76) - '@wagmi/core': 2.22.1(@tanstack/query-core@5.100.6)(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76)) - react: 18.3.1 - use-sync-external-store: 1.4.0(react@18.3.1) - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@3.25.76) + '@tanstack/react-query': 5.100.9(react@19.2.5) + '@wagmi/connectors': 8.0.9(@coinbase/wallet-sdk@4.3.6(@types/react@19.2.14)(bufferutil@4.1.0)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-provider@0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@wagmi/core@3.4.8(@tanstack/query-core@5.100.9)(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)))(@walletconnect/ethereum-provider@2.21.1(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(porto@0.2.35)(typescript@6.0.3)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)) + '@wagmi/core': 3.4.8(@tanstack/query-core@5.100.9)(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)) + react: 19.2.5 + use-sync-external-store: 1.4.0(react@19.2.5) + viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' + - '@base-org/account' + - '@coinbase/wallet-sdk' + - '@metamask/connect-evm' + - '@safe-global/safe-apps-provider' + - '@safe-global/safe-apps-sdk' - '@tanstack/query-core' - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - debug - - encoding - - expo-auth-session - - expo-crypto - - expo-web-browser - - fastestsmallesttextencoderdecoder + - '@walletconnect/ethereum-provider' + - accounts - immer - - ioredis - - react-native - - supports-color - - uploadthing - - utf-8-validate - - zod + - porto - wagmi@2.19.5(@tanstack/query-core@5.100.6)(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6))(zod@4.3.6): + wagmi@3.6.9(@coinbase/wallet-sdk@4.3.6(@types/react@19.2.14)(bufferutil@4.1.0)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.6.0(react@19.2.5))(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-provider@0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@tanstack/query-core@5.100.9)(@tanstack/react-query@5.100.9(react@19.2.5))(@types/react@19.2.14)(@walletconnect/ethereum-provider@2.21.1(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(immer@11.1.5)(porto@0.2.35)(react@19.2.5)(typescript@6.0.3)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)): dependencies: - '@tanstack/react-query': 5.100.6(react@18.3.1) - '@wagmi/connectors': 6.2.0(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(@wagmi/core@2.22.1(@tanstack/query-core@5.100.6)(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)))(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6))(wagmi@2.19.5(@tanstack/query-core@5.100.6)(@tanstack/react-query@5.100.6(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(utf-8-validate@5.0.10)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6))(zod@4.3.6))(zod@4.3.6) - '@wagmi/core': 2.22.1(@tanstack/query-core@5.100.6)(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6)) - react: 18.3.1 - use-sync-external-store: 1.4.0(react@18.3.1) - viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.6) + '@tanstack/react-query': 5.100.9(react@19.2.5) + '@wagmi/connectors': 8.0.9(@coinbase/wallet-sdk@4.3.6(@types/react@19.2.14)(bufferutil@4.1.0)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.6.0(react@19.2.5))(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-provider@0.18.6(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(@wagmi/core@3.4.8(@tanstack/query-core@5.100.9)(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.6.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)))(@walletconnect/ethereum-provider@2.21.1(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.5)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4))(porto@0.2.35)(typescript@6.0.3)(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)) + '@wagmi/core': 3.4.8(@tanstack/query-core@5.100.9)(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.5))(viem@2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4)) + react: 19.2.5 + use-sync-external-store: 1.4.0(react@19.2.5) + viem: 2.48.4(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@5.0.10)(zod@4.3.4) optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' + - '@base-org/account' + - '@coinbase/wallet-sdk' + - '@metamask/connect-evm' + - '@safe-global/safe-apps-provider' + - '@safe-global/safe-apps-sdk' - '@tanstack/query-core' - '@types/react' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - debug - - encoding - - expo-auth-session - - expo-crypto - - expo-web-browser - - fastestsmallesttextencoderdecoder + - '@walletconnect/ethereum-provider' + - accounts - immer - - ioredis - - react-native - - supports-color - - uploadthing - - utf-8-validate - - zod + - porto - web-streams-polyfill@3.3.3: {} + web-namespaces@2.0.1: {} - webextension-polyfill@0.10.0: {} + web-streams-polyfill@3.3.3: {} - webidl-conversions@3.0.1: {} + webidl-conversions@3.0.1: + optional: true webpack-virtual-modules@0.6.2: {} @@ -14733,18 +15926,10 @@ snapshots: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + optional: true - which-module@2.0.1: {} - - which-typed-array@1.1.20: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.9 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 + which-module@2.0.1: + optional: true which@2.0.2: dependencies: @@ -14759,11 +15944,14 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 + wicked-good-xpath@1.3.0: {} + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + optional: true wrap-ansi@7.0.0: dependencies: @@ -14777,6 +15965,7 @@ snapshots: optionalDependencies: bufferutil: 4.1.0 utf-8-validate: 5.0.10 + optional: true ws@8.17.1(bufferutil@4.1.0)(utf-8-validate@5.0.10): optionalDependencies: @@ -14787,6 +15976,7 @@ snapshots: optionalDependencies: bufferutil: 4.1.0 utf-8-validate: 5.0.10 + optional: true ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10): optionalDependencies: @@ -14798,11 +15988,8 @@ snapshots: bufferutil: 4.1.0 utf-8-validate: 5.0.10 - xmlhttprequest-ssl@2.1.2: {} - - xtend@4.0.2: {} - - y18n@4.0.3: {} + y18n@4.0.3: + optional: true y18n@5.0.8: {} @@ -14814,6 +16001,7 @@ snapshots: dependencies: camelcase: 5.3.1 decamelize: 1.2.0 + optional: true yargs-parser@20.2.9: {} @@ -14832,6 +16020,7 @@ snapshots: which-module: 2.0.1 y18n: 4.0.3 yargs-parser: 18.1.3 + optional: true yargs@16.2.0: dependencies: @@ -14860,33 +16049,54 @@ snapshots: yoctocolors@2.1.2: {} - zod-to-json-schema@3.25.2(zod@4.3.6): + zod-to-json-schema@3.25.2(zod@4.3.4): dependencies: - zod: 4.3.6 + zod: 4.3.4 - zod@3.22.4: {} + zod@4.3.4: {} + + zustand@5.0.0(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.4.0(react@19.2.5)): + optionalDependencies: + '@types/react': 19.2.14 + immer: 11.1.5 + react: 19.2.5 + use-sync-external-store: 1.4.0(react@19.2.5) - zod@3.25.76: {} + zustand@5.0.0(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.6.0(react@19.2.5)): + optionalDependencies: + '@types/react': 19.2.14 + immer: 11.1.5 + react: 19.2.5 + use-sync-external-store: 1.6.0(react@19.2.5) - zod@4.3.6: {} + zustand@5.0.12(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.4.0(react@19.2.5)): + optionalDependencies: + '@types/react': 19.2.14 + immer: 11.1.5 + react: 19.2.5 + use-sync-external-store: 1.4.0(react@19.2.5) - zustand@5.0.0(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): + zustand@5.0.12(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.6.0(react@19.2.5)): optionalDependencies: - '@types/react': 18.3.28 + '@types/react': 19.2.14 immer: 11.1.5 - react: 18.3.1 - use-sync-external-store: 1.4.0(react@18.3.1) + react: 19.2.5 + use-sync-external-store: 1.6.0(react@19.2.5) - zustand@5.0.12(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): + zustand@5.0.3(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.4.0(react@19.2.5)): optionalDependencies: - '@types/react': 18.3.28 + '@types/react': 19.2.14 immer: 11.1.5 - react: 18.3.1 - use-sync-external-store: 1.4.0(react@18.3.1) + react: 19.2.5 + use-sync-external-store: 1.4.0(react@19.2.5) + optional: true - zustand@5.0.3(@types/react@18.3.28)(immer@11.1.5)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): + zustand@5.0.3(@types/react@19.2.14)(immer@11.1.5)(react@19.2.5)(use-sync-external-store@1.6.0(react@19.2.5)): optionalDependencies: - '@types/react': 18.3.28 + '@types/react': 19.2.14 immer: 11.1.5 - react: 18.3.1 - use-sync-external-store: 1.4.0(react@18.3.1) + react: 19.2.5 + use-sync-external-store: 1.6.0(react@19.2.5) + optional: true + + zwitch@2.0.4: {} diff --git a/projects/examples/apps/hardware-wallet-showcase/package.json b/projects/examples/apps/hardware-wallet-showcase/package.json index f41e245..71bacaa 100644 --- a/projects/examples/apps/hardware-wallet-showcase/package.json +++ b/projects/examples/apps/hardware-wallet-showcase/package.json @@ -22,7 +22,7 @@ "@ledgerhq/hw-app-eth": "^7.8.1", "@ledgerhq/hw-transport-webhid": "^6.35.1", "buffer": "^6.0.3", - "react": "^18.3.0", + "react": "^19.2.5", "react-dom": "^18.3.0", "viem": "^2.21.0" }, @@ -30,7 +30,7 @@ "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/react": "^18.3.0", + "@types/react": "^19.2.14", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^6.0.1", "typescript": "^6.0.3", diff --git a/projects/examples/apps/showcase-backend/package.json b/projects/examples/apps/showcase-backend/package.json index 413b47a..0741e08 100644 --- a/projects/examples/apps/showcase-backend/package.json +++ b/projects/examples/apps/showcase-backend/package.json @@ -22,7 +22,7 @@ "@cfxdevkit/services": "workspace:*", "@cfxdevkit/wallet": "workspace:*", "cors": "^2.8.5", - "express": "^4.21.0", + "express": "^5.2.1", "siwe": "^2.3.2", "viem": "^2.21.0" }, @@ -31,9 +31,9 @@ "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", "@types/cors": "^2.8.17", - "@types/express": "^4.17.21", - "@types/node": "^22.10.0", - "@types/supertest": "^6.0.2", + "@types/express": "^5.0.6", + "@types/node": "^25.6.0", + "@types/supertest": "^7.2.0", "supertest": "^7.0.0", "tsx": "^4.19.0", "typescript": "^6.0.3", diff --git a/projects/examples/apps/showcase-browser/package.json b/projects/examples/apps/showcase-browser/package.json index 95da545..f061e84 100644 --- a/projects/examples/apps/showcase-browser/package.json +++ b/projects/examples/apps/showcase-browser/package.json @@ -21,17 +21,17 @@ "@cfxdevkit/services": "workspace:*", "@cfxdevkit/wallet": "workspace:*", "@cfxjs/use-wallet-react": "^0.0.9", - "@tanstack/react-query": "^5.62.0", - "react": "^18.3.0", + "@tanstack/react-query": "^5.100.9", + "react": "^19.2.5", "react-dom": "^18.3.0", "viem": "^2.21.0", - "wagmi": "^2.14.0" + "wagmi": "^3.6.9" }, "devDependencies": { "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/react": "^18.3.0", + "@types/react": "^19.2.14", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^6.0.1", "typescript": "^6.0.3", diff --git a/projects/examples/apps/showcase-browser/src/components/DualWalletBar.tsx b/projects/examples/apps/showcase-browser/src/components/DualWalletBar.tsx index 23a8334..c4bc185 100644 --- a/projects/examples/apps/showcase-browser/src/components/DualWalletBar.tsx +++ b/projects/examples/apps/showcase-browser/src/components/DualWalletBar.tsx @@ -14,6 +14,7 @@ */ import { CopyButton, WalletPickerModal } from '@cfxdevkit/example-showcase-ui'; import { useState } from 'react'; +import { formatUnits } from 'viem'; import { useAccount, useBalance, @@ -72,7 +73,7 @@ function ESpacePill() { )} {onCorrectChain && balance - ? `${Number(balance.formatted).toLocaleString(undefined, { maximumFractionDigits: 4 })} ${balance.symbol}` + ? `${Number(formatUnits(balance.value, balance.decimals)).toLocaleString(undefined, { maximumFractionDigits: 4 })} ${balance.symbol}` : '—'} diff --git a/projects/examples/apps/showcase-browser/src/components/WalletPill.tsx b/projects/examples/apps/showcase-browser/src/components/WalletPill.tsx index f3515e4..df4a055 100644 --- a/projects/examples/apps/showcase-browser/src/components/WalletPill.tsx +++ b/projects/examples/apps/showcase-browser/src/components/WalletPill.tsx @@ -11,6 +11,7 @@ import { CopyButton, WalletPickerModal } from '@cfxdevkit/example-showcase-ui'; import { useState } from 'react'; +import { formatUnits } from 'viem'; import { useAccount, useBalance, useChainId, useConnect, useDisconnect } from 'wagmi'; function shortAddress(addr: string): string { @@ -56,7 +57,7 @@ export function WalletPill() {
{balance - ? `${Number(balance.formatted).toLocaleString(undefined, { maximumFractionDigits: 4 })} ${balance.symbol}` + ? `${Number(formatUnits(balance.value, balance.decimals)).toLocaleString(undefined, { maximumFractionDigits: 4 })} ${balance.symbol}` : '—'} diff --git a/projects/examples/apps/showcase-browser/src/panels/UnifiedAccountPanel.tsx b/projects/examples/apps/showcase-browser/src/panels/UnifiedAccountPanel.tsx index 750c568..abd6d37 100644 --- a/projects/examples/apps/showcase-browser/src/panels/UnifiedAccountPanel.tsx +++ b/projects/examples/apps/showcase-browser/src/panels/UnifiedAccountPanel.tsx @@ -10,6 +10,7 @@ import { formatCFX, formatGDrip } from '@cfxdevkit/core'; import { ConnectWall, CopyButton, errMsg, WalletPickerModal } from '@cfxdevkit/example-showcase-ui'; import { useCallback, useEffect, useState } from 'react'; +import { formatUnits } from 'viem'; import { useAccount, useBalance, useBlockNumber, useGasPrice } from 'wagmi'; import { getFluentProvider, useCoreWallet } from '../lib/use-core-wallet.js'; @@ -58,7 +59,8 @@ function ESpaceSection() { address : {address} {'\n'}connector : {connector?.name ?? 'unknown'} {'\n'}chainId : {chainId ?? '—'} - {'\n'}balance : {balance ? `${balance.formatted} ${balance.symbol}` : '…'} + {'\n'}balance :{' '} + {balance ? `${formatUnits(balance.value, balance.decimals)} ${balance.symbol}` : '…'} {'\n'}blockNumber : {blockNumber !== undefined ? blockNumber.toString() : '…'} {'\n'}gasPrice : {gasPrice !== undefined ? `${gasPrice.toString()} wei` : '…'}
diff --git a/projects/examples/apps/showcase-gateway/package.json b/projects/examples/apps/showcase-gateway/package.json index 3e2e756..3324158 100644 --- a/projects/examples/apps/showcase-gateway/package.json +++ b/projects/examples/apps/showcase-gateway/package.json @@ -16,14 +16,14 @@ }, "dependencies": { "@cfxdevkit/example-showcase-ui": "workspace:*", - "react": "^18.3.0", + "react": "^19.2.5", "react-dom": "^18.3.0" }, "devDependencies": { "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/react": "^18.3.0", + "@types/react": "^19.2.14", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^6.0.1", "typescript": "^6.0.3", diff --git a/projects/examples/apps/showcase-stack/package.json b/projects/examples/apps/showcase-stack/package.json index 5fdc577..c7f3657 100644 --- a/projects/examples/apps/showcase-stack/package.json +++ b/projects/examples/apps/showcase-stack/package.json @@ -21,19 +21,19 @@ "@cfxdevkit/services": "workspace:*", "@cfxdevkit/wallet": "workspace:*", "@cfxjs/use-wallet-react": "^0.0.9", - "@tanstack/react-query": "^5.62.0", + "@tanstack/react-query": "^5.100.9", "buffer": "^6.0.3", - "react": "^18.3.0", + "react": "^19.2.5", "react-dom": "^18.3.0", "siwe": "^2.3.2", "viem": "^2.21.0", - "wagmi": "^2.14.0" + "wagmi": "^3.6.9" }, "devDependencies": { "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/react": "^18.3.0", + "@types/react": "^19.2.14", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^6.0.1", "typescript": "^6.0.3", diff --git a/projects/examples/apps/showcase-stack/src/components/WalletBarESpacePill.tsx b/projects/examples/apps/showcase-stack/src/components/WalletBarESpacePill.tsx index 9e2f9f1..dd208c6 100644 --- a/projects/examples/apps/showcase-stack/src/components/WalletBarESpacePill.tsx +++ b/projects/examples/apps/showcase-stack/src/components/WalletBarESpacePill.tsx @@ -1,5 +1,6 @@ import { CopyButton, WalletPickerModal } from '@cfxdevkit/example-showcase-ui'; import { useState } from 'react'; +import { formatUnits } from 'viem'; import { useAccount, useBalance, @@ -49,7 +50,7 @@ export function ESpacePill() { )} {onCorrectChain && balance - ? `${Number(balance.formatted).toLocaleString(undefined, { maximumFractionDigits: 4 })} ${balance.symbol}` + ? `${Number(formatUnits(balance.value, balance.decimals)).toLocaleString(undefined, { maximumFractionDigits: 4 })} ${balance.symbol}` : '—'} diff --git a/projects/examples/apps/showcase/package.json b/projects/examples/apps/showcase/package.json index f5452f5..6d3136a 100644 --- a/projects/examples/apps/showcase/package.json +++ b/projects/examples/apps/showcase/package.json @@ -21,7 +21,7 @@ "@cfxdevkit/services": "workspace:*", "@cfxdevkit/wallet": "workspace:*", "buffer": "^6.0.3", - "react": "^18.3.0", + "react": "^19.2.5", "react-dom": "^18.3.0", "siwe": "^2.3.2", "viem": "^2.21.0" @@ -30,7 +30,7 @@ "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/react": "^18.3.0", + "@types/react": "^19.2.14", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^6.0.1", "typescript": "^6.0.3", diff --git a/projects/examples/packages/showcase-ui/package.json b/projects/examples/packages/showcase-ui/package.json index 8a1faca..37c59ae 100644 --- a/projects/examples/packages/showcase-ui/package.json +++ b/projects/examples/packages/showcase-ui/package.json @@ -17,23 +17,23 @@ }, "peerDependencies": { "@cfxjs/use-wallet-react": "^0.0.9", - "react": "^18.3.0", + "react": "^19.2.5", "viem": "^2.21.0", - "wagmi": "^2.14.0" + "wagmi": "^3.6.9" }, "devDependencies": { "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", "@cfxjs/use-wallet-react": "^0.0.9", - "@tanstack/react-query": "^5.62.0", - "@types/react": "^18.3.0", - "react": "^18.3.0", + "@tanstack/react-query": "^5.100.9", + "@types/react": "^19.2.14", + "react": "^19.2.5", "typescript": "^6.0.3", "viem": "^2.21.0", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", "vitest": "^4.1.5", - "wagmi": "^2.14.0" + "wagmi": "^3.6.9" } } diff --git a/repos/cfx-core/packages/core/package.json b/repos/cfx-core/packages/core/package.json index 1d04ad8..59a0789 100644 --- a/repos/cfx-core/packages/core/package.json +++ b/repos/cfx-core/packages/core/package.json @@ -53,6 +53,7 @@ "build": "vite build", "test": "vitest run", "test:watch": "vitest", + "test:coverage": "vitest run --coverage", "test:network": "RUN_NETWORK_TESTS=1 vitest run", "typecheck": "tsc --noEmit", "lint": "biome check src", @@ -60,15 +61,16 @@ }, "dependencies": { "@scure/bip32": "^1.5.0", - "@scure/bip39": "^1.4.0", + "@scure/bip39": "^2.2.0", "cive": "^0.8.1", "viem": "^2.21.0" }, "devDependencies": { - "@cfxdevkit/tsconfig": "workspace:*", - "@cfxdevkit/biome-config": "workspace:*", "@biomejs/biome": "^2.4.14", - "@types/node": "^22.10.0", + "@cfxdevkit/biome-config": "workspace:*", + "@cfxdevkit/tsconfig": "workspace:*", + "@types/node": "^25.6.0", + "@vitest/coverage-v8": "^4.1.5", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", diff --git a/repos/cfx-core/packages/core/src/address/index.test.ts b/repos/cfx-core/packages/core/src/address/index.test.ts index aca409e..dc67ae4 100644 --- a/repos/cfx-core/packages/core/src/address/index.test.ts +++ b/repos/cfx-core/packages/core/src/address/index.test.ts @@ -34,4 +34,15 @@ describe('address', () => { expect(testnet.startsWith('cfxtest:')).toBe(true); expect(base32ToHex(testnet).toLowerCase()).toBe(HEX); }); + + it('hexToBase32 with verbose: true returns the uppercase verbose form', () => { + const result = hexToBase32(HEX, 1029, { verbose: true }); + expect(result).toBe(VERBOSE); + }); + + it('base32ToHex with strict: false accepts mixed-case input', () => { + // Passing strict: false exercises the opts?.strict branch in the wrapper + const hex = base32ToHex(BASE32.toLowerCase(), { strict: false }); + expect(hex.toLowerCase()).toBe(HEX); + }); }); diff --git a/repos/cfx-core/packages/core/src/chains/index.test.ts b/repos/cfx-core/packages/core/src/chains/index.test.ts index b4a5e37..224c86f 100644 --- a/repos/cfx-core/packages/core/src/chains/index.test.ts +++ b/repos/cfx-core/packages/core/src/chains/index.test.ts @@ -87,4 +87,18 @@ describe('chains catalog', () => { }), ).toThrow(/HTTP RPC/); }); + + it('defineChain returns the input unchanged when it is valid', () => { + const chain = defineChain({ + id: 9999, + name: 'custom-local', + displayName: 'Custom Local', + network: 'local', + family: 'espace', + nativeToken: { symbol: 'CFX', decimals: 18 }, + rpc: { http: ['http://127.0.0.1:8545'] }, + }); + expect(chain.id).toBe(9999); + expect(chain.name).toBe('custom-local'); + }); }); diff --git a/repos/cfx-core/packages/core/src/client/core.test.ts b/repos/cfx-core/packages/core/src/client/core.test.ts new file mode 100644 index 0000000..aa93d60 --- /dev/null +++ b/repos/cfx-core/packages/core/src/client/core.test.ts @@ -0,0 +1,230 @@ +import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { coreSpaceLocal, coreSpaceTestnet } from '../chains/index.js'; +import { RpcError } from '../errors/index.js'; +import { createCoreClient } from './core.js'; +import { http } from './transport.js'; + +const { + mockCiveClient, + mockGetEpochNumber, + mockGetStatus, + mockGetBalance, + mockGetTransactionReceipt, + mockGetTransaction, + mockGetLogs, + mockGetSponsorInfo, + mockGetAdmin, +} = vi.hoisted(() => ({ + mockCiveClient: { request: vi.fn() }, + mockGetEpochNumber: vi.fn(), + mockGetStatus: vi.fn(), + mockGetBalance: vi.fn(), + mockGetTransactionReceipt: vi.fn(), + mockGetTransaction: vi.fn(), + mockGetLogs: vi.fn(), + mockGetSponsorInfo: vi.fn(), + mockGetAdmin: vi.fn(), +})); + +vi.mock('cive', async (importOriginal) => { + const mod = await importOriginal(); + return { ...mod, createPublicClient: () => mockCiveClient }; +}); + +vi.mock('cive/actions', () => ({ + getEpochNumber: mockGetEpochNumber, + getStatus: mockGetStatus, + getBalance: mockGetBalance, + getTransactionReceipt: mockGetTransactionReceipt, + getTransaction: mockGetTransaction, + getLogs: mockGetLogs, + GetSponsorInfo: mockGetSponsorInfo, + getAdmin: mockGetAdmin, +})); + +vi.mock('cive/utils', () => ({ + defineChain: (chain: unknown) => chain, +})); + +const HASH = '0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb' as `0x${string}`; +const ADDR = 'cfxtest:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6f0vrcsw'; + +describe('createCoreClient', () => { + const client = createCoreClient(coreSpaceTestnet, http()); + + beforeEach(() => { + vi.clearAllMocks(); + }); + + it('family is core', () => { + expect(client.family).toBe('core'); + }); + + it('chain is the provided chain', () => { + expect(client.chain).toBe(coreSpaceTestnet); + }); + + it('getEpochNumber without epochTag', async () => { + mockGetEpochNumber.mockResolvedValue(1000n); + expect(await client.getEpochNumber()).toBe(1000n); + expect(mockGetEpochNumber).toHaveBeenCalledWith(mockCiveClient, {}); + }); + + it('getEpochNumber with epochTag', async () => { + mockGetEpochNumber.mockResolvedValue(999n); + await client.getEpochNumber({ epochTag: 'latest_finalized' }); + expect(mockGetEpochNumber).toHaveBeenCalledWith(mockCiveClient, { + epochTag: 'latest_finalized', + }); + }); + + it('getEpochNumber wraps errors in RpcError', async () => { + mockGetEpochNumber.mockRejectedValue(new Error('network')); + await expect(client.getEpochNumber()).rejects.toBeInstanceOf(RpcError); + }); + + it('getStatus returns node status', async () => { + const status = { chainId: 1, epochNumber: 100n, bestHash: HASH }; + mockGetStatus.mockResolvedValue(status); + expect(await client.getStatus()).toBe(status); + }); + + it('getStatus wraps errors in RpcError', async () => { + mockGetStatus.mockRejectedValue(new Error('timeout')); + await expect(client.getStatus()).rejects.toBeInstanceOf(RpcError); + }); + + it('getBalance without epochTag', async () => { + mockGetBalance.mockResolvedValue(500n); + expect(await client.getBalance(ADDR)).toBe(500n); + expect(mockGetBalance).toHaveBeenCalledWith( + mockCiveClient, + expect.objectContaining({ address: ADDR }), + ); + }); + + it('getBalance with epochTag', async () => { + mockGetBalance.mockResolvedValue(500n); + await client.getBalance(ADDR, { epochTag: 'latest_state' }); + expect(mockGetBalance).toHaveBeenCalledWith( + mockCiveClient, + expect.objectContaining({ epochTag: 'latest_state' }), + ); + }); + + it('getTransactionReceipt returns receipt when found', async () => { + const receipt = { transactionHash: HASH }; + mockGetTransactionReceipt.mockResolvedValue(receipt); + expect(await client.getTransactionReceipt(HASH)).toBe(receipt); + }); + + it('getTransactionReceipt returns null for TransactionReceiptNotFoundError', async () => { + const err = Object.assign(new Error('not found'), { + name: 'TransactionReceiptNotFoundError', + }); + mockGetTransactionReceipt.mockRejectedValue(err); + expect(await client.getTransactionReceipt(HASH)).toBeNull(); + }); + + it('getTransactionReceipt wraps other errors in RpcError', async () => { + mockGetTransactionReceipt.mockRejectedValue(new Error('rpc error')); + await expect(client.getTransactionReceipt(HASH)).rejects.toBeInstanceOf(RpcError); + }); + + it('getTransaction returns the transaction when found', async () => { + const tx = { hash: HASH, nonce: 0n }; + mockGetTransaction.mockResolvedValue(tx); + expect(await client.getTransaction(HASH)).toBe(tx); + }); + + it('getTransaction returns null for TransactionNotFoundError', async () => { + const err = Object.assign(new Error('not found'), { name: 'TransactionNotFoundError' }); + mockGetTransaction.mockRejectedValue(err); + expect(await client.getTransaction(HASH)).toBeNull(); + }); + + it('getTransaction wraps other errors in RpcError', async () => { + mockGetTransaction.mockRejectedValue(new Error('bad hash')); + await expect(client.getTransaction(HASH)).rejects.toBeInstanceOf(RpcError); + }); + + it('getLogs returns a list of logs', async () => { + const logs = [{ address: ADDR, topics: [], data: '0x', transactionHash: HASH }]; + mockGetLogs.mockResolvedValue(logs); + const result = await client.getLogs({ fromEpoch: 'latest_finalized' }); + expect(result).toBe(logs); + }); + + it('getLogs wraps errors in RpcError', async () => { + mockGetLogs.mockRejectedValue(new Error('filter too wide')); + await expect(client.getLogs({})).rejects.toBeInstanceOf(RpcError); + }); + + it('getSponsorInfo without epochTag', async () => { + const info = { sponsorForGas: ADDR, sponsorForCollateral: ADDR }; + mockGetSponsorInfo.mockResolvedValue(info); + expect(await client.getSponsorInfo(ADDR)).toBe(info); + expect(mockGetSponsorInfo).toHaveBeenCalledWith( + mockCiveClient, + expect.objectContaining({ address: ADDR }), + ); + }); + + it('getSponsorInfo with epochTag', async () => { + mockGetSponsorInfo.mockResolvedValue({}); + await client.getSponsorInfo(ADDR, { epochTag: 'latest_state' }); + expect(mockGetSponsorInfo).toHaveBeenCalledWith( + mockCiveClient, + expect.objectContaining({ epochTag: 'latest_state' }), + ); + }); + + it('getSponsorInfo wraps errors in RpcError', async () => { + mockGetSponsorInfo.mockRejectedValue(new Error('not a contract')); + await expect(client.getSponsorInfo(ADDR)).rejects.toBeInstanceOf(RpcError); + }); + + it('getAdmin returns an address when one is set', async () => { + mockGetAdmin.mockResolvedValue(ADDR); + expect(await client.getAdmin(ADDR)).toBe(ADDR); + }); + + it('getAdmin returns null when no admin is set', async () => { + mockGetAdmin.mockResolvedValue(null); + expect(await client.getAdmin(ADDR)).toBeNull(); + }); + + it('getAdmin with epochTag', async () => { + mockGetAdmin.mockResolvedValue(null); + await client.getAdmin(ADDR, { epochTag: 'latest_state' }); + expect(mockGetAdmin).toHaveBeenCalledWith( + mockCiveClient, + expect.objectContaining({ epochTag: 'latest_state' }), + ); + }); + + it('getAdmin wraps errors in RpcError', async () => { + mockGetAdmin.mockRejectedValue(new Error('bad address')); + await expect(client.getAdmin(ADDR)).rejects.toBeInstanceOf(RpcError); + }); + + it('request delegates to the cive client', async () => { + mockCiveClient.request.mockResolvedValue({ chainId: 1029 }); + const result = await client.request({ method: 'cfx_getStatus' }); + expect(result).toEqual({ chainId: 1029 }); + }); + + it('request wraps errors in RpcError', async () => { + mockCiveClient.request.mockRejectedValue(new Error('timeout')); + await expect(client.request({ method: 'cfx_getStatus' })).rejects.toBeInstanceOf(RpcError); + }); +}); + +describe('createCoreClient / toCiveChain branch coverage', () => { + it('builds a client from a chain with no explorer and no ws rpc (coreSpaceLocal)', () => { + // coreSpaceLocal has no explorer and no ws — exercises the false branches in toCiveChain + const client = createCoreClient(coreSpaceLocal, http()); + expect(client.family).toBe('core'); + expect(client.chain).toBe(coreSpaceLocal); + }); +}); diff --git a/repos/cfx-core/packages/core/src/client/errors.test.ts b/repos/cfx-core/packages/core/src/client/errors.test.ts new file mode 100644 index 0000000..cb7dba1 --- /dev/null +++ b/repos/cfx-core/packages/core/src/client/errors.test.ts @@ -0,0 +1,57 @@ +import { describe, expect, it } from 'vitest'; +import { CfxError, RpcError } from '../errors/index.js'; +import { nullWhenNotFound, wrapRpc } from './errors.js'; + +describe('wrapRpc', () => { + it('resolves with the value when the promise succeeds', async () => { + const result = await wrapRpc(Promise.resolve(42), 'test/code'); + expect(result).toBe(42); + }); + + it('re-throws CfxError instances unchanged', async () => { + const err = new CfxError({ code: 'test/already', message: 'already typed' }); + await expect(wrapRpc(Promise.reject(err), 'test/code')).rejects.toBe(err); + }); + + it('wraps a plain Error in RpcError', async () => { + const cause = new Error('network timeout'); + const result = wrapRpc(Promise.reject(cause), 'core/client/timeout'); + await expect(result).rejects.toBeInstanceOf(RpcError); + await expect(result).rejects.toMatchObject({ code: 'core/client/timeout' }); + }); + + it('wraps a non-Error rejection (string) in RpcError with its string value as message', async () => { + const result = wrapRpc(Promise.reject('string error'), 'core/client/unknown'); + await expect(result).rejects.toBeInstanceOf(RpcError); + await expect(result).rejects.toMatchObject({ message: 'string error' }); + }); + + it('forwards optional meta to the RpcError', async () => { + const result = wrapRpc(Promise.reject(new Error('fail')), 'core/client/meta', { url: 'x' }); + await expect(result).rejects.toMatchObject({ meta: { url: 'x' } }); + }); +}); + +describe('nullWhenNotFound', () => { + it('resolves with the value when the promise succeeds', async () => { + const result = await nullWhenNotFound(Promise.resolve('found'), 'TransactionNotFound'); + expect(result).toBe('found'); + }); + + it('returns null when the error name matches the notFoundName', async () => { + const notFound = Object.assign(new Error('tx not found'), { name: 'TransactionNotFound' }); + const result = await nullWhenNotFound(Promise.reject(notFound), 'TransactionNotFound'); + expect(result).toBeNull(); + }); + + it('re-throws when the error name does not match', async () => { + const err = Object.assign(new Error('other error'), { name: 'SomeOtherError' }); + await expect(nullWhenNotFound(Promise.reject(err), 'TransactionNotFound')).rejects.toBe(err); + }); + + it('re-throws when the rejection has no name property', async () => { + await expect( + nullWhenNotFound(Promise.reject('bare string'), 'TransactionNotFound'), + ).rejects.toBe('bare string'); + }); +}); diff --git a/repos/cfx-core/packages/core/src/client/espace.test.ts b/repos/cfx-core/packages/core/src/client/espace.test.ts new file mode 100644 index 0000000..124f366 --- /dev/null +++ b/repos/cfx-core/packages/core/src/client/espace.test.ts @@ -0,0 +1,154 @@ +import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { espaceLocal, espaceTestnet } from '../chains/index.js'; +import { RpcError } from '../errors/index.js'; +import { createEspaceClient } from './espace.js'; +import { http } from './transport.js'; + +const { mockPublicClient } = vi.hoisted(() => ({ + mockPublicClient: { + request: vi.fn(), + getBlockNumber: vi.fn(), + getBlock: vi.fn(), + getBalance: vi.fn(), + getTransactionReceipt: vi.fn(), + estimateGas: vi.fn(), + }, +})); + +vi.mock('viem', async (importOriginal) => { + const mod = await importOriginal(); + return { ...mod, createPublicClient: () => mockPublicClient }; +}); + +const HASH = '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' as `0x${string}`; + +describe('createEspaceClient', () => { + const client = createEspaceClient(espaceTestnet, http()); + + beforeEach(() => { + vi.clearAllMocks(); + }); + + it('family is espace', () => { + expect(client.family).toBe('espace'); + }); + + it('chain is the provided chain', () => { + expect(client.chain).toBe(espaceTestnet); + }); + + it('getBlockNumber returns the bigint from the underlying client', async () => { + mockPublicClient.getBlockNumber.mockResolvedValue(42n); + expect(await client.getBlockNumber()).toBe(42n); + }); + + it('getBlockNumber wraps errors in RpcError', async () => { + mockPublicClient.getBlockNumber.mockRejectedValue(new Error('timeout')); + await expect(client.getBlockNumber()).rejects.toBeInstanceOf(RpcError); + }); + + it('getBlock with string tag (latest)', async () => { + const block = { number: 1n }; + mockPublicClient.getBlock.mockResolvedValue(block); + const result = await client.getBlock('latest'); + expect(result).toBe(block); + expect(mockPublicClient.getBlock).toHaveBeenCalledWith({ blockTag: 'latest' }); + }); + + it('getBlock with bigint tag uses blockNumber', async () => { + mockPublicClient.getBlock.mockResolvedValue({ number: 10n }); + await client.getBlock(10n); + expect(mockPublicClient.getBlock).toHaveBeenCalledWith({ blockNumber: 10n }); + }); + + it('getBlock with hash-like string uses blockHash', async () => { + mockPublicClient.getBlock.mockResolvedValue({ number: 5n }); + await client.getBlock(HASH); + expect(mockPublicClient.getBlock).toHaveBeenCalledWith({ blockHash: HASH }); + }); + + it('getBlock wraps errors in RpcError', async () => { + mockPublicClient.getBlock.mockRejectedValue(new Error('not found')); + await expect(client.getBlock('latest')).rejects.toBeInstanceOf(RpcError); + }); + + it('getBalance without opts', async () => { + mockPublicClient.getBalance.mockResolvedValue(100n); + expect(await client.getBalance('0x0000000000000000000000000000000000000001')).toBe(100n); + expect(mockPublicClient.getBalance).toHaveBeenCalledWith( + expect.objectContaining({ address: '0x0000000000000000000000000000000000000001' }), + ); + }); + + it('getBalance with string blockTag', async () => { + mockPublicClient.getBalance.mockResolvedValue(200n); + await client.getBalance('0x0000000000000000000000000000000000000001', { + blockTag: 'finalized', + }); + expect(mockPublicClient.getBalance).toHaveBeenCalledWith( + expect.objectContaining({ blockTag: 'finalized' }), + ); + }); + + it('getBalance with bigint blockTag uses blockNumber', async () => { + mockPublicClient.getBalance.mockResolvedValue(300n); + await client.getBalance('0x0000000000000000000000000000000000000001', { + blockTag: 5n, + }); + expect(mockPublicClient.getBalance).toHaveBeenCalledWith( + expect.objectContaining({ blockNumber: 5n }), + ); + }); + + it('getTransactionReceipt returns the receipt when found', async () => { + const receipt = { transactionHash: HASH }; + mockPublicClient.getTransactionReceipt.mockResolvedValue(receipt); + expect(await client.getTransactionReceipt(HASH)).toBe(receipt); + }); + + it('getTransactionReceipt returns null for TransactionReceiptNotFoundError', async () => { + const err = Object.assign(new Error('not found'), { + name: 'TransactionReceiptNotFoundError', + }); + mockPublicClient.getTransactionReceipt.mockRejectedValue(err); + expect(await client.getTransactionReceipt(HASH)).toBeNull(); + }); + + it('getTransactionReceipt wraps other errors in RpcError', async () => { + mockPublicClient.getTransactionReceipt.mockRejectedValue(new Error('network')); + await expect(client.getTransactionReceipt(HASH)).rejects.toBeInstanceOf(RpcError); + }); + + it('estimateGas returns the bigint', async () => { + mockPublicClient.estimateGas.mockResolvedValue(21_000n); + const gas = await client.estimateGas({ to: '0x0000000000000000000000000000000000000001' }); + expect(gas).toBe(21_000n); + }); + + it('estimateGas wraps errors in RpcError', async () => { + mockPublicClient.estimateGas.mockRejectedValue(new Error('execution reverted')); + await expect( + client.estimateGas({ to: '0x0000000000000000000000000000000000000001' }), + ).rejects.toBeInstanceOf(RpcError); + }); + + it('request delegates to the underlying client', async () => { + mockPublicClient.request.mockResolvedValue({ id: 1 }); + const result = await client.request({ method: 'eth_blockNumber' }); + expect(result).toEqual({ id: 1 }); + }); + + it('request wraps errors in RpcError', async () => { + mockPublicClient.request.mockRejectedValue(new Error('method not found')); + await expect(client.request({ method: 'eth_unknown' })).rejects.toBeInstanceOf(RpcError); + }); +}); + +describe('createEspaceClient / toViemChain branch coverage', () => { + it('builds a client from a chain with no ws rpc (espaceLocal)', () => { + // espaceLocal has no ws — exercises the !chain.rpc.ws branch in toViemChain + const client = createEspaceClient(espaceLocal, http()); + expect(client.family).toBe('espace'); + expect(client.chain).toBe(espaceLocal); + }); +}); diff --git a/repos/cfx-core/packages/core/src/client/index.test.ts b/repos/cfx-core/packages/core/src/client/index.test.ts index f183308..228a148 100644 --- a/repos/cfx-core/packages/core/src/client/index.test.ts +++ b/repos/cfx-core/packages/core/src/client/index.test.ts @@ -10,11 +10,26 @@ describe('client / offline', () => { expect(t.kind).toBe('http'); }); + it('http() accepts url, headers, timeoutMs and retries options', () => { + const t = http({ + url: 'https://evm.confluxrpc.com', + headers: { 'x-api-key': 'test' }, + timeoutMs: 5_000, + retries: 2, + }); + expect(t.kind).toBe('http'); + }); + it('ws() builds an opaque transport', () => { const t = ws({ url: 'wss://example.invalid' }); expect(t.kind).toBe('ws'); }); + it('ws() accepts reconnect and timeoutMs options', () => { + const t = ws({ url: 'wss://evm.confluxrpc.com/ws', reconnect: true, timeoutMs: 10_000 }); + expect(t.kind).toBe('ws'); + }); + it('fallback() requires at least one transport', () => { expect(() => fallback([])).toThrow(/at least one/); }); diff --git a/repos/cfx-core/packages/core/src/wallet/derivation.ts b/repos/cfx-core/packages/core/src/wallet/derivation.ts index b785183..0af1036 100644 --- a/repos/cfx-core/packages/core/src/wallet/derivation.ts +++ b/repos/cfx-core/packages/core/src/wallet/derivation.ts @@ -4,7 +4,7 @@ import { generateMnemonic as scureGenerateMnemonic, validateMnemonic as scureValidateMnemonic, } from '@scure/bip39'; -import { wordlist as english } from '@scure/bip39/wordlists/english'; +import { wordlist as english } from '@scure/bip39/wordlists/english.js'; import { privateKeyToAccount as civePrivateKeyToAccount } from 'cive/accounts'; import { privateKeyToAccount } from 'viem/accounts'; import { WalletError } from '../errors/index.js'; diff --git a/repos/cfx-core/packages/core/src/wallet/index.test.ts b/repos/cfx-core/packages/core/src/wallet/index.test.ts index de3562a..2b58b10 100644 --- a/repos/cfx-core/packages/core/src/wallet/index.test.ts +++ b/repos/cfx-core/packages/core/src/wallet/index.test.ts @@ -146,6 +146,67 @@ describe('signerFromPrivateKey', () => { }); }); +describe('signerFromPrivateKey / coreNetworkId', () => { + const { privateKey } = deriveAccount({ mnemonic: TEST_MNEMONIC, path: DEFAULT_CORE_PATH }); + + it('populates account.coreAddress when coreNetworkId is provided', () => { + const signer = signerFromPrivateKey(privateKey, 1029); + expect(signer.account.coreAddress).toBeDefined(); + expect(signer.account.coreAddress?.startsWith('cfx:')).toBe(true); + }); + + it('does not set coreAddress when coreNetworkId is omitted', () => { + const signer = signerFromPrivateKey(privateKey); + expect(signer.account.coreAddress).toBeUndefined(); + }); + + it('signMessage accepts a Uint8Array (raw bytes path)', async () => { + const signer = signerFromPrivateKey(privateKey); + const bytes = new TextEncoder().encode('hello bytes'); + const sig = await signer.signMessage(bytes); + expect(sig).toMatch(/^0x[0-9a-f]{130}$/); + }); + + it('signTransaction with family: core delegates to Core Space signer', async () => { + const signer = signerFromPrivateKey(privateKey, 1); + const coreAddress = signer.account.coreAddress!; + const sig = await signer.signTransaction({ + family: 'core', + chainId: 1, + nonce: 0, + gas: 21_000n, + storageLimit: 0n, + epochHeight: 0n, + to: coreAddress, + value: 0n, + coreType: 'legacy', + gasPrice: 1_000_000_000n, + }); + expect(sig).toMatch(/^0x[0-9a-f]+$/i); + }); + + it('signTransaction wraps Core signing failure in WalletError via signRejected', async () => { + const signer = signerFromPrivateKey(privateKey); + // Missing required Core Space fields → signCoreTransaction throws, caught and re-wrapped + await expect(signer.signTransaction({ family: 'core', chainId: 1 })).rejects.toBeInstanceOf( + WalletError, + ); + }); + + it('signTypedData wraps invalid typed data error in WalletError via signRejected', async () => { + const signer = signerFromPrivateKey(privateKey); + // primaryType 'Missing' is not in types → viem throws, caught and re-wrapped + await expect( + signer.signTypedData({ + domain: { name: 'Test', version: '1', chainId: 1 }, + types: { Mail: [{ name: 'from', type: 'address' }] }, + primaryType: 'Missing' as never, + message: {}, + }), + ).rejects.toBeInstanceOf(WalletError); + }); +}); + describe('coreAddressFromPrivateKey', () => { const { privateKey } = deriveAccount({ mnemonic: TEST_MNEMONIC, diff --git a/repos/cfx-core/packages/core/src/wallet/signing.test.ts b/repos/cfx-core/packages/core/src/wallet/signing.test.ts new file mode 100644 index 0000000..164013d --- /dev/null +++ b/repos/cfx-core/packages/core/src/wallet/signing.test.ts @@ -0,0 +1,131 @@ +import { describe, expect, it } from 'vitest'; +import { WalletError } from '../errors/index.js'; +import { coreAddressFromPrivateKey, DEFAULT_CORE_PATH, deriveAccount } from './derivation.js'; +import type { SignableTx } from './index.js'; +import { signCoreTransaction } from './signing.js'; + +const TEST_MNEMONIC = 'test test test test test test test test test test test junk'; + +const { privateKey } = deriveAccount({ mnemonic: TEST_MNEMONIC, path: DEFAULT_CORE_PATH }); +// Use a valid cfxtest: address so cive accepts it as `to` +const CFXTEST_ADDRESS = coreAddressFromPrivateKey(privateKey, 1); + +/** Minimal valid fields shared by all Core Space tx types. */ +const REQUIRED: Pick = { + chainId: 1, + nonce: 0, + gas: 21_000n, + storageLimit: 0n, + epochHeight: 0n, +}; + +describe('signCoreTransaction / missing required fields', () => { + it('throws WalletError when epochHeight is missing', async () => { + const { epochHeight: _eh, ...tx } = REQUIRED; + await expect( + signCoreTransaction(privateKey, { ...tx, to: CFXTEST_ADDRESS, gasPrice: 1n }), + ).rejects.toThrow(WalletError); + }); + + it('throws WalletError when nonce is missing', async () => { + const { nonce: _n, ...tx } = REQUIRED; + await expect( + signCoreTransaction(privateKey, { ...tx, to: CFXTEST_ADDRESS, gasPrice: 1n }), + ).rejects.toThrow(WalletError); + }); + + it('throws WalletError when gas is missing', async () => { + const { gas: _g, ...tx } = REQUIRED; + await expect( + signCoreTransaction(privateKey, { ...tx, to: CFXTEST_ADDRESS, gasPrice: 1n }), + ).rejects.toThrow(WalletError); + }); + + it('throws WalletError when storageLimit is missing', async () => { + const { storageLimit: _sl, ...tx } = REQUIRED; + await expect( + signCoreTransaction(privateKey, { ...tx, to: CFXTEST_ADDRESS, gasPrice: 1n }), + ).rejects.toThrow(WalletError); + }); +}); + +describe('signCoreTransaction / type-specific validation', () => { + it('throws WalletError for cip1559 when maxFeePerGas is missing', async () => { + await expect( + signCoreTransaction(privateKey, { + ...REQUIRED, + coreType: 'cip1559', + maxPriorityFeePerGas: 1n, + }), + ).rejects.toThrow(WalletError); + }); + + it('throws WalletError for cip1559 when maxPriorityFeePerGas is missing', async () => { + await expect( + signCoreTransaction(privateKey, { + ...REQUIRED, + coreType: 'cip1559', + maxFeePerGas: 1n, + }), + ).rejects.toThrow(WalletError); + }); + + it('throws WalletError for legacy when gasPrice is missing', async () => { + await expect( + signCoreTransaction(privateKey, { ...REQUIRED, coreType: 'legacy' }), + ).rejects.toThrow(WalletError); + }); + + it('throws WalletError for cip2930 (default) when gasPrice is missing', async () => { + await expect(signCoreTransaction(privateKey, { ...REQUIRED })).rejects.toThrow(WalletError); + }); +}); + +describe('signCoreTransaction / success', () => { + it('signs a legacy Core Space transaction', async () => { + const sig = await signCoreTransaction(privateKey, { + ...REQUIRED, + to: CFXTEST_ADDRESS, + value: 0n, + coreType: 'legacy', + gasPrice: 1_000_000_000n, + }); + expect(sig).toMatch(/^0x[0-9a-f]+$/i); + }); + + it('signs a cip2930 Core Space transaction', async () => { + const sig = await signCoreTransaction(privateKey, { + ...REQUIRED, + to: CFXTEST_ADDRESS, + value: 0n, + coreType: 'cip2930', + gasPrice: 1_000_000_000n, + }); + expect(sig).toMatch(/^0x[0-9a-f]+$/i); + }); + + it('signs a cip1559 Core Space transaction', async () => { + const sig = await signCoreTransaction(privateKey, { + ...REQUIRED, + to: CFXTEST_ADDRESS, + value: 0n, + coreType: 'cip1559', + maxFeePerGas: 1_000_000_000n, + maxPriorityFeePerGas: 1_000_000_000n, + }); + expect(sig).toMatch(/^0x[0-9a-f]+$/i); + }); + + it('produces deterministic output for the same inputs', async () => { + const tx: SignableTx = { + ...REQUIRED, + to: CFXTEST_ADDRESS, + value: 0n, + coreType: 'legacy', + gasPrice: 1_000_000_000n, + }; + const sig1 = await signCoreTransaction(privateKey, tx); + const sig2 = await signCoreTransaction(privateKey, tx); + expect(sig1).toBe(sig2); + }); +}); diff --git a/repos/cfx-core/packages/core/vitest.config.ts b/repos/cfx-core/packages/core/vitest.config.ts index da399ba..a8b2fbb 100644 --- a/repos/cfx-core/packages/core/vitest.config.ts +++ b/repos/cfx-core/packages/core/vitest.config.ts @@ -6,5 +6,19 @@ export default defineConfig({ environment: 'node', passWithNoTests: false, reporters: ['default'], + coverage: { + provider: 'v8', + include: ['src/**/*.ts'], + exclude: [ + 'src/**/*.test.ts', + 'src/**/*.test.tsx', + // Pure re-export barrel — no executable statements to instrument + 'src/index.ts', + // Type-only module — no runtime code + 'src/types/**', + ], + reporter: ['text', 'lcov', 'html'], + reportsDirectory: 'coverage', + }, }, }); diff --git a/repos/cfx-core/packages/devnode/package.json b/repos/cfx-core/packages/devnode/package.json index 42d42a1..dd8d724 100644 --- a/repos/cfx-core/packages/devnode/package.json +++ b/repos/cfx-core/packages/devnode/package.json @@ -40,7 +40,7 @@ "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", diff --git a/repos/cfx-core/packages/executor/package.json b/repos/cfx-core/packages/executor/package.json index 8d924f9..0b613f6 100644 --- a/repos/cfx-core/packages/executor/package.json +++ b/repos/cfx-core/packages/executor/package.json @@ -32,7 +32,7 @@ "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", diff --git a/repos/cfx-core/packages/protocol/package.json b/repos/cfx-core/packages/protocol/package.json index 6e5a131..122a9d6 100644 --- a/repos/cfx-core/packages/protocol/package.json +++ b/repos/cfx-core/packages/protocol/package.json @@ -32,7 +32,7 @@ "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", diff --git a/repos/cfx-core/packages/testing/package.json b/repos/cfx-core/packages/testing/package.json index b7bf439..a9ef9ef 100644 --- a/repos/cfx-core/packages/testing/package.json +++ b/repos/cfx-core/packages/testing/package.json @@ -32,7 +32,7 @@ "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", diff --git a/repos/cfx-domain/packages/automation/package.json b/repos/cfx-domain/packages/automation/package.json index ede586c..af2a5a0 100644 --- a/repos/cfx-domain/packages/automation/package.json +++ b/repos/cfx-domain/packages/automation/package.json @@ -32,7 +32,7 @@ "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", diff --git a/repos/cfx-domain/packages/game-engine/package.json b/repos/cfx-domain/packages/game-engine/package.json index 66d38a6..0aa37a1 100644 --- a/repos/cfx-domain/packages/game-engine/package.json +++ b/repos/cfx-domain/packages/game-engine/package.json @@ -32,7 +32,7 @@ "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", diff --git a/repos/cfx-domain/packages/hardware-bridge/package.json b/repos/cfx-domain/packages/hardware-bridge/package.json index 0d11113..d11f203 100644 --- a/repos/cfx-domain/packages/hardware-bridge/package.json +++ b/repos/cfx-domain/packages/hardware-bridge/package.json @@ -32,7 +32,7 @@ "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", diff --git a/repos/cfx-keys/packages/services/package.json b/repos/cfx-keys/packages/services/package.json index 8a11761..2e3e7a1 100644 --- a/repos/cfx-keys/packages/services/package.json +++ b/repos/cfx-keys/packages/services/package.json @@ -56,7 +56,7 @@ "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", @@ -67,7 +67,7 @@ "@ledgerhq/hw-app-eth": "^7.8.1", "@ledgerhq/hw-transport-node-hid": "^6.33.1", "cive": "^0.8.1", - "@noble/ciphers": "^1.3.0", + "@noble/ciphers": "^2.2.0", "@noble/hashes": "^1.8.0", "viem": "^2.21.0" } diff --git a/repos/cfx-keys/packages/services/src/crypto/aead.ts b/repos/cfx-keys/packages/services/src/crypto/aead.ts index 9eb05ca..77f2ed7 100644 --- a/repos/cfx-keys/packages/services/src/crypto/aead.ts +++ b/repos/cfx-keys/packages/services/src/crypto/aead.ts @@ -1,4 +1,4 @@ -import { gcm } from '@noble/ciphers/aes'; +import { gcm } from '@noble/ciphers/aes.js'; import { GCM_IV_LEN, GCM_TAG_LEN } from './constants.js'; import { CryptoError } from './errors.js'; import type { AesGcmKey } from './keys.js'; diff --git a/repos/cfx-keys/packages/wallet/package.json b/repos/cfx-keys/packages/wallet/package.json index b3d4993..bb8514d 100644 --- a/repos/cfx-keys/packages/wallet/package.json +++ b/repos/cfx-keys/packages/wallet/package.json @@ -68,7 +68,7 @@ "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", diff --git a/repos/cfx-llm/packages/llm-tools/README.md b/repos/cfx-llm/packages/llm-tools/README.md index 71af957..fc3ddc9 100644 --- a/repos/cfx-llm/packages/llm-tools/README.md +++ b/repos/cfx-llm/packages/llm-tools/README.md @@ -8,17 +8,35 @@ This package owns the Lemonade/Pi developer harness and deterministic repo upkee | Command | Purpose | |---------|---------| -| `llm:commit` | Hardened local LLM commit pipeline with code-hotspot checks, prechecks, changelog generation, approval, explicit staging, and commit execution | +| `llm:commit` | Hardened local LLM commit pipeline with code-hotspot checks, prechecks, Changeset guidance, approval, explicit staging, and commit execution | | `llm:docs-upkeep` | Delegate documentation maintenance recommendations to the local LLM after deterministic docs checks have produced context | | `llm:test-audit` | Ask the local LLM whether changed code has meaningful test and precheck coverage | | `llm:health` | Ask the local LLM to summarize repo health, drift, and automation gaps | | `llm:validation` | Ask the local LLM to choose the minimum useful validation commands for the current change | -| `llm:all`, `llm:corpus`, `llm:docs`, `llm:eval`, `llm:review`, `llm:hotspots`, `llm:serve-check` | Deterministic repo upkeep agents that produce artifacts under `artifacts/llm/` | +| `llm:changeset`, `llm:release`, `llm:ci-cd`, `llm:docs-pipeline` | Repo-aware Lemonade actions for Changesets, npm publishing, GitHub Actions, docs image publishing, and VPS deploy readiness | +| `llm:all`, `llm:ci`, `llm:corpus`, `llm:docs`, `llm:eval`, `llm:review`, `llm:hotspots`, `llm:serve-check` | Deterministic repo upkeep agents that produce artifacts under `artifacts/llm/` | Root `pnpm run llm:*` scripts route through this package so developers can keep using the short commands from the workspace root. `llm:commit` runs `llm hotspots --fail-on-hard` as a non-bypassable quality gate. The scanner applies the framework design-principles file budget across source files in the whole repository, writes `artifacts/llm/reports/code-hotspots.md`, and blocks commits while any source file exceeds the hard 300-line limit. +`llm:commit` no longer edits package changelogs directly. Changesets own version bumps and release changelogs. When publishable package changes are detected and no `.changeset/*.md` file is present, the commit pipeline can generate a draft Changeset and stage it with the commit. Use `--changeset-bump patch|minor|major` to force the bump level, or `--skip-changeset` / `--no-changeset` when the package change is intentionally unreleased. + +## Release and CI/CD + +`pnpm run llm:ci` performs deterministic checks for the docs image workflow, VPS deploy workflow, Changesets release workflow, npm publish helper, docs Dockerfile, wiki sync script, and Ansible deployment files. It writes `artifacts/llm/reports/ci-cd.md`. + +The delegated Lemonade actions use that deterministic report plus workflow and infrastructure context: + +```bash +pnpm run llm:changeset +pnpm run llm:release +pnpm run llm:ci-cd +pnpm run llm:docs-pipeline +``` + +Use these after touching `.changeset/`, package manifests, `.github/workflows/`, `repos/cfx-tools/packages/docs-site/`, or `infrastructure/ansible/`. + ## Docs Upkeep `pnpm run llm:docs-upkeep` runs a four-phase documentation maintenance loop: diff --git a/repos/cfx-llm/packages/llm-tools/package.json b/repos/cfx-llm/packages/llm-tools/package.json index bd74c37..6f1ea5d 100644 --- a/repos/cfx-llm/packages/llm-tools/package.json +++ b/repos/cfx-llm/packages/llm-tools/package.json @@ -34,14 +34,14 @@ "clean": "rm -rf dist .vitest coverage" }, "dependencies": { - "@mariozechner/pi-coding-agent": "^0.72.0", + "@mariozechner/pi-coding-agent": "^0.73.0", "tsx": "^4.20.6" }, "devDependencies": { "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", diff --git a/repos/cfx-llm/packages/llm-tools/src/index.ts b/repos/cfx-llm/packages/llm-tools/src/index.ts index eebd82f..54f52f8 100644 --- a/repos/cfx-llm/packages/llm-tools/src/index.ts +++ b/repos/cfx-llm/packages/llm-tools/src/index.ts @@ -78,16 +78,28 @@ export const llmCommands = [ workerArgs: ['run', 'validation'], }, { - name: 'plan', - description: 'Ask the local LLM for a repo-aware implementation plan', + name: 'changeset', + description: 'Ask the local LLM to review Changeset readiness for changed packages', worker: 'lemonade', - workerArgs: ['run', 'plan'], + workerArgs: ['run', 'changeset'], }, { - name: 'architecture', - description: 'Ask the local LLM architecture questions with repo context', + name: 'release', + description: 'Ask the local LLM to review Changesets and npm publish readiness', worker: 'lemonade', - workerArgs: ['run', 'architecture'], + workerArgs: ['run', 'release-readiness'], + }, + { + name: 'ci-cd', + description: 'Ask the local LLM to review CI/CD workflow and VPS deployment risk', + worker: 'lemonade', + workerArgs: ['run', 'ci-cd'], + }, + { + name: 'docs-pipeline', + description: 'Ask the local LLM to review docs build, wiki sync, image, and deploy flow', + worker: 'lemonade', + workerArgs: ['run', 'docs-pipeline'], }, { name: 'all', @@ -96,16 +108,16 @@ export const llmCommands = [ workerArgs: ['all'], }, { - name: 'corpus', - description: 'Build local repo corpus metadata for LLM context', + name: 'ci', + description: 'Run deterministic CI/CD and docs deploy readiness checks', worker: 'deterministic', - workerArgs: ['corpus'], + workerArgs: ['ci'], }, { - name: 'datasets', - description: 'Build deterministic eval seed data, not training data', + name: 'corpus', + description: 'Build local repo corpus metadata for LLM context', worker: 'deterministic', - workerArgs: ['datasets'], + workerArgs: ['corpus'], }, { name: 'docs', diff --git a/repos/cfx-llm/packages/llm-tools/workers/agents/all.ts b/repos/cfx-llm/packages/llm-tools/workers/agents/all.ts index 43a5f6b..32096d4 100644 --- a/repos/cfx-llm/packages/llm-tools/workers/agents/all.ts +++ b/repos/cfx-llm/packages/llm-tools/workers/agents/all.ts @@ -1,6 +1,7 @@ // @ts-nocheck -import { runCorpusAgent, runDatasetAgent } from './corpus.ts'; +import { runCiCdAgent } from './cicd.ts'; +import { runCorpusAgent } from './corpus.ts'; import { runDocsAgent } from './docs.ts'; import { runEvalAgent, runServeCheckAgent } from './eval-serve.ts'; import { runReviewAgent } from './review.ts'; @@ -15,8 +16,8 @@ export async function runAll() { const results = []; results.push(await runCorpusAgent({ silent: true })); results.push(await runDocsAgent({ silent: true })); + results.push(await runCiCdAgent({ silent: true })); results.push(await runReviewAgent({ silent: true })); - results.push(await runDatasetAgent({ silent: true })); results.push(await runEvalAgent({ silent: true })); results.push(await runServeCheckAgent({ silent: true })); diff --git a/repos/cfx-llm/packages/llm-tools/workers/agents/cicd.ts b/repos/cfx-llm/packages/llm-tools/workers/agents/cicd.ts new file mode 100644 index 0000000..7075c28 --- /dev/null +++ b/repos/cfx-llm/packages/llm-tools/workers/agents/cicd.ts @@ -0,0 +1,100 @@ +// @ts-nocheck +import { existsSync } from 'node:fs'; +import { readFile } from 'node:fs/promises'; +import { join } from 'node:path'; +import { + printSummary, + renderFindings, + root, + writeJsonReport, + writeMarkdownReport, +} from './runtime/index.ts'; + +const REQUIRED_FILES = [ + '.github/workflows/build-docs.yml', + '.github/workflows/deploy-docs.yml', + '.github/workflows/changeset-release.yml', + '.github/workflows/release.yml', + 'repos/cfx-tools/packages/docs-site/Dockerfile', + 'repos/cfx-tools/packages/docs-site/scripts/sync-wiki.mjs', + 'scripts/publish-packages.mjs', + 'infrastructure/ansible/inventory.ini', + 'infrastructure/ansible/vars/all.yml', + 'infrastructure/ansible/roles/docs/tasks/main.yml', +]; + +export async function runCiCdAgent(opts = {}) { + const findings = []; + for (const file of REQUIRED_FILES) { + if (!existsSync(join(root, file))) { + findings.push({ + severity: 'error', + file, + issue: 'required CI/CD or deployment file is missing', + recommendation: + 'Restore the file or update the CI/CD plan and scripts to match the new location.', + }); + } + } + + await checkContains(findings, '.github/workflows/build-docs.yml', [ + ['ghcr.io/', 'docs image should publish to GHCR'], + ['/docs-site', 'docs image should use the docs-site image name'], + ['docker/build-push-action@v6', 'docs workflow should use Buildx image publishing'], + [ + 'node repos/cfx-tools/packages/docs-site/scripts/sync-wiki.mjs', + 'docs workflow should sync generated wiki content before building', + ], + ]); + await checkContains(findings, '.github/workflows/deploy-docs.yml', [ + ['VPS_HOST', 'deploy workflow should be driven by VPS secrets'], + ['/opt/apps/docs', 'deploy workflow should update the docs compose app directory'], + [ + 'docker compose up -d --remove-orphans', + 'deploy workflow should converge the compose service', + ], + ]); + await checkContains(findings, '.github/workflows/changeset-release.yml', [ + ['changesets/action@v1', 'release PR workflow should be Changesets owned'], + ['node scripts/publish-packages.mjs', 'release workflow should use the OIDC publish helper'], + ]); + await checkContains(findings, '.github/workflows/release.yml', [ + [ + 'node scripts/publish-packages.mjs', + 'manual release workflow should use the OIDC publish helper', + ], + ]); + await checkContains(findings, 'infrastructure/ansible/vars/all.yml', [ + ['www.cfxdevkit.org', 'docs deployment domain should match the current VPS decision'], + ]); + + const report = { + generatedAt: new Date().toISOString(), + status: findings.some((finding) => finding.severity === 'error') ? 'error' : 'ok', + requiredFiles: REQUIRED_FILES, + findings, + }; + await writeJsonReport('reports/ci-cd.json', report); + await writeMarkdownReport('reports/ci-cd.md', renderFindings('CI/CD Readiness', findings)); + if (!opts.silent) printSummary('llm:ci', [report]); + return { agent: 'ci', status: report.status, findings: findings.length }; +} + +async function checkContains(findings, file, expectations) { + let content = ''; + try { + content = await readFile(join(root, file), 'utf8'); + } catch { + return; + } + for (const [needle, issue] of expectations) { + if (!content.includes(needle)) { + findings.push({ + severity: 'warning', + file, + issue, + recommendation: `Expected to find: ${needle}`, + }); + } + } +} diff --git a/repos/cfx-llm/packages/llm-tools/workers/agents/corpus.ts b/repos/cfx-llm/packages/llm-tools/workers/agents/corpus.ts index 2a7fd8b..9d3b8e4 100644 --- a/repos/cfx-llm/packages/llm-tools/workers/agents/corpus.ts +++ b/repos/cfx-llm/packages/llm-tools/workers/agents/corpus.ts @@ -10,10 +10,8 @@ import { languageForPath, packageOwner, printSummary, - readJsonlIfExists, secretNamePattern, sha256, - sourceExtensions, tierForPath, toRel, writeJsonl, @@ -65,49 +63,3 @@ export async function runCorpusAgent(opts = {}) { if (!opts.silent) printSummary('llm:corpus', [manifest]); return { agent: 'corpus', status: 'ok', ...manifest }; } - -export async function runDatasetAgent(opts = {}) { - const files = await readJsonlIfExists('corpus/files.jsonl'); - const docs = await readJsonlIfExists('corpus/docs-index.jsonl'); - const sourceExamples = files - .filter((file) => sourceExtensions.has(extname(file.path))) - .slice(0, 50) - .map((file) => ({ - task: 'classify-package-boundary', - input: { path: file.path, language: file.language }, - expected: { tier: file.tier, package: file.package }, - source: 'deterministic-corpus', - })); - const docExamples = docs.slice(0, 50).map((doc) => ({ - task: 'answer-doc-heading-location', - input: { heading: doc.heading }, - expected: { path: doc.path, depth: doc.depth }, - source: 'deterministic-doc-index', - })); - const reviewExamples = [ - { - task: 'review-security-sensitive-change', - input: { touchedPath: 'repos/cfx-keys/packages/services/src/keystore/file/index.ts' }, - expected: { requiredValidation: ['pnpm run security:check', 'pnpm run typecheck'] }, - source: 'policy-seed', - }, - { - task: 'review-doc-only-change', - input: { touchedPath: 'docs/llm-fine-tuning-plan.md' }, - expected: { requiredValidation: ['pnpm run llm:docs'] }, - source: 'policy-seed', - }, - ]; - - const examples = [...sourceExamples, ...docExamples, ...reviewExamples]; - await writeJsonl('datasets/agent-eval.jsonl', examples); - const manifest = { - generatedAt: new Date().toISOString(), - examples: examples.length, - fineTuning: false, - note: 'Evaluation seed data only. No training dataset is promoted by this agent.', - }; - await writeJsonReport('datasets/manifest.json', manifest); - if (!opts.silent) printSummary('llm:datasets', [manifest]); - return { agent: 'datasets', status: 'ok', ...manifest }; -} diff --git a/repos/cfx-llm/packages/llm-tools/workers/agents/eval-serve.ts b/repos/cfx-llm/packages/llm-tools/workers/agents/eval-serve.ts index 9ad5b58..040732e 100644 --- a/repos/cfx-llm/packages/llm-tools/workers/agents/eval-serve.ts +++ b/repos/cfx-llm/packages/llm-tools/workers/agents/eval-serve.ts @@ -11,7 +11,7 @@ import { export async function runEvalAgent(opts = {}) { const docsReport = await readJsonIfExists('reports/docs-alignment.json'); - const datasetManifest = await readJsonIfExists('datasets/manifest.json'); + const ciCdReport = await readJsonIfExists('reports/ci-cd.json'); const findings = []; if (!docsReport) { findings.push({ @@ -26,11 +26,17 @@ export async function runEvalAgent(opts = {}) { recommendation: 'Review artifacts/llm/reports/docs-alignment.md.', }); } - if (!datasetManifest) { + if (!ciCdReport) { findings.push({ severity: 'warning', - issue: 'dataset seed has not been generated', - recommendation: 'Run pnpm run llm:datasets.', + issue: 'CI/CD readiness agent has not run', + recommendation: 'Run pnpm run llm:ci.', + }); + } else if (ciCdReport.status !== 'ok') { + findings.push({ + severity: 'error', + issue: 'CI/CD readiness checks failed', + recommendation: 'Review artifacts/llm/reports/ci-cd.md.', }); } @@ -39,7 +45,7 @@ export async function runEvalAgent(opts = {}) { status: findings.some((finding) => finding.severity === 'error') ? 'error' : 'ok', checks: { docsAlignment: docsReport?.status ?? 'missing', - datasetExamples: datasetManifest?.examples ?? 0, + ciCdReadiness: ciCdReport?.status ?? 'missing', fineTuning: false, }, findings, diff --git a/repos/cfx-llm/packages/llm-tools/workers/agents/runtime/checks.ts b/repos/cfx-llm/packages/llm-tools/workers/agents/runtime/checks.ts index 3623c84..19d1057 100644 --- a/repos/cfx-llm/packages/llm-tools/workers/agents/runtime/checks.ts +++ b/repos/cfx-llm/packages/llm-tools/workers/agents/runtime/checks.ts @@ -106,6 +106,17 @@ export async function gitChangedFiles() { export function suggestValidationCommands(changed) { const commands = new Set(); if (!changed.length) return ['pnpm run llm:docs', 'pnpm run llm:eval']; + const touchesWorkflow = changed.some((file) => file.startsWith('.github/workflows/')); + const touchesDocsSite = changed.some((file) => + file.startsWith('repos/cfx-tools/packages/docs-site/'), + ); + const touchesDocsDeploy = changed.some( + (file) => touchesWorkflow && /build-docs|deploy-docs/.test(file), + ); + const touchesChangeset = changed.some( + (file) => file.startsWith('.changeset/') || /(^|\/)package\.json$/.test(file), + ); + const touchesAnsible = changed.some((file) => file.startsWith('infrastructure/ansible/')); if (changed.some((file) => /\.(ts|tsx|js|mjs)$/.test(file))) { commands.add('pnpm run lint'); commands.add('pnpm run typecheck'); @@ -116,6 +127,19 @@ export function suggestValidationCommands(changed) { ) { commands.add('pnpm run llm:docs'); } + if (touchesDocsSite) { + commands.add('pnpm --filter @cfxdevkit/docs-site build'); + commands.add('pnpm run llm:docs-pipeline'); + } + if (touchesWorkflow || touchesDocsDeploy || touchesAnsible) { + commands.add('pnpm run llm:ci'); + commands.add('pnpm run llm:ci-cd'); + } + if (touchesChangeset) { + commands.add('pnpm exec changeset status'); + commands.add('pnpm run llm:changeset'); + commands.add('pnpm run llm:release'); + } if (changed.some(isSecuritySensitive)) { commands.add('pnpm run security:check'); } diff --git a/repos/cfx-llm/packages/llm-tools/workers/agents/runtime/reports.ts b/repos/cfx-llm/packages/llm-tools/workers/agents/runtime/reports.ts index 5dcc700..6c2c0f8 100644 --- a/repos/cfx-llm/packages/llm-tools/workers/agents/runtime/reports.ts +++ b/repos/cfx-llm/packages/llm-tools/workers/agents/runtime/reports.ts @@ -99,7 +99,7 @@ export function renderEval(report) { `Status: ${report.status}`, '', `Docs alignment: ${report.checks.docsAlignment}`, - `Dataset examples: ${report.checks.datasetExamples}`, + `CI/CD readiness: ${report.checks.ciCdReadiness}`, `Fine tuning: ${report.checks.fineTuning}`, '', renderFindings('Findings', report.findings), diff --git a/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/changelog.ts b/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/changelog.ts deleted file mode 100644 index d4e111f..0000000 --- a/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/changelog.ts +++ /dev/null @@ -1,112 +0,0 @@ -// @ts-nocheck -import { mkdir, readFile, writeFile } from 'node:fs/promises'; -import { dirname, join } from 'node:path'; -import { completeCommitAgent, git } from '../completion/index.ts'; -import { root } from '../shared/index.ts'; -import { validateChangelogJson } from './validate.ts'; - -export async function generateChangelogEntry(scope, flags) { - const trackedFiles = scope.files.filter((f) => !scope.untrackedSet.has(f)); - const untrackedFiles = scope.files.filter((f) => scope.untrackedSet.has(f)); - - let diff = ''; - if (scope.scopeGlob) { - diff = await git(['diff', 'HEAD', '--', scope.scopeGlob]).catch(() => ''); - } else if (trackedFiles.length > 0) { - diff = await git(['diff', 'HEAD', '--', ...trackedFiles]).catch(() => ''); - } - - const diffCtx = [ - diff.slice(0, 14000) || '(no tracked diff)', - untrackedFiles.length > 0 - ? `New untracked files:\n${untrackedFiles.map((f) => ` + ${f}`).join('\n')}` - : '', - ] - .filter(Boolean) - .join('\n\n'); - - const today = new Date().toISOString().slice(0, 10); - const systemPrompt = [ - 'You are a changelog writer for a TypeScript monorepo.', - 'Return strict JSON only, with no markdown fence and no explanatory text.', - 'Schema: {"summary":"one sentence","entryLines":["markdown line"],"risks":["risk or empty"]}.', - 'Use entryLines instead of a multiline string so every markdown line is a separate JSON string.', - 'The entryLines must form a Keep-a-Changelog style entry with a date heading and only factual bullets under Added, Changed, Fixed, or Removed.', - ].join(' '); - const userPrompt = [ - `Scope: ${scope.label}`, - `Date: ${today}`, - `Changed files: ${scope.files.join(', ')}`, - '', - 'Git diff:', - diffCtx, - '', - 'Write the JSON changelog analysis for this scope.', - ].join('\n'); - const response = await completeCommitAgent({ - action: 'changelog', - flags, - systemPrompt, - userPrompt, - maxTokens: flags.quick ? 384 : 800, - }); - try { - return validateChangelogJson(response.content, scope.label); - } catch { - const retryResponse = await completeCommitAgent({ - action: 'changelog', - flags, - systemPrompt: `${systemPrompt} The previous response was invalid or incomplete. Return exactly one compact JSON object. Do not include markdown.`, - userPrompt: [ - 'Previous invalid response excerpt:', - response.content.slice(0, 900), - '', - userPrompt, - ].join('\n'), - maxTokens: flags.quick ? 512 : 900, - }); - try { - return validateChangelogJson(retryResponse.content, scope.label); - } catch { - return fallbackChangelogEntry(scope, today); - } - } -} - -export function fallbackChangelogEntry(scope, today) { - const changedFiles = scope.files.slice(0, 12); - const extraCount = Math.max(scope.files.length - changedFiles.length, 0); - const fileSummary = - changedFiles.length > 0 - ? `${changedFiles.join(', ')}${extraCount > 0 ? `, and ${extraCount} more` : ''}` - : 'workspace metadata'; - return { - summary: `Updated ${scope.label} files: ${fileSummary}.`, - entry: [ - `## ${today}`, - '', - '### Changed', - '', - `- Updated ${scope.label} files: ${fileSummary}.`, - ].join('\n'), - risks: ['Generated from changed file list after local LLM returned invalid changelog JSON.'], - }; -} - -export async function appendToChangelog(scope, entry) { - const changelogPath = join(root, scope.changelogPath); - let existing = ''; - try { - existing = await readFile(changelogPath, 'utf8'); - } catch { - existing = `# Changelog\n\nAll notable changes to this package are documented here.\n\n`; - } - // Insert after the first heading block (# Changelog + optional subtitle lines) - const headingEnd = existing.search(/\n##\s|\n\n(?!#)/); - const insertPos = headingEnd > 0 ? headingEnd + 1 : existing.indexOf('\n') + 1; - const updated = `${existing.slice(0, insertPos)}\n${entry.trim()}\n\n${existing.slice(insertPos)}`; - await mkdir(dirname(changelogPath), { recursive: true }); - await writeFile(changelogPath, updated, 'utf8'); -} - -// ─── Commit message generation ──────────────────────────────────────────────── diff --git a/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/changeset.ts b/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/changeset.ts new file mode 100644 index 0000000..dbc3fe1 --- /dev/null +++ b/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/changeset.ts @@ -0,0 +1,223 @@ +// @ts-nocheck +import { existsSync } from 'node:fs'; +import { mkdir, readdir, readFile, writeFile } from 'node:fs/promises'; +import { join, relative } from 'node:path'; +import { completeCommitAgent, git } from '../completion/index.ts'; +import { root } from '../shared/index.ts'; + +const VALID_BUMPS = new Set(['patch', 'minor', 'major']); + +export async function generateChangesetPlan(scopes, flags) { + const publishablePackages = await collectPublishablePackages(); + const changedPackages = detectChangedPackages(scopes, publishablePackages); + const changedChangesets = scopes.flatMap((scope) => + scope.files.filter((file) => file.startsWith('.changeset/') && file.endsWith('.md')), + ); + + if (changedPackages.length === 0) { + return { + ok: true, + releaseRelevant: false, + summary: 'No publishable package changes detected; no changeset needed.', + packages: [], + changesets: [], + changedChangesets, + risks: [], + }; + } + + if (changedChangesets.length > 0) { + return { + ok: true, + releaseRelevant: true, + summary: `Existing changeset file(s) cover this commit: ${changedChangesets.join(', ')}.`, + packages: changedPackages, + changesets: [], + changedChangesets, + risks: [], + }; + } + + if (flags.changesetBump === 'none' || flags.skipChangeset) { + return { + ok: true, + releaseRelevant: true, + summary: 'Publishable package changes detected, but changeset creation was skipped.', + packages: changedPackages, + changesets: [], + changedChangesets, + risks: ['Release-relevant package changes are being committed without a changeset.'], + }; + } + + const suggestion = await generateChangesetSuggestion(changedPackages, flags); + return { + ok: true, + releaseRelevant: true, + summary: suggestion.summary, + packages: changedPackages, + changesets: suggestion.changesets, + changedChangesets, + risks: suggestion.risks, + }; +} + +export async function writeChangesetFile(plan) { + if (!plan.releaseRelevant || plan.changedChangesets.length > 0 || plan.changesets.length === 0) { + return []; + } + const changesetDir = join(root, '.changeset'); + await mkdir(changesetDir, { recursive: true }); + const filename = `${slugify(plan.changesets.map((entry) => entry.packageName).join('-'))}.md`; + const relPath = `.changeset/${filename}`; + const path = join(root, relPath); + const uniquePath = await nextAvailablePath(path); + const uniqueRelPath = relative(root, uniquePath); + await writeFile(uniquePath, renderChangeset(plan.changesets), 'utf8'); + return [uniqueRelPath]; +} + +async function generateChangesetSuggestion(changedPackages, flags) { + const diffs = []; + for (const pkg of changedPackages) { + const diff = await git(['diff', 'HEAD', '--', pkg.dir]).catch(() => ''); + diffs.push( + `## ${pkg.name}\n${diff.slice(0, flags.quick ? 3000 : 8000) || '(no tracked diff)'}`, + ); + } + const forcedBump = VALID_BUMPS.has(flags.changesetBump) ? flags.changesetBump : null; + const systemPrompt = [ + 'You write npm Changesets for a TypeScript monorepo.', + 'Return strict JSON only, with no markdown fence and no explanatory text.', + 'Schema: {"summary":"one sentence","changesets":[{"packageName":"@scope/name","bump":"patch|minor|major","summary":"release note sentence"}],"risks":["risk or empty"]}.', + forcedBump + ? `Use bump "${forcedBump}" for every package unless the diff is clearly non-release metadata.` + : 'Choose patch for fixes/tooling/internal behavior, minor for new public API, major only for breaking public API.', + 'Do not mention commits, CI job ids, or implementation process. Write end-user package release notes.', + ].join(' '); + const userPrompt = [ + `Changed publishable packages: ${changedPackages.map((pkg) => pkg.name).join(', ')}`, + '', + 'Diff excerpts:', + diffs.join('\n\n'), + '', + 'Generate the changeset JSON.', + ].join('\n'); + const response = await completeCommitAgent({ + action: 'changeset', + flags, + systemPrompt, + userPrompt, + maxTokens: flags.quick ? 512 : 1000, + }); + try { + return normalizeChangesetJson(JSON.parse(response.content), changedPackages, forcedBump); + } catch { + return fallbackChangesetSuggestion(changedPackages, forcedBump); + } +} + +function normalizeChangesetJson(value, changedPackages, forcedBump) { + const packageNames = new Set(changedPackages.map((pkg) => pkg.name)); + const changesets = (Array.isArray(value.changesets) ? value.changesets : []) + .filter((entry) => packageNames.has(entry.packageName)) + .map((entry) => ({ + packageName: entry.packageName, + bump: forcedBump ?? (VALID_BUMPS.has(entry.bump) ? entry.bump : 'patch'), + summary: String(entry.summary ?? '').trim() || `Update ${entry.packageName}.`, + })); + if (changesets.length === 0) return fallbackChangesetSuggestion(changedPackages, forcedBump); + return { + summary: + String(value.summary ?? '').trim() || + `Prepared ${changesets.length} changeset entr${changesets.length === 1 ? 'y' : 'ies'}.`, + changesets, + risks: Array.isArray(value.risks) ? value.risks.filter(Boolean).map(String) : [], + }; +} + +function fallbackChangesetSuggestion(changedPackages, forcedBump) { + return { + summary: `Prepared fallback changesets for ${changedPackages.length} publishable package(s).`, + changesets: changedPackages.map((pkg) => ({ + packageName: pkg.name, + bump: forcedBump ?? 'patch', + summary: `Update ${pkg.name}.`, + })), + risks: ['Fallback changeset text used after local LLM returned invalid JSON.'], + }; +} + +async function collectPublishablePackages() { + const ignored = await readChangesetIgnoredPackages(); + const reposDir = join(root, 'repos'); + const packages = []; + for (const repoName of await safeReaddir(reposDir)) { + if (!repoName.startsWith('cfx-')) continue; + const packagesDir = join(reposDir, repoName, 'packages'); + for (const packageDirName of await safeReaddir(packagesDir)) { + const dir = `repos/${repoName}/packages/${packageDirName}`; + const packageJsonPath = join(root, dir, 'package.json'); + if (!existsSync(packageJsonPath)) continue; + const pkg = JSON.parse(await readFile(packageJsonPath, 'utf8')); + if (!pkg.name || pkg.private || ignored.has(pkg.name)) continue; + packages.push({ name: pkg.name, dir }); + } + } + return packages.sort((a, b) => a.name.localeCompare(b.name)); +} + +function detectChangedPackages(scopes, packages) { + const changedFiles = scopes.flatMap((scope) => scope.files); + return packages.filter((pkg) => + changedFiles.some((file) => file === pkg.dir || file.startsWith(`${pkg.dir}/`)), + ); +} + +async function readChangesetIgnoredPackages() { + try { + const config = JSON.parse(await readFile(join(root, '.changeset', 'config.json'), 'utf8')); + return new Set(config.ignore ?? []); + } catch { + return new Set(); + } +} + +async function safeReaddir(path) { + try { + return await readdir(path); + } catch { + return []; + } +} + +function renderChangeset(changesets) { + return [ + '---', + ...changesets.map((entry) => `"${entry.packageName}": ${entry.bump}`), + '---', + '', + ...changesets.map((entry) => entry.summary), + '', + ].join('\n'); +} + +function slugify(value) { + const slug = value + .replace(/^@/, '') + .replace(/[^a-zA-Z0-9]+/g, '-') + .replace(/^-|-$/g, '') + .toLowerCase(); + return `${slug || 'package-update'}-changeset`; +} + +async function nextAvailablePath(path) { + if (!existsSync(path)) return path; + const ext = '.md'; + const base = path.slice(0, -ext.length); + for (let index = 2; index < 100; index++) { + const candidate = `${base}-${index}${ext}`; + if (!existsSync(candidate)) return candidate; + } + throw new Error(`Unable to allocate changeset path near ${path}`); +} diff --git a/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/index.test.ts b/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/index.test.ts index 978968c..65f3ec9 100644 --- a/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/index.test.ts +++ b/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/index.test.ts @@ -14,27 +14,37 @@ describe('parseCommitFlags', () => { model: 'Qwen3-Coder-Next-GGUF', }); }); + + it('captures changeset controls for release-aware commits', () => { + expect(parseCommitFlags(['--skip-changeset', '--changeset-bump', 'minor'])).toMatchObject({ + skipChangeset: true, + changesetBump: 'minor', + }); + }); }); describe('fallbackCommitMessage', () => { - it('returns valid conventional metadata from changelog scope summaries', () => { - const commit = fallbackCommitMessage([ - { - ok: true, - scope: { label: 'repos/cfx-llm' }, - summary: 'Repaired command routing and structural tests.', - }, - { - ok: true, - scope: { label: 'root' }, - summary: 'Updated root LLM scripts.', - }, - ]); + it('returns valid conventional metadata from changeset guidance', () => { + const commit = fallbackCommitMessage({ + releaseRelevant: true, + summary: 'Prepared fallback changesets for changed package tooling.', + packages: [{ name: '@cfxdevkit/llm-tools', dir: 'repos/cfx-llm/packages/llm-tools' }], + changesets: [ + { + packageName: '@cfxdevkit/llm-tools', + bump: 'patch', + summary: 'Align commit automation with Changesets.', + }, + ], + risks: [], + }); - expect(commit.subject).toMatch(/^refactor: /); - expect(commit.body).toContain('repos/cfx-llm: Repaired command routing and structural tests.'); + expect(commit.subject).toMatch(/^chore: /); + expect(commit.body).toContain( + '@cfxdevkit/llm-tools: patch - Align commit automation with Changesets.', + ); expect(commit.filesToStage).toEqual([]); - expect(commit.risks[0]).toContain('repos/cfx-llm, root'); + expect(commit.risks[0]).toContain('@cfxdevkit/llm-tools'); }); }); diff --git a/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/index.ts b/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/index.ts index b51aa4c..bb3510f 100644 --- a/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/index.ts +++ b/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/index.ts @@ -1,7 +1,8 @@ // @ts-nocheck import { commandBlock, commitPreflightBlock } from '../completion/index.ts'; -import { appendToChangelog, generateChangelogEntry } from './changelog.ts'; +import { logInfo, logStep, unique } from '../shared/logging.ts'; +import { generateChangesetPlan, writeChangesetFile } from './changeset.ts'; import { runCodeHotspotGate, runQualityGates } from './gates.ts'; import { assertNoUnexpectedChanges, @@ -16,14 +17,11 @@ import { detectChangedScopes } from './scope.ts'; export { changedFilesList, detectChangedScopes, resolveScope } from './scope.ts'; -import { logInfo, logStep, unique } from '../shared/logging.ts'; - export async function runCommit(args) { if (args[0] === '--') args.shift(); const flags = parseCommitFlags(args); const total = 8; - // ── Phase 1: Quality gates ──────────────────────────────────────────────── logStep(1, total, 'Quality gates'); const hotspotsPassed = await runCodeHotspotGate(); if (!hotspotsPassed) { @@ -42,7 +40,6 @@ export async function runCommit(args) { logInfo(' ⚠ --force: proceeding despite gate failures'); } - // ── Phase 2: Preflight ──────────────────────────────────────────────────── logStep(2, total, 'Preflight checks'); logInfo(' Ensuring GitNexus is registered...'); await commandBlock('gitnexus ensure', 'pnpm', ['run', 'gitnexus:ensure'], { timeoutMs: 60000 }); @@ -50,7 +47,6 @@ export async function runCommit(args) { const preflightCtx = await commitPreflightBlock(); logInfo(' ✓ preflight complete'); - // ── Phase 3: Detect changed scopes ─────────────────────────────────────── logStep(3, total, 'Detecting changed scopes'); const scopes = await detectChangedScopes(); if (scopes.length === 0) { @@ -58,68 +54,58 @@ export async function runCommit(args) { return; } const initialFiles = unique(scopes.flatMap((scope) => scope.files)); - logInfo(` ${scopes.length} scope(s): ${scopes.map((s) => s.label).join(', ')}`); + logInfo(` ${scopes.length} scope(s): ${scopes.map((scope) => scope.label).join(', ')}`); - // ── Phase 4: Per-scope changelog generation (serial) ───────────────────── - logStep( - 4, - total, - `Generating changelog entries [${flags.agent}, serial, ${scopes.length} scope(s)]`, - ); - const changelogResults = []; - for (const scope of scopes) { - logInfo(` → ${scope.label} (${scope.files.length} file(s))`); - try { - const analysis = await generateChangelogEntry(scope, flags); - logInfo(` ✓ ${analysis.summary}`); - changelogResults.push({ scope, ...analysis, ok: true }); - } catch (error) { - logInfo(` ✗ ${error.message}`); - changelogResults.push({ - scope, - entry: null, - summary: '', - risks: [], - ok: false, - error: String(error.message), - }); + logStep(4, total, `Checking release intent [${flags.agent}]`); + const changesetPlan = await generateChangesetPlan(scopes, flags); + logInfo(` ${changesetPlan.summary}`); + if (changesetPlan.releaseRelevant && changesetPlan.changedChangesets.length === 0) { + logInfo( + ` publishable package changes: ${changesetPlan.packages.map((pkg) => pkg.name).join(', ')}`, + ); + for (const entry of changesetPlan.changesets) { + logInfo(` → ${entry.packageName}: ${entry.bump} — ${entry.summary}`); } } - // ── Phase 5: Commit message ─────────────────────────────────────────────── logStep(5, total, `Generating commit message [${flags.agent}]`); const { response: commitResponse, commit } = await generateCommitMessage( preflightCtx, - changelogResults, + changesetPlan, flags, ); const { subject, body } = commit; logInfo(` subject: ${subject}`); - await writeCommitReport(commitResponse, changelogResults); + await writeCommitReport(commitResponse, changesetPlan); logInfo(' report: artifacts/llm/reports/lemonade-commit.md'); - // ── Phase 6: Approval ───────────────────────────────────────────────────── logStep(6, total, 'Approval'); printProposedCommit(subject, body); if (flags.dryRun) { - logInfo(' --dry-run: skipping changelog writes, post-generation checks, staging, and commit'); + logInfo(' --dry-run: skipping changeset writes, post-generation checks, staging, and commit'); return; } if (!flags.yes) { - const confirmed = await confirmPrompt('Write changelogs and commit? [Y/n] '); + const confirmed = await confirmPrompt('Write changeset if needed and commit? [Y/n] '); if (!confirmed) { logInfo(' Aborted.'); return; } } - // ── Phase 7: Write generated files and re-check ─────────────────────────── - logStep(7, total, 'Writing generated files and post-checks'); + logStep(7, total, 'Writing changeset and post-checks'); const generatedFiles = []; - for (const result of changelogResults.filter((item) => item.ok && item.entry)) { - await appendToChangelog(result.scope, result.entry); - generatedFiles.push(result.scope.changelogPath); - logInfo(` ✓ ${result.scope.changelogPath} updated`); + if ( + changesetPlan.releaseRelevant && + changesetPlan.changedChangesets.length === 0 && + changesetPlan.changesets.length > 0 && + !flags.skipChangeset + ) { + const written = await writeChangesetFile(changesetPlan); + generatedFiles.push(...written); + for (const file of written) logInfo(` ✓ ${file} created`); + } else if (changesetPlan.releaseRelevant && changesetPlan.changedChangesets.length === 0) { + logInfo(' ⚠ release-relevant package changes have no changeset'); } if (!flags.skipPostChecks) { const postChecksPassed = await runQualityGates({ @@ -134,7 +120,6 @@ export async function runCommit(args) { logInfo(' --skip-post-checks: skipping post-generation validation'); } - // ── Phase 8: Commit ─────────────────────────────────────────────────────── logStep(8, total, 'Committing'); const filesToStage = await resolveFilesToStage(initialFiles, generatedFiles, commit.filesToStage); await assertNoUnexpectedChanges(filesToStage); @@ -151,6 +136,8 @@ export function parseCommitFlags(args) { let force = false; let skipChecks = false; let skipPostChecks = false; + let skipChangeset = false; + let changesetBump = null; let withTests = true; let withBuild = false; let agent = 'direct'; @@ -168,6 +155,9 @@ export function parseCommitFlags(args) { else if (arg === '--force' || arg === '-f') force = true; else if (arg === '--skip-checks') skipChecks = true; else if (arg === '--skip-post-checks') skipPostChecks = true; + else if (arg === '--skip-changeset') skipChangeset = true; + else if (arg === '--no-changeset') changesetBump = 'none'; + else if (arg === '--changeset-bump') changesetBump = args[++index]; else if (arg === '--with-tests') withTests = true; else if (arg === '--skip-tests') withTests = false; else if (arg === '--with-build') withBuild = true; @@ -176,6 +166,9 @@ export function parseCommitFlags(args) { if (!['direct', 'pi-rpc'].includes(agent)) { throw new Error('Commit --agent must be one of: direct, pi-rpc'); } + if (changesetBump && !['patch', 'minor', 'major', 'none'].includes(changesetBump)) { + throw new Error('Commit --changeset-bump must be one of: patch, minor, major'); + } return { prompt: promptParts.join(' ').trim(), model, @@ -185,6 +178,8 @@ export function parseCommitFlags(args) { force, skipChecks, skipPostChecks, + skipChangeset, + changesetBump, withTests, withBuild, agent, @@ -192,5 +187,3 @@ export function parseCommitFlags(args) { piModel, }; } - -// ─── Quality gates ──────────────────────────────────────────────────────────── diff --git a/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/message.ts b/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/message.ts index d3b5299..b527c19 100644 --- a/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/message.ts +++ b/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/message.ts @@ -8,15 +8,12 @@ import { unique } from '../shared/logging.ts'; import { changedFilesList } from './scope.ts'; import { validateCommitJson } from './validate.ts'; -export async function generateCommitMessage(preflightCtx, changelogResults, flags) { - const changelogSummary = changelogResults - .filter((r) => r.ok && r.entry) - .map((r) => `### ${r.scope.label}\nSummary: ${r.summary}\n${r.entry}`) - .join('\n\n'); +export async function generateCommitMessage(preflightCtx, changesetPlan, flags) { + const changesetSummary = renderChangesetGuidance(changesetPlan).join('\n'); const context = [ preflightCtx, - changelogResults.length > 0 ? `--- changelog entries generated ---\n${changelogSummary}` : '', + `--- changeset guidance ---\n${changesetSummary}`, await readContextFile('CONTRIBUTING.md'), ] .filter(Boolean) @@ -59,27 +56,38 @@ export async function generateCommitMessage(preflightCtx, changelogResults, flag try { return { response: retryResponse, commit: validateCommitJson(retryResponse.content) }; } catch { - return { response: retryResponse, commit: fallbackCommitMessage(changelogResults) }; + return { response: retryResponse, commit: fallbackCommitMessage(changesetPlan) }; } } } -export function fallbackCommitMessage(changelogResults) { - const okResults = changelogResults.filter((result) => result.ok); - const scopeLabels = okResults.map((result) => result.scope.label); +export function fallbackCommitMessage(changesetPlan) { + const packageNames = changesetPlan?.packages?.map((pkg) => pkg.name) ?? []; + const changesets = changesetPlan?.changesets ?? []; const bodyLines = [ 'Generated deterministic fallback commit metadata after the local LLM returned invalid commit JSON.', '', - ...okResults.slice(0, 8).map((result) => `- ${result.scope.label}: ${result.summary}`), + changesetPlan?.summary + ? `- Release intent: ${changesetPlan.summary}` + : '- Release intent: not detected', + ...changesets + .slice(0, 8) + .map((entry) => `- ${entry.packageName}: ${entry.bump} - ${entry.summary}`), ]; - if (okResults.length > 8) - bodyLines.push(`- ${okResults.length - 8} additional scope(s) updated.`); + if (changesets.length > 8) + bodyLines.push( + `- ${changesets.length - 8} additional changeset entr${changesets.length - 8 === 1 ? 'y' : 'ies'}.`, + ); return { - subject: 'refactor: update workspace structure and tooling', + subject: changesetPlan?.releaseRelevant + ? 'chore: update release-ready package changes' + : 'refactor: update workspace structure and tooling', body: bodyLines.join('\n').trim(), filesToStage: [], risks: [ - `Fallback commit metadata used for ${scopeLabels.length} scope(s): ${scopeLabels.join(', ')}`, + packageNames.length > 0 + ? `Fallback commit metadata used for package changes: ${packageNames.join(', ')}` + : 'Fallback commit metadata used without publishable package changes.', ], }; } @@ -98,7 +106,7 @@ export function printProposedCommit(subject, body) { console.log(' └──────────────────────────────────────────────────────────────'); } -export async function writeCommitReport(response, changelogResults) { +export async function writeCommitReport(response, changesetPlan) { const reportPath = join(artifactsRoot, 'reports', 'lemonade-commit.md'); await mkdir(dirname(reportPath), { recursive: true }); await writeFile( @@ -114,25 +122,49 @@ export async function writeCommitReport(response, changelogResults) { '', response.content, '', - '## Changelog Scopes', + '## Changeset Guidance', '', - ...renderChangelogScopes(changelogResults), + ...renderChangesetGuidance(changesetPlan), '', ].join('\n'), 'utf8', ); } -function renderChangelogScopes(changelogResults) { - if (!changelogResults.length) return ['No changed scopes detected.']; - return changelogResults.flatMap((result) => [ - `### ${result.scope.label}`, - '', - result.ok ? result.summary : `Failed: ${result.error}`, +function renderChangesetGuidance(changesetPlan) { + if (!changesetPlan) return ['No changeset guidance generated.']; + const lines = [ + `Release relevant: ${changesetPlan.releaseRelevant ? 'yes' : 'no'}`, + `Summary: ${changesetPlan.summary}`, '', - result.entry ?? '', - '', - ]); + ]; + if (changesetPlan.changedChangesets?.length) { + lines.push( + 'Existing changesets:', + '', + ...changesetPlan.changedChangesets.map((file) => `- ${file}`), + '', + ); + } + if (changesetPlan.packages?.length) { + lines.push( + 'Changed publishable packages:', + '', + ...changesetPlan.packages.map((pkg) => `- ${pkg.name} (${pkg.dir})`), + '', + ); + } + if (changesetPlan.changesets?.length) { + lines.push('Suggested entries:', ''); + for (const entry of changesetPlan.changesets) { + lines.push(`- ${entry.packageName}: ${entry.bump} - ${entry.summary}`); + } + lines.push(''); + } + if (changesetPlan.risks?.length) { + lines.push('Risks:', '', ...changesetPlan.risks.map((risk) => `- ${risk}`), ''); + } + return lines; } export async function confirmPrompt(question) { diff --git a/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/scope.ts b/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/scope.ts index f3a331c..9f784a0 100644 --- a/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/scope.ts +++ b/repos/cfx-llm/packages/llm-tools/workers/lemonade/commit/scope.ts @@ -62,4 +62,4 @@ export function resolveScope(filepath) { return { key: 'root', label: 'root', changelogPath: 'CHANGELOG.md', scopeGlob: null }; } -// ─── Per-scope changelog generation ────────────────────────────────────────── +// ─── Commit scope grouping ─────────────────────────────────────────────────── diff --git a/repos/cfx-llm/packages/llm-tools/workers/lemonade/docs/discover.ts b/repos/cfx-llm/packages/llm-tools/workers/lemonade/docs/discover.ts index 84309a0..046d208 100644 --- a/repos/cfx-llm/packages/llm-tools/workers/lemonade/docs/discover.ts +++ b/repos/cfx-llm/packages/llm-tools/workers/lemonade/docs/discover.ts @@ -117,10 +117,11 @@ export function docsUpkeepDepth(dir) { export async function collectDocsUpkeepFiles(docsOnly) { const files = []; + const isDocFile = (file) => file.endsWith('.md') || file.endsWith('.mdx'); if (docsOnly) { - await walkDocsFiles(join(root, 'docs'), files, (file) => file.endsWith('.md')); + await walkDocsFiles(join(root, 'docs'), files, isDocFile); } else { - await walkDocsFiles(root, files, (file) => file.endsWith('.md')); + await walkDocsFiles(root, files, isDocFile); } return unique(files.map((file) => file.replace(`${root}/`, ''))).filter( (file) => !isIgnoredDocsPath(file), @@ -155,7 +156,9 @@ export function isIgnoredDocsPath(file) { file.includes('/node_modules/') || file.includes('/dist/') || file.includes('/coverage/') || - file.startsWith('.moon/') + file.startsWith('.moon/') || + // GitNexus-generated wiki content — do not edit with docs-upkeep + file.startsWith('repos/cfx-tools/packages/docs-site/content/wiki/') ); } diff --git a/repos/cfx-llm/packages/llm-tools/workers/lemonade/help.ts b/repos/cfx-llm/packages/llm-tools/workers/lemonade/help.ts index c9456c5..fe83e58 100644 --- a/repos/cfx-llm/packages/llm-tools/workers/lemonade/help.ts +++ b/repos/cfx-llm/packages/llm-tools/workers/lemonade/help.ts @@ -12,9 +12,10 @@ Commands: config set action Pin model for one repo action ask [--quick] "question" Ask a repo-aware question docs-upkeep [flags] [prompt] Refresh docs checks and upkeep markdown folder-by-folder + Scans .md and .mdx files; excludes GitNexus wiki content (content/wiki/) --scope Limit to one docs folder prefix; repeatable --max-folders Limit folder count for bounded local runs - --docs-only Only scan docs/ instead of every markdown file in the repo + --docs-only Only scan docs/ instead of every markdown/mdx file in the repo --write Apply complete-file markdown updates proposed by the local LLM --yes / -y Skip write confirmation prompt --quick Shorter per-folder artifact generation @@ -26,16 +27,19 @@ Commands: 1. Quality gates (lint, typecheck, tests; opt-in: build) 2. Preflight (gitnexus + git + review) 3. Detect changed scopes - 4. Generate structured changelog JSON per scope (serial) + 4. Check package release intent and Changeset coverage 5. Generate structured commit JSON 6. Confirm proposed commit - 7. Write changelogs + re-run lint/typecheck/tests + 7. Write a missing Changeset + re-run lint/typecheck/tests 8. Stage explicit file list + commit --dry-run Show what would happen; skip writes and commit --yes / -y Skip confirmation prompt --force / -f Commit even if quality gates fail --skip-checks Skip all quality gates (Phase 1) - --skip-post-checks Skip post-generation lint/typecheck/tests after changelog writes + --skip-post-checks Skip post-generation lint/typecheck/tests after generated writes + --skip-changeset Do not create a missing Changeset for publishable package changes + --changeset-bump Force generated Changeset bump: patch, minor, or major + --no-changeset Alias for intentionally committing without a generated Changeset --skip-tests Skip Moon test suite in quality gates --with-build Also run Moon build in quality gates --with-tests Explicitly keep Moon test suite enabled (default) @@ -44,18 +48,19 @@ Commands: --pi-model Pi model to use with --agent pi-rpc --quick Short LLM calls (faster, less detail) --model Override LLM model - run [--quick] [prompt] Run docs-upkeep, test-audit, repo-health, review, plan, architecture, validation - test-upkeep [flags] [prompt] Analyse test coverage per package, identify hotspots, and optionally write new test files: + run [--quick] [prompt] Run docs-upkeep, test-audit, repo-health, review, validation, changeset, release-readiness, ci-cd, docs-pipeline + test-upkeep [flags] [prompt] Analyse test coverage per package and suggest/write new test files: 1. Discover packages with vitest.config.ts 2. Build deterministic test inventory (source vs test files) 3. Run vitest per package and capture output 4. LLM: identify hotspots, suggest new tests (sibling context propagated) - 5. Optionally write missing test files directly to src/ + 5. Write missing test files to src/ only when --write is passed + --write Write LLM-suggested test files to src/ (new files only; source must exist) + --yes / -y Skip write confirmation prompt + --no-write / --dry-run Analysis and artifact only (default) --scope Limit to packages under this path prefix; repeatable --max-packages Limit package count for bounded runs --skip-test-run Skip vitest execution (inventory-only analysis) - --write Write LLM-suggested test files to src/ (new files only, skip existing) - --yes / -y Skip write confirmation prompt --quick Shorter LLM calls --agent Use direct Lemonade calls or Pi RPC for structured LLM steps --pi-provider Pi provider to use with --agent pi-rpc @@ -68,8 +73,14 @@ Examples: pnpm run llm:commit pnpm run llm:commit -- --dry-run pnpm run llm:commit -- --yes + pnpm run llm:commit -- --yes --changeset-bump patch pnpm run llm:commit -- --agent pi-rpc --pi-provider lemonade --pi-model Qwen3-Coder-Next-GGUF pnpm run llm:action -- review + pnpm run llm:changeset + pnpm run llm:release + pnpm run llm:ci + pnpm run llm:ci-cd + pnpm run llm:docs-pipeline pnpm run llm:docs-upkeep -- --quick pnpm run llm:docs-upkeep -- --quick --write --yes --max-folders 3 pnpm run llm:docs-upkeep -- --agent pi-rpc --pi-provider lemonade --quick --max-folders 1 @@ -78,10 +89,12 @@ Examples: pnpm run llm:ask -- --quick "Where should a docs alignment scanner live?" pnpm run llm:test-upkeep + pnpm run llm:test-upkeep -- --scope repos/cfx-core/packages/core pnpm run llm:test-upkeep -- --quick --scope repos/cfx-core/packages/core pnpm run llm:test-upkeep -- --scope repos/cfx-keys --max-packages 3 pnpm run llm:test-upkeep -- --write --yes --scope repos/cfx-core/packages/core - pnpm run llm:test-upkeep -- --agent pi-rpc --pi-provider lemonade --quick --max-packages 1 pnpm run llm:test-upkeep -- --skip-test-run --quick + pnpm run llm:docs-upkeep -- --quick --scope repos/cfx-tools/packages/docs-site/content/packages + pnpm run llm:docs-upkeep -- --quick --write --yes --max-folders 3 `); } diff --git a/repos/cfx-llm/packages/llm-tools/workers/lemonade/shared/index.ts b/repos/cfx-llm/packages/llm-tools/workers/lemonade/shared/index.ts index 2a0145f..523ac99 100644 --- a/repos/cfx-llm/packages/llm-tools/workers/lemonade/shared/index.ts +++ b/repos/cfx-llm/packages/llm-tools/workers/lemonade/shared/index.ts @@ -59,29 +59,75 @@ export const repoActions = { ], includeChangedFiles: true, }, - review: { - title: 'Code Review', + changeset: { + title: 'Changeset Readiness', defaultPrompt: - 'Review the current git changes. Prioritize bugs, security risks, missing validation, and regressions.', - context: ['artifacts/llm/reports/review.md', 'SECURITY.md', 'CONTRIBUTING.md'], + 'Review the current changes for release relevance. Identify which publishable packages need a Changeset, whether an existing .changeset entry is sufficient, and whether bump levels and release notes match the public behavior changed. Do not suggest direct CHANGELOG edits.', + context: [ + '.changeset/config.json', + 'artifacts/llm/reports/review.md', + 'package.json', + 'scripts/publish-packages.mjs', + '.github/workflows/changeset-release.yml', + ], + includeChangedFiles: true, includeGitDiff: true, }, - plan: { - title: 'Implementation Planning', + 'release-readiness': { + title: 'Release Readiness', defaultPrompt: - 'Create a repo-aware implementation plan. Respect current repos/cfx-* structure and avoid fine-tuning steps unless asked.', + 'Review the Changesets release flow, package publish helper, and npm provenance assumptions. Find blockers before merging the release PR or manually running the release workflow. Focus on package versions, publishability, OIDC, ignored packages, and validation commands.', context: [ - 'docs/llm-fine-tuning-plan.md', - 'docs/llm-automation-agents.md', - 'README.md', - 'ARCHITECTURE.md', + '.changeset/config.json', + '.github/workflows/changeset-release.yml', + '.github/workflows/release.yml', + 'scripts/publish-packages.mjs', + 'package.json', + 'artifacts/llm/reports/ci-cd.md', + 'artifacts/llm/reports/eval.md', + ], + includeChangedFiles: true, + includeGitDiff: true, + }, + 'ci-cd': { + title: 'CI/CD Pipeline Review', + defaultPrompt: + 'Review CI/CD, docs image publishing, docs deploy, release, security, and VPS deployment wiring. Prioritize concrete failure modes, missing secrets, unsafe assumptions, and the minimum validation commands to run next.', + context: [ + '.github/workflows/build-docs.yml', + '.github/workflows/deploy-docs.yml', + '.github/workflows/changeset-release.yml', + '.github/workflows/release.yml', + '.github/workflows/security.yml', + 'infrastructure/ansible/vars/all.yml', + 'artifacts/llm/reports/ci-cd.md', ], + includeChangedFiles: true, + includeGitDiff: true, }, - architecture: { - title: 'Architecture Q&A', + 'docs-pipeline': { + title: 'Docs Pipeline Review', defaultPrompt: - 'Answer using the current repository architecture and package boundaries. Call out planned topology separately.', - context: ['ARCHITECTURE.md', 'README.md', 'docs/architecture/package-layout.md'], + 'Review docs build, wiki sync, Docker image, Nextra output, and VPS deploy flow. Find issues that could break www.cfxdevkit.org or make docs drift from generated GitNexus content.', + context: [ + 'repos/cfx-tools/packages/docs-site/package.json', + 'repos/cfx-tools/packages/docs-site/Dockerfile', + 'repos/cfx-tools/packages/docs-site/scripts/sync-wiki.mjs', + '.github/workflows/build-docs.yml', + '.github/workflows/deploy-docs.yml', + 'infrastructure/ansible/roles/docs/tasks/main.yml', + 'artifacts/llm/reports/docs-alignment.md', + 'artifacts/llm/reports/ci-cd.md', + ], + includeChangedFiles: true, + includeGitDiff: true, + }, + review: { + title: 'Code Review', + defaultPrompt: + 'Review the current git changes. Prioritize bugs, security risks, missing validation, and regressions.', + context: ['artifacts/llm/reports/review.md', 'SECURITY.md', 'CONTRIBUTING.md'], + includeGitDiff: true, }, validation: { title: 'Validation Selection', diff --git a/repos/cfx-llm/packages/llm-tools/workers/lemonade/tests/discover.ts b/repos/cfx-llm/packages/llm-tools/workers/lemonade/tests/discover.ts index 12ca1c7..264678a 100644 --- a/repos/cfx-llm/packages/llm-tools/workers/lemonade/tests/discover.ts +++ b/repos/cfx-llm/packages/llm-tools/workers/lemonade/tests/discover.ts @@ -24,7 +24,8 @@ export function parseTestUpkeepFlags(args) { else if (arg === '--pi-provider') piProvider = args[++i]; else if (arg === '--pi-model') piModel = args[++i]; else if (arg === '--quick') quick = true; - else if (arg === '--write') write = true; + else if (arg === '--write' || arg === '--write-tests') write = true; + else if (arg === '--no-write' || arg === '--dry-run') write = false; else if (arg === '--yes' || arg === '-y') yes = true; else if (arg === '--skip-test-run') skipTestRun = true; else if (arg === '--scope') scopes.push(args[++i]); diff --git a/repos/cfx-llm/packages/llm-tools/workers/lemonade/tests/write.ts b/repos/cfx-llm/packages/llm-tools/workers/lemonade/tests/write.ts index bf893d3..22323b7 100644 --- a/repos/cfx-llm/packages/llm-tools/workers/lemonade/tests/write.ts +++ b/repos/cfx-llm/packages/llm-tools/workers/lemonade/tests/write.ts @@ -17,6 +17,15 @@ export async function writeTestUpkeepSuggestions(pkg, result, _flags) { } catch { /* does not exist — safe to write */ } + // Safety: verify the source module being tested actually exists + const sourceFile = suggestion.testFile.replace(/\.test\.tsx?$/, '.ts'); + const sourcePath = join(root, pkg.dir, sourceFile); + try { + await stat(sourcePath); + } catch { + logInfo(` ! skipped (source not found): ${suggestion.testFile} → ${sourceFile}`); + continue; + } await mkdir(dirname(destPath), { recursive: true }); await writeFile(destPath, suggestion.content, 'utf8'); written.push(suggestion.testFile); diff --git a/repos/cfx-llm/packages/llm-tools/workers/llm-agents.ts b/repos/cfx-llm/packages/llm-tools/workers/llm-agents.ts index e308971..2cf80f8 100644 --- a/repos/cfx-llm/packages/llm-tools/workers/llm-agents.ts +++ b/repos/cfx-llm/packages/llm-tools/workers/llm-agents.ts @@ -1,15 +1,16 @@ #!/usr/bin/env node // @ts-nocheck import { runAll } from './agents/all.ts'; -import { runCorpusAgent, runDatasetAgent } from './agents/corpus.ts'; +import { runCiCdAgent } from './agents/cicd.ts'; +import { runCorpusAgent } from './agents/corpus.ts'; import { runDocsAgent } from './agents/docs.ts'; import { runEvalAgent, runServeCheckAgent } from './agents/eval-serve.ts'; import { runReviewAgent } from './agents/review.ts'; const commands = new Map([ ['all', runAll], + ['ci', runCiCdAgent], ['corpus', runCorpusAgent], - ['datasets', runDatasetAgent], ['docs', runDocsAgent], ['eval', runEvalAgent], ['review', runReviewAgent], @@ -34,8 +35,8 @@ function runHelp() { Commands: all Run all deterministic repo upkeep agents + ci Check CI/CD, docs image, release, and VPS deploy wiring corpus Build file/chunk/doc metadata under artifacts/llm/corpus - datasets Build small deterministic eval seed data, not training data docs Check doc path references, package exports, and Moon registration eval Summarize deterministic agent gates review Review current git changes and suggest validation commands diff --git a/repos/cfx-solidity/packages/abis/package.json b/repos/cfx-solidity/packages/abis/package.json index 83307de..279eea6 100644 --- a/repos/cfx-solidity/packages/abis/package.json +++ b/repos/cfx-solidity/packages/abis/package.json @@ -30,7 +30,7 @@ "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", diff --git a/repos/cfx-solidity/packages/compiler/package.json b/repos/cfx-solidity/packages/compiler/package.json index 2491f28..16060c7 100644 --- a/repos/cfx-solidity/packages/compiler/package.json +++ b/repos/cfx-solidity/packages/compiler/package.json @@ -54,7 +54,7 @@ "@cfxdevkit/contracts": "workspace:*", "@cfxdevkit/devnode": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", diff --git a/repos/cfx-solidity/packages/contracts-extract/package.json b/repos/cfx-solidity/packages/contracts-extract/package.json index 56e459a..3e79873 100644 --- a/repos/cfx-solidity/packages/contracts-extract/package.json +++ b/repos/cfx-solidity/packages/contracts-extract/package.json @@ -33,7 +33,7 @@ "@cfxdevkit/tsconfig": "workspace:*", "@cfxdevkit/biome-config": "workspace:*", "@biomejs/biome": "^2.4.14", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", diff --git a/repos/cfx-solidity/packages/contracts/package.json b/repos/cfx-solidity/packages/contracts/package.json index 79b0915..26baed2 100644 --- a/repos/cfx-solidity/packages/contracts/package.json +++ b/repos/cfx-solidity/packages/contracts/package.json @@ -60,7 +60,7 @@ "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", diff --git a/repos/cfx-tools/packages/cli/package.json b/repos/cfx-tools/packages/cli/package.json index d2f4529..9ec7bdd 100644 --- a/repos/cfx-tools/packages/cli/package.json +++ b/repos/cfx-tools/packages/cli/package.json @@ -36,7 +36,7 @@ "@cfxdevkit/tsconfig": "workspace:*", "@cfxdevkit/biome-config": "workspace:*", "@biomejs/biome": "^2.4.14", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", diff --git a/repos/cfx-tools/packages/docs-site/Dockerfile b/repos/cfx-tools/packages/docs-site/Dockerfile new file mode 100644 index 0000000..6c8dab9 --- /dev/null +++ b/repos/cfx-tools/packages/docs-site/Dockerfile @@ -0,0 +1,32 @@ +FROM node:24-bookworm-slim AS builder + +ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0 +WORKDIR /app + +RUN corepack enable && corepack prepare pnpm@10.33.2 --activate + +COPY . . + +RUN pnpm install --frozen-lockfile --filter @cfxdevkit/docs-site... +RUN pnpm --filter @cfxdevkit/docs-site build + +FROM node:24-bookworm-slim AS runner + +ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0 \ + NODE_ENV=production \ + PORT=3100 +WORKDIR /app + +RUN corepack enable && corepack prepare pnpm@10.33.2 --activate + +COPY --from=builder /app/package.json ./package.json +COPY --from=builder /app/pnpm-lock.yaml ./pnpm-lock.yaml +COPY --from=builder /app/pnpm-workspace.yaml ./pnpm-workspace.yaml +COPY --from=builder /app/node_modules ./node_modules +COPY --from=builder /app/repos/cfx-tools/packages/docs-site ./repos/cfx-tools/packages/docs-site + +WORKDIR /app/repos/cfx-tools/packages/docs-site + +EXPOSE 3100 + +CMD ["pnpm", "start"] \ No newline at end of file diff --git a/repos/cfx-tools/packages/docs-site/app/[[...mdxPath]]/page.tsx b/repos/cfx-tools/packages/docs-site/app/[[...mdxPath]]/page.tsx index 0c9b2bd..9e6dedc 100644 --- a/repos/cfx-tools/packages/docs-site/app/[[...mdxPath]]/page.tsx +++ b/repos/cfx-tools/packages/docs-site/app/[[...mdxPath]]/page.tsx @@ -1,31 +1,27 @@ -import { generateStaticParamsFor, importPage } from 'nextra/pages' -import { useMDXComponents as getMDXComponents } from '../../mdx-components' +import { generateStaticParamsFor, importPage } from 'nextra/pages'; +import { useMDXComponents as getMDXComponents } from '../../mdx-components'; -export const generateStaticParams = generateStaticParamsFor('mdxPath') +export const generateStaticParams = generateStaticParamsFor('mdxPath'); -export async function generateMetadata(props: { - params: Promise<{ mdxPath: string[] }> -}) { - const params = await props.params - const { metadata } = await importPage(params.mdxPath) - return metadata +export async function generateMetadata(props: { params: Promise<{ mdxPath: string[] }> }) { + const params = await props.params; + const { metadata } = await importPage(params.mdxPath); + return metadata; } const Wrapper = getMDXComponents().wrapper as React.ComponentType<{ - toc: unknown - metadata: unknown - sourceCode: unknown - children: React.ReactNode -}> + toc: unknown; + metadata: unknown; + sourceCode: unknown; + children: React.ReactNode; +}>; -export default async function Page(props: { - params: Promise<{ mdxPath: string[] }> -}) { - const params = await props.params - const { default: MDXContent, toc, metadata, sourceCode } = await importPage(params.mdxPath) +export default async function Page(props: { params: Promise<{ mdxPath: string[] }> }) { + const params = await props.params; + const { default: MDXContent, toc, metadata, sourceCode } = await importPage(params.mdxPath); return ( - ) + ); } diff --git a/repos/cfx-tools/packages/docs-site/app/layout.tsx b/repos/cfx-tools/packages/docs-site/app/layout.tsx index 6727067..6d8fa17 100644 --- a/repos/cfx-tools/packages/docs-site/app/layout.tsx +++ b/repos/cfx-tools/packages/docs-site/app/layout.tsx @@ -1,8 +1,8 @@ -import { Footer, Layout, Navbar } from 'nextra-theme-docs' -import { Head } from 'nextra/components' -import { getPageMap } from 'nextra/page-map' -import 'nextra-theme-docs/style.css' -import type { Metadata } from 'next' +import { Footer, Layout, Navbar } from 'nextra-theme-docs'; +import { Head } from 'nextra/components'; +import { getPageMap } from 'nextra/page-map'; +import 'nextra-theme-docs/style.css'; +import type { Metadata } from 'next'; export const metadata: Metadata = { title: { @@ -11,7 +11,7 @@ export const metadata: Metadata = { }, description: 'Production-grade TypeScript SDK, React components, and developer tooling for building on the Conflux network.', -} +}; const navbar = ( -) +); const footer = (
@@ -33,7 +33,7 @@ const footer = (
-) +); export default async function RootLayout({ children }: { children: React.ReactNode }) { return ( @@ -53,5 +53,5 @@ export default async function RootLayout({ children }: { children: React.ReactNo - ) + ); } diff --git a/repos/cfx-tools/packages/docs-site/components/Mermaid.tsx b/repos/cfx-tools/packages/docs-site/components/Mermaid.tsx index b7746e7..d81f7d9 100644 --- a/repos/cfx-tools/packages/docs-site/components/Mermaid.tsx +++ b/repos/cfx-tools/packages/docs-site/components/Mermaid.tsx @@ -1,17 +1,17 @@ -'use client' +'use client'; -import { useEffect, useId, useRef } from 'react' +import { useEffect, useId, useRef } from 'react'; interface MermaidProps { - chart: string + chart: string; } export function Mermaid({ chart }: MermaidProps) { - const id = useId().replace(/:/g, '') - const ref = useRef(null) + const id = useId().replace(/:/g, ''); + const ref = useRef(null); useEffect(() => { - if (!ref.current) return + if (!ref.current) return; import('mermaid').then(({ default: mermaid }) => { mermaid.initialize({ startOnLoad: false, @@ -19,16 +19,16 @@ export function Mermaid({ chart }: MermaidProps) { securityLevel: 'loose', fontFamily: 'system-ui, sans-serif', fontSize: 14, - }) - const diagramId = `mermaid-${id}` + }); + const diagramId = `mermaid-${id}`; mermaid .render(diagramId, chart) .then(({ svg }) => { - if (ref.current) ref.current.innerHTML = svg + if (ref.current) ref.current.innerHTML = svg; }) - .catch(console.error) - }) - }, [chart, id]) + .catch(console.error); + }); + }, [chart, id]); - return
+ return
; } diff --git a/repos/cfx-tools/packages/docs-site/content/_meta.js b/repos/cfx-tools/packages/docs-site/content/_meta.js index d7498af..f2cfbe5 100644 --- a/repos/cfx-tools/packages/docs-site/content/_meta.js +++ b/repos/cfx-tools/packages/docs-site/content/_meta.js @@ -16,8 +16,12 @@ export default { title: 'Architecture', type: 'page', }, + coverage: { + title: 'Coverage', + type: 'page', + }, wiki: { title: 'Code Wiki', type: 'page', }, -} +}; diff --git a/repos/cfx-tools/packages/docs-site/content/coverage.mdx b/repos/cfx-tools/packages/docs-site/content/coverage.mdx new file mode 100644 index 0000000..0fd9db3 --- /dev/null +++ b/repos/cfx-tools/packages/docs-site/content/coverage.mdx @@ -0,0 +1,90 @@ +--- +title: Test Coverage +description: Unit test coverage report for @cfxdevkit packages. +--- + +import { Callout } from 'nextra/components' + +# Test Coverage + +Unit test coverage for packages in the `@cfxdevkit` monorepo. +Coverage is measured with [Vitest](https://vitest.dev/) and the **v8** provider. +Run locally with: + +```bash +cd repos/cfx-core/packages/core +pnpm test:coverage +``` + +--- + +## @cfxdevkit/core + +**Last measured:** May 2026 · Vitest 4.1.5 / v8 · Node 24 + +### Summary + +| Metric | Coverage | +|---|---| +| **Statements** | 98.44 % | +| **Branches** | 95.33 % | +| **Functions** | 100 % | +| **Lines** | 98.30 % | +| Test files | 11 (134 passing, 6 skipped¹) | + +> ¹ The 6 skipped tests are live-network smoke tests (eSpace + Core Space testnet RPC). +> Run them with `RUN_NETWORK_TESTS=1 pnpm test:network`. + +### Per-file breakdown + +| Module | Stmts | Branch | Funcs | Lines | Notes | +|---|---|---|---|---|---| +| `address/index.ts` | 100 % | 100 % | 100 % | 100 % | | +| `chains/index.ts` | 100 % | 100 % | 100 % | 100 % | | +| `client/core.ts` | 100 % | 100 % | 100 % | 100 % | Mocked cive internals | +| `client/errors.ts` | 100 % | 100 % | 100 % | 100 % | | +| `client/espace.ts` | 100 % | 100 % | 100 % | 100 % | Mocked viem internals | +| `client/index.ts` | 100 % | 100 % | 100 % | 100 % | | +| `client/transport.ts` | 100 % | 100 % | 100 % | 100 % | | +| `errors/index.ts` | 100 % | 100 % | 100 % | 100 % | | +| `units/index.ts` | 100 % | 100 % | 100 % | 100 % | | +| `wallet/derivation.ts` | 95.23 % | 84.21 % | 100 % | 95.12 % | See note A | +| `wallet/index.ts` | 94.44 % | 90 % | 100 % | 94.11 % | See note B | +| `wallet/signing.ts` | 100 % | 100 % | 100 % | 100 % | | + + +**Note A — `wallet/derivation.ts` uncovered lines (44, 98)** + +Line 44 is the `if (!child.privateKey)` guard inside `deriveAccount`. +BIP-32 derivation from a valid seed and non-hardened path always produces a key; +this branch is a defensive guard that cannot be reached in normal operation. + +Line 98 is the `catch` block inside `coreAddressFromPrivateKey` that re-wraps +unexpected errors from `civePrivateKeyToAccount`. Since the caller already validates +the hex format with a regex, this block would only fire if the underlying cive +library itself threw a non-`Error` value for a structurally valid private key. + + + +**Note B — `wallet/index.ts` uncovered line (97)** + +The `catch` path inside `signerFromPrivateKey → signTransaction` for the eSpace +branch. This would require viem's `signTransaction` to throw for a valid EIP-1559 +transaction that already passed input validation — not reachable without internal +library failure. + + +--- + +## Other packages + +Coverage tooling is not yet configured for other packages in this monorepo. +The following are planned: + +| Package | Status | +|---|---| +| `@cfxdevkit/protocol` | Planned | +| `@cfxdevkit/executor` | Planned | +| `@cfxdevkit/wallet` | Planned | +| `@cfxdevkit/keys` | Planned | +| `@cfxdevkit/react` | Planned | diff --git a/repos/cfx-tools/packages/docs-site/content/packages/_meta.js b/repos/cfx-tools/packages/docs-site/content/packages/_meta.js index 59980e5..ae62938 100644 --- a/repos/cfx-tools/packages/docs-site/content/packages/_meta.js +++ b/repos/cfx-tools/packages/docs-site/content/packages/_meta.js @@ -12,4 +12,4 @@ export default { 'defi-react': '@cfxdevkit/defi-react', 'wallet-connect': '@cfxdevkit/wallet-connect', theme: '@cfxdevkit/theme', -} +}; diff --git a/repos/cfx-tools/packages/docs-site/content/wiki/_meta.js b/repos/cfx-tools/packages/docs-site/content/wiki/_meta.js index 328a463..7a43c8c 100644 --- a/repos/cfx-tools/packages/docs-site/content/wiki/_meta.js +++ b/repos/cfx-tools/packages/docs-site/content/wiki/_meta.js @@ -12,4 +12,4 @@ export default { 'project-layout-examples': 'Project Layout & Examples', 'repository-layout': 'Repository Layout', 'tooling-config': 'Tooling & Config', -} +}; diff --git a/repos/cfx-tools/packages/docs-site/content/wiki/other-cfx-core.mdx b/repos/cfx-tools/packages/docs-site/content/wiki/other-cfx-core.mdx index ea04740..34836a5 100644 --- a/repos/cfx-tools/packages/docs-site/content/wiki/other-cfx-core.mdx +++ b/repos/cfx-tools/packages/docs-site/content/wiki/other-cfx-core.mdx @@ -67,9 +67,9 @@ All submodules are exported via **subpath exports** (e.g., `@cfxdevkit/core/clie Conflux uses **base32-encoded addresses** with network-specific prefixes. This module implements: -- `hexToBase32(hex: `0x${string}`, networkId: number): string` +- `hexToBase32(hex: HexAddress, networkId: number): string` Converts a 20-byte hex address to a Conflux base32 address (e.g., `cfx:aarc9...`). -- `base32ToHex(base32: string): `0x${string}`` +- `base32ToHex(base32: string): HexAddress` Decodes base32 back to hex, validating checksums. - `isBase32Address(addr: string): boolean` Validates base32 format and prefix. @@ -149,7 +149,7 @@ const client = createClient({ - `deriveDualAccounts({ mnemonic, count, startIndex })` #### Signers -- `signerFromPrivateKey(privateKey: `0x${string}`)` +- `signerFromPrivateKey(privateKey: HexAddress)` Returns `{ account, signMessage, signTransaction, signTypedData }`. #### Core Address Encoding @@ -279,7 +279,7 @@ console.log(formatGDrip(gasPrice)); // "20" - **No side effects**: Pure functions, no global state. - **Explicit over implicit**: Network IDs required for address encoding. -- **Type safety first**: All APIs use precise types (`0x${string}`, `bigint`, etc.). +- **Type safety first**: All APIs use precise types (HexAddress, `bigint`, etc.). - **Test-driven**: Every public function has unit tests; network tests are opt-in. - **Extensibility**: `defineChain` and transport pluggability support custom networks. diff --git a/repos/cfx-tools/packages/docs-site/content/wiki/other-cfx-solidity.mdx b/repos/cfx-tools/packages/docs-site/content/wiki/other-cfx-solidity.mdx index e0ff3a8..be91ba1 100644 --- a/repos/cfx-tools/packages/docs-site/content/wiki/other-cfx-solidity.mdx +++ b/repos/cfx-tools/packages/docs-site/content/wiki/other-cfx-solidity.mdx @@ -141,7 +141,7 @@ import { ERC20_ABI, MULTICALL3_ADDRESS } from '@cfxdevkit/abis'; - For **Core**: uses `cfx_sendRawTransaction` with `cip2930`-style gas estimation (`gasLimit`, `storageLimit`, `epochHeight`). **Bridge Helpers** (`src/bridge/index.ts`): -- `mappedEspaceAddress(coreHex: `0x${string}`)` +- `mappedEspaceAddress(coreHex: HexAddress)` Derives eSpace address via `keccak256(coreHex)[12:32]`. - `transferToEspace({ client, signer, to, value })` Encodes `transferEVM(bytes20)` and sends to `CrossSpaceCall` (`0x0888...0006`). diff --git a/repos/cfx-tools/packages/docs-site/mdx-components.tsx b/repos/cfx-tools/packages/docs-site/mdx-components.tsx index 4f3471a..5f4e860 100644 --- a/repos/cfx-tools/packages/docs-site/mdx-components.tsx +++ b/repos/cfx-tools/packages/docs-site/mdx-components.tsx @@ -1,14 +1,14 @@ -import type React from 'react' -import { useMDXComponents as getThemeComponents } from 'nextra-theme-docs' -import { Mermaid } from './components/Mermaid' +import type React from 'react'; +import { useMDXComponents as getThemeComponents } from 'nextra-theme-docs'; +import { Mermaid } from './components/Mermaid'; export function useMDXComponents( - components?: Record> + components?: Record>, ): Record { - const themeComponents = getThemeComponents() + const themeComponents = getThemeComponents(); return { ...themeComponents, Mermaid, ...components, - } + }; } diff --git a/repos/cfx-tools/packages/docs-site/next.config.mjs b/repos/cfx-tools/packages/docs-site/next.config.mjs index 6cb7481..fc4dba7 100644 --- a/repos/cfx-tools/packages/docs-site/next.config.mjs +++ b/repos/cfx-tools/packages/docs-site/next.config.mjs @@ -1,16 +1,16 @@ -import nextra from 'nextra' -import path from 'path' -import { fileURLToPath } from 'url' +import nextra from 'nextra'; +import path from 'path'; +import { fileURLToPath } from 'url'; -const __dirname = path.dirname(fileURLToPath(import.meta.url)) +const __dirname = path.dirname(fileURLToPath(import.meta.url)); const withNextra = nextra({ defaultShowCopyCode: true, -}) +}); export default withNextra({ reactStrictMode: true, turbopack: { root: __dirname, }, -}) +}); diff --git a/repos/cfx-tools/packages/docs-site/package.json b/repos/cfx-tools/packages/docs-site/package.json index e4dc53a..aa2ccdb 100644 --- a/repos/cfx-tools/packages/docs-site/package.json +++ b/repos/cfx-tools/packages/docs-site/package.json @@ -4,6 +4,7 @@ "private": true, "scripts": { "dev": "next dev --port 3100 --turbopack", + "prebuild": "node scripts/sync-wiki.mjs", "build": "next build", "start": "next start --port 3100", "type-check": "tsc --noEmit" @@ -13,18 +14,13 @@ "next": "^15.1.6", "nextra": "^4.2.17", "nextra-theme-docs": "^4.2.17", - "react": "^19.0.0", - "react-dom": "^19.0.0" + "react": "19.2.5", + "react-dom": "19.2.5" }, "devDependencies": { - "@types/node": "^22.10.5", - "@types/react": "^19.0.4", + "@types/node": "^25.6.0", + "@types/react": "^19.2.14", "@types/react-dom": "^19.0.2", "typescript": "^5.7.3" - }, - "pnpm": { - "overrides": { - "zod": "4.3.4" - } } } diff --git a/repos/cfx-tools/packages/docs-site/scripts/sync-wiki.mjs b/repos/cfx-tools/packages/docs-site/scripts/sync-wiki.mjs index 983b15f..8d092f5 100644 --- a/repos/cfx-tools/packages/docs-site/scripts/sync-wiki.mjs +++ b/repos/cfx-tools/packages/docs-site/scripts/sync-wiki.mjs @@ -6,42 +6,51 @@ * Run: node scripts/sync-wiki.mjs */ -import fs from 'fs/promises' -import path from 'path' -import { fileURLToPath } from 'url' +import fs from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; -const __dirname = path.dirname(fileURLToPath(import.meta.url)) -const ROOT = path.resolve(__dirname, '../../../../..') -const WIKI_SRC = path.join(ROOT, '.gitnexus/wiki') -const WIKI_DEST = path.join(__dirname, '../content/wiki') +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const ROOT = path.resolve(__dirname, '../../../../..'); +const WIKI_SRC = path.join(ROOT, '.gitnexus/wiki'); +const WIKI_DEST = path.join(__dirname, '../content/wiki'); -const SKIP = ['overview.md', 'other.md', 'meta.json', 'module_tree.json', 'index.html'] +const SKIP = ['overview.md', 'other.md', 'meta.json', 'module_tree.json', 'index.html']; + +function toMdxSafeContent(content) { + return content + .replace(/`0x\$\{string\}`/g, 'HexAddress') + .replace(/0x\$\{string\}/g, 'HexAddress'); +} async function main() { - const files = await fs.readdir(WIKI_SRC) - const mdFiles = files.filter(f => f.endsWith('.md') && !SKIP.includes(f)) + const files = await fs.readdir(WIKI_SRC); + const mdFiles = files.filter((f) => f.endsWith('.md') && !SKIP.includes(f)); - await fs.mkdir(WIKI_DEST, { recursive: true }) + await fs.mkdir(WIKI_DEST, { recursive: true }); for (const file of mdFiles) { - const src = path.join(WIKI_SRC, file) - const slug = file.replace(/\.md$/, '') - const dest = path.join(WIKI_DEST, `${slug}.mdx`) + const src = path.join(WIKI_SRC, file); + const slug = file.replace(/\.md$/, ''); + const dest = path.join(WIKI_DEST, `${slug}.mdx`); - const content = await fs.readFile(src, 'utf-8') + const content = toMdxSafeContent(await fs.readFile(src, 'utf-8')); // Extract title from first # heading - const titleMatch = content.match(/^#\s+(.+)$/m) - const title = titleMatch ? titleMatch[1].trim() : slug + const titleMatch = content.match(/^#\s+(.+)$/m); + const title = titleMatch ? titleMatch[1].trim() : slug; // Build MDX with frontmatter - const mdx = `---\ntitle: "${title.replace(/"/g, '\\"')}"\n---\n\n${content}\n` + const mdx = `---\ntitle: "${title.replace(/"/g, '\\"')}"\n---\n\n${content}\n`; - await fs.writeFile(dest, mdx, 'utf-8') - console.log(` synced ${file} → content/wiki/${slug}.mdx`) + await fs.writeFile(dest, mdx, 'utf-8'); + console.log(` synced ${file} → content/wiki/${slug}.mdx`); } - console.log(`\nDone — synced ${mdFiles.length} wiki pages.`) + console.log(`\nDone — synced ${mdFiles.length} wiki pages.`); } -main().catch(err => { console.error(err); process.exit(1) }) +main().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/repos/cfx-tools/packages/mcp-server/package.json b/repos/cfx-tools/packages/mcp-server/package.json index 21e7fe2..95d2afc 100644 --- a/repos/cfx-tools/packages/mcp-server/package.json +++ b/repos/cfx-tools/packages/mcp-server/package.json @@ -32,7 +32,7 @@ "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", diff --git a/repos/cfx-tools/packages/scaffold-cli/package.json b/repos/cfx-tools/packages/scaffold-cli/package.json index afb1648..dfa518c 100644 --- a/repos/cfx-tools/packages/scaffold-cli/package.json +++ b/repos/cfx-tools/packages/scaffold-cli/package.json @@ -34,7 +34,7 @@ }, "devDependencies": { "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "@cfxdevkit/biome-config": "workspace:*", "@biomejs/biome": "^2.4.14", "typescript": "^6.0.3", diff --git a/repos/cfx-tools/packages/vscode-extension/package.json b/repos/cfx-tools/packages/vscode-extension/package.json index b9c30e0..f63a559 100644 --- a/repos/cfx-tools/packages/vscode-extension/package.json +++ b/repos/cfx-tools/packages/vscode-extension/package.json @@ -343,7 +343,7 @@ "@biomejs/biome": "^2.4.14", "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "@types/vscode": "^1.85.0", "typescript": "^6.0.3" } diff --git a/repos/cfx-ui/packages/defi-react/package.json b/repos/cfx-ui/packages/defi-react/package.json index 696feb1..f15149d 100644 --- a/repos/cfx-ui/packages/defi-react/package.json +++ b/repos/cfx-ui/packages/defi-react/package.json @@ -33,8 +33,8 @@ "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/theme": "workspace:^", "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", - "@types/react": "^19.0.0", + "@types/node": "^25.6.0", + "@types/react": "^19.2.14", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", @@ -42,7 +42,7 @@ }, "peerDependencies": { "@cfxdevkit/theme": "workspace:^", - "react": "^19.0.0" + "react": "^19.2.5" }, "dependencies": { "@cfxdevkit/core": "workspace:^", diff --git a/repos/cfx-ui/packages/react/package.json b/repos/cfx-ui/packages/react/package.json index bca03ab..790bda8 100644 --- a/repos/cfx-ui/packages/react/package.json +++ b/repos/cfx-ui/packages/react/package.json @@ -33,8 +33,8 @@ "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", "@cfxdevkit/wallet": "workspace:^", - "@types/node": "^22.10.0", - "@types/react": "^19.0.0", + "@types/node": "^25.6.0", + "@types/react": "^19.2.14", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", @@ -42,7 +42,7 @@ }, "peerDependencies": { "@cfxdevkit/wallet": "workspace:^", - "react": "^19.0.0" + "react": "^19.2.5" }, "dependencies": { "@cfxdevkit/core": "workspace:^" diff --git a/repos/cfx-ui/packages/theme/package.json b/repos/cfx-ui/packages/theme/package.json index f5fceaa..9e5479f 100644 --- a/repos/cfx-ui/packages/theme/package.json +++ b/repos/cfx-ui/packages/theme/package.json @@ -30,16 +30,16 @@ }, "devDependencies": { "@cfxdevkit/tsconfig": "workspace:*", - "@types/node": "^22.10.0", + "@types/node": "^25.6.0", "@cfxdevkit/biome-config": "workspace:*", "@biomejs/biome": "^2.4.14", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", "vitest": "^4.1.5", - "@types/react": "^19.0.0" + "@types/react": "^19.2.14" }, "peerDependencies": { - "react": "^19.0.0" + "react": "^19.2.5" } } diff --git a/repos/cfx-ui/packages/wallet-connect/package.json b/repos/cfx-ui/packages/wallet-connect/package.json index a20d092..a73dc97 100644 --- a/repos/cfx-ui/packages/wallet-connect/package.json +++ b/repos/cfx-ui/packages/wallet-connect/package.json @@ -33,8 +33,8 @@ "@cfxdevkit/biome-config": "workspace:*", "@cfxdevkit/tsconfig": "workspace:*", "@cfxdevkit/wallet": "workspace:^", - "@types/node": "^22.10.0", - "@types/react": "^19.0.0", + "@types/node": "^25.6.0", + "@types/react": "^19.2.14", "typescript": "^6.0.3", "vite": "^8.0.10", "vite-plugin-dts": "^5.0.0", @@ -42,7 +42,7 @@ }, "peerDependencies": { "@cfxdevkit/wallet": "workspace:^", - "react": "^19.0.0" + "react": "^19.2.5" }, "dependencies": { "@cfxdevkit/core": "workspace:^" diff --git a/scripts/check-secret-leaks.mjs b/scripts/check-secret-leaks.mjs index 8e361b6..12785c3 100644 --- a/scripts/check-secret-leaks.mjs +++ b/scripts/check-secret-leaks.mjs @@ -5,7 +5,17 @@ import { join, relative } from 'node:path'; const root = process.cwd(); const roots = ['repos', 'projects', 'tools', 'scripts']; const allowedExtensions = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs']); -const ignoredDirs = new Set(['node_modules', 'dist', 'coverage', '.moon', '.git', '.vitest']); +const ignoredDirs = new Set([ + 'node_modules', + 'dist', + 'coverage', + '.next', + '.moon', + '.git', + '.turbo', + '.vite', + '.vitest', +]); const ignoredFiles = new Set(['scripts/check-secret-leaks.mjs']); const rules = [ diff --git a/scripts/publish-packages.mjs b/scripts/publish-packages.mjs new file mode 100644 index 0000000..1766842 --- /dev/null +++ b/scripts/publish-packages.mjs @@ -0,0 +1,92 @@ +#!/usr/bin/env node +import { spawnSync } from 'node:child_process'; +import { existsSync, readdirSync, readFileSync, rmSync } from 'node:fs'; +import { dirname, resolve } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const rootDir = resolve(dirname(fileURLToPath(import.meta.url)), '..'); +const dryRun = process.argv.includes('--dry-run'); +const changesetConfigPath = resolve(rootDir, '.changeset/config.json'); +const ignoredPackages = existsSync(changesetConfigPath) + ? new Set(JSON.parse(readFileSync(changesetConfigPath, 'utf8')).ignore ?? []) + : new Set(); + +function run(command, args, options = {}) { + const result = spawnSync(command, args, { + cwd: rootDir, + encoding: 'utf8', + stdio: options.capture ? 'pipe' : 'inherit', + }); + + if (result.status !== 0) { + throw new Error(`${command} ${args.join(' ')} failed`); + } + + return result.stdout?.trim() ?? ''; +} + +function readJson(path) { + return JSON.parse(readFileSync(path, 'utf8')); +} + +function collectPackageDirs() { + const reposDir = resolve(rootDir, 'repos'); + const packageDirs = []; + + for (const repoName of readdirSync(reposDir)) { + if (!repoName.startsWith('cfx-')) continue; + + const packagesDir = resolve(reposDir, repoName, 'packages'); + if (!existsSync(packagesDir)) continue; + + for (const packageName of readdirSync(packagesDir)) { + const packageDir = resolve(packagesDir, packageName); + if (existsSync(resolve(packageDir, 'package.json'))) { + packageDirs.push(packageDir); + } + } + } + + return packageDirs.sort(); +} + +function packageExists(packageName, version) { + const result = spawnSync('npm', ['view', `${packageName}@${version}`, 'version'], { + cwd: rootDir, + encoding: 'utf8', + stdio: 'pipe', + }); + + return result.status === 0; +} + +for (const packageDir of collectPackageDirs()) { + const packageJson = readJson(resolve(packageDir, 'package.json')); + const packageName = packageJson.name; + const version = packageJson.version; + + if (!packageName || packageJson.private || ignoredPackages.has(packageName)) { + console.log(`Skipping ${packageName ?? packageDir}`); + continue; + } + + if (!dryRun && packageExists(packageName, version)) { + console.log(`Skipping ${packageName}@${version}; already published`); + continue; + } + + console.log(`Packing ${packageName}@${version}`); + const packOutput = run('pnpm', ['pack', '-C', packageDir, '--pack-destination', rootDir], { + capture: true, + }); + const tarballName = packOutput.split(/\r?\n/).at(-1); + const tarballPath = resolve(rootDir, tarballName); + + try { + const publishArgs = ['publish', tarballPath, '--access', 'public', '--provenance']; + if (dryRun) publishArgs.push('--dry-run'); + run('npm', publishArgs); + } finally { + rmSync(tarballPath, { force: true }); + } +}