From 421e09a3570e8b88fa6594c7a4e4894732d34b56 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Wed, 27 May 2026 12:57:56 +0200 Subject: [PATCH 01/36] ci: add Linear release sync workflow Syncs published npm releases into the Linear "Widget" release pipeline. Runs after "Release & Publish Beta" succeeds (workflow_run gated on conclusion == success), so issues are attached only once packages are on npm. Each release runs `sync` to attach merged issues and link the tag; alpha/beta tags advance the stage via `update`, while only the stable tag runs `complete`, which fires Linear's "release completion -> Done" automation. --- .github/workflows/linear-release.yml | 75 ++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 .github/workflows/linear-release.yml diff --git a/.github/workflows/linear-release.yml b/.github/workflows/linear-release.yml new file mode 100644 index 000000000..cdd4e51ad --- /dev/null +++ b/.github/workflows/linear-release.yml @@ -0,0 +1,75 @@ +name: Linear Release Sync + +# Runs only after "Release & Publish Beta" finishes successfully, so issues are +# attached/completed in Linear only once the packages are actually on npm. +on: + workflow_run: + workflows: ['Release & Publish Beta'] + types: [completed] + +permissions: + contents: read + +jobs: + linear: + if: ${{ github.event.workflow_run.conclusion == 'success' }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + ref: ${{ github.event.workflow_run.head_sha }} + fetch-depth: 0 + fetch-tags: true + persist-credentials: false + + - name: Resolve tag, version, channel + id: meta + run: | + TAG="$(git tag --points-at HEAD | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+' | head -1)" + if [ -z "$TAG" ]; then + echo "No release tag at HEAD; skipping Linear sync." + echo "skip=true" >> "$GITHUB_OUTPUT" + exit 0 + fi + VERSION="${TAG#v}" # strip leading v -> 4.0.0-beta.20 + VERSION="${VERSION%%-*}" # strip prerelease -> 4.0.0 + case "$TAG" in + *-alpha.*) CHANNEL=alpha ;; + *-beta.*) CHANNEL=beta ;; + *) CHANNEL=stable ;; + esac + echo "tag=$TAG" >> "$GITHUB_OUTPUT" + echo "version=$VERSION" >> "$GITHUB_OUTPUT" + echo "channel=$CHANNEL" >> "$GITHUB_OUTPUT" + echo "Resolved tag=$TAG version=$VERSION channel=$CHANNEL" + + # Attach merged issues to the X.Y.Z release and record this tag as a link. + - name: Sync issues to release + if: steps.meta.outputs.skip != 'true' + uses: linear/linear-release-action@ad7da502eec3a93dd17e2e249e6c1cd84e3ee588 # v0 + with: + access_key: ${{ secrets.LINEAR_RELEASE_ACCESS_KEY }} + command: sync + release_version: ${{ steps.meta.outputs.version }} + name: Widget ${{ steps.meta.outputs.version }} + links: | + ${{ github.server_url }}/${{ github.repository }}/releases/tag/${{ steps.meta.outputs.tag }} + + # Prerelease: advance the stage only (release stays open -> tickets stay "Ready for Release"). + - name: Advance stage (alpha/beta) + if: steps.meta.outputs.skip != 'true' && steps.meta.outputs.channel != 'stable' + uses: linear/linear-release-action@ad7da502eec3a93dd17e2e249e6c1cd84e3ee588 # v0 + with: + access_key: ${{ secrets.LINEAR_RELEASE_ACCESS_KEY }} + command: update + release_version: ${{ steps.meta.outputs.version }} + stage: ${{ steps.meta.outputs.channel == 'alpha' && 'Alpha' || 'Beta' }} + + # Stable: complete the release -> fires the "On release completion -> Done" automation. + - name: Complete release (stable) + if: steps.meta.outputs.skip != 'true' && steps.meta.outputs.channel == 'stable' + uses: linear/linear-release-action@ad7da502eec3a93dd17e2e249e6c1cd84e3ee588 # v0 + with: + access_key: ${{ secrets.LINEAR_RELEASE_ACCESS_KEY }} + command: complete + release_version: ${{ steps.meta.outputs.version }} From dce6bdadee9ec9d2bda441c51cdfe3c73d620e87 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Wed, 27 May 2026 12:58:42 +0200 Subject: [PATCH 02/36] ci: bump aws-actions/configure-aws-credentials to v6.1.2 --- .github/workflows/deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 5d8a5741c..55b4585bb 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -15,7 +15,7 @@ jobs: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@d979d5b3a71173a29b74b5b88418bfda9437d885 # v6.1.1 + uses: aws-actions/configure-aws-credentials@acca2b1b2070338fb9fd1ca27ecee81d687e58e5 # v6.1.2 with: role-to-assume: arn:aws:iam::403372804574:role/github-actions role-session-name: github-actions-role-session From 35b6d13cf146ed0614efda2cb08a0515f23e78df Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Wed, 27 May 2026 13:24:07 +0200 Subject: [PATCH 03/36] ci: harden Linear release workflow and fix tag resolution Addresses review feedback on #749: - Restrict the job to successful runs originating from this repo (head_repository guard) to address the workflow_run privilege- escalation warning; the upstream publish workflow is tag-push/dispatch only, so this can't be triggered by untrusted contributors. - Append `|| true` to tag resolution so a no-tag HEAD (e.g. a workflow_dispatch publish) cleanly skips instead of failing under `set -eo pipefail`. - Add a concurrency group keyed to the release commit. - Rename linear-release.yml -> .yaml to match repo convention. --- .../{linear-release.yml => linear-release.yaml} | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) rename .github/workflows/{linear-release.yml => linear-release.yaml} (86%) diff --git a/.github/workflows/linear-release.yml b/.github/workflows/linear-release.yaml similarity index 86% rename from .github/workflows/linear-release.yml rename to .github/workflows/linear-release.yaml index cdd4e51ad..fb074759b 100644 --- a/.github/workflows/linear-release.yml +++ b/.github/workflows/linear-release.yaml @@ -10,9 +10,18 @@ on: permissions: contents: read +concurrency: + group: linear-release-${{ github.event.workflow_run.head_sha }} + cancel-in-progress: false + jobs: linear: - if: ${{ github.event.workflow_run.conclusion == 'success' }} + # Only for successful runs that originated from this repo (not a fork) — the + # upstream publish workflow is tag-push/dispatch only, so this can't be + # triggered by untrusted contributors. + if: >- + github.event.workflow_run.conclusion == 'success' && + github.event.workflow_run.head_repository.full_name == github.repository runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -25,7 +34,7 @@ jobs: - name: Resolve tag, version, channel id: meta run: | - TAG="$(git tag --points-at HEAD | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+' | head -1)" + TAG="$(git tag --points-at HEAD | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+' | head -1 || true)" if [ -z "$TAG" ]; then echo "No release tag at HEAD; skipping Linear sync." echo "skip=true" >> "$GITHUB_OUTPUT" From dbf19e89fa4bf269f70eab27967fc8ed02e7c732 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Wed, 27 May 2026 14:06:48 +0200 Subject: [PATCH 04/36] refactor(ci): compose release pipeline from reusable workflows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Split publish.yaml into an orchestrator that composes three single-purpose reusable workflows: github-release, npm-publish, and linear-release. The Linear sync now runs as a `needs: npm-publish` job instead of a separate `workflow_run` workflow, which: - gates precisely on npm publish success (a failed GitHub Release job no longer strands the Linear sync) — fixes the coarse-gating issue - removes the `workflow_run` trigger flagged by Aikido - takes the tag from `github.ref_name` instead of re-discovering it via `git tag --points-at` - replaces the brittle workflow-name coupling with a direct file reference Secrets are scoped per sub-workflow: only Linear receives the pipeline access key; GitHub Release uses the auto GITHUB_TOKEN; npm publish uses OIDC provenance (no token). --- .github/workflows/github-release.yaml | 25 ++++++++++++ .github/workflows/linear-release.yaml | 56 +++++++++++---------------- .github/workflows/npm-publish.yaml | 25 ++++++++++++ .github/workflows/publish.yaml | 49 ++++++++++------------- 4 files changed, 94 insertions(+), 61 deletions(-) create mode 100644 .github/workflows/github-release.yaml create mode 100644 .github/workflows/npm-publish.yaml diff --git a/.github/workflows/github-release.yaml b/.github/workflows/github-release.yaml new file mode 100644 index 000000000..1f7f1e9cd --- /dev/null +++ b/.github/workflows/github-release.yaml @@ -0,0 +1,25 @@ +name: 'Release · GitHub Release' + +# Reusable: creates the GitHub Release for the current tag. +# Called by publish.yaml; not triggered on its own. +on: + workflow_call: + +permissions: + contents: write + +jobs: + github-release: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Create GitHub Release + uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + generate_release_notes: true + name: ${{ github.ref_name }} + draft: false + prerelease: false diff --git a/.github/workflows/linear-release.yaml b/.github/workflows/linear-release.yaml index fb074759b..4a447debc 100644 --- a/.github/workflows/linear-release.yaml +++ b/.github/workflows/linear-release.yaml @@ -1,84 +1,74 @@ -name: Linear Release Sync +name: 'Release · Linear Sync' -# Runs only after "Release & Publish Beta" finishes successfully, so issues are -# attached/completed in Linear only once the packages are actually on npm. +# Reusable: syncs the published release into the Linear "Widget" pipeline. +# Called by publish.yaml after npm publish succeeds; not triggered on its own. on: - workflow_run: - workflows: ['Release & Publish Beta'] - types: [completed] + workflow_call: + inputs: + tag: + description: 'Release tag that was published (e.g. v4.0.0-beta.20)' + required: true + type: string + secrets: + access_key: + description: 'Linear pipeline access key' + required: true permissions: contents: read -concurrency: - group: linear-release-${{ github.event.workflow_run.head_sha }} - cancel-in-progress: false - jobs: linear: - # Only for successful runs that originated from this repo (not a fork) — the - # upstream publish workflow is tag-push/dispatch only, so this can't be - # triggered by untrusted contributors. - if: >- - github.event.workflow_run.conclusion == 'success' && - github.event.workflow_run.head_repository.full_name == github.repository runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: - ref: ${{ github.event.workflow_run.head_sha }} fetch-depth: 0 fetch-tags: true persist-credentials: false - - name: Resolve tag, version, channel + - name: Resolve version and channel id: meta + env: + TAG: ${{ inputs.tag }} run: | - TAG="$(git tag --points-at HEAD | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+' | head -1 || true)" - if [ -z "$TAG" ]; then - echo "No release tag at HEAD; skipping Linear sync." - echo "skip=true" >> "$GITHUB_OUTPUT" - exit 0 - fi - VERSION="${TAG#v}" # strip leading v -> 4.0.0-beta.20 + VERSION="${TAG#v}" # strip leading v -> 4.0.0-beta.20 VERSION="${VERSION%%-*}" # strip prerelease -> 4.0.0 case "$TAG" in *-alpha.*) CHANNEL=alpha ;; *-beta.*) CHANNEL=beta ;; *) CHANNEL=stable ;; esac - echo "tag=$TAG" >> "$GITHUB_OUTPUT" echo "version=$VERSION" >> "$GITHUB_OUTPUT" echo "channel=$CHANNEL" >> "$GITHUB_OUTPUT" echo "Resolved tag=$TAG version=$VERSION channel=$CHANNEL" # Attach merged issues to the X.Y.Z release and record this tag as a link. - name: Sync issues to release - if: steps.meta.outputs.skip != 'true' uses: linear/linear-release-action@ad7da502eec3a93dd17e2e249e6c1cd84e3ee588 # v0 with: - access_key: ${{ secrets.LINEAR_RELEASE_ACCESS_KEY }} + access_key: ${{ secrets.access_key }} command: sync release_version: ${{ steps.meta.outputs.version }} name: Widget ${{ steps.meta.outputs.version }} links: | - ${{ github.server_url }}/${{ github.repository }}/releases/tag/${{ steps.meta.outputs.tag }} + ${{ github.server_url }}/${{ github.repository }}/releases/tag/${{ inputs.tag }} # Prerelease: advance the stage only (release stays open -> tickets stay "Ready for Release"). - name: Advance stage (alpha/beta) - if: steps.meta.outputs.skip != 'true' && steps.meta.outputs.channel != 'stable' + if: steps.meta.outputs.channel != 'stable' uses: linear/linear-release-action@ad7da502eec3a93dd17e2e249e6c1cd84e3ee588 # v0 with: - access_key: ${{ secrets.LINEAR_RELEASE_ACCESS_KEY }} + access_key: ${{ secrets.access_key }} command: update release_version: ${{ steps.meta.outputs.version }} stage: ${{ steps.meta.outputs.channel == 'alpha' && 'Alpha' || 'Beta' }} # Stable: complete the release -> fires the "On release completion -> Done" automation. - name: Complete release (stable) - if: steps.meta.outputs.skip != 'true' && steps.meta.outputs.channel == 'stable' + if: steps.meta.outputs.channel == 'stable' uses: linear/linear-release-action@ad7da502eec3a93dd17e2e249e6c1cd84e3ee588 # v0 with: - access_key: ${{ secrets.LINEAR_RELEASE_ACCESS_KEY }} + access_key: ${{ secrets.access_key }} command: complete release_version: ${{ steps.meta.outputs.version }} diff --git a/.github/workflows/npm-publish.yaml b/.github/workflows/npm-publish.yaml new file mode 100644 index 000000000..a7fd1c0fb --- /dev/null +++ b/.github/workflows/npm-publish.yaml @@ -0,0 +1,25 @@ +name: 'Release · npm Publish' + +# Reusable: builds and publishes the packages to npm with provenance (OIDC). +# Called by publish.yaml; not triggered on its own. +on: + workflow_call: + +permissions: + contents: write + id-token: write + +jobs: + npm-publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Install dependencies + uses: ./.github/actions/pnpm-install + - name: Build + run: pnpm release:build + - name: Publish to npm + run: | + pnpm release:publish${{ contains(github.ref_name, 'alpha') && ':alpha' || contains(github.ref_name, 'beta') && ':beta' || '' }} + env: + NPM_CONFIG_PROVENANCE: true diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index d63bfeba2..999a9a306 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -1,5 +1,9 @@ -name: Release & Publish Beta +name: Release & Publish +# Orchestrator: composes the release pipeline from single-purpose reusable +# workflows. GitHub Release and npm publish run in parallel; the Linear sync +# runs only after npm publish succeeds, so tickets move to Done strictly when +# the packages are actually on npm. on: push: tags: @@ -9,36 +13,25 @@ on: workflow_dispatch: jobs: - release: + github-release: permissions: contents: write - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Create GitHub Release - uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - generate_release_notes: true - name: ${{ github.ref_name }} - draft: false - prerelease: false + uses: ./.github/workflows/github-release.yaml - publish: + npm-publish: permissions: contents: write id-token: write - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Install dependencies - uses: ./.github/actions/pnpm-install - - name: Build - run: pnpm release:build - - name: Publish to npm - run: | - pnpm release:publish${{ contains(github.ref_name, 'alpha') && ':alpha' || contains(github.ref_name, 'beta') && ':beta' || '' }} - env: - NPM_CONFIG_PROVENANCE: true + uses: ./.github/workflows/npm-publish.yaml + + linear-release: + needs: npm-publish + # Only for real release tags — skip manual branch dispatches. + if: startsWith(github.ref, 'refs/tags/v') + permissions: + contents: read + uses: ./.github/workflows/linear-release.yaml + with: + tag: ${{ github.ref_name }} + secrets: + access_key: ${{ secrets.LINEAR_RELEASE_ACCESS_KEY }} From 1da7abee7ac1ee85f51ac9d0a3a325975e9c3dbb Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Wed, 27 May 2026 17:12:19 +0200 Subject: [PATCH 05/36] chore: add Changesets config, pre-mode, and root scripts - Add .changeset/config.json (github-compact changelog, public access, baseBranch main, updateInternalDependencies minor, ignore private pkgs) - Add .changeset/README.md and .changeset/pre.json (pre mode, tag beta) - Add @changesets/cli (^2.29.7) + @svitejs/changesets-changelog-github-compact devdeps - Wire changeset:version / changeset:prepublish / changeset:publish scripts that run the existing per-package prerelease transform before publish --- .changeset/README.md | 8 + .changeset/config.json | 17 + .changeset/pre.json | 20 + lerna.json | 13 - package.json | 23 +- pnpm-lock.yaml | 3539 +++++----------------------------------- 6 files changed, 485 insertions(+), 3135 deletions(-) create mode 100644 .changeset/README.md create mode 100644 .changeset/config.json create mode 100644 .changeset/pre.json delete mode 100644 lerna.json diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 000000000..e5b6d8d6a --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets) + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 000000000..8f9d6bd82 --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.0.5/schema.json", + "changelog": [ + "@svitejs/changesets-changelog-github-compact", + { "repo": "lifinance/widget" } + ], + "commit": false, + "access": "public", + "baseBranch": "main", + "updateInternalDependencies": "minor", + "ignore": [ + "@lifi/widget-embedded", + "@lifi/widget-playground", + "@lifi/widget-playground-next", + "@lifi/widget-playground-vite" + ] +} diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 000000000..2acf46b91 --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,20 @@ +{ + "mode": "pre", + "tag": "beta", + "initialVersions": { + "@lifi/wallet-management": "4.0.0-beta.20", + "@lifi/widget": "4.0.0-beta.20", + "@lifi/widget-embedded": "1.0.0", + "@lifi/widget-light": "4.0.0-beta.19", + "@lifi/widget-playground": "1.0.0", + "@lifi/widget-playground-next": "1.0.0", + "@lifi/widget-playground-vite": "1.0.0", + "@lifi/widget-provider": "4.0.0-beta.20", + "@lifi/widget-provider-bitcoin": "4.0.0-beta.20", + "@lifi/widget-provider-ethereum": "4.0.0-beta.20", + "@lifi/widget-provider-solana": "4.0.0-beta.20", + "@lifi/widget-provider-sui": "4.0.0-beta.20", + "@lifi/widget-provider-tron": "4.0.0-beta.20" + }, + "changesets": [] +} diff --git a/lerna.json b/lerna.json deleted file mode 100644 index a944189e7..000000000 --- a/lerna.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "npmClient": "pnpm", - "packages": ["packages/*"], - "ignoreChanges": ["**/*.md"], - "command": { - "version": { - "ignoreChanges": ["**/*.md"] - } - }, - "changelogPreset": "conventionalcommits", - "version": "independent", - "$schema": "node_modules/lerna/schemas/lerna-schema.json" -} diff --git a/package.json b/package.json index d98cd79f3..5620b3e3f 100644 --- a/package.json +++ b/package.json @@ -16,16 +16,9 @@ "dev:staging": "pnpm --filter widget-playground-vite dev:staging", "dev:local": "pnpm --filter widget-playground-vite dev:local", "dev:next": "pnpm --filter widget-playground-next dev", - "release": "pnpm release:version && pnpm release:build && pnpm standard-version -a -s", - "release:alpha": "pnpm release:version --preid alpha && pnpm release:build && pnpm standard-version -a -s --prerelease alpha --skip.changelog", - "release:beta": "pnpm release:version --preid beta && pnpm release:build && pnpm standard-version -a -s --prerelease beta --skip.changelog", - "release:version": "lerna version --no-changelog --no-push --no-git-tag-version --no-private", - "release:build": "pnpm -r --parallel release:build", - "release:publish:build": "pnpm release:build && pnpm -r --parallel build:prerelease", - "release:publish": "pnpm release:publish:build && pnpm -r publish --access public --no-git-checks --tag latest && pnpm release:clean", - "release:publish:alpha": "pnpm release:publish:build && pnpm -r publish --access public --no-git-checks --tag alpha && pnpm release:clean", - "release:publish:beta": "pnpm release:publish:build && pnpm -r publish --access public --no-git-checks --tag beta && pnpm release:clean", - "release:clean": "pnpm -r --parallel --filter './packages/**' --filter '!*-playground-*' --filter '!*-embedded' exec sh -c \"node ../../scripts/postrelease.js && rm -rf *.md\"", + "changeset:version": "changeset version && pnpm install --lockfile-only && pnpm check:write", + "changeset:prepublish": "pnpm clean && pnpm build && pnpm -r --filter './packages/**' --filter '!*-playground-*' --filter '!*-embedded' build:prerelease", + "changeset:publish": "pnpm changeset:prepublish && changeset publish", "check": "biome check", "check:write": "biome check --write", "check:write:unsafe": "biome check --write --unsafe", @@ -53,25 +46,19 @@ "bash -c 'pnpm knip:check'" ] }, - "standard-version": { - "scripts": { - "prerelease": "pnpm install && git add .", - "postbump": "pnpm check:write && git add ." - } - }, "devDependencies": { "@biomejs/biome": "^2.4.15", + "@changesets/cli": "^2.29.7", "@commitlint/cli": "^21.0.0", "@commitlint/config-conventional": "^21.0.0", + "@svitejs/changesets-changelog-github-compact": "^1.2.0", "@types/node": "^25.6.2", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "fs-extra": "^11.3.5", "husky": "^9.1.7", "knip": "^6.12.2", - "lerna": "^9.0.7", "lint-staged": "^17.0.4", - "standard-version": "^9.5.0", "tsdown": "^0.22.0", "typescript": "^6.0.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e0a01dd88..212ce410d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,12 +28,18 @@ importers: '@biomejs/biome': specifier: ^2.4.15 version: 2.4.15 + '@changesets/cli': + specifier: ^2.29.7 + version: 2.31.0(@types/node@25.6.2) '@commitlint/cli': specifier: ^21.0.0 version: 21.0.0(@types/node@25.6.2)(conventional-commits-parser@6.4.0)(typescript@6.0.3) '@commitlint/config-conventional': specifier: ^21.0.0 version: 21.0.0 + '@svitejs/changesets-changelog-github-compact': + specifier: ^1.2.0 + version: 1.2.0(encoding@0.1.13) '@types/node': specifier: ^25.6.2 version: 25.6.2 @@ -52,15 +58,9 @@ importers: knip: specifier: ^6.12.2 version: 6.12.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) - lerna: - specifier: ^9.0.7 - version: 9.0.7(@types/node@25.6.2)(babel-plugin-macros@3.1.0) lint-staged: specifier: ^17.0.4 version: 17.0.4 - standard-version: - specifier: ^9.5.0 - version: 9.5.0 tsdown: specifier: ^0.22.0 version: 0.22.0(oxc-resolver@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0))(typescript@6.0.3)(vue-tsc@3.2.8(typescript@6.0.3)) @@ -337,10 +337,10 @@ importers: version: 4.0.0-beta.18(@tanstack/react-query@5.100.9(react@19.2.6))(@types/react@19.2.14)(immer@9.0.21)(react-dom@19.2.6(react@19.2.6))(react-native@0.85.3(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.6)) '@mui/material-nextjs': specifier: ^9.0.1 - version: 9.0.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.6))(@types/react@19.2.14)(next@16.2.6(@babel/core@7.29.0)(@playwright/test@1.59.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6) + version: 9.0.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.6))(@types/react@19.2.14)(next@16.2.6(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6) next: specifier: ^16 - version: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.59.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + version: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: specifier: ^19.2.6 version: 19.2.6 @@ -371,10 +371,10 @@ importers: version: 4.0.0-beta.18(@tanstack/react-query@5.100.9(react@19.2.6))(@types/react@19.2.14)(immer@9.0.21)(react-dom@19.2.6(react@19.2.6))(react-native@0.85.3(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)(typescript@6.0.3)(use-sync-external-store@1.4.0(react@19.2.6)) '@mui/material-nextjs': specifier: ^9.0.1 - version: 9.0.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.6))(@types/react@19.2.14)(next@15.5.18(@babel/core@7.29.0)(@playwright/test@1.59.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6) + version: 9.0.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.6))(@types/react@19.2.14)(next@15.5.18(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6) next: specifier: ^15 - version: 15.5.18(@babel/core@7.29.0)(@playwright/test@1.59.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + version: 15.5.18(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: specifier: ^19.2.6 version: 19.2.6 @@ -819,7 +819,7 @@ importers: devDependencies: '@remix-run/dev': specifier: ^2.17.4 - version: 2.17.4(@remix-run/react@2.17.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@6.0.3))(@remix-run/serve@2.17.4(typescript@6.0.3))(@types/node@25.6.2)(babel-plugin-macros@3.1.0)(bufferutil@4.1.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.47.1)(typescript@6.0.3)(utf-8-validate@6.0.6)(vite@8.0.12(@types/node@25.6.2)(esbuild@0.17.6)(jiti@2.7.0)(terser@5.47.1)(yaml@2.8.4))(yaml@2.8.4) + version: 2.17.4(@remix-run/react@2.17.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@6.0.3))(@remix-run/serve@2.17.4(typescript@6.0.3))(@types/node@25.6.2)(bufferutil@4.1.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.47.1)(typescript@6.0.3)(utf-8-validate@6.0.6)(vite@8.0.12(@types/node@25.6.2)(esbuild@0.17.6)(jiti@2.7.0)(terser@5.47.1)(yaml@2.8.4))(yaml@2.8.4) '@types/react': specifier: ^19.2.14 version: 19.2.14 @@ -1714,7 +1714,7 @@ importers: version: 9.0.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.6))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.6))(@types/react@19.2.14)(react@19.2.6))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mui/material-nextjs': specifier: ^9.0.1 - version: 9.0.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.6))(@types/react@19.2.14)(next@16.2.6(@babel/core@7.29.0)(@playwright/test@1.59.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6) + version: 9.0.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.6))(@types/react@19.2.14)(next@16.2.6(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6) '@tanstack/react-query': specifier: ^5.100.9 version: 5.100.9(react@19.2.6) @@ -1723,7 +1723,7 @@ importers: version: 3.49.0 next: specifier: ^16.2.2 - version: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.59.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + version: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: specifier: ^19.2.6 version: 19.2.6 @@ -2299,6 +2299,64 @@ packages: '@btckit/types@0.0.19': resolution: {integrity: sha512-APoOfYSg9SRR4CMXL606IDtpgh+ZD3kS/+iY0BkUALD6HvXo2pVw20L5YYIc+HrgMcF6WN0TH7TXdVs+Vu+kww==} + '@changesets/apply-release-plan@7.1.1': + resolution: {integrity: sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA==} + + '@changesets/assemble-release-plan@6.0.10': + resolution: {integrity: sha512-rSDcqdJ9KbVyjpBIuCidhvZNIiVt1XaIYp73ycVQRIA5n/j6wQaEk0ChRLMUQ1vkxZe51PTQ9OIhbg6HQMW45A==} + + '@changesets/changelog-git@0.2.1': + resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} + + '@changesets/cli@2.31.0': + resolution: {integrity: sha512-AhI4enNTgHu2IZr6K4WZyf0EPch4XVMn1yOMFmCD9gsfBGqMYaHXls5HyDv6/CL5axVQABz68eG30eCtbr2wFg==} + hasBin: true + + '@changesets/config@3.1.4': + resolution: {integrity: sha512-pf0bvD/v6WI2cRlZ6hzpjtZdSlXDXMAJ+Iz7xfFzV4ZxJ8OGGAON+1qYc99ZPrijnt4xp3VGG7eNvAOGS24V1Q==} + + '@changesets/errors@0.2.0': + resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} + + '@changesets/get-dependents-graph@2.1.4': + resolution: {integrity: sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg==} + + '@changesets/get-github-info@0.6.0': + resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} + + '@changesets/get-release-plan@4.0.16': + resolution: {integrity: sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g==} + + '@changesets/get-version-range-type@0.4.0': + resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} + + '@changesets/git@3.0.4': + resolution: {integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==} + + '@changesets/logger@0.1.1': + resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} + + '@changesets/parse@0.4.3': + resolution: {integrity: sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A==} + + '@changesets/pre@2.0.2': + resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} + + '@changesets/read@0.6.7': + resolution: {integrity: sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA==} + + '@changesets/should-skip-package@0.1.2': + resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} + + '@changesets/types@4.1.0': + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + + '@changesets/types@6.1.0': + resolution: {integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==} + + '@changesets/write@0.4.0': + resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} + '@clack/core@1.3.0': resolution: {integrity: sha512-xJPHpAmEQUBrXSLx0gF+q5K/IyihXpsHZcha+jB+tyahsKRK3Dxo4D0coZDewHo12NhiuzC3dTtMPbm53GEAAA==} engines: {node: '>= 20.12.0'} @@ -2631,18 +2689,9 @@ packages: '@emnapi/core@1.10.0': resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - '@emnapi/core@1.4.5': - resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==} - '@emnapi/runtime@1.10.0': resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@emnapi/runtime@1.4.5': - resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} - - '@emnapi/wasi-threads@1.0.4': - resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==} - '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} @@ -3389,10 +3438,6 @@ packages: '@floating-ui/utils@0.2.11': resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} - '@gar/promise-retry@1.0.3': - resolution: {integrity: sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==} - engines: {node: ^20.17.0 || >=22.9.0} - '@gemini-wallet/core@0.3.2': resolution: {integrity: sha512-Z4aHi3ECFf5oWYWM3F1rW83GJfB9OvhBYPTmb5q+VyK3uvzvS48lwo+jwh2eOoCRWEuT/crpb9Vwp2QaS5JqgQ==} peerDependencies: @@ -3490,10 +3535,6 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@hutson/parse-repository-url@3.0.2': - resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} - engines: {node: '>=6.9.0'} - '@img/colour@1.1.0': resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} engines: {node: '>=18'} @@ -3764,55 +3805,6 @@ packages: cpu: [x64] os: [win32] - '@inquirer/ansi@1.0.2': - resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} - engines: {node: '>=18'} - - '@inquirer/checkbox@4.3.2': - resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/confirm@5.1.21': - resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/core@10.3.2': - resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/editor@4.2.23': - resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/expand@4.0.23': - resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - '@inquirer/external-editor@1.0.3': resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} engines: {node: '>=18'} @@ -3822,82 +3814,6 @@ packages: '@types/node': optional: true - '@inquirer/figures@1.0.15': - resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} - engines: {node: '>=18'} - - '@inquirer/input@4.3.1': - resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/number@3.0.23': - resolution: {integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/password@4.0.23': - resolution: {integrity: sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/prompts@7.10.1': - resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/rawlist@4.1.11': - resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/search@3.2.2': - resolution: {integrity: sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/select@4.4.2': - resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/type@3.0.10': - resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - '@internationalized/date@3.12.1': resolution: {integrity: sha512-6IedsVWXyq4P9Tj+TxuU8WGWM70hYLl12nbYU8jkikVpa6WXapFazPUcHUMDMoWftIDE2ILDkFFte6W2nFCkRQ==} @@ -3914,25 +3830,14 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@isaacs/cliui@9.0.0': - resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==} - engines: {node: '>=18'} - '@isaacs/fs-minipass@4.0.1': resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} - '@isaacs/string-locale-compare@1.1.0': - resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} - '@isaacs/ttlcache@1.4.1': resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==} engines: {node: '>=12'} - '@jest/diff-sequences@30.0.1': - resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/diff-sequences@30.4.0': resolution: {integrity: sha512-zOpzlfUs45l6u7jm39qr87JCHUDsaeCtvL+kQe/Vn9jSnRB4/5IPXISm0h9I1vZW/o00Kn4UTJ2MOlhnUGwv3g==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -4096,6 +4001,12 @@ packages: '@lit/task@1.0.3': resolution: {integrity: sha512-1gJGJl8WON+2j0y9xfcD+XsS1rvcy3XDgsIhcdUW++yTR8ESjZW6o7dn8M8a4SZM8NnJe6ynS2cKWwsbfLOurg==} + '@manypkg/find-root@1.1.0': + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + + '@manypkg/get-packages@1.1.3': + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + '@mapbox/node-pre-gyp@2.0.3': resolution: {integrity: sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==} engines: {node: '>=18'} @@ -4535,9 +4446,6 @@ packages: nanostores: ^1.2.0 react: '>=18.0.0' - '@napi-rs/wasm-runtime@0.2.4': - resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} - '@napi-rs/wasm-runtime@1.1.4': resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} peerDependencies: @@ -4754,109 +4662,22 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@npmcli/agent@4.0.0': - resolution: {integrity: sha512-kAQTcEN9E8ERLVg5AsGwLNoFb+oEG6engbqAU2P43gD4JEIkNGMHdVQ096FsOAAYpZPB0RSt0zgInKIAS1l5QA==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/arborist@9.1.6': - resolution: {integrity: sha512-c5Pr3EG8UP5ollkJy2x+UdEQC5sEHe3H9whYn6hb2HJimAKS4zmoJkx5acCiR/g4P38RnCSMlsYQyyHnKYeLvQ==} - engines: {node: ^20.17.0 || >=22.9.0} - hasBin: true - '@npmcli/fs@3.1.1': resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@npmcli/fs@4.0.0': - resolution: {integrity: sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==} - engines: {node: ^18.17.0 || >=20.5.0} - - '@npmcli/fs@5.0.0': - resolution: {integrity: sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==} - engines: {node: ^20.17.0 || >=22.9.0} - '@npmcli/git@4.1.0': resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@npmcli/git@6.0.3': - resolution: {integrity: sha512-GUYESQlxZRAdhs3UhbB6pVRNUELQOHXwK9ruDkwmCv2aZ5y0SApQzUJCg02p3A7Ue2J5hxvlk1YI53c00NmRyQ==} - engines: {node: ^18.17.0 || >=20.5.0} - - '@npmcli/git@7.0.2': - resolution: {integrity: sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/installed-package-contents@3.0.0': - resolution: {integrity: sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==} - engines: {node: ^18.17.0 || >=20.5.0} - hasBin: true - - '@npmcli/installed-package-contents@4.0.0': - resolution: {integrity: sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==} - engines: {node: ^20.17.0 || >=22.9.0} - hasBin: true - - '@npmcli/map-workspaces@5.0.3': - resolution: {integrity: sha512-o2grssXo1e774E5OtEwwrgoszYRh0lqkJH+Pb9r78UcqdGJRDRfhpM8DvZPjzNLLNYeD/rNbjOKM3Ss5UABROw==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/metavuln-calculator@9.0.3': - resolution: {integrity: sha512-94GLSYhLXF2t2LAC7pDwLaM4uCARzxShyAQKsirmlNcpidH89VA4/+K1LbJmRMgz5gy65E/QBBWQdUvGLe2Frg==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/name-from-folder@3.0.0': - resolution: {integrity: sha512-61cDL8LUc9y80fXn+lir+iVt8IS0xHqEKwPu/5jCjxQTVoSCmkXvw4vbMrzAMtmghz3/AkiBjhHkDKUH+kf7kA==} - engines: {node: ^18.17.0 || >=20.5.0} - - '@npmcli/name-from-folder@4.0.0': - resolution: {integrity: sha512-qfrhVlOSqmKM8i6rkNdZzABj8MKEITGFAY+4teqBziksCQAOLutiAxM1wY2BKEd8KjUSpWmWCYxvXr0y4VTlPg==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/node-gyp@4.0.0': - resolution: {integrity: sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==} - engines: {node: ^18.17.0 || >=20.5.0} - - '@npmcli/node-gyp@5.0.0': - resolution: {integrity: sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==} - engines: {node: ^20.17.0 || >=22.9.0} - '@npmcli/package-json@4.0.1': resolution: {integrity: sha512-lRCEGdHZomFsURroh522YvA/2cVb9oPIJrjHanCJZkiasz1BzcnLr3tBJhlV7S86MBJBuAQ33is2D60YitZL2Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@npmcli/package-json@7.0.2': - resolution: {integrity: sha512-0ylN3U5htO1SJTmy2YI78PZZjLkKUGg7EKgukb2CRi0kzyoDr0cfjHAzi7kozVhj2V3SxN1oyKqZ2NSo40z00g==} - engines: {node: ^20.17.0 || >=22.9.0} - '@npmcli/promise-spawn@6.0.2': resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@npmcli/promise-spawn@8.0.3': - resolution: {integrity: sha512-Yb00SWaL4F8w+K8YGhQ55+xE4RUNdMHV43WZGsiTM92gS+lC0mGsn7I4hLug7pbao035S6bj3Y3w0cUNGLfmkg==} - engines: {node: ^18.17.0 || >=20.5.0} - - '@npmcli/promise-spawn@9.0.1': - resolution: {integrity: sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/query@4.0.1': - resolution: {integrity: sha512-4OIPFb4weUUwkDXJf4Hh1inAn8neBGq3xsH4ZsAaN6FK3ldrFkH7jSpCc7N9xesi0Sp+EBXJ9eGMDrEww2Ztqw==} - engines: {node: ^18.17.0 || >=20.5.0} - - '@npmcli/redact@3.2.2': - resolution: {integrity: sha512-7VmYAmk4csGv08QzrDKScdzn11jHPFGyqJW39FyPgPuAp3zIaUmuCo1yxw9aGs+NEJuTGQ9Gwqpt93vtJubucg==} - engines: {node: ^18.17.0 || >=20.5.0} - - '@npmcli/redact@4.0.0': - resolution: {integrity: sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@npmcli/run-script@10.0.3': - resolution: {integrity: sha512-ER2N6itRkzWbbtVmZ9WKaWxVlKlOeBFF1/7xx+KA5J1xKa4JjUwBdb6tDpk0v1qA+d+VDwHI9qmLcXSWcmi+Rw==} - engines: {node: ^20.17.0 || >=22.9.0} - '@nuxt/cli@3.35.1': resolution: {integrity: sha512-nX9XO+e3l9pnhHL2zsbnBmQb/nsOQYhGz2XiqE8X962QN9ufc1ZSuDZoTmQVv/ymkbYNR6hpNWW8RZQhuhzadw==} engines: {node: ^16.14.0 || >=18.0.0} @@ -4941,120 +4762,6 @@ packages: rollup-plugin-visualizer: optional: true - '@nx/devkit@22.7.1': - resolution: {integrity: sha512-z2ayFHq406MyVpNtksGnsfHOYZVTSInwQgZeg6u+S4sD21Wvb+oldhqkbYX46jiGJSaw5aUjFdzXJu2l4MYP1A==} - peerDependencies: - nx: '>= 21 <= 23 || ^22.0.0-0' - - '@nx/nx-darwin-arm64@22.7.1': - resolution: {integrity: sha512-m00ZmBn39VUgb0Ahhu5iY6D56ETdXjDbVnOz0XF3DacJrcLtq9sZ+cg1bj6PshqtvRWVg+zJRrZBU6vL7hGuFQ==} - cpu: [arm64] - os: [darwin] - - '@nx/nx-darwin-x64@22.7.1': - resolution: {integrity: sha512-DmD8Qow+Yt7Yrmjlz1AsfiwxW+0kRzg+6MY70+d7qChtD2bTzvA/k0ut8SMy+CxU3kxgUbKhGOtml5JDXoX2ww==} - cpu: [x64] - os: [darwin] - - '@nx/nx-freebsd-x64@22.7.1': - resolution: {integrity: sha512-HboVrUCHcuYTXtuX3dMyRszP7JO90ZVBLWgnmaM7jUM7jnllZjmezUMtpNHfN1GQbVFafJf/NBShDWsu9LuaUA==} - cpu: [x64] - os: [freebsd] - - '@nx/nx-linux-arm-gnueabihf@22.7.1': - resolution: {integrity: sha512-5Gm8Y7L8WXMLUjHhiy1eqGz5/PiRw1YLanFg5audBNkZvH6Jkwzdpoz0dbeKjwMDHz4NmniUV1s76Th8VLWmiQ==} - cpu: [arm] - os: [linux] - - '@nx/nx-linux-arm64-gnu@22.7.1': - resolution: {integrity: sha512-GdgPYMfbijBRFJs1absL/9QdSNLsTAGdyKykDf9CaVxEMZ92VB+pncpX9Vn/ZBCSeeWTLF+bSK3UM5v+loIObQ==} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@nx/nx-linux-arm64-musl@22.7.1': - resolution: {integrity: sha512-HyBgPtY1hyNTk8683nt7F29jh3lVdS/zul9vS0NgKeCSoYL3GRM3nLoTPynoHUxyVP/tWYOE3ymvnk92qYwL4Q==} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@nx/nx-linux-x64-gnu@22.7.1': - resolution: {integrity: sha512-bQBgRiEsanNvKcDOjVAUPjvcp0iDLofYYUL2af2iuCDxreLOej+J6MeA5bWTLNly5ly1d4voKGTqa+OsouVyLg==} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@nx/nx-linux-x64-musl@22.7.1': - resolution: {integrity: sha512-gcco2GjcAztF/fRcAgFxtWxrWDnQdNmPaAN9FTt1+qQ9RUSLvdL8bQxKx4Kd9N9T+gXPlrWhMkBkKbbV09+X1Q==} - cpu: [x64] - os: [linux] - libc: [musl] - - '@nx/nx-win32-arm64-msvc@22.7.1': - resolution: {integrity: sha512-IT9oEn0YQ83iPH7666aoPyTRsUzBIBJdBLMXeLX4I60fHPXWhUSGpfiLtIsgU2OfeOVb9hU9idwNh1wc4u9rWQ==} - cpu: [arm64] - os: [win32] - - '@nx/nx-win32-x64-msvc@22.7.1': - resolution: {integrity: sha512-P2zeSKXVH2Eiwsb8UfP2rMMS7//cHWpiO4M9zt6q0c4lI/hN1vXBciRKVWruGk9ZrWLHuhaMAhG94+MJtzKuRQ==} - cpu: [x64] - os: [win32] - - '@octokit/auth-token@4.0.0': - resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} - engines: {node: '>= 18'} - - '@octokit/core@5.2.2': - resolution: {integrity: sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==} - engines: {node: '>= 18'} - - '@octokit/endpoint@9.0.6': - resolution: {integrity: sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==} - engines: {node: '>= 18'} - - '@octokit/graphql@7.1.1': - resolution: {integrity: sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==} - engines: {node: '>= 18'} - - '@octokit/openapi-types@24.2.0': - resolution: {integrity: sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==} - - '@octokit/plugin-enterprise-rest@6.0.1': - resolution: {integrity: sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==} - - '@octokit/plugin-paginate-rest@11.4.4-cjs.2': - resolution: {integrity: sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': '5' - - '@octokit/plugin-request-log@4.0.1': - resolution: {integrity: sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': '5' - - '@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1': - resolution: {integrity: sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': ^5 - - '@octokit/request-error@5.1.1': - resolution: {integrity: sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==} - engines: {node: '>= 18'} - - '@octokit/request@8.4.1': - resolution: {integrity: sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==} - engines: {node: '>= 18'} - - '@octokit/rest@20.1.2': - resolution: {integrity: sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA==} - engines: {node: '>= 18'} - - '@octokit/types@13.10.0': - resolution: {integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==} - '@opensea/seaport-js@4.1.2': resolution: {integrity: sha512-UFJ5f/4gqQEvRjjOJJhammWkOeOaXz8trxhquhzcbcqCNScR4+4MSLiSiBA5G7U89F8wN68B3F6AL5XUQTXYcg==} engines: {node: '>=20.0.0'} @@ -6498,30 +6205,6 @@ packages: '@scure/bip39@2.2.0': resolution: {integrity: sha512-T/Bj/YvYMNkIPq6EENO6/rcs2e7qTNuyoUXf0KBFDmp0ZDu0H2X4Lq6yC3i0c8PcWkov5EbW+yQZZbdMmk154A==} - '@sigstore/bundle@4.0.0': - resolution: {integrity: sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@sigstore/core@3.2.0': - resolution: {integrity: sha512-kxHrDQ9YgfrWUSXU0cjsQGv8JykOFZQ9ErNKbFPWzk3Hgpwu8x2hHrQ9IdA8yl+j9RTLTC3sAF3Tdq1IQCP4oA==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@sigstore/protobuf-specs@0.5.1': - resolution: {integrity: sha512-/ScWUhhoFasJsSRGTVBwId1loQjjnjAfE4djL6ZhrXRpNCmPTnUKF5Jokd58ILseOMjzET3UrMOtJPS9sYeI0g==} - engines: {node: ^18.17.0 || >=20.5.0} - - '@sigstore/sign@4.1.1': - resolution: {integrity: sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@sigstore/tuf@4.0.2': - resolution: {integrity: sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==} - engines: {node: ^20.17.0 || >=22.9.0} - - '@sigstore/verify@3.1.0': - resolution: {integrity: sha512-mNe0Iigql08YupSOGv197YdHpPPr+EzDZmfCgMc7RPNaZTw5aLN01nBl6CHJOh3BGtnMIj83EeN4butBchc8Ag==} - engines: {node: ^20.17.0 || >=22.9.0} - '@simple-git/args-pathspec@1.0.3': resolution: {integrity: sha512-ngJMaHlsWDTfjyq9F3VIQ8b7NXbBLq5j9i5bJ6XLYtD6qlDXT7fdKY2KscWWUF8t18xx052Y/PUO1K1TRc9yKA==} @@ -7511,6 +7194,11 @@ packages: svelte: ^5.46.4 vite: ^8.0.0-beta.7 || ^8.0.0 + '@svitejs/changesets-changelog-github-compact@1.2.0': + resolution: {integrity: sha512-08eKiDAjj4zLug1taXSIJ0kGL5cawjVCyJkBb6EWSg5fEPX6L+Wtr0CH2If4j5KYylz85iaZiFlUItvgJvll5g==} + engines: {node: ^14.13.1 || ^16.0.0 || >=18} + deprecated: unmaintained + '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} @@ -7704,14 +7392,6 @@ packages: '@tsconfig/svelte@5.0.8': resolution: {integrity: sha512-UkNnw1/oFEfecR8ypyHIQuWYdkPvHiwcQ78sh+ymIiYoF+uc5H1UBetbjyqT+vgGJ3qQN6nhucJviX6HesWtKQ==} - '@tufjs/canonical-json@2.0.0': - resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} - engines: {node: ^16.14.0 || >=18.0.0} - - '@tufjs/models@4.1.0': - resolution: {integrity: sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==} - engines: {node: ^20.17.0 || >=22.9.0} - '@turnkey/api-key-stamper@0.4.7': resolution: {integrity: sha512-/0/kW7v+uCnmHnGMoHSXn4Vb/MxLAIivGxX/T0L4vVoIiJalQmqcCtgiWnPWZDiJNGjMKp+jd/8j6VXgbVVozg==} engines: {node: '>=18.0.0'} @@ -7768,9 +7448,6 @@ packages: '@tybys/wasm-util@0.10.2': resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} - '@tybys/wasm-util@0.9.0': - resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} - '@types/acorn@4.0.6': resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} @@ -7852,9 +7529,6 @@ packages: '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - '@types/minimist@1.2.5': - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} @@ -7867,9 +7541,6 @@ packages: '@types/node@25.6.2': resolution: {integrity: sha512-sokuT28dxf9JT5Kady1fsXOvI4HVpjZa95NKT5y9PNTIrs2AsobR4GFAA90ZG8M+nxVRLysCXsVj6eGC7Vbrlw==} - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -8519,9 +8190,6 @@ packages: '@webcomponents/scoped-custom-element-registry@0.0.10': resolution: {integrity: sha512-wP4LF28aysE2Pq3NQRNQxko7Q0vOOwcoOSMg8FFI4S6z76UuXkYIc5ndC31dJMwso1/vSteL75LW2CEKedAJbA==} - '@yarnpkg/lockfile@1.1.0': - resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} - '@zerodev/ecdsa-validator@5.4.9': resolution: {integrity: sha512-9NVE8/sQIKRo42UOoYKkNdmmHJY8VlT4t+2MHD2ipLg21cpbY9fS17TGZh61+Bl3qlqc8pP23I6f89z9im7kuA==} peerDependencies: @@ -8545,25 +8213,13 @@ packages: peerDependencies: viem: ^2.28.0 - '@zkochan/js-yaml@0.0.7': - resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} - hasBin: true - '@zxing/text-encoding@0.9.0': resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} - JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true - abbrev@3.0.1: resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} engines: {node: ^18.17.0 || >=20.5.0} - abbrev@4.0.0: - resolution: {integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==} - engines: {node: ^20.17.0 || >=22.9.0} - abitype@1.2.4: resolution: {integrity: sha512-dpKH+N27vRjarMVTFFkeY445VTKftzGWpL0FiT7xmVmzQRKazZexzC5uHG0f6XKsVLAuUlndnbGau6lRejClxg==} peerDependencies: @@ -8614,9 +8270,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - add-stream@1.0.0: - resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} - aes-js@4.0.0-beta.5: resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} @@ -8660,10 +8313,6 @@ packages: resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} engines: {node: '>=12'} - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -8693,9 +8342,6 @@ packages: app-module-path@2.2.0: resolution: {integrity: sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==} - aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - archiver-utils@5.0.2: resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} engines: {node: '>= 14'} @@ -8710,6 +8356,9 @@ packages: argon2id@1.0.1: resolution: {integrity: sha512-rsiD3lX+0L0CsiZARp3bf9EGxprtuWAT7PpiJd+Fk53URV0/USOQkBIP1dLTV8t6aui0ECbymQ9W9YCcTd6XgA==} + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -8731,9 +8380,9 @@ packages: array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} @@ -8839,10 +8488,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - balanced-match@4.0.3: - resolution: {integrity: sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==} - engines: {node: 20 || >=22} - balanced-match@4.0.4: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} @@ -8918,8 +8563,9 @@ packages: bech32@2.0.0: resolution: {integrity: sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==} - before-after-hook@2.2.3: - resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} big.js@6.2.2: resolution: {integrity: sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==} @@ -8937,10 +8583,6 @@ packages: bignumber.js@9.3.1: resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} - bin-links@5.0.0: - resolution: {integrity: sha512-sdleLVfCjBtgO5cNjA2HVRvWBJAHs4zwenaCPMNJAJU0yNxpzj80IpjOIimkpkr+mhlA+how5poQtt53PygbHA==} - engines: {node: ^18.17.0 || >=20.5.0} - binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -9030,10 +8672,6 @@ packages: brace-expansion@2.1.0: resolution: {integrity: sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==} - brace-expansion@5.0.2: - resolution: {integrity: sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==} - engines: {node: 20 || >=22} - brace-expansion@5.0.6: resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} engines: {node: 18 || 20 || >=22} @@ -9130,10 +8768,6 @@ packages: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} - byte-size@8.1.1: - resolution: {integrity: sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==} - engines: {node: '>=12.17'} - bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -9158,10 +8792,6 @@ packages: resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - cacache@20.0.4: - resolution: {integrity: sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==} - engines: {node: ^20.17.0 || >=22.9.0} - cacheable-lookup@5.0.4: resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} engines: {node: '>=10.6.0'} @@ -9186,10 +8816,6 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -9221,18 +8847,10 @@ packages: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - chalk@3.0.0: resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} engines: {node: '>=8'} - chalk@4.1.0: - resolution: {integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==} - engines: {node: '>=10'} - chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -9297,10 +8915,6 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - ci-info@4.3.1: - resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} - engines: {node: '>=8'} - ci-info@4.4.0: resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} engines: {node: '>=8'} @@ -9327,10 +8941,6 @@ packages: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} - cli-spinners@2.6.1: - resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} - engines: {node: '>=6'} - cli-spinners@2.9.2: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} @@ -9343,10 +8953,6 @@ packages: resolution: {integrity: sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==} engines: {node: '>=20'} - cli-width@4.1.0: - resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} - engines: {node: '>= 12'} - client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} @@ -9383,38 +8989,20 @@ packages: resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} engines: {node: '>=0.10.0'} - cmd-shim@6.0.3: - resolution: {integrity: sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - cmd-shim@7.0.0: - resolution: {integrity: sha512-rtpaCbr164TPPh+zFdkWpCyZuKkjpAzODfaZCf/SVJZzJN+4bHQb/LP3Jzq5/+84um3XXY8r548XiWKSborwVw==} - engines: {node: ^18.17.0 || >=20.5.0} - cockatiel@3.2.1: resolution: {integrity: sha512-gfrHV6ZPkquExvMh9IOkKsBzNDk6sDuZ6DdBGUBkvFnTCqCxzpuq48RySgP0AnaqQkw2zynOFj9yly6T1Q2G5Q==} engines: {node: '>=16'} - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} color-string@1.9.1: resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - color@4.2.3: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} @@ -9422,10 +9010,6 @@ packages: colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - columnify@1.6.0: - resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} - engines: {node: '>=8.0.0'} - combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -9460,9 +9044,6 @@ packages: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} - common-ancestor-path@1.0.1: - resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -9487,10 +9068,6 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - concat-stream@2.0.0: - resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} - engines: {'0': node >= 6.0} - confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} @@ -9518,9 +9095,6 @@ packages: console-browserify@1.2.0: resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - constants-browserify@1.0.0: resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} @@ -9532,120 +9106,19 @@ packages: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} - conventional-changelog-angular@5.0.13: - resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} - engines: {node: '>=10'} - - conventional-changelog-angular@7.0.0: - resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} - engines: {node: '>=16'} - conventional-changelog-angular@8.3.1: resolution: {integrity: sha512-6gfI3otXK5Ph5DfCOI1dblr+kN3FAm5a97hYoQkqNZxOaYa5WKfXH+AnpsmS+iUH2mgVC2Cg2Qw9m5OKcmNrIg==} engines: {node: '>=18'} - conventional-changelog-atom@2.0.8: - resolution: {integrity: sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==} - engines: {node: '>=10'} - - conventional-changelog-codemirror@2.0.8: - resolution: {integrity: sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==} - engines: {node: '>=10'} - - conventional-changelog-config-spec@2.1.0: - resolution: {integrity: sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==} - - conventional-changelog-conventionalcommits@4.6.3: - resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==} - engines: {node: '>=10'} - conventional-changelog-conventionalcommits@9.3.1: resolution: {integrity: sha512-dTYtpIacRpcZgrvBYvBfArMmK2xvIpv2TaxM0/ZI5CBtNUzvF2x0t15HsbRABWprS6UPmvj+PzHVjSx4qAVKyw==} engines: {node: '>=18'} - conventional-changelog-core@4.2.4: - resolution: {integrity: sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==} - engines: {node: '>=10'} - - conventional-changelog-core@5.0.1: - resolution: {integrity: sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==} - engines: {node: '>=14'} - - conventional-changelog-ember@2.0.9: - resolution: {integrity: sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==} - engines: {node: '>=10'} - - conventional-changelog-eslint@3.0.9: - resolution: {integrity: sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==} - engines: {node: '>=10'} - - conventional-changelog-express@2.0.6: - resolution: {integrity: sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==} - engines: {node: '>=10'} - - conventional-changelog-jquery@3.0.11: - resolution: {integrity: sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==} - engines: {node: '>=10'} - - conventional-changelog-jshint@2.0.9: - resolution: {integrity: sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==} - engines: {node: '>=10'} - - conventional-changelog-preset-loader@2.3.4: - resolution: {integrity: sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==} - engines: {node: '>=10'} - - conventional-changelog-preset-loader@3.0.0: - resolution: {integrity: sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==} - engines: {node: '>=14'} - - conventional-changelog-writer@5.0.1: - resolution: {integrity: sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==} - engines: {node: '>=10'} - hasBin: true - - conventional-changelog-writer@6.0.1: - resolution: {integrity: sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==} - engines: {node: '>=14'} - hasBin: true - - conventional-changelog@3.1.25: - resolution: {integrity: sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==} - engines: {node: '>=10'} - - conventional-commits-filter@2.0.7: - resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==} - engines: {node: '>=10'} - - conventional-commits-filter@3.0.0: - resolution: {integrity: sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==} - engines: {node: '>=14'} - - conventional-commits-parser@3.2.4: - resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} - engines: {node: '>=10'} - hasBin: true - - conventional-commits-parser@4.0.0: - resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} - engines: {node: '>=14'} - hasBin: true - conventional-commits-parser@6.4.0: resolution: {integrity: sha512-tvRg7FIBNlyPzjdG8wWRlPHQJJHI7DylhtRGeU9Lq+JuoPh5BKpPRX83ZdLrvXuOSu5Eo/e7SzOQhU4Hd2Miuw==} engines: {node: '>=18'} hasBin: true - conventional-recommended-bump@6.1.0: - resolution: {integrity: sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==} - engines: {node: '>=10'} - hasBin: true - - conventional-recommended-bump@7.0.1: - resolution: {integrity: sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==} - engines: {node: '>=14'} - hasBin: true - convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} @@ -9698,15 +9171,6 @@ packages: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - cosmiconfig@9.0.1: resolution: {integrity: sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==} engines: {node: '>=14'} @@ -9855,21 +9319,17 @@ packages: typescript: optional: true - dargs@7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} - data-uri-to-buffer@3.0.1: resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} engines: {node: '>= 6'} + dataloader@1.4.0: + resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} + date-fns@2.30.0: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} - dateformat@3.0.3: - resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} - dateformat@4.6.3: resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} @@ -9925,10 +9385,6 @@ packages: supports-color: optional: true - decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} @@ -9944,14 +9400,6 @@ packages: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} - dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - dedent@1.7.2: resolution: {integrity: sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==} peerDependencies: @@ -10000,10 +9448,6 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - define-lazy-prop@3.0.0: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} @@ -10036,9 +9480,6 @@ packages: engines: {node: '>=18'} hasBin: true - deprecation@2.3.1: - resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} - dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -10067,10 +9508,6 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} @@ -10134,6 +9571,10 @@ packages: dijkstrajs@1.0.3: resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} @@ -10168,17 +9609,9 @@ packages: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} - dotenv-expand@12.0.3: - resolution: {integrity: sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==} - engines: {node: '>=12'} - dotenv-expand@5.1.0: resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} - dotenv@16.4.7: - resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} - engines: {node: '>=12'} - dotenv@16.6.1: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} @@ -10191,10 +9624,6 @@ packages: resolution: {integrity: sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==} engines: {node: '>=8'} - dotgitignore@2.1.0: - resolution: {integrity: sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==} - engines: {node: '>=6'} - dts-resolver@3.0.0: resolution: {integrity: sha512-1T1f+z+4tl9XD+m+0HBgWoL/nm0bOIffyWaUuUSBlFg/86IWvfx+wjNaO/ybU0AJzG9/Mi5hBUgGV6zCmWEN7Q==} engines: {node: ^22.18.0 || >=24.0.0} @@ -10240,11 +9669,6 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - ejs@5.0.1: - resolution: {integrity: sha512-COqBPFMxuPTPspXl2DkVYaDS3HtrD1GpzOGkNTJ1IYkifq/r9h8SVEFrjA3D9/VJGOEoMQcrlhpntcSUrM8k6A==} - engines: {node: '>=0.12.18'} - hasBin: true - electron-to-chromium@1.5.353: resolution: {integrity: sha512-kOrWphBi8TOZyiJZqsgqIle0lw+tzmnQK83pV9dZUd01Nm2POECSyFQMAuarzZdYqQW7FH9RaYOuaRo3h+bQ3w==} @@ -10292,8 +9716,8 @@ packages: resolution: {integrity: sha512-xe9vQb5kReirPUxgQrXA3ihgbCqssmTiM7cOZ+Gzu+VeGWgpV98lLZvp0dl4yriyAePcewxGUs9UpKD8PET9KQ==} engines: {node: '>=10.13.0'} - enquirer@2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} entities@4.5.0: @@ -10308,11 +9732,6 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - envinfo@7.13.0: - resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} - engines: {node: '>=4'} - hasBin: true - environment@1.1.0: resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} engines: {node: '>=18'} @@ -10405,10 +9824,6 @@ packages: escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} @@ -10592,10 +10007,6 @@ packages: evp_bytestokey@1.0.3: resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} - execa@5.0.0: - resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==} - engines: {node: '>=10'} - execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -10629,6 +10040,9 @@ packages: extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + 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'} @@ -10717,10 +10131,6 @@ packages: fetch-retry@6.0.0: resolution: {integrity: sha512-BUFj1aMubgib37I3v4q78fYo63Po7t4HUPTpQ6/QE6yK6cIQrP+W43FYToeTEyg5m2Y7eFUtijUuAv/PDlWuag==} - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} @@ -10755,14 +10165,6 @@ packages: find-root@1.1.0: resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - find-up@2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} - engines: {node: '>=4'} - - find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} - find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -10775,10 +10177,6 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - flatted@3.4.2: resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} @@ -10789,15 +10187,6 @@ packages: resolution: {integrity: sha512-Ik/6OCk9RQQ0T5Xw+hKNLWrjSMtv51dD4GRmJjbD5a58TIEpI5a5iXagKVl3Z5UuyslMCA8Xwnu76jQob62Yhg==} engines: {node: '>=10'} - follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - follow-redirects@1.16.0: resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} engines: {node: '>=4.0'} @@ -10871,6 +10260,14 @@ packages: resolution: {integrity: sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==} engines: {node: '>=14.14'} + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} @@ -10936,11 +10333,6 @@ packages: get-own-enumerable-property-symbols@3.0.2: resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} - get-pkg-repo@4.2.1: - resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} - engines: {node: '>=6.9.0'} - hasBin: true - get-port-please@3.2.0: resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} @@ -10956,10 +10348,6 @@ packages: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} - get-stream@6.0.0: - resolution: {integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==} - engines: {node: '>=10'} - get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -10979,48 +10367,11 @@ packages: resolution: {integrity: sha512-GvHTWcykIR/fP8cj8dMpuMMkvaeJfPvYnhq0oW+chSeIr+ldX21ifU2Ms6KBoyKZQZmVaUAAhQ2EZ68KJF8a7A==} hasBin: true - git-raw-commits@2.0.11: - resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} - engines: {node: '>=10'} - deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. - hasBin: true - - git-raw-commits@3.0.0: - resolution: {integrity: sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==} - engines: {node: '>=14'} - deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. - hasBin: true - git-raw-commits@5.0.1: resolution: {integrity: sha512-Y+csSm2GD/PCSh6Isd/WiMjNAydu0VBiG9J7EdQsNA5P9uXvLayqjmTsNlK5Gs9IhblFZqOU0yid5Il5JPoLiQ==} engines: {node: '>=18'} hasBin: true - git-remote-origin-url@2.0.0: - resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==} - engines: {node: '>=4'} - - git-semver-tags@4.1.1: - resolution: {integrity: sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==} - engines: {node: '>=10'} - deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. - hasBin: true - - git-semver-tags@5.0.1: - resolution: {integrity: sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==} - engines: {node: '>=14'} - deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. - hasBin: true - - git-up@7.0.0: - resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==} - - git-url-parse@14.0.0: - resolution: {integrity: sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==} - - gitconfiglocal@1.0.0: - resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -11034,12 +10385,6 @@ packages: deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true - glob@11.1.0: - resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} - engines: {node: 20 || >=22} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - hasBin: true - glob@13.0.6: resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} engines: {node: 18 || 20 || >=22} @@ -11060,6 +10405,10 @@ packages: resolution: {integrity: sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==} engines: {node: '>=18'} + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + globby@16.2.0: resolution: {integrity: sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==} engines: {node: '>=20'} @@ -11111,15 +10460,6 @@ packages: h3@1.15.11: resolution: {integrity: sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==} - handlebars@4.7.9: - resolution: {integrity: sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==} - engines: {node: '>=0.4.7'} - hasBin: true - - hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -11139,9 +10479,6 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - hash-base@3.0.5: resolution: {integrity: sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==} engines: {node: '>= 0.10'} @@ -11210,25 +10547,10 @@ packages: hookable@6.1.1: resolution: {integrity: sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==} - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - - hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - hosted-git-info@6.1.3: resolution: {integrity: sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hosted-git-info@8.1.0: - resolution: {integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==} - engines: {node: ^18.17.0 || >=20.5.0} - - hosted-git-info@9.0.3: - resolution: {integrity: sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==} - engines: {node: ^20.17.0 || >=22.9.0} - hpke-js@1.8.0: resolution: {integrity: sha512-N0PFQlUQsIPS9++nUNn2ZsxTPSv8pONyyrXIGZl0iiherRfS0XW1SvTd+RmepD0TN1S9zzTJkEutMIWWYt0/4w==} engines: {node: '>=16.0.0'} @@ -11247,10 +10569,6 @@ packages: resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} engines: {node: '>= 0.8'} - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} - http-shutdown@1.2.2: resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} @@ -11269,6 +10587,10 @@ packages: httpxy@0.5.1: resolution: {integrity: sha512-JPhqYiixe1A1I+MXDewWDZqeudBGU8Q9jCHYN8ML+779RQzLjTi78HBvWz4jMxUD6h2/vUL12g4q/mFM0OUw1A==} + human-id@4.1.3: + resolution: {integrity: sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==} + hasBin: true + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -11338,10 +10660,6 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore-walk@8.0.0: - resolution: {integrity: sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==} - engines: {node: ^20.17.0 || >=22.9.0} - ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -11365,11 +10683,6 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true - import-without-cache@0.4.0: resolution: {integrity: sha512-NkJQA7oZ4YHQhd2+H3BoRFKF3d/XNsiKpHZCQEMH9pDX27hQQLsTyOocyRgaIVtf8gHX3Nt3LPkR4e5EdtPAGQ==} engines: {node: ^22.18.0 || >=24.0.0} @@ -11399,30 +10712,13 @@ packages: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ini@5.0.0: - resolution: {integrity: sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==} - engines: {node: ^18.17.0 || >=20.5.0} - ini@6.0.0: resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} engines: {node: ^20.17.0 || >=22.9.0} - init-package-json@8.2.2: - resolution: {integrity: sha512-pXVMn67Jdw2hPKLCuJZj62NC9B2OIDd1R3JwZXTHXuEnfN3Uq5kJbKOSld6YEU+KOGfMD82EzxFTYz5o0SSJoA==} - engines: {node: ^20.17.0 || >=22.9.0} - inline-style-parser@0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - inquirer@12.9.6: - resolution: {integrity: sha512-603xXOgyfxhuis4nfnWaZrMaotNT0Km9XwwBNWUKbIDqeCY89jGr2F9YPEMiNhU6XjIP4VoWISMBFfcc5NgrTw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} @@ -11435,10 +10731,6 @@ packages: resolution: {integrity: sha512-HuEDBTI70aYdx1v6U97SbNx9F1+svQKBDo30o0b9fw055LMepzpOOd0Ccg9Q6tbqmBSJaMuY0fB7yw9/vjBYCA==} engines: {node: '>=12.22.0'} - ip-address@10.2.0: - resolution: {integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==} - engines: {node: '>= 12'} - ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -11477,10 +10769,6 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true - is-core-module@2.16.2: resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} engines: {node: '>= 0.4'} @@ -11576,10 +10864,6 @@ packages: resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} engines: {node: '>=12'} - is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - is-plain-obj@3.0.0: resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} engines: {node: '>=10'} @@ -11606,9 +10890,6 @@ packages: resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==} engines: {node: '>=10'} - is-ssh@1.4.1: - resolution: {integrity: sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==} - is-standalone-pwa@0.1.1: resolution: {integrity: sha512-9Cbovsa52vNQCjdXOzeQq5CnCbAcRk05aU62K20WO372NrTv0NxibLFCK6lQ4/iZEFdEA3p3t2VNOn8AJ53F5g==} @@ -11620,9 +10901,9 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-text-path@1.0.1: - resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} - engines: {node: '>=0.10.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==} @@ -11640,6 +10921,10 @@ packages: resolution: {integrity: sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==} engines: {node: '>=10'} + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -11661,10 +10946,6 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - isexe@3.1.5: - resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==} - engines: {node: '>=18'} - isexe@4.0.0: resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} engines: {node: '>=20'} @@ -11686,10 +10967,6 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jackspeak@4.2.3: - resolution: {integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==} - engines: {node: 20 || >=22} - jake@10.9.4: resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} engines: {node: '>=10'} @@ -11777,6 +11054,10 @@ packages: js-tokens@9.0.1: resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + hasBin: true + js-yaml@4.1.1: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true @@ -11797,9 +11078,6 @@ packages: json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -11807,14 +11085,6 @@ packages: resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - json-parse-even-better-errors@4.0.0: - resolution: {integrity: sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==} - engines: {node: ^18.17.0 || >=20.5.0} - - json-parse-even-better-errors@5.0.0: - resolution: {integrity: sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==} - engines: {node: ^20.17.0 || >=22.9.0} - json-rpc-engine@6.1.0: resolution: {integrity: sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==} engines: {node: '>=10.0.0'} @@ -11831,9 +11101,6 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json-stringify-nice@1.1.4: - resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} - json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} @@ -11842,19 +11109,15 @@ packages: engines: {node: '>=6'} hasBin: true - jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - jsonc-parser@3.3.1: resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + jsonfile@6.2.1: resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} - jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} - jsontokens@4.0.1: resolution: {integrity: sha512-+MO415LEN6M+3FGsRz4wU20g7N2JA+2j9d9+pGaNJHviG4L8N0qzavGyENw6fJqsq9CcrHOIL6iWX5yeTZ86+Q==} @@ -11862,12 +11125,6 @@ packages: resolution: {integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==} engines: {node: '>=12.20'} - just-diff-apply@5.5.0: - resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} - - just-diff@6.0.2: - resolution: {integrity: sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==} - keccak@3.0.4: resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} engines: {node: '>=10.0.0'} @@ -11878,10 +11135,6 @@ packages: keyvaluestorage-interface@1.0.0: resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==} - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} @@ -11909,11 +11162,6 @@ packages: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} - lerna@9.0.7: - resolution: {integrity: sha512-PMjbSWYfwL1yZ5c1D2PZuFyzmtYhLdn0f76uG8L25g6eYy34j+2jPb4Q6USx1UJvxVtxkdVEeAAWS/WxgJ8VZA==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - hasBin: true - leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -11922,14 +11170,6 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - libnpmaccess@10.0.3: - resolution: {integrity: sha512-JPHTfWJxIK+NVPdNMNGnkz4XGX56iijPbe0qFWbdt68HL+kIvSzh+euBL8npLZvl2fpaxo+1eZSdoG15f5YdIQ==} - engines: {node: ^20.17.0 || >=22.9.0} - - libnpmpublish@11.1.2: - resolution: {integrity: sha512-tNcU3cLH7toloAzhOOrBDhjzgbxpyuYvkf+BPPnnJCdc5EIcdJ8JcT+SglvCQKKyZ6m9dVXtCVlJcA6csxKdEA==} - engines: {node: ^20.17.0 || >=22.9.0} - libphonenumber-js@1.13.0: resolution: {integrity: sha512-N12qmdu0BM1wVNkMKYOoJR4fTOZDblrKNsOqGbKoUZrYsYLX2zx1O5X+vhK0WJPBU/+/kh9tCr8x0a7t1puGWg==} @@ -12017,10 +11257,6 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lines-and-columns@2.0.3: - resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lint-staged@17.0.4: resolution: {integrity: sha512-+rU9lSUyVOZ/hDUmRLVGzyS2v73cDdQjX+XQz1AaOdIE4RysLq0HoPW2HrrgeNCLklkhi904VBU1bmgWLHVnkA==} engines: {node: '>=22.22.1'} @@ -12055,14 +11291,6 @@ packages: lit@3.3.2: resolution: {integrity: sha512-NF9zbsP79l4ao2SNrH3NkfmFgN/hBYSQo90saIVI1o5GpjAdCPVstVzO1MrLOakHoEhYkrtRjPK6Ob521aoYWQ==} - load-json-file@4.0.0: - resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} - engines: {node: '>=4'} - - load-json-file@6.2.0: - resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} - engines: {node: '>=8'} - loader-utils@3.3.1: resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} engines: {node: '>= 12.13.0'} @@ -12074,14 +11302,6 @@ packages: locate-character@3.0.0: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} - locate-path@2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} - engines: {node: '>=4'} - - locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} - locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -12109,12 +11329,12 @@ packages: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. - lodash.ismatch@4.4.0: - resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} - lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + lodash.throttle@4.1.1: resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} @@ -12160,10 +11380,6 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} @@ -12196,25 +11412,9 @@ packages: magicast@0.5.2: resolution: {integrity: sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==} - make-fetch-happen@15.0.2: - resolution: {integrity: sha512-sI1NY4lWlXBAfjmCtVWIIpBypbBdhHtcjnwnv+gtCnsaOffyFil3aidszGC8hgzJe+fT1qix05sWxmD/Bmf/oQ==} - engines: {node: ^20.17.0 || >=22.9.0} - - make-fetch-happen@15.0.5: - resolution: {integrity: sha512-uCbIa8jWWmQZt4dSnEStkVC6gdakiinAm4PiGsywIkguF0eWMdcjDz0ECYhUolFU3pFLOev9VNPCEygydXnddg==} - engines: {node: ^20.17.0 || >=22.9.0} - makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - - map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - markdown-extensions@1.1.1: resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} engines: {node: '>=0.10.0'} @@ -12294,10 +11494,6 @@ packages: resolution: {integrity: sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==} engines: {node: '>=20'} - meow@8.1.2: - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} - engines: {node: '>=10'} - merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} @@ -12535,17 +11731,10 @@ packages: minimalistic-crypto-utils@1.0.1: resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} - minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} - engines: {node: 18 || 20 || >=22} - minimatch@10.2.5: resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} - minimatch@3.1.4: - resolution: {integrity: sha512-twmL+S8+7yIsE9wsqgzU3E8/LumN3M3QELrBZ20OdmQ9jB2JvW5oZtBEmft84k/Gs5CG9mqtWc6Y9vW+JEzGxw==} - minimatch@3.1.5: resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} @@ -12557,10 +11746,6 @@ packages: resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} engines: {node: '>=16 || 14 >=14.17'} - minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -12568,18 +11753,6 @@ packages: resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} engines: {node: '>= 8'} - minipass-collect@2.0.1: - resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} - engines: {node: '>=16 || 14 >=14.17'} - - minipass-fetch@4.0.1: - resolution: {integrity: sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==} - engines: {node: ^18.17.0 || >=20.5.0} - - minipass-fetch@5.0.2: - resolution: {integrity: sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==} - engines: {node: ^20.17.0 || >=22.9.0} - minipass-flush@1.0.7: resolution: {integrity: sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==} engines: {node: '>= 8'} @@ -12588,14 +11761,6 @@ packages: resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} engines: {node: '>=8'} - minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} - - minipass-sized@2.0.0: - resolution: {integrity: sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==} - engines: {node: '>=8'} - minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} @@ -12648,10 +11813,6 @@ packages: modern-ahocorasick@1.1.0: resolution: {integrity: sha512-sEKPVl2rM+MNVkGQt3ChdmD8YsigmXdn5NifZn6jiwn9LRJpWm8F3guhaqrJT/JOat6pwpbXEk6kv+b9DMIjsQ==} - modify-values@1.0.1: - resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} - engines: {node: '>=0.10.0'} - module-definition@6.0.2: resolution: {integrity: sha512-SvAU3lB0+Yjbq55yHY3wkRZBOh+fhU1SnIF3IFbTewv6mtAh7yUT8ACHAJ2mGIJ7tCes2QuCL/cl6m0JSZ/ArA==} engines: {node: '>=18'} @@ -12699,10 +11860,6 @@ packages: multiformats@9.9.0: resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} - mute-stream@2.0.0: - resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} - engines: {node: ^18.17.0 || >=20.5.0} - nanoclone@0.2.1: resolution: {integrity: sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==} @@ -12733,9 +11890,6 @@ packages: resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} engines: {node: '>= 0.6'} - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - next@15.5.18: resolution: {integrity: sha512-eKL8zUJkX9Y5lE+RX/2YJoItVdGlIscyVyboeD9wSpp0PaGqjoA4tTpT2qPqz9ax+5IzGESyLSeZ/RCwbSZ2uQ==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} @@ -12814,11 +11968,6 @@ packages: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true - node-gyp@12.3.0: - resolution: {integrity: sha512-QNcUWM+HgJplcPzBvFBZ9VXacyGZ4+VTOb80PwWR+TlVzoHbRKULNEzpRsnaoxG3Wzr7Qh7BYxGDU3CbKib2Yg==} - engines: {node: ^20.17.0 || >=22.9.0} - hasBin: true - node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} @@ -12841,18 +11990,6 @@ packages: engines: {node: ^18.17.0 || >=20.5.0} hasBin: true - nopt@9.0.0: - resolution: {integrity: sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==} - engines: {node: ^20.17.0 || >=22.9.0} - hasBin: true - - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - - normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - normalize-package-data@5.0.0: resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -12865,70 +12002,22 @@ packages: resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} engines: {node: '>=10'} - npm-bundled@4.0.0: - resolution: {integrity: sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==} - engines: {node: ^18.17.0 || >=20.5.0} - - npm-bundled@5.0.0: - resolution: {integrity: sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==} - engines: {node: ^20.17.0 || >=22.9.0} - npm-install-checks@6.3.0: resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - npm-install-checks@7.1.2: - resolution: {integrity: sha512-z9HJBCYw9Zr8BqXcllKIs5nI+QggAImbBdHphOzVYrz2CB4iQ6FzWyKmlqDZua+51nAu7FcemlbTc9VgQN5XDQ==} - engines: {node: ^18.17.0 || >=20.5.0} - - npm-install-checks@8.0.0: - resolution: {integrity: sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==} - engines: {node: ^20.17.0 || >=22.9.0} - npm-normalize-package-bin@3.0.1: resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - npm-normalize-package-bin@4.0.0: - resolution: {integrity: sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==} - engines: {node: ^18.17.0 || >=20.5.0} - - npm-normalize-package-bin@5.0.0: - resolution: {integrity: sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==} - engines: {node: ^20.17.0 || >=22.9.0} - npm-package-arg@10.1.0: resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - npm-package-arg@12.0.2: - resolution: {integrity: sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==} - engines: {node: ^18.17.0 || >=20.5.0} - - npm-package-arg@13.0.1: - resolution: {integrity: sha512-6zqls5xFvJbgFjB1B2U6yITtyGBjDBORB7suI4zA4T/sZ1OmkMFlaQSNB/4K0LtXNA1t4OprAFxPisadK5O2ag==} - engines: {node: ^20.17.0 || >=22.9.0} - - npm-packlist@10.0.3: - resolution: {integrity: sha512-zPukTwJMOu5X5uvm0fztwS5Zxyvmk38H/LfidkOMt3gbZVCyro2cD/ETzwzVPcWZA3JOyPznfUN/nkyFiyUbxg==} - engines: {node: ^20.17.0 || >=22.9.0} - - npm-pick-manifest@10.0.0: - resolution: {integrity: sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==} - engines: {node: ^18.17.0 || >=20.5.0} - - npm-pick-manifest@11.0.3: - resolution: {integrity: sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==} - engines: {node: ^20.17.0 || >=22.9.0} - npm-pick-manifest@8.0.2: resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - npm-registry-fetch@19.1.0: - resolution: {integrity: sha512-xyZLfs7TxPu/WKjHUs0jZOPinzBAI32kEUel6za0vH+JUTnFZ5zbHI1ZoGZRDm6oMjADtrli6FxtMlk/5ABPNw==} - engines: {node: ^20.17.0 || >=22.9.0} - npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -12964,18 +12053,6 @@ packages: '@types/node': optional: true - nx@22.7.1: - resolution: {integrity: sha512-SadJUQY57MiwRIetm9rhZhdpFeOe1Csib2Vg9C423Pw/h0fZE14qUo6+OBby9vLh5QCkRfRZ0WaHkeO5q6yNtA==} - hasBin: true - peerDependencies: - '@swc-node/register': ^1.11.1 - '@swc/core': ^1.15.8 - peerDependenciesMeta: - '@swc-node/register': - optional: true - '@swc/core': - optional: true - nypm@0.6.6: resolution: {integrity: sha512-vRyr0r4cbBapw07Xw8xrj9Teq3o7MUD35rSaTcanDbW+aK2XHDgJFiU6ZTj2GBw7Q12ysdsyFss+Vdz4hQ0Y6Q==} engines: {node: '>=18'} @@ -13070,10 +12147,6 @@ packages: resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} engines: {node: '>=8'} - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - openapi-fetch@0.13.8: resolution: {integrity: sha512-yJ4QKRyNxE44baQ9mY5+r/kAzZ8yXMemtNAOFwOzRXJscdjSxxzWSNlyBAr+o5JjkUw9Lc3W7OIoca0cY3PYnQ==} @@ -13084,10 +12157,6 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} - ora@5.3.0: - resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} - engines: {node: '>=10'} - ora@5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} @@ -13099,6 +12168,9 @@ packages: os-browserify@0.3.0: resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==} + outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + outdent@0.8.0: resolution: {integrity: sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==} @@ -13178,18 +12250,14 @@ packages: resolution: {integrity: sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==} engines: {node: '>=16.17'} + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + p-filter@4.1.0: resolution: {integrity: sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==} engines: {node: '>=18'} - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - - p-limit@1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} - p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -13198,14 +12266,6 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-locate@2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} - - p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} - p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -13214,9 +12274,9 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - p-map-series@2.1.0: - resolution: {integrity: sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==} - engines: {node: '>=8'} + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} @@ -13226,26 +12286,10 @@ packages: resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} engines: {node: '>=18'} - p-pipe@3.1.0: - resolution: {integrity: sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==} - engines: {node: '>=8'} - - p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} - engines: {node: '>=8'} - p-queue@9.1.0: resolution: {integrity: sha512-O/ZPaXuQV29uSLbxWBGGZO1mCQXV2BLIwUr59JUU9SoH76mnYvtms7aafH/isNSNGwuEfP6W/4xD0/TJXxrizw==} engines: {node: '>=20'} - p-reduce@2.1.0: - resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} - engines: {node: '>=8'} - - p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} - p-timeout@6.1.4: resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} engines: {node: '>=14.16'} @@ -13254,34 +12298,19 @@ packages: resolution: {integrity: sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==} engines: {node: '>=20'} - p-try@1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} - p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - p-waterfall@2.1.1: - resolution: {integrity: sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==} - engines: {node: '>=8'} - package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + package-manager-detector@0.2.11: + resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} + package-manager-detector@1.6.0: resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} - pacote@21.0.1: - resolution: {integrity: sha512-LHGIUQUrcDIJUej53KJz1BPvUuHrItrR2yrnN0Kl9657cJ0ZT6QJHk9wWPBnQZhYT5KLyZWrk9jaYc2aKDu4yw==} - engines: {node: ^20.17.0 || >=22.9.0} - hasBin: true - - pacote@21.5.0: - resolution: {integrity: sha512-VtZ0SB8mb5Tzw3dXDfVAIjhyVKUHZkS/ZH9/5mpKenwC9sFOXNI0JI7kEF7IMkwOnsWMFrvAZHzx1T5fmrp9FQ==} - engines: {node: ^20.17.0 || >=22.9.0} - hasBin: true - pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} @@ -13299,17 +12328,9 @@ packages: resolution: {integrity: sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==} engines: {node: '>= 0.10'} - parse-conflict-json@4.0.0: - resolution: {integrity: sha512-37CN2VtcuvKgHUs8+0b1uJeEsbGn61GRHz469C94P5xiOoqpDYJYwjg4RY9Vmz39WyZAVkR5++nbJwLMIgOCnQ==} - engines: {node: ^18.17.0 || >=20.5.0} - parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -13318,12 +12339,6 @@ packages: resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} engines: {node: '>=6'} - parse-path@7.1.0: - resolution: {integrity: sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==} - - parse-url@8.1.0: - resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} - parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -13331,10 +12346,6 @@ packages: path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -13365,10 +12376,6 @@ packages: path-to-regexp@0.1.13: resolution: {integrity: sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==} - path-type@3.0.0: - resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} - engines: {node: '>=4'} - path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -13417,14 +12424,14 @@ packages: engines: {node: '>=0.10'} hasBin: true - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - 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'} @@ -13456,10 +12463,6 @@ packages: resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==} hasBin: true - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - pkg-dir@5.0.0: resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} engines: {node: '>=10'} @@ -13842,14 +12845,6 @@ packages: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - proc-log@5.0.0: - resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==} - engines: {node: ^18.17.0 || >=20.5.0} - - proc-log@6.1.0: - resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==} - engines: {node: ^20.17.0 || >=22.9.0} - process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -13863,16 +12858,6 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} - proggy@3.0.0: - resolution: {integrity: sha512-QE8RApCM3IaRRxVzxrjbgNMpQEX6Wu0p0KBeoSiSEw5/bsGwZHsshF4LCxH2jp/r6BU+bqA3LrMDEYNfJnpD8Q==} - engines: {node: ^18.17.0 || >=20.5.0} - - promise-all-reject-late@1.0.1: - resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} - - promise-call-limit@3.0.2: - resolution: {integrity: sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==} - promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} peerDependencies: @@ -13892,10 +12877,6 @@ packages: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} - promzard@2.0.0: - resolution: {integrity: sha512-Ncd0vyS2eXGOjchIRg6PVCYKetJYrW1BSbbIo+bKdig61TB6nH2RQNF2uP+qMpsI73L/jURLWojcw8JNIKZ3gg==} - engines: {node: ^18.17.0 || >=20.5.0} - prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -13912,9 +12893,6 @@ packages: resolution: {integrity: sha512-NGnrxS/nLKUo5nkbVQxlC71sB4hdfImdYIbFeSCidxtwATx0AHRPcANSLd0q5Bb2BkoSWo2iisQhGg5/r+ihbA==} engines: {node: '>=12.0.0'} - protocols@2.0.2: - resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==} - proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -13955,14 +12933,6 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - q@1.5.1: - resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} - engines: {node: '>=0.6.0', teleport: '>=0.2.0'} - deprecated: |- - You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. - - (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) - qr-code-styling@1.9.2: resolution: {integrity: sha512-RgJaZJ1/RrXJ6N0j7a+pdw3zMBmzZU4VN2dtAZf8ZggCfRB5stEQ3IoDNGaNhYY3nnZKYlYSLl5YkfWN5dPutg==} engines: {node: '>=18.18.0'} @@ -14025,10 +12995,6 @@ packages: quick-format-unescaped@4.0.4: resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} - quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - quick-lru@5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} @@ -14277,33 +13243,9 @@ packages: resolution: {integrity: sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==} engines: {node: '>=0.10.0'} - read-cmd-shim@4.0.0: - resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - read-cmd-shim@5.0.0: - resolution: {integrity: sha512-SEbJV7tohp3DAAILbEMPXavBjAnMN0tVnh4+9G8ihV4Pq3HYF9h8QNez9zkJ1ILkv9G2BjdzwctznGZXgu/HGw==} - engines: {node: ^18.17.0 || >=20.5.0} - - read-pkg-up@3.0.0: - resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} - engines: {node: '>=4'} - - read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - - read-pkg@3.0.0: - resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} - engines: {node: '>=4'} - - read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - - read@4.1.0: - resolution: {integrity: sha512-uRfX6K+f+R8OOrYScaM3ixPY4erg69f8DN6pgTvMcA9iRc8iDhwrA4m3Yu8YYKsXJgVvum+m8PkRboZwwuLzYA==} - engines: {node: ^18.17.0 || >=20.5.0} + read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -14442,10 +13384,6 @@ packages: resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - resolve-dependency-path@4.0.1: resolution: {integrity: sha512-YQftIIC4vzO9UMhO/sCgXukNyiwVRCVaxiWskCBy7Zpqkplm8kTAISZ8O1MoKW1ca6xzgLUBjZTcDgypXvXxiQ==} engines: {node: '>=18'} @@ -14553,10 +13491,6 @@ packages: resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} engines: {node: '>=18'} - run-async@4.0.6: - resolution: {integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==} - engines: {node: '>=0.12.0'} - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -14615,10 +13549,6 @@ packages: secure-password-utilities@0.2.1: resolution: {integrity: sha512-znUg8ae3cpuAaogiFBhP82gD2daVkSz4Qv/L7OWjB7wWvfbCdeqqQuJkm2/IvhKQPOV0T739YPR6rb7vs0uWaw==} - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -14638,11 +13568,6 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.7.4: - resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} - engines: {node: '>=10'} - hasBin: true - semver@7.8.0: resolution: {integrity: sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==} engines: {node: '>=10'} @@ -14758,10 +13683,6 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - sigstore@4.1.0: - resolution: {integrity: sha512-/fUgUhYghuLzVT/gaJoeVehLCgZiUxPCPMcyVNY0lIf/cTCz58K/WTI7PefDarXxp9nUKpEwg1yyz3eSBMTtgA==} - engines: {node: ^20.17.0 || >=22.9.0} - simple-git@3.36.0: resolution: {integrity: sha512-cGQjLjK8bxJw4QuYT7gxHw3/IouVESbhahSsHrX97MzCL1gu2u7oy38W6L2ZIGECEfIBG4BabsWDPjBxJENv9Q==} @@ -14794,10 +13715,6 @@ packages: slow-redact@0.3.2: resolution: {integrity: sha512-MseHyi2+E/hBRqdOi5COy6wZ7j7DxXRz9NkseavNYSvvWC06D8a5cidVZX3tcG5eCW3NIyVU4zT63hw0Q486jw==} - smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - smob@1.6.1: resolution: {integrity: sha512-KAkBqZl3c2GvNgNhcoyJae1aKldDW0LO279wF9bk1PnluRTETKBq0WyzRXxEhoQLk56yHaOY4JCBEKDuJIET5g==} engines: {node: '>=20.0.0'} @@ -14814,14 +13731,6 @@ packages: 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'} - - socks@2.8.9: - resolution: {integrity: sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - sonic-boom@2.8.0: resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} @@ -14858,6 +13767,9 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + spawndamnit@3.0.1: + resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} + spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -14874,15 +13786,12 @@ packages: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} engines: {node: '>=6'} - split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} - split@1.0.1: - resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} srvx@0.11.15: resolution: {integrity: sha512-iXsux0UcOjdvs0LCMa2Ws3WwcDUozA3JN3BquNXkaFPP7TpRqgunKdEgoZ/uwb1J6xaYHfxtz9Twlh6yzwM6Tg==} @@ -14893,14 +13802,6 @@ packages: resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ssri@12.0.0: - resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==} - engines: {node: ^18.17.0 || >=20.5.0} - - ssri@13.0.1: - resolution: {integrity: sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==} - engines: {node: ^20.17.0 || >=22.9.0} - stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -14918,11 +13819,6 @@ packages: standard-as-callback@2.1.0: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} - standard-version@9.5.0: - resolution: {integrity: sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==} - engines: {node: '>=10'} - hasBin: true - state-local@1.0.7: resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==} @@ -15009,10 +13905,6 @@ packages: resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} engines: {node: '>=4'} - stringify-package@1.0.1: - resolution: {integrity: sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==} - deprecated: This module is not used anymore, and has been replaced by @npmcli/package-json - strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -15025,10 +13917,6 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -15234,10 +14122,6 @@ packages: engines: {node: '>=10'} deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - tar@7.5.11: - resolution: {integrity: sha512-ChjMH33/KetonMTAtpYdgUFr0tbz69Fp2v7zWxQfYZX4g5ZN2nOBXm1R2xyA+lMIKrLKIoKAwFj93jE/avX9cQ==} - engines: {node: '>=18'} - tar@7.5.15: resolution: {integrity: sha512-dzGK0boVlC4W5QFuQN1EFSl3bIDYsk7Tj40U6eIBnK2k/8ml7TZ5agbI5j5+qnoVcAA+rNtBml8SEiLxZpNqRQ==} engines: {node: '>=18'} @@ -15249,6 +14133,10 @@ packages: resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==} engines: {node: '>=6.0.0'} + term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + terser@5.47.1: resolution: {integrity: sha512-tPbLXTI6ohPASb/1YViL428oEHu6/qv1OxqYnfaonVCFHqx4+wCd95pHrQWsL5X4pl90CTyW9piSAsS2L0VoMw==} engines: {node: '>=10'} @@ -15264,10 +14152,6 @@ packages: resolution: {integrity: sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==} deprecated: no longer maintained - text-extensions@1.9.0: - resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} - engines: {node: '>=0.10'} - thread-stream@0.15.2: resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} @@ -15280,12 +14164,6 @@ packages: through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - timers-browserify@2.0.12: resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==} engines: {node: '>=0.6.0'} @@ -15310,10 +14188,6 @@ packages: resolution: {integrity: sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==} engines: {node: '>=18'} - tinyglobby@0.2.12: - resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.16: resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} engines: {node: '>=12.0.0'} @@ -15329,10 +14203,6 @@ packages: resolution: {integrity: sha512-TkEq38COU640mzOKPk4D1oH3FFVvwEtMaKIfw/+F/umVsy7ONWu8PPQH0c11qJ/Jq/zbcQGprXGsT8GcaDSmJg==} hasBin: true - tmp@0.2.4: - resolution: {integrity: sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==} - engines: {node: '>=14.14'} - tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -15372,17 +14242,9 @@ packages: resolution: {integrity: sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==} engines: {node: '>=0.6'} - treeverse@3.0.0: - resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - tronweb@6.2.2: resolution: {integrity: sha512-jRBf4+7fJ0HUVzveBi0tE21r3EygCNtbYE92T38Sxlwr/x320W2vz+dvGLOIpp4kW/CvJ4HLvtnb6U30A0V2eA==} @@ -15471,10 +14333,6 @@ packages: tty-browserify@0.0.1: resolution: {integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==} - tuf-js@4.1.0: - resolution: {integrity: sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==} - engines: {node: ^20.17.0 || >=22.9.0} - turbo-stream@2.4.1: resolution: {integrity: sha512-v8kOJXpG3WoTN/+at8vK7erSzo6nW6CIaeOvNOkHQVDajfz1ZVeSxCbc6tOH4hrGZW7VUCV0TOXd8CPzYnYkrw==} @@ -15485,22 +14343,10 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-fest@0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} - engines: {node: '>=10'} - - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - type-fest@0.7.1: resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} engines: {node: '>=8'} - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - type-fest@5.6.0: resolution: {integrity: sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==} engines: {node: '>=20'} @@ -15516,9 +14362,6 @@ packages: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} - typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typeforce@1.18.0: resolution: {integrity: sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==} @@ -15553,11 +14396,6 @@ packages: ufo@1.6.4: resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} - uglify-js@3.19.3: - resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} - engines: {node: '>=0.8.0'} - hasBin: true - uint8array-tools@0.0.8: resolution: {integrity: sha512-xS6+s8e0Xbx++5/0L+yyexukU7pz//Yg6IHg3BKhXotg1JcYtgxVcUctQ0HxLByiJzpAkNFawz1Nz5Xadzo82g==} engines: {node: '>=14.0.0'} @@ -15670,8 +14508,9 @@ packages: unist-util-visit@4.1.2: resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} - universal-user-agent@6.0.1: - resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} @@ -15773,10 +14612,6 @@ packages: unwasm@0.5.3: resolution: {integrity: sha512-keBgTSfp3r6+s9ZcSma+0chwxQdmLbB5+dAD9vjtB21UTMYuKAxHXCU1K2CbCtnP09EaWeRvACnXk0EJtUx+hw==} - upath@2.0.1: - resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} - engines: {node: '>=4'} - update-browserslist-db@1.2.3: resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true @@ -15899,10 +14734,6 @@ packages: resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - validate-npm-package-name@6.0.2: - resolution: {integrity: sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==} - engines: {node: ^18.17.0 || >=20.5.0} - validator@13.15.23: resolution: {integrity: sha512-4yoz1kEWqUjzi5zsPbAS/903QXSYp0UOtHsPpp7p9rHAw/W+dkInskAE386Fat3oKRROwO98d9ZB0G4cObgUyw==} engines: {node: '>= 0.10'} @@ -16378,11 +15209,6 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true - which@5.0.0: - resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} - engines: {node: ^18.17.0 || >=20.5.0} - hasBin: true - which@6.0.1: resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} engines: {node: ^20.17.0 || >=22.9.0} @@ -16393,9 +15219,6 @@ packages: engines: {node: '>=8'} hasBin: true - wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - wif@2.0.6: resolution: {integrity: sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==} @@ -16403,9 +15226,6 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - wrap-ansi@10.0.0: resolution: {integrity: sha512-SGcvg80f0wUy2/fXES19feHMz8E0JoXv2uNgHOu4Dgi2OrCy1lqwFYEJz1BLbDI0exjPMe/ZdzZ/YpGECBG/aQ==} engines: {node: '>=20'} @@ -16429,14 +15249,6 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - write-file-atomic@6.0.0: - resolution: {integrity: sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==} - engines: {node: ^18.17.0 || >=20.5.0} - ws@7.5.10: resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} @@ -16525,11 +15337,6 @@ packages: resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} engines: {node: '>= 6'} - yaml@2.8.0: - resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} - engines: {node: '>= 14.6'} - hasBin: true - yaml@2.8.4: resolution: {integrity: sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog==} engines: {node: '>= 14.6'} @@ -16571,10 +15378,6 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yoctocolors-cjs@2.1.3: - resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} - engines: {node: '>=18'} - yoctocolors@2.1.2: resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} engines: {node: '>=18'} @@ -17102,6 +15905,156 @@ snapshots: '@btckit/types@0.0.19': {} + '@changesets/apply-release-plan@7.1.1': + dependencies: + '@changesets/config': 3.1.4 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.4 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.8 + resolve-from: 5.0.0 + semver: 7.8.0 + + '@changesets/assemble-release-plan@6.0.10': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.4 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + semver: 7.8.0 + + '@changesets/changelog-git@0.2.1': + dependencies: + '@changesets/types': 6.1.0 + + '@changesets/cli@2.31.0(@types/node@25.6.2)': + dependencies: + '@changesets/apply-release-plan': 7.1.1 + '@changesets/assemble-release-plan': 6.0.10 + '@changesets/changelog-git': 0.2.1 + '@changesets/config': 3.1.4 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.4 + '@changesets/get-release-plan': 4.0.16 + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.7 + '@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@25.6.2) + '@manypkg/get-packages': 1.1.3 + ansi-colors: 4.1.3 + enquirer: 2.4.1 + fs-extra: 7.0.1 + mri: 1.2.0 + package-manager-detector: 0.2.11 + picocolors: 1.1.1 + resolve-from: 5.0.0 + semver: 7.8.0 + spawndamnit: 3.0.1 + term-size: 2.2.1 + transitivePeerDependencies: + - '@types/node' + + '@changesets/config@3.1.4': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.4 + '@changesets/logger': 0.1.1 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.8 + + '@changesets/errors@0.2.0': + dependencies: + extendable-error: 0.1.7 + + '@changesets/get-dependents-graph@2.1.4': + dependencies: + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + picocolors: 1.1.1 + semver: 7.8.0 + + '@changesets/get-github-info@0.6.0(encoding@0.1.13)': + dependencies: + dataloader: 1.4.0 + node-fetch: 2.7.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + + '@changesets/get-release-plan@4.0.16': + dependencies: + '@changesets/assemble-release-plan': 6.0.10 + '@changesets/config': 3.1.4 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.7 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/get-version-range-type@0.4.0': {} + + '@changesets/git@3.0.4': + dependencies: + '@changesets/errors': 0.2.0 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.8 + spawndamnit: 3.0.1 + + '@changesets/logger@0.1.1': + dependencies: + picocolors: 1.1.1 + + '@changesets/parse@0.4.3': + dependencies: + '@changesets/types': 6.1.0 + js-yaml: 4.1.1 + + '@changesets/pre@2.0.2': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + + '@changesets/read@0.6.7': + dependencies: + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/parse': 0.4.3 + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + p-filter: 2.1.0 + picocolors: 1.1.1 + + '@changesets/should-skip-package@0.1.2': + dependencies: + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/types@4.1.0': {} + + '@changesets/types@6.1.0': {} + + '@changesets/write@0.4.0': + dependencies: + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + human-id: 4.1.3 + prettier: 2.8.8 + '@clack/core@1.3.0': dependencies: fast-wrap-ansi: 0.2.0 @@ -18193,24 +17146,11 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/core@1.4.5': - dependencies: - '@emnapi/wasi-threads': 1.0.4 - tslib: 2.8.1 - '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.4.5': - dependencies: - tslib: 2.8.1 - - '@emnapi/wasi-threads@1.0.4': - dependencies: - tslib: 2.8.1 - '@emnapi/wasi-threads@1.2.1': dependencies: tslib: 2.8.1 @@ -18701,8 +17641,6 @@ snapshots: '@floating-ui/utils@0.2.11': {} - '@gar/promise-retry@1.0.3': {} - '@gemini-wallet/core@0.3.2(viem@2.48.11(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@6.0.6)(zod@4.4.3))': dependencies: '@metamask/rpc-errors': 7.0.2 @@ -18791,8 +17729,6 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@hutson/parse-repository-url@3.0.2': {} - '@img/colour@1.1.0': optional: true @@ -18965,54 +17901,6 @@ snapshots: '@img/sharp-win32-x64@0.34.5': optional: true - '@inquirer/ansi@1.0.2': {} - - '@inquirer/checkbox@4.3.2(@types/node@25.6.2)': - dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.6.2) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.6.2) - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 25.6.2 - - '@inquirer/confirm@5.1.21(@types/node@25.6.2)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@25.6.2) - '@inquirer/type': 3.0.10(@types/node@25.6.2) - optionalDependencies: - '@types/node': 25.6.2 - - '@inquirer/core@10.3.2(@types/node@25.6.2)': - dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.6.2) - cli-width: 4.1.0 - mute-stream: 2.0.0 - signal-exit: 4.1.0 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 25.6.2 - - '@inquirer/editor@4.2.23(@types/node@25.6.2)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@25.6.2) - '@inquirer/external-editor': 1.0.3(@types/node@25.6.2) - '@inquirer/type': 3.0.10(@types/node@25.6.2) - optionalDependencies: - '@types/node': 25.6.2 - - '@inquirer/expand@4.0.23(@types/node@25.6.2)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@25.6.2) - '@inquirer/type': 3.0.10(@types/node@25.6.2) - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 25.6.2 - '@inquirer/external-editor@1.0.3(@types/node@25.6.2)': dependencies: chardet: 2.1.1 @@ -19020,76 +17908,6 @@ snapshots: optionalDependencies: '@types/node': 25.6.2 - '@inquirer/figures@1.0.15': {} - - '@inquirer/input@4.3.1(@types/node@25.6.2)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@25.6.2) - '@inquirer/type': 3.0.10(@types/node@25.6.2) - optionalDependencies: - '@types/node': 25.6.2 - - '@inquirer/number@3.0.23(@types/node@25.6.2)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@25.6.2) - '@inquirer/type': 3.0.10(@types/node@25.6.2) - optionalDependencies: - '@types/node': 25.6.2 - - '@inquirer/password@4.0.23(@types/node@25.6.2)': - dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.6.2) - '@inquirer/type': 3.0.10(@types/node@25.6.2) - optionalDependencies: - '@types/node': 25.6.2 - - '@inquirer/prompts@7.10.1(@types/node@25.6.2)': - dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@25.6.2) - '@inquirer/confirm': 5.1.21(@types/node@25.6.2) - '@inquirer/editor': 4.2.23(@types/node@25.6.2) - '@inquirer/expand': 4.0.23(@types/node@25.6.2) - '@inquirer/input': 4.3.1(@types/node@25.6.2) - '@inquirer/number': 3.0.23(@types/node@25.6.2) - '@inquirer/password': 4.0.23(@types/node@25.6.2) - '@inquirer/rawlist': 4.1.11(@types/node@25.6.2) - '@inquirer/search': 3.2.2(@types/node@25.6.2) - '@inquirer/select': 4.4.2(@types/node@25.6.2) - optionalDependencies: - '@types/node': 25.6.2 - - '@inquirer/rawlist@4.1.11(@types/node@25.6.2)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@25.6.2) - '@inquirer/type': 3.0.10(@types/node@25.6.2) - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 25.6.2 - - '@inquirer/search@3.2.2(@types/node@25.6.2)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@25.6.2) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.6.2) - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 25.6.2 - - '@inquirer/select@4.4.2(@types/node@25.6.2)': - dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.6.2) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.6.2) - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 25.6.2 - - '@inquirer/type@3.0.10(@types/node@25.6.2)': - optionalDependencies: - '@types/node': 25.6.2 - '@internationalized/date@3.12.1': dependencies: '@swc/helpers': 0.5.21 @@ -19113,18 +17931,12 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@isaacs/cliui@9.0.0': {} - '@isaacs/fs-minipass@4.0.1': dependencies: minipass: 7.1.3 - '@isaacs/string-locale-compare@1.1.0': {} - '@isaacs/ttlcache@1.4.1': {} - '@jest/diff-sequences@30.0.1': {} - '@jest/diff-sequences@30.4.0': {} '@jest/expect-utils@30.4.1': @@ -19448,6 +18260,22 @@ snapshots: dependencies: '@lit/reactive-element': 2.1.2 + '@manypkg/find-root@1.1.0': + dependencies: + '@babel/runtime': 7.29.2 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + + '@manypkg/get-packages@1.1.3': + dependencies: + '@babel/runtime': 7.29.2 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + '@mapbox/node-pre-gyp@2.0.3(encoding@0.1.13)': dependencies: consola: 3.4.2 @@ -19996,21 +18824,21 @@ snapshots: '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.6))(@types/react@19.2.14)(react@19.2.6) '@types/react': 19.2.14 - '@mui/material-nextjs@9.0.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.6))(@types/react@19.2.14)(next@15.5.18(@babel/core@7.29.0)(@playwright/test@1.59.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)': + '@mui/material-nextjs@9.0.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.6))(@types/react@19.2.14)(next@15.5.18(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)': dependencies: '@babel/runtime': 7.29.2 '@emotion/react': 11.14.0(@types/react@19.2.14)(react@19.2.6) - next: 15.5.18(@babel/core@7.29.0)(@playwright/test@1.59.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + next: 15.5.18(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: 19.2.6 optionalDependencies: '@emotion/cache': 11.14.0 '@types/react': 19.2.14 - '@mui/material-nextjs@9.0.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.6))(@types/react@19.2.14)(next@16.2.6(@babel/core@7.29.0)(@playwright/test@1.59.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)': + '@mui/material-nextjs@9.0.1(@emotion/cache@11.14.0)(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.6))(@types/react@19.2.14)(next@16.2.6(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)': dependencies: '@babel/runtime': 7.29.2 '@emotion/react': 11.14.0(@types/react@19.2.14)(react@19.2.6) - next: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.59.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + next: 16.2.6(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: 19.2.6 optionalDependencies: '@emotion/cache': 11.14.0 @@ -20227,12 +19055,6 @@ snapshots: nanostores: 1.3.0 react: 19.2.6 - '@napi-rs/wasm-runtime@0.2.4': - dependencies: - '@emnapi/core': 1.4.5 - '@emnapi/runtime': 1.4.5 - '@tybys/wasm-util': 0.9.0 - '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: '@emnapi/core': 1.10.0 @@ -20375,66 +19197,10 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.1 - '@npmcli/agent@4.0.0': - dependencies: - agent-base: 7.1.4 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - lru-cache: 11.3.6 - socks-proxy-agent: 8.0.5 - transitivePeerDependencies: - - supports-color - - '@npmcli/arborist@9.1.6': - dependencies: - '@isaacs/string-locale-compare': 1.1.0 - '@npmcli/fs': 4.0.0 - '@npmcli/installed-package-contents': 3.0.0 - '@npmcli/map-workspaces': 5.0.3 - '@npmcli/metavuln-calculator': 9.0.3 - '@npmcli/name-from-folder': 3.0.0 - '@npmcli/node-gyp': 4.0.0 - '@npmcli/package-json': 7.0.2 - '@npmcli/query': 4.0.1 - '@npmcli/redact': 3.2.2 - '@npmcli/run-script': 10.0.3 - bin-links: 5.0.0 - cacache: 20.0.4 - common-ancestor-path: 1.0.1 - hosted-git-info: 9.0.3 - json-stringify-nice: 1.1.4 - lru-cache: 11.3.6 - minimatch: 10.2.5 - nopt: 8.1.0 - npm-install-checks: 7.1.2 - npm-package-arg: 13.0.1 - npm-pick-manifest: 11.0.3 - npm-registry-fetch: 19.1.0 - pacote: 21.5.0 - parse-conflict-json: 4.0.0 - proc-log: 5.0.0 - proggy: 3.0.0 - promise-all-reject-late: 1.0.1 - promise-call-limit: 3.0.2 - semver: 7.7.2 - ssri: 12.0.0 - treeverse: 3.0.0 - walk-up-path: 4.0.0 - transitivePeerDependencies: - - supports-color - '@npmcli/fs@3.1.1': dependencies: semver: 7.8.0 - '@npmcli/fs@4.0.0': - dependencies: - semver: 7.7.2 - - '@npmcli/fs@5.0.0': - dependencies: - semver: 7.8.0 - '@npmcli/git@4.1.0': dependencies: '@npmcli/promise-spawn': 6.0.2 @@ -20448,63 +19214,6 @@ snapshots: transitivePeerDependencies: - bluebird - '@npmcli/git@6.0.3': - dependencies: - '@npmcli/promise-spawn': 8.0.3 - ini: 5.0.0 - lru-cache: 10.4.3 - npm-pick-manifest: 10.0.0 - proc-log: 5.0.0 - promise-retry: 2.0.1 - semver: 7.7.2 - which: 5.0.0 - - '@npmcli/git@7.0.2': - dependencies: - '@gar/promise-retry': 1.0.3 - '@npmcli/promise-spawn': 9.0.1 - ini: 6.0.0 - lru-cache: 11.3.6 - npm-pick-manifest: 11.0.3 - proc-log: 6.1.0 - semver: 7.7.2 - which: 6.0.1 - - '@npmcli/installed-package-contents@3.0.0': - dependencies: - npm-bundled: 4.0.0 - npm-normalize-package-bin: 4.0.0 - - '@npmcli/installed-package-contents@4.0.0': - dependencies: - npm-bundled: 5.0.0 - npm-normalize-package-bin: 5.0.0 - - '@npmcli/map-workspaces@5.0.3': - dependencies: - '@npmcli/name-from-folder': 4.0.0 - '@npmcli/package-json': 7.0.2 - glob: 13.0.6 - minimatch: 10.2.5 - - '@npmcli/metavuln-calculator@9.0.3': - dependencies: - cacache: 20.0.4 - json-parse-even-better-errors: 5.0.0 - pacote: 21.5.0 - proc-log: 6.1.0 - semver: 7.7.2 - transitivePeerDependencies: - - supports-color - - '@npmcli/name-from-folder@3.0.0': {} - - '@npmcli/name-from-folder@4.0.0': {} - - '@npmcli/node-gyp@4.0.0': {} - - '@npmcli/node-gyp@5.0.0': {} - '@npmcli/package-json@4.0.1': dependencies: '@npmcli/git': 4.1.0 @@ -20517,45 +19226,10 @@ snapshots: transitivePeerDependencies: - bluebird - '@npmcli/package-json@7.0.2': - dependencies: - '@npmcli/git': 7.0.2 - glob: 11.1.0 - hosted-git-info: 9.0.3 - json-parse-even-better-errors: 5.0.0 - proc-log: 6.1.0 - semver: 7.7.2 - validate-npm-package-license: 3.0.4 - '@npmcli/promise-spawn@6.0.2': dependencies: which: 3.0.1 - '@npmcli/promise-spawn@8.0.3': - dependencies: - which: 5.0.0 - - '@npmcli/promise-spawn@9.0.1': - dependencies: - which: 6.0.1 - - '@npmcli/query@4.0.1': - dependencies: - postcss-selector-parser: 7.1.1 - - '@npmcli/redact@3.2.2': {} - - '@npmcli/redact@4.0.0': {} - - '@npmcli/run-script@10.0.3': - dependencies: - '@npmcli/node-gyp': 5.0.0 - '@npmcli/package-json': 7.0.2 - '@npmcli/promise-spawn': 9.0.1 - node-gyp: 12.3.0 - proc-log: 6.1.0 - which: 6.0.1 - '@nuxt/cli@3.35.1(@nuxt/schema@4.4.5)(cac@6.7.14)(commander@13.1.0)(magicast@0.5.2)': dependencies: '@bomb.sh/tab': 0.0.14(cac@6.7.14)(citty@0.2.2)(commander@13.1.0) @@ -20854,112 +19528,6 @@ snapshots: - vue-tsc - yaml - '@nx/devkit@22.7.1(nx@22.7.1)': - dependencies: - '@zkochan/js-yaml': 0.0.7 - ejs: 5.0.1 - enquirer: 2.3.6 - minimatch: 10.2.4 - nx: 22.7.1 - semver: 7.7.2 - tslib: 2.8.1 - yargs-parser: 21.1.1 - - '@nx/nx-darwin-arm64@22.7.1': - optional: true - - '@nx/nx-darwin-x64@22.7.1': - optional: true - - '@nx/nx-freebsd-x64@22.7.1': - optional: true - - '@nx/nx-linux-arm-gnueabihf@22.7.1': - optional: true - - '@nx/nx-linux-arm64-gnu@22.7.1': - optional: true - - '@nx/nx-linux-arm64-musl@22.7.1': - optional: true - - '@nx/nx-linux-x64-gnu@22.7.1': - optional: true - - '@nx/nx-linux-x64-musl@22.7.1': - optional: true - - '@nx/nx-win32-arm64-msvc@22.7.1': - optional: true - - '@nx/nx-win32-x64-msvc@22.7.1': - optional: true - - '@octokit/auth-token@4.0.0': {} - - '@octokit/core@5.2.2': - dependencies: - '@octokit/auth-token': 4.0.0 - '@octokit/graphql': 7.1.1 - '@octokit/request': 8.4.1 - '@octokit/request-error': 5.1.1 - '@octokit/types': 13.10.0 - before-after-hook: 2.2.3 - universal-user-agent: 6.0.1 - - '@octokit/endpoint@9.0.6': - dependencies: - '@octokit/types': 13.10.0 - universal-user-agent: 6.0.1 - - '@octokit/graphql@7.1.1': - dependencies: - '@octokit/request': 8.4.1 - '@octokit/types': 13.10.0 - universal-user-agent: 6.0.1 - - '@octokit/openapi-types@24.2.0': {} - - '@octokit/plugin-enterprise-rest@6.0.1': {} - - '@octokit/plugin-paginate-rest@11.4.4-cjs.2(@octokit/core@5.2.2)': - dependencies: - '@octokit/core': 5.2.2 - '@octokit/types': 13.10.0 - - '@octokit/plugin-request-log@4.0.1(@octokit/core@5.2.2)': - dependencies: - '@octokit/core': 5.2.2 - - '@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1(@octokit/core@5.2.2)': - dependencies: - '@octokit/core': 5.2.2 - '@octokit/types': 13.10.0 - - '@octokit/request-error@5.1.1': - dependencies: - '@octokit/types': 13.10.0 - deprecation: 2.3.1 - once: 1.4.0 - - '@octokit/request@8.4.1': - dependencies: - '@octokit/endpoint': 9.0.6 - '@octokit/request-error': 5.1.1 - '@octokit/types': 13.10.0 - universal-user-agent: 6.0.1 - - '@octokit/rest@20.1.2': - dependencies: - '@octokit/core': 5.2.2 - '@octokit/plugin-paginate-rest': 11.4.4-cjs.2(@octokit/core@5.2.2) - '@octokit/plugin-request-log': 4.0.1(@octokit/core@5.2.2) - '@octokit/plugin-rest-endpoint-methods': 13.3.2-cjs.1(@octokit/core@5.2.2) - - '@octokit/types@13.10.0': - dependencies: - '@octokit/openapi-types': 24.2.0 - '@opensea/seaport-js@4.1.2(bufferutil@4.1.0)(utf-8-validate@6.0.6)': dependencies: ethers: 6.16.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) @@ -21743,7 +20311,7 @@ snapshots: '@remix-run/css-bundle@2.17.4': {} - '@remix-run/dev@2.17.4(@remix-run/react@2.17.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@6.0.3))(@remix-run/serve@2.17.4(typescript@6.0.3))(@types/node@25.6.2)(babel-plugin-macros@3.1.0)(bufferutil@4.1.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.47.1)(typescript@6.0.3)(utf-8-validate@6.0.6)(vite@8.0.12(@types/node@25.6.2)(esbuild@0.17.6)(jiti@2.7.0)(terser@5.47.1)(yaml@2.8.4))(yaml@2.8.4)': + '@remix-run/dev@2.17.4(@remix-run/react@2.17.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@6.0.3))(@remix-run/serve@2.17.4(typescript@6.0.3))(@types/node@25.6.2)(bufferutil@4.1.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.47.1)(typescript@6.0.3)(utf-8-validate@6.0.6)(vite@8.0.12(@types/node@25.6.2)(esbuild@0.17.6)(jiti@2.7.0)(terser@5.47.1)(yaml@2.8.4))(yaml@2.8.4)': dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 @@ -21760,7 +20328,7 @@ snapshots: '@remix-run/router': 1.23.2 '@remix-run/server-runtime': 2.17.4(typescript@6.0.3) '@types/mdx': 2.0.13 - '@vanilla-extract/integration': 6.5.0(@types/node@25.6.2)(babel-plugin-macros@3.1.0)(lightningcss@1.32.0)(terser@5.47.1) + '@vanilla-extract/integration': 6.5.0(@types/node@25.6.2)(lightningcss@1.32.0)(terser@5.47.1) arg: 5.0.2 cacache: 17.1.4 chalk: 4.1.2 @@ -22681,38 +21249,6 @@ snapshots: '@noble/hashes': 2.2.0 '@scure/base': 2.2.0 - '@sigstore/bundle@4.0.0': - dependencies: - '@sigstore/protobuf-specs': 0.5.1 - - '@sigstore/core@3.2.0': {} - - '@sigstore/protobuf-specs@0.5.1': {} - - '@sigstore/sign@4.1.1': - dependencies: - '@gar/promise-retry': 1.0.3 - '@sigstore/bundle': 4.0.0 - '@sigstore/core': 3.2.0 - '@sigstore/protobuf-specs': 0.5.1 - make-fetch-happen: 15.0.5 - proc-log: 6.1.0 - transitivePeerDependencies: - - supports-color - - '@sigstore/tuf@4.0.2': - dependencies: - '@sigstore/protobuf-specs': 0.5.1 - tuf-js: 4.1.0 - transitivePeerDependencies: - - supports-color - - '@sigstore/verify@3.1.0': - dependencies: - '@sigstore/bundle': 4.0.0 - '@sigstore/core': 3.2.0 - '@sigstore/protobuf-specs': 0.5.1 - '@simple-git/args-pathspec@1.0.3': {} '@simple-git/argv-parser@1.1.1': @@ -24023,6 +22559,13 @@ snapshots: vite: 8.0.12(@types/node@25.6.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(yaml@2.8.4) vitefu: 1.1.3(vite@8.0.12(@types/node@25.6.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(yaml@2.8.4)) + '@svitejs/changesets-changelog-github-compact@1.2.0(encoding@0.1.13)': + dependencies: + '@changesets/get-github-info': 0.6.0(encoding@0.1.13) + dotenv: 16.6.1 + transitivePeerDependencies: + - encoding + '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 @@ -24475,13 +23018,6 @@ snapshots: '@tsconfig/svelte@5.0.8': {} - '@tufjs/canonical-json@2.0.0': {} - - '@tufjs/models@4.1.0': - dependencies: - '@tufjs/canonical-json': 2.0.0 - minimatch: 10.2.5 - '@turnkey/api-key-stamper@0.4.7': dependencies: '@noble/curves': 1.9.7 @@ -24604,10 +23140,6 @@ snapshots: tslib: 2.8.1 optional: true - '@tybys/wasm-util@0.9.0': - dependencies: - tslib: 2.8.1 - '@types/acorn@4.0.6': dependencies: '@types/estree': 1.0.9 @@ -24695,8 +23227,6 @@ snapshots: '@types/mdx@2.0.13': {} - '@types/minimist@1.2.5': {} - '@types/ms@2.1.0': {} '@types/node@12.20.55': {} @@ -24709,8 +23239,6 @@ snapshots: dependencies: undici-types: 7.19.2 - '@types/normalize-package-data@2.4.4': {} - '@types/parse-json@4.0.2': {} '@types/prop-types@15.7.15': {} @@ -24910,7 +23438,7 @@ snapshots: dependencies: '@vanilla-extract/private': 1.0.9 - '@vanilla-extract/integration@6.5.0(@types/node@25.6.2)(babel-plugin-macros@3.1.0)(lightningcss@1.32.0)(terser@5.47.1)': + '@vanilla-extract/integration@6.5.0(@types/node@25.6.2)(lightningcss@1.32.0)(terser@5.47.1)': dependencies: '@babel/core': 7.29.0 '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) @@ -26872,8 +25400,6 @@ snapshots: '@webcomponents/scoped-custom-element-registry@0.0.10': {} - '@yarnpkg/lockfile@1.1.0': {} - '@zerodev/ecdsa-validator@5.4.9(@zerodev/sdk@5.5.7(viem@2.48.11(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@6.0.6)(zod@4.4.3)))(viem@2.48.11(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@6.0.6)(zod@4.4.3))': dependencies: '@zerodev/sdk': 5.5.7(viem@2.48.11(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@6.0.6)(zod@4.4.3)) @@ -26900,22 +25426,11 @@ snapshots: '@simplewebauthn/types': 12.0.0 viem: 2.48.11(bufferutil@4.1.0)(typescript@6.0.3)(utf-8-validate@6.0.6)(zod@4.4.3) - '@zkochan/js-yaml@0.0.7': - dependencies: - argparse: 2.0.1 - '@zxing/text-encoding@0.9.0': optional: true - JSONStream@1.3.5: - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - abbrev@3.0.1: {} - abbrev@4.0.0: {} - abitype@1.2.4(typescript@6.0.3)(zod@4.4.3): optionalDependencies: typescript: 6.0.3 @@ -26960,8 +25475,6 @@ snapshots: acorn@8.16.0: {} - add-stream@1.0.0: {} - aes-js@4.0.0-beta.5: {} agent-base@7.1.4: {} @@ -27003,10 +25516,6 @@ snapshots: ansi-regex@6.2.2: {} - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -27028,8 +25537,6 @@ snapshots: app-module-path@2.2.0: {} - aproba@2.0.0: {} - archiver-utils@5.0.2: dependencies: glob: 10.5.0 @@ -27058,6 +25565,10 @@ snapshots: argon2id@1.0.1: {} + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + argparse@2.0.1: {} aria-hidden@1.2.6: @@ -27072,7 +25583,7 @@ snapshots: array-ify@1.0.0: {} - arrify@1.0.1: {} + array-union@2.1.0: {} asap@2.0.6: {} @@ -27193,8 +25704,6 @@ snapshots: balanced-match@1.0.2: {} - balanced-match@4.0.3: {} - balanced-match@4.0.4: {} bare-events@2.8.2: {} @@ -27247,7 +25756,9 @@ snapshots: bech32@2.0.0: {} - before-after-hook@2.2.3: {} + better-path-resolve@1.0.0: + dependencies: + is-windows: 1.0.2 big.js@6.2.2: {} @@ -27261,14 +25772,6 @@ snapshots: bignumber.js@9.3.1: {} - bin-links@5.0.0: - dependencies: - cmd-shim: 7.0.0 - npm-normalize-package-bin: 4.0.0 - proc-log: 5.0.0 - read-cmd-shim: 5.0.0 - write-file-atomic: 6.0.0 - binary-extensions@2.3.0: {} bindings@1.5.0: @@ -27393,10 +25896,6 @@ snapshots: dependencies: balanced-match: 1.0.2 - brace-expansion@5.0.2: - dependencies: - balanced-match: 4.0.3 - brace-expansion@5.0.6: dependencies: balanced-match: 4.0.4 @@ -27523,8 +26022,6 @@ snapshots: dependencies: run-applescript: 7.1.0 - byte-size@8.1.1: {} - bytes@3.1.2: {} c12@3.3.4(magicast@0.5.2): @@ -27563,19 +26060,6 @@ snapshots: tar: 6.2.1 unique-filename: 3.0.0 - cacache@20.0.4: - dependencies: - '@npmcli/fs': 5.0.0 - fs-minipass: 3.0.3 - glob: 13.0.6 - lru-cache: 11.3.6 - minipass: 7.1.3 - minipass-collect: 2.0.1 - minipass-flush: 1.0.7 - minipass-pipeline: 1.2.4 - p-map: 7.0.4 - ssri: 13.0.1 - cacheable-lookup@5.0.4: {} cacheable-request@7.0.4: @@ -27607,12 +26091,6 @@ snapshots: callsites@3.1.0: {} - camelcase-keys@6.2.2: - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - camelcase@5.3.1: {} camelcase@6.3.0: {} @@ -27639,22 +26117,11 @@ snapshots: chai@6.2.2: {} - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - chalk@3.0.0: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@4.1.0: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -27723,8 +26190,6 @@ snapshots: ci-info@3.9.0: {} - ci-info@4.3.1: {} - ci-info@4.4.0: {} cipher-base@1.0.7: @@ -27749,8 +26214,6 @@ snapshots: dependencies: restore-cursor: 5.1.0 - cli-spinners@2.6.1: {} - cli-spinners@2.9.2: {} cli-spinners@3.4.0: {} @@ -27760,8 +26223,6 @@ snapshots: slice-ansi: 8.0.0 string-width: 8.2.1 - cli-width@4.1.0: {} - client-only@0.0.1: {} cliui@6.0.0: @@ -27800,22 +26261,12 @@ snapshots: cluster-key-slot@1.1.2: {} - cmd-shim@6.0.3: {} - - cmd-shim@7.0.0: {} - cockatiel@3.2.1: {} - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - color-convert@2.0.1: dependencies: color-name: 1.1.4 - color-name@1.1.3: {} - color-name@1.1.4: {} color-string@1.9.1: @@ -27823,8 +26274,6 @@ snapshots: color-name: 1.1.4 simple-swizzle: 0.2.4 - color-support@1.1.3: {} - color@4.2.3: dependencies: color-convert: 2.0.1 @@ -27832,11 +26281,6 @@ snapshots: colorette@2.0.20: {} - columnify@1.6.0: - dependencies: - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -27857,8 +26301,6 @@ snapshots: commander@7.2.0: {} - common-ancestor-path@1.0.1: {} - commondir@1.0.1: {} compare-func@2.0.0: @@ -27894,13 +26336,6 @@ snapshots: concat-map@0.0.1: {} - concat-stream@2.0.0: - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 3.6.2 - typedarray: 0.0.6 - confbox@0.1.8: {} confbox@0.2.4: {} @@ -27938,8 +26373,6 @@ snapshots: console-browserify@1.2.0: {} - console-control-strings@1.1.0: {} - constants-browserify@1.0.0: {} content-disposition@0.5.4: @@ -27948,183 +26381,19 @@ snapshots: content-type@1.0.5: {} - conventional-changelog-angular@5.0.13: - dependencies: - compare-func: 2.0.0 - q: 1.5.1 - - conventional-changelog-angular@7.0.0: - dependencies: - compare-func: 2.0.0 - conventional-changelog-angular@8.3.1: dependencies: compare-func: 2.0.0 - conventional-changelog-atom@2.0.8: - dependencies: - q: 1.5.1 - - conventional-changelog-codemirror@2.0.8: - dependencies: - q: 1.5.1 - - conventional-changelog-config-spec@2.1.0: {} - - conventional-changelog-conventionalcommits@4.6.3: - dependencies: - compare-func: 2.0.0 - lodash: 4.18.1 - q: 1.5.1 - conventional-changelog-conventionalcommits@9.3.1: dependencies: compare-func: 2.0.0 - conventional-changelog-core@4.2.4: - dependencies: - add-stream: 1.0.0 - conventional-changelog-writer: 5.0.1 - conventional-commits-parser: 3.2.4 - dateformat: 3.0.3 - get-pkg-repo: 4.2.1 - git-raw-commits: 2.0.11 - git-remote-origin-url: 2.0.0 - git-semver-tags: 4.1.1 - lodash: 4.18.1 - normalize-package-data: 3.0.3 - q: 1.5.1 - read-pkg: 3.0.0 - read-pkg-up: 3.0.0 - through2: 4.0.2 - - conventional-changelog-core@5.0.1: - dependencies: - add-stream: 1.0.0 - conventional-changelog-writer: 6.0.1 - conventional-commits-parser: 4.0.0 - dateformat: 3.0.3 - get-pkg-repo: 4.2.1 - git-raw-commits: 3.0.0 - git-remote-origin-url: 2.0.0 - git-semver-tags: 5.0.1 - normalize-package-data: 3.0.3 - read-pkg: 3.0.0 - read-pkg-up: 3.0.0 - - conventional-changelog-ember@2.0.9: - dependencies: - q: 1.5.1 - - conventional-changelog-eslint@3.0.9: - dependencies: - q: 1.5.1 - - conventional-changelog-express@2.0.6: - dependencies: - q: 1.5.1 - - conventional-changelog-jquery@3.0.11: - dependencies: - q: 1.5.1 - - conventional-changelog-jshint@2.0.9: - dependencies: - compare-func: 2.0.0 - q: 1.5.1 - - conventional-changelog-preset-loader@2.3.4: {} - - conventional-changelog-preset-loader@3.0.0: {} - - conventional-changelog-writer@5.0.1: - dependencies: - conventional-commits-filter: 2.0.7 - dateformat: 3.0.3 - handlebars: 4.7.9 - json-stringify-safe: 5.0.1 - lodash: 4.18.1 - meow: 8.1.2 - semver: 6.3.1 - split: 1.0.1 - through2: 4.0.2 - - conventional-changelog-writer@6.0.1: - dependencies: - conventional-commits-filter: 3.0.0 - dateformat: 3.0.3 - handlebars: 4.7.9 - json-stringify-safe: 5.0.1 - meow: 8.1.2 - semver: 7.7.2 - split: 1.0.1 - - conventional-changelog@3.1.25: - dependencies: - conventional-changelog-angular: 5.0.13 - conventional-changelog-atom: 2.0.8 - conventional-changelog-codemirror: 2.0.8 - conventional-changelog-conventionalcommits: 4.6.3 - conventional-changelog-core: 4.2.4 - conventional-changelog-ember: 2.0.9 - conventional-changelog-eslint: 3.0.9 - conventional-changelog-express: 2.0.6 - conventional-changelog-jquery: 3.0.11 - conventional-changelog-jshint: 2.0.9 - conventional-changelog-preset-loader: 2.3.4 - - conventional-commits-filter@2.0.7: - dependencies: - lodash.ismatch: 4.4.0 - modify-values: 1.0.1 - - conventional-commits-filter@3.0.0: - dependencies: - lodash.ismatch: 4.4.0 - modify-values: 1.0.1 - - conventional-commits-parser@3.2.4: - dependencies: - JSONStream: 1.3.5 - is-text-path: 1.0.1 - lodash: 4.18.1 - meow: 8.1.2 - split2: 3.2.2 - through2: 4.0.2 - - conventional-commits-parser@4.0.0: - dependencies: - JSONStream: 1.3.5 - is-text-path: 1.0.1 - meow: 8.1.2 - split2: 3.2.2 - conventional-commits-parser@6.4.0: dependencies: '@simple-libs/stream-utils': 1.2.0 meow: 13.2.0 - conventional-recommended-bump@6.1.0: - dependencies: - concat-stream: 2.0.0 - conventional-changelog-preset-loader: 2.3.4 - conventional-commits-filter: 2.0.7 - conventional-commits-parser: 3.2.4 - git-raw-commits: 2.0.11 - git-semver-tags: 4.1.1 - meow: 8.1.2 - q: 1.5.1 - - conventional-recommended-bump@7.0.1: - dependencies: - concat-stream: 2.0.0 - conventional-changelog-preset-loader: 3.0.0 - conventional-commits-filter: 3.0.0 - conventional-commits-parser: 4.0.0 - git-raw-commits: 3.0.0 - git-semver-tags: 5.0.1 - meow: 8.1.2 - convert-source-map@1.9.0: {} convert-source-map@2.0.0: {} @@ -28167,15 +26436,6 @@ snapshots: path-type: 4.0.0 yaml: 1.10.3 - cosmiconfig@9.0.0(typescript@5.9.3): - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.1 - js-yaml: 4.1.1 - parse-json: 5.2.0 - optionalDependencies: - typescript: 5.9.3 - cosmiconfig@9.0.1(typescript@6.0.3): dependencies: env-paths: 2.2.1 @@ -28374,16 +26634,14 @@ snapshots: optionalDependencies: typescript: 6.0.3 - dargs@7.0.0: {} - data-uri-to-buffer@3.0.1: {} + dataloader@1.4.0: {} + date-fns@2.30.0: dependencies: '@babel/runtime': 7.29.2 - dateformat@3.0.3: {} - dateformat@4.6.3: {} dayjs@1.11.13: {} @@ -28410,11 +26668,6 @@ snapshots: optionalDependencies: supports-color: 5.5.0 - decamelize-keys@1.1.1: - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - decamelize@1.2.0: {} decode-named-character-reference@1.3.0: @@ -28427,10 +26680,6 @@ snapshots: dependencies: mimic-response: 3.1.0 - dedent@1.5.3(babel-plugin-macros@3.1.0): - optionalDependencies: - babel-plugin-macros: 3.1.0 - dedent@1.7.2(babel-plugin-macros@3.1.0): optionalDependencies: babel-plugin-macros: 3.1.0 @@ -28466,8 +26715,6 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - define-lazy-prop@2.0.0: {} - define-lazy-prop@3.0.0: {} define-properties@1.2.1: @@ -28495,8 +26742,6 @@ snapshots: transitivePeerDependencies: - supports-color - deprecation@2.3.1: {} - dequal@2.0.3: {} des.js@1.1.0: @@ -28516,8 +26761,6 @@ snapshots: detect-libc@2.1.2: {} - detect-newline@3.1.0: {} - detect-node-es@1.1.0: {} detective-amd@6.1.0: @@ -28590,6 +26833,10 @@ snapshots: dijkstrajs@1.0.3: {} + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + dom-accessibility-api@0.5.16: {} dom-helpers@5.2.1: @@ -28629,25 +26876,14 @@ snapshots: dependencies: is-obj: 2.0.0 - dotenv-expand@12.0.3: - dependencies: - dotenv: 16.4.7 - dotenv-expand@5.1.0: {} - dotenv@16.4.7: {} - dotenv@16.6.1: {} dotenv@17.4.2: {} dotenv@8.2.0: {} - dotgitignore@2.1.0: - dependencies: - find-up: 3.0.0 - minimatch: 3.1.5 - dts-resolver@3.0.0(oxc-resolver@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)): optionalDependencies: oxc-resolver: 11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) @@ -28702,8 +26938,6 @@ snapshots: dependencies: jake: 10.9.4 - ejs@5.0.1: {} - electron-to-chromium@1.5.353: {} elliptic@6.6.1: @@ -28758,9 +26992,10 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.3.3 - enquirer@2.3.6: + enquirer@2.4.1: dependencies: ansi-colors: 4.1.3 + strip-ansi: 6.0.1 entities@4.5.0: {} @@ -28768,8 +27003,6 @@ snapshots: env-paths@2.2.1: {} - envinfo@7.13.0: {} - environment@1.1.0: {} err-code@2.0.3: {} @@ -28939,8 +27172,6 @@ snapshots: escape-html@1.0.3: {} - escape-string-regexp@1.0.5: {} - escape-string-regexp@2.0.0: {} escape-string-regexp@4.0.0: {} @@ -29185,18 +27416,6 @@ snapshots: md5.js: 1.3.5 safe-buffer: 5.2.1 - execa@5.0.0: - dependencies: - cross-spawn: 7.0.6 - get-stream: 6.0.0 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - execa@5.1.1: dependencies: cross-spawn: 7.0.6 @@ -29276,6 +27495,8 @@ snapshots: extend@3.0.2: {} + extendable-error@0.1.7: {} + extension-port-stream@3.0.0: dependencies: readable-stream: 3.6.2 @@ -29349,10 +27570,6 @@ snapshots: fetch-retry@6.0.0: {} - figures@3.2.0: - dependencies: - escape-string-regexp: 1.0.5 - file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 @@ -29409,14 +27626,6 @@ snapshots: find-root@1.1.0: {} - find-up@2.1.0: - dependencies: - locate-path: 2.0.0 - - find-up@3.0.0: - dependencies: - locate-path: 3.0.0 - find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -29432,8 +27641,6 @@ snapshots: flatted: 3.4.2 keyv: 4.5.4 - flat@5.0.2: {} - flatted@3.4.2: {} flow-enums-runtime@0.0.6: {} @@ -29442,8 +27649,6 @@ snapshots: dependencies: tslib: 2.8.1 - follow-redirects@1.15.11: {} - follow-redirects@1.16.0: {} for-each@0.3.5: @@ -29521,6 +27726,18 @@ snapshots: jsonfile: 6.2.1 universalify: 2.0.1 + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + fs-minipass@2.1.0: dependencies: minipass: 3.3.6 @@ -29577,13 +27794,6 @@ snapshots: get-own-enumerable-property-symbols@3.0.2: {} - get-pkg-repo@4.2.1: - dependencies: - '@hutson/parse-repository-url': 3.0.2 - hosted-git-info: 4.1.0 - through2: 2.0.5 - yargs: 16.2.0 - get-port-please@3.2.0: {} get-port@5.1.1: {} @@ -29597,8 +27807,6 @@ snapshots: dependencies: pump: 3.0.4 - get-stream@6.0.0: {} - get-stream@6.0.1: {} get-stream@8.0.1: {} @@ -29613,20 +27821,6 @@ snapshots: giget@3.2.0: {} - git-raw-commits@2.0.11: - dependencies: - dargs: 7.0.0 - lodash: 4.18.1 - meow: 8.1.2 - split2: 3.2.2 - through2: 4.0.2 - - git-raw-commits@3.0.0: - dependencies: - dargs: 7.0.0 - meow: 8.1.2 - split2: 3.2.2 - git-raw-commits@5.0.1(conventional-commits-parser@6.4.0): dependencies: '@conventional-changelog/git-client': 2.7.0(conventional-commits-parser@6.4.0) @@ -29635,34 +27829,6 @@ snapshots: - conventional-commits-filter - conventional-commits-parser - git-remote-origin-url@2.0.0: - dependencies: - gitconfiglocal: 1.0.0 - pify: 2.3.0 - - git-semver-tags@4.1.1: - dependencies: - meow: 8.1.2 - semver: 6.3.1 - - git-semver-tags@5.0.1: - dependencies: - meow: 8.1.2 - semver: 7.7.2 - - git-up@7.0.0: - dependencies: - is-ssh: 1.4.1 - parse-url: 8.1.0 - - git-url-parse@14.0.0: - dependencies: - git-up: 7.0.0 - - gitconfiglocal@1.0.0: - dependencies: - ini: 1.3.8 - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -29680,15 +27846,6 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - glob@11.1.0: - dependencies: - foreground-child: 3.3.1 - jackspeak: 4.2.3 - minimatch: 10.2.5 - minipass: 7.1.3 - package-json-from-dist: 1.0.1 - path-scurry: 2.0.2 - glob@13.0.6: dependencies: minimatch: 10.2.5 @@ -29714,6 +27871,15 @@ snapshots: globals@17.6.0: {} + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + globby@16.2.0: dependencies: '@sindresorhus/merge-streams': 4.0.0 @@ -29792,17 +27958,6 @@ snapshots: ufo: 1.6.4 uncrypto: 0.1.3 - handlebars@4.7.9: - dependencies: - minimist: 1.2.8 - neo-async: 2.6.2 - source-map: 0.6.1 - wordwrap: 1.0.0 - optionalDependencies: - uglify-js: 3.19.3 - - hard-rejection@2.1.0: {} - has-flag@3.0.0: {} has-flag@4.0.0: {} @@ -29817,8 +27972,6 @@ snapshots: dependencies: has-symbols: 1.1.0 - has-unicode@2.0.1: {} - hash-base@3.0.5: dependencies: inherits: 2.0.4 @@ -29906,24 +28059,10 @@ snapshots: hookable@6.1.1: {} - hosted-git-info@2.8.9: {} - - hosted-git-info@4.1.0: - dependencies: - lru-cache: 6.0.0 - hosted-git-info@6.1.3: dependencies: lru-cache: 7.18.3 - hosted-git-info@8.1.0: - dependencies: - lru-cache: 10.4.3 - - hosted-git-info@9.0.3: - dependencies: - lru-cache: 11.3.6 - hpke-js@1.8.0: dependencies: '@hpke/chacha20poly1305': 1.8.0 @@ -29954,13 +28093,6 @@ snapshots: statuses: 2.0.2 toidentifier: 1.0.1 - http-proxy-agent@7.0.2: - dependencies: - agent-base: 7.1.4 - debug: 4.4.3(supports-color@10.2.2) - transitivePeerDependencies: - - supports-color - http-shutdown@1.2.2: {} http2-wrapper@1.0.3: @@ -29979,6 +28111,8 @@ snapshots: httpxy@0.5.1: {} + human-id@4.1.3: {} + human-signals@2.1.0: {} human-signals@5.0.0: {} @@ -30031,10 +28165,6 @@ snapshots: ieee754@1.2.1: {} - ignore-walk@8.0.0: - dependencies: - minimatch: 10.2.5 - ignore@5.3.2: {} ignore@7.0.5: {} @@ -30052,11 +28182,6 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-local@3.1.0: - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - import-without-cache@0.4.0: {} impound@1.1.5: @@ -30082,34 +28207,10 @@ snapshots: ini@4.1.1: {} - ini@5.0.0: {} - ini@6.0.0: {} - init-package-json@8.2.2: - dependencies: - '@npmcli/package-json': 7.0.2 - npm-package-arg: 13.0.1 - promzard: 2.0.0 - read: 4.1.0 - semver: 7.7.2 - validate-npm-package-license: 3.0.4 - validate-npm-package-name: 6.0.2 - inline-style-parser@0.1.1: {} - inquirer@12.9.6(@types/node@25.6.2): - dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.6.2) - '@inquirer/prompts': 7.10.1(@types/node@25.6.2) - '@inquirer/type': 3.0.10(@types/node@25.6.2) - mute-stream: 2.0.0 - run-async: 4.0.6 - rxjs: 7.8.2 - optionalDependencies: - '@types/node': 25.6.2 - invariant@2.2.4: dependencies: loose-envify: 1.4.0 @@ -30132,8 +28233,6 @@ snapshots: transitivePeerDependencies: - supports-color - ip-address@10.2.0: {} - ipaddr.js@1.9.1: {} iron-webcrypto@1.2.1: {} @@ -30164,10 +28263,6 @@ snapshots: is-callable@1.2.7: {} - is-ci@3.0.1: - dependencies: - ci-info: 3.9.0 - is-core-module@2.16.2: dependencies: hasown: 2.0.3 @@ -30236,8 +28331,6 @@ snapshots: is-path-inside@4.0.0: {} - is-plain-obj@1.1.0: {} - is-plain-obj@3.0.0: {} is-plain-obj@4.1.0: {} @@ -30261,19 +28354,15 @@ snapshots: is-retry-allowed@2.2.0: {} - is-ssh@1.4.1: - dependencies: - protocols: 2.0.2 - is-standalone-pwa@0.1.1: {} is-stream@2.0.1: {} is-stream@3.0.0: {} - is-text-path@1.0.1: + is-subdir@1.2.0: dependencies: - text-extensions: 1.9.0 + better-path-resolve: 1.0.0 is-typed-array@1.1.15: dependencies: @@ -30285,6 +28374,8 @@ snapshots: is-url-superb@4.0.0: {} + is-windows@1.0.2: {} + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -30301,8 +28392,6 @@ snapshots: isexe@2.0.0: {} - isexe@3.1.5: {} - isexe@4.0.0: {} isomorphic-timers-promises@1.0.1: {} @@ -30325,10 +28414,6 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jackspeak@4.2.3: - dependencies: - '@isaacs/cliui': 9.0.0 - jake@10.9.4: dependencies: async: 3.2.6 @@ -30446,6 +28531,11 @@ snapshots: js-tokens@9.0.1: {} + js-yaml@3.14.2: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + js-yaml@4.1.1: dependencies: argparse: 2.0.1 @@ -30458,16 +28548,10 @@ snapshots: json-buffer@3.0.1: {} - json-parse-better-errors@1.0.2: {} - json-parse-even-better-errors@2.3.1: {} json-parse-even-better-errors@3.0.2: {} - json-parse-even-better-errors@4.0.0: {} - - json-parse-even-better-errors@5.0.0: {} - json-rpc-engine@6.1.0: dependencies: '@metamask/safe-event-emitter': 2.0.0 @@ -30481,24 +28565,22 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} - json-stringify-nice@1.1.4: {} - json-stringify-safe@5.0.1: {} json5@2.2.3: {} - jsonc-parser@3.2.0: {} - jsonc-parser@3.3.1: {} + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + jsonfile@6.2.1: dependencies: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - jsonparse@1.3.1: {} - jsontokens@4.0.1: dependencies: '@noble/hashes': 1.8.0 @@ -30507,10 +28589,6 @@ snapshots: junk@4.0.1: {} - just-diff-apply@5.5.0: {} - - just-diff@6.0.2: {} - keccak@3.0.4: dependencies: node-addon-api: 2.0.2 @@ -30523,8 +28601,6 @@ snapshots: keyvaluestorage-interface@1.0.0: {} - kind-of@6.0.3: {} - kleur@3.0.3: {} kleur@4.1.5: {} @@ -30562,82 +28638,6 @@ snapshots: dependencies: readable-stream: 2.3.8 - lerna@9.0.7(@types/node@25.6.2)(babel-plugin-macros@3.1.0): - dependencies: - '@npmcli/arborist': 9.1.6 - '@npmcli/package-json': 7.0.2 - '@npmcli/run-script': 10.0.3 - '@nx/devkit': 22.7.1(nx@22.7.1) - '@octokit/plugin-enterprise-rest': 6.0.1 - '@octokit/rest': 20.1.2 - aproba: 2.0.0 - byte-size: 8.1.1 - chalk: 4.1.0 - ci-info: 4.3.1 - cmd-shim: 6.0.3 - color-support: 1.1.3 - columnify: 1.6.0 - console-control-strings: 1.1.0 - conventional-changelog-angular: 7.0.0 - conventional-changelog-core: 5.0.1 - conventional-recommended-bump: 7.0.1 - cosmiconfig: 9.0.0(typescript@5.9.3) - dedent: 1.5.3(babel-plugin-macros@3.1.0) - envinfo: 7.13.0 - execa: 5.0.0 - fs-extra: 11.3.5 - get-stream: 6.0.0 - git-url-parse: 14.0.0 - glob-parent: 6.0.2 - has-unicode: 2.0.1 - import-local: 3.1.0 - ini: 1.3.8 - init-package-json: 8.2.2 - inquirer: 12.9.6(@types/node@25.6.2) - is-ci: 3.0.1 - jest-diff: 30.4.1 - js-yaml: 4.1.1 - libnpmaccess: 10.0.3 - libnpmpublish: 11.1.2 - load-json-file: 6.2.0 - make-fetch-happen: 15.0.2 - minimatch: 3.1.4 - npm-package-arg: 13.0.1 - npm-packlist: 10.0.3 - npm-registry-fetch: 19.1.0 - nx: 22.7.1 - p-map: 4.0.0 - p-map-series: 2.1.0 - p-pipe: 3.1.0 - p-queue: 6.6.2 - p-reduce: 2.1.0 - p-waterfall: 2.1.1 - pacote: 21.0.1 - read-cmd-shim: 4.0.0 - semver: 7.7.2 - signal-exit: 3.0.7 - slash: 3.0.0 - ssri: 12.0.0 - string-width: 4.2.3 - tar: 7.5.11 - through: 2.3.8 - tinyglobby: 0.2.12 - typescript: 5.9.3 - upath: 2.0.1 - validate-npm-package-license: 3.0.4 - validate-npm-package-name: 6.0.2 - wide-align: 1.1.5 - write-file-atomic: 5.0.1 - yargs: 17.7.2 - yargs-parser: 21.1.1 - transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' - - '@types/node' - - babel-plugin-macros - - debug - - supports-color - leven@3.1.0: {} levn@0.4.1: @@ -30645,26 +28645,6 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - libnpmaccess@10.0.3: - dependencies: - npm-package-arg: 13.0.1 - npm-registry-fetch: 19.1.0 - transitivePeerDependencies: - - supports-color - - libnpmpublish@11.1.2: - dependencies: - '@npmcli/package-json': 7.0.2 - ci-info: 4.3.1 - npm-package-arg: 13.0.1 - npm-registry-fetch: 19.1.0 - proc-log: 5.0.0 - semver: 7.7.2 - sigstore: 4.1.0 - ssri: 12.0.0 - transitivePeerDependencies: - - supports-color - libphonenumber-js@1.13.0: {} lighthouse-logger@1.4.2: @@ -30727,8 +28707,6 @@ snapshots: lines-and-columns@1.2.4: {} - lines-and-columns@2.0.3: {} - lint-staged@17.0.4: dependencies: listr2: 10.2.1 @@ -30807,20 +28785,6 @@ snapshots: lit-element: 4.2.2 lit-html: 3.3.2 - load-json-file@4.0.0: - dependencies: - graceful-fs: 4.2.11 - parse-json: 4.0.0 - pify: 3.0.0 - strip-bom: 3.0.0 - - load-json-file@6.2.0: - dependencies: - graceful-fs: 4.2.11 - parse-json: 5.2.0 - strip-bom: 4.0.0 - type-fest: 0.6.0 - loader-utils@3.3.1: {} local-pkg@1.1.2: @@ -30831,16 +28795,6 @@ snapshots: locate-character@3.0.0: {} - locate-path@2.0.0: - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - - locate-path@3.0.0: - dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 - locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -30861,10 +28815,10 @@ snapshots: lodash.isequal@4.5.0: {} - lodash.ismatch@4.4.0: {} - lodash.memoize@4.1.2: {} + lodash.startcase@4.4.0: {} + lodash.throttle@4.1.1: {} lodash.uniq@4.5.0: {} @@ -30907,10 +28861,6 @@ snapshots: dependencies: yallist: 3.1.1 - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - lru-cache@7.18.3: {} lucide-react@0.554.0(react@19.2.6): @@ -30960,47 +28910,10 @@ snapshots: '@babel/types': 7.29.0 source-map-js: 1.2.1 - make-fetch-happen@15.0.2: - dependencies: - '@npmcli/agent': 4.0.0 - cacache: 20.0.4 - http-cache-semantics: 4.2.0 - minipass: 7.1.3 - minipass-fetch: 4.0.1 - minipass-flush: 1.0.7 - minipass-pipeline: 1.2.4 - negotiator: 1.0.0 - proc-log: 5.0.0 - promise-retry: 2.0.1 - ssri: 12.0.0 - transitivePeerDependencies: - - supports-color - - make-fetch-happen@15.0.5: - dependencies: - '@gar/promise-retry': 1.0.3 - '@npmcli/agent': 4.0.0 - '@npmcli/redact': 4.0.0 - cacache: 20.0.4 - http-cache-semantics: 4.2.0 - minipass: 7.1.3 - minipass-fetch: 5.0.2 - minipass-flush: 1.0.7 - minipass-pipeline: 1.2.4 - negotiator: 1.0.0 - proc-log: 6.1.0 - ssri: 13.0.1 - transitivePeerDependencies: - - supports-color - makeerror@1.0.12: dependencies: tmpl: 1.0.5 - map-obj@1.0.1: {} - - map-obj@4.3.0: {} - markdown-extensions@1.1.1: {} marked@14.0.0: {} @@ -31144,20 +29057,6 @@ snapshots: meow@14.1.0: {} - meow@8.1.2: - dependencies: - '@types/minimist': 1.2.5 - camelcase-keys: 6.2.2 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 - merge-descriptors@1.0.3: {} merge-stream@2.0.0: {} @@ -31613,18 +29512,10 @@ snapshots: minimalistic-crypto-utils@1.0.1: {} - minimatch@10.2.4: - dependencies: - brace-expansion: 5.0.6 - minimatch@10.2.5: dependencies: brace-expansion: 5.0.6 - minimatch@3.1.4: - dependencies: - brace-expansion: 1.1.14 - minimatch@3.1.5: dependencies: brace-expansion: 1.1.14 @@ -31637,38 +29528,12 @@ snapshots: dependencies: brace-expansion: 2.1.0 - minimist-options@4.1.0: - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - minimist@1.2.8: {} minipass-collect@1.0.2: dependencies: minipass: 3.3.6 - minipass-collect@2.0.1: - dependencies: - minipass: 7.1.3 - - minipass-fetch@4.0.1: - dependencies: - minipass: 7.1.3 - minipass-sized: 1.0.3 - minizlib: 3.1.0 - optionalDependencies: - encoding: 0.1.13 - - minipass-fetch@5.0.2: - dependencies: - minipass: 7.1.3 - minipass-sized: 2.0.0 - minizlib: 3.1.0 - optionalDependencies: - iconv-lite: 0.7.2 - minipass-flush@1.0.7: dependencies: minipass: 3.3.6 @@ -31677,14 +29542,6 @@ snapshots: dependencies: minipass: 3.3.6 - minipass-sized@1.0.3: - dependencies: - minipass: 3.3.6 - - minipass-sized@2.0.0: - dependencies: - minipass: 7.1.3 - minipass@3.3.6: dependencies: yallist: 4.0.0 @@ -31727,8 +29584,6 @@ snapshots: modern-ahocorasick@1.1.0: {} - modify-values@1.0.1: {} - module-definition@6.0.2: dependencies: ast-module-types: 6.0.2 @@ -31780,8 +29635,6 @@ snapshots: multiformats@9.9.0: {} - mute-stream@2.0.0: {} - nanoclone@0.2.1: {} nanoid@3.3.12: {} @@ -31798,9 +29651,7 @@ snapshots: negotiator@1.0.0: {} - neo-async@2.6.2: {} - - next@15.5.18(@babel/core@7.29.0)(@playwright/test@1.59.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): + next@15.5.18(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: '@next/env': 15.5.18 '@swc/helpers': 0.5.15 @@ -31808,7 +29659,7 @@ snapshots: postcss: 8.4.31 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) - styled-jsx: 5.1.6(@babel/core@7.29.0)(babel-plugin-macros@3.1.0)(react@19.2.6) + styled-jsx: 5.1.6(@babel/core@7.29.0)(react@19.2.6) optionalDependencies: '@next/swc-darwin-arm64': 15.5.18 '@next/swc-darwin-x64': 15.5.18 @@ -31824,7 +29675,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@16.2.6(@babel/core@7.29.0)(@playwright/test@1.59.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): + next@16.2.6(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: '@next/env': 16.2.6 '@swc/helpers': 0.5.15 @@ -31833,7 +29684,7 @@ snapshots: postcss: 8.4.31 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) - styled-jsx: 5.1.6(@babel/core@7.29.0)(babel-plugin-macros@3.1.0)(react@19.2.6) + styled-jsx: 5.1.6(@babel/core@7.29.0)(react@19.2.6) optionalDependencies: '@next/swc-darwin-arm64': 16.2.6 '@next/swc-darwin-x64': 16.2.6 @@ -31970,19 +29821,6 @@ snapshots: node-gyp-build@4.8.4: {} - node-gyp@12.3.0: - dependencies: - env-paths: 2.2.1 - exponential-backoff: 3.1.3 - graceful-fs: 4.2.11 - nopt: 9.0.0 - proc-log: 6.1.0 - semver: 7.7.2 - tar: 7.5.11 - tinyglobby: 0.2.12 - undici: 6.25.0 - which: 6.0.1 - node-int64@0.4.0: {} node-mock-http@1.0.4: {} @@ -32027,24 +29865,6 @@ snapshots: dependencies: abbrev: 3.0.1 - nopt@9.0.0: - dependencies: - abbrev: 4.0.0 - - normalize-package-data@2.5.0: - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.12 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - - normalize-package-data@3.0.3: - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.16.2 - semver: 7.7.2 - validate-npm-package-license: 3.0.4 - normalize-package-data@5.0.0: dependencies: hosted-git-info: 6.1.3 @@ -32056,32 +29876,12 @@ snapshots: normalize-url@6.1.0: {} - npm-bundled@4.0.0: - dependencies: - npm-normalize-package-bin: 4.0.0 - - npm-bundled@5.0.0: - dependencies: - npm-normalize-package-bin: 5.0.0 - npm-install-checks@6.3.0: dependencies: semver: 7.8.0 - npm-install-checks@7.1.2: - dependencies: - semver: 7.7.2 - - npm-install-checks@8.0.0: - dependencies: - semver: 7.8.0 - npm-normalize-package-bin@3.0.1: {} - npm-normalize-package-bin@4.0.0: {} - - npm-normalize-package-bin@5.0.0: {} - npm-package-arg@10.1.0: dependencies: hosted-git-info: 6.1.3 @@ -32089,39 +29889,6 @@ snapshots: semver: 7.8.0 validate-npm-package-name: 5.0.1 - npm-package-arg@12.0.2: - dependencies: - hosted-git-info: 8.1.0 - proc-log: 5.0.0 - semver: 7.8.0 - validate-npm-package-name: 6.0.2 - - npm-package-arg@13.0.1: - dependencies: - hosted-git-info: 9.0.3 - proc-log: 5.0.0 - semver: 7.7.2 - validate-npm-package-name: 6.0.2 - - npm-packlist@10.0.3: - dependencies: - ignore-walk: 8.0.0 - proc-log: 6.1.0 - - npm-pick-manifest@10.0.0: - dependencies: - npm-install-checks: 7.1.2 - npm-normalize-package-bin: 4.0.0 - npm-package-arg: 12.0.2 - semver: 7.7.2 - - npm-pick-manifest@11.0.3: - dependencies: - npm-install-checks: 8.0.0 - npm-normalize-package-bin: 5.0.0 - npm-package-arg: 13.0.1 - semver: 7.7.2 - npm-pick-manifest@8.0.2: dependencies: npm-install-checks: 6.3.0 @@ -32129,19 +29896,6 @@ snapshots: npm-package-arg: 10.1.0 semver: 7.8.0 - npm-registry-fetch@19.1.0: - dependencies: - '@npmcli/redact': 3.2.2 - jsonparse: 1.3.1 - make-fetch-happen: 15.0.2 - minipass: 7.1.3 - minipass-fetch: 4.0.1 - minizlib: 3.1.0 - npm-package-arg: 13.0.1 - proc-log: 5.0.0 - transitivePeerDependencies: - - supports-color - npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -32296,132 +30050,6 @@ snapshots: - xml2js - yaml - nx@22.7.1: - dependencies: - '@emnapi/core': 1.4.5 - '@emnapi/runtime': 1.4.5 - '@emnapi/wasi-threads': 1.0.4 - '@jest/diff-sequences': 30.0.1 - '@napi-rs/wasm-runtime': 0.2.4 - '@tybys/wasm-util': 0.9.0 - '@yarnpkg/lockfile': 1.1.0 - '@zkochan/js-yaml': 0.0.7 - ansi-colors: 4.1.3 - ansi-regex: 5.0.1 - ansi-styles: 4.3.0 - argparse: 2.0.1 - asynckit: 0.4.0 - axios: 1.16.0 - balanced-match: 4.0.3 - base64-js: 1.5.1 - bl: 4.1.0 - brace-expansion: 5.0.2 - buffer: 5.7.1 - call-bind-apply-helpers: 1.0.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.6.1 - cliui: 8.0.1 - clone: 1.0.4 - color-convert: 2.0.1 - color-name: 1.1.4 - combined-stream: 1.0.8 - defaults: 1.0.4 - define-lazy-prop: 2.0.0 - delayed-stream: 1.0.0 - dotenv: 16.4.7 - dotenv-expand: 12.0.3 - dunder-proto: 1.0.1 - ejs: 5.0.1 - emoji-regex: 8.0.0 - end-of-stream: 1.4.5 - enquirer: 2.3.6 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-set-tostringtag: 2.1.0 - escalade: 3.2.0 - escape-string-regexp: 1.0.5 - figures: 3.2.0 - flat: 5.0.2 - follow-redirects: 1.15.11 - form-data: 4.0.5 - fs-constants: 1.0.0 - function-bind: 1.1.2 - get-caller-file: 2.0.5 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 - has-flag: 4.0.0 - has-symbols: 1.1.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - ieee754: 1.2.1 - ignore: 7.0.5 - inherits: 2.0.4 - is-docker: 2.2.1 - is-fullwidth-code-point: 3.0.0 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - is-wsl: 2.2.0 - json5: 2.2.3 - jsonc-parser: 3.2.0 - lines-and-columns: 2.0.3 - log-symbols: 4.1.0 - math-intrinsics: 1.1.0 - mime-db: 1.52.0 - mime-types: 2.1.35 - mimic-fn: 2.1.0 - minimatch: 10.2.4 - minimist: 1.2.8 - npm-run-path: 4.0.1 - once: 1.4.0 - onetime: 5.1.2 - open: 8.4.2 - ora: 5.3.0 - path-key: 3.1.1 - picocolors: 1.1.1 - proxy-from-env: 2.1.0 - readable-stream: 3.6.2 - require-directory: 2.1.1 - resolve.exports: 2.0.3 - restore-cursor: 3.1.0 - safe-buffer: 5.2.1 - semver: 7.7.4 - signal-exit: 3.0.7 - smol-toml: 1.6.1 - string-width: 4.2.3 - string_decoder: 1.3.0 - strip-ansi: 6.0.1 - strip-bom: 3.0.0 - supports-color: 7.2.0 - tar-stream: 2.2.0 - tmp: 0.2.4 - tree-kill: 1.2.2 - tsconfig-paths: 4.2.0 - tslib: 2.8.1 - util-deprecate: 1.0.2 - wcwidth: 1.0.1 - wrap-ansi: 7.0.0 - wrappy: 1.0.2 - y18n: 5.0.8 - yaml: 2.8.0 - yargs: 17.7.2 - yargs-parser: 21.1.1 - optionalDependencies: - '@nx/nx-darwin-arm64': 22.7.1 - '@nx/nx-darwin-x64': 22.7.1 - '@nx/nx-freebsd-x64': 22.7.1 - '@nx/nx-linux-arm-gnueabihf': 22.7.1 - '@nx/nx-linux-arm64-gnu': 22.7.1 - '@nx/nx-linux-arm64-musl': 22.7.1 - '@nx/nx-linux-x64-gnu': 22.7.1 - '@nx/nx-linux-x64-musl': 22.7.1 - '@nx/nx-win32-arm64-msvc': 22.7.1 - '@nx/nx-win32-x64-msvc': 22.7.1 - transitivePeerDependencies: - - debug - nypm@0.6.6: dependencies: citty: 0.2.2 @@ -32523,12 +30151,6 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 - open@8.4.2: - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - openapi-fetch@0.13.8: dependencies: openapi-typescript-helpers: 0.0.15 @@ -32544,17 +30166,6 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 - ora@5.3.0: - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.6.1 - is-interactive: 1.0.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - ora@5.4.1: dependencies: bl: 4.1.0 @@ -32580,6 +30191,8 @@ snapshots: os-browserify@0.3.0: {} + outdent@0.5.0: {} + outdent@0.8.0: {} ox@0.12.4(typescript@6.0.3)(zod@4.4.3): @@ -32779,15 +30392,13 @@ snapshots: dependencies: p-timeout: 6.1.4 - p-filter@4.1.0: + p-filter@2.1.0: dependencies: - p-map: 7.0.4 - - p-finally@1.0.0: {} + p-map: 2.1.0 - p-limit@1.3.0: + p-filter@4.1.0: dependencies: - p-try: 1.0.0 + p-map: 7.0.4 p-limit@2.3.0: dependencies: @@ -32797,14 +30408,6 @@ snapshots: dependencies: yocto-queue: 0.1.0 - p-locate@2.0.0: - dependencies: - p-limit: 1.3.0 - - p-locate@3.0.0: - dependencies: - p-limit: 2.3.0 - p-locate@4.1.0: dependencies: p-limit: 2.3.0 @@ -32813,7 +30416,7 @@ snapshots: dependencies: p-limit: 3.1.0 - p-map-series@2.1.0: {} + p-map@2.1.0: {} p-map@4.0.0: dependencies: @@ -32821,83 +30424,24 @@ snapshots: p-map@7.0.4: {} - p-pipe@3.1.0: {} - - p-queue@6.6.2: - dependencies: - eventemitter3: 4.0.7 - p-timeout: 3.2.0 - p-queue@9.1.0: dependencies: eventemitter3: 5.0.4 p-timeout: 7.0.1 - p-reduce@2.1.0: {} - - p-timeout@3.2.0: - dependencies: - p-finally: 1.0.0 - p-timeout@6.1.4: {} p-timeout@7.0.1: {} - p-try@1.0.0: {} - p-try@2.2.0: {} - p-waterfall@2.1.1: - dependencies: - p-reduce: 2.1.0 - package-json-from-dist@1.0.1: {} - package-manager-detector@1.6.0: {} - - pacote@21.0.1: + package-manager-detector@0.2.11: dependencies: - '@npmcli/git': 6.0.3 - '@npmcli/installed-package-contents': 3.0.0 - '@npmcli/package-json': 7.0.2 - '@npmcli/promise-spawn': 8.0.3 - '@npmcli/run-script': 10.0.3 - cacache: 20.0.4 - fs-minipass: 3.0.3 - minipass: 7.1.3 - npm-package-arg: 13.0.1 - npm-packlist: 10.0.3 - npm-pick-manifest: 10.0.0 - npm-registry-fetch: 19.1.0 - proc-log: 5.0.0 - promise-retry: 2.0.1 - sigstore: 4.1.0 - ssri: 12.0.0 - tar: 7.5.11 - transitivePeerDependencies: - - supports-color + quansync: 0.2.11 - pacote@21.5.0: - dependencies: - '@gar/promise-retry': 1.0.3 - '@npmcli/git': 7.0.2 - '@npmcli/installed-package-contents': 4.0.0 - '@npmcli/package-json': 7.0.2 - '@npmcli/promise-spawn': 9.0.1 - '@npmcli/run-script': 10.0.3 - cacache: 20.0.4 - fs-minipass: 3.0.3 - minipass: 7.1.3 - npm-package-arg: 13.0.1 - npm-packlist: 10.0.3 - npm-pick-manifest: 11.0.3 - npm-registry-fetch: 19.1.0 - proc-log: 6.1.0 - sigstore: 4.1.0 - ssri: 13.0.1 - tar: 7.5.11 - transitivePeerDependencies: - - supports-color + package-manager-detector@1.6.0: {} pako@0.2.9: {} @@ -32917,12 +30461,6 @@ snapshots: pbkdf2: 3.1.5 safe-buffer: 5.2.1 - parse-conflict-json@4.0.0: - dependencies: - json-parse-even-better-errors: 4.0.0 - just-diff: 6.0.2 - just-diff-apply: 5.5.0 - parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 @@ -32933,11 +30471,6 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 - parse-json@4.0.0: - dependencies: - error-ex: 1.3.4 - json-parse-better-errors: 1.0.2 - parse-json@5.2.0: dependencies: '@babel/code-frame': 7.29.0 @@ -32947,20 +30480,10 @@ snapshots: parse-ms@2.1.0: {} - parse-path@7.1.0: - dependencies: - protocols: 2.0.2 - - parse-url@8.1.0: - dependencies: - parse-path: 7.1.0 - parseurl@1.3.3: {} path-browserify@1.0.1: {} - path-exists@3.0.0: {} - path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -32983,10 +30506,6 @@ snapshots: path-to-regexp@0.1.13: {} - path-type@3.0.0: - dependencies: - pify: 3.0.0 - path-type@4.0.0: {} pathe@1.1.2: {} @@ -33028,10 +30547,10 @@ snapshots: pidtree@0.6.0: {} - pify@2.3.0: {} - pify@3.0.0: {} + pify@4.0.1: {} + pify@5.0.0: {} pino-abstract-transport@0.5.0: @@ -33097,10 +30616,6 @@ snapshots: sonic-boom: 2.8.0 thread-stream: 0.15.2 - pkg-dir@4.2.0: - dependencies: - find-up: 4.1.0 - pkg-dir@5.0.0: dependencies: find-up: 5.0.0 @@ -33478,10 +30993,6 @@ snapshots: proc-log@3.0.0: {} - proc-log@5.0.0: {} - - proc-log@6.1.0: {} - process-nextick-args@2.0.1: {} process-warning@1.0.0: {} @@ -33490,12 +31001,6 @@ snapshots: process@0.11.10: {} - proggy@3.0.0: {} - - promise-all-reject-late@1.0.1: {} - - promise-call-limit@3.0.2: {} - promise-inflight@1.0.1: {} promise-retry@2.0.1: @@ -33512,10 +31017,6 @@ snapshots: kleur: 3.0.3 sisteransi: 1.0.5 - promzard@2.0.0: - dependencies: - read: 4.1.0 - prop-types@15.8.1: dependencies: loose-envify: 1.4.0 @@ -33547,8 +31048,6 @@ snapshots: '@types/node': 25.6.2 long: 5.3.2 - protocols@2.0.2: {} - proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -33593,8 +31092,6 @@ snapshots: punycode@2.3.1: {} - q@1.5.1: {} - qr-code-styling@1.9.2: dependencies: qrcode-generator: 1.5.2 @@ -33654,8 +31151,6 @@ snapshots: quick-format-unescaped@4.0.4: {} - quick-lru@4.0.1: {} - quick-lru@5.1.1: {} quote-unquote@1.0.0: {} @@ -33954,37 +31449,12 @@ snapshots: react@19.2.6: {} - read-cmd-shim@4.0.0: {} - - read-cmd-shim@5.0.0: {} - - read-pkg-up@3.0.0: - dependencies: - find-up: 2.1.0 - read-pkg: 3.0.0 - - read-pkg-up@7.0.1: + read-yaml-file@1.1.0: dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - - read-pkg@3.0.0: - dependencies: - load-json-file: 4.0.0 - normalize-package-data: 2.5.0 - path-type: 3.0.0 - - read-pkg@5.2.0: - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - - read@4.1.0: - dependencies: - mute-stream: 2.0.0 + graceful-fs: 4.2.11 + js-yaml: 3.14.2 + pify: 4.0.1 + strip-bom: 3.0.0 readable-stream@2.3.8: dependencies: @@ -34106,10 +31576,6 @@ snapshots: resolve-alpn@1.2.1: {} - resolve-cwd@3.0.0: - dependencies: - resolve-from: 5.0.0 - resolve-dependency-path@4.0.1: {} resolve-from@4.0.0: {} @@ -34252,8 +31718,6 @@ snapshots: run-applescript@7.1.0: {} - run-async@4.0.6: {} - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -34318,8 +31782,6 @@ snapshots: secure-password-utilities@0.2.1: {} - semver@5.7.2: {} - semver@6.3.1: {} semver@7.7.1: {} @@ -34328,8 +31790,6 @@ snapshots: semver@7.7.3: {} - semver@7.7.4: {} - semver@7.8.0: {} send@0.19.2: @@ -34525,17 +31985,6 @@ snapshots: signal-exit@4.1.0: {} - sigstore@4.1.0: - dependencies: - '@sigstore/bundle': 4.0.0 - '@sigstore/core': 3.2.0 - '@sigstore/protobuf-specs': 0.5.1 - '@sigstore/sign': 4.1.1 - '@sigstore/tuf': 4.0.2 - '@sigstore/verify': 3.1.0 - transitivePeerDependencies: - - supports-color - simple-git@3.36.0: dependencies: '@kwsites/file-exists': 1.1.1 @@ -34574,8 +32023,6 @@ snapshots: slow-redact@0.3.2: {} - smart-buffer@4.2.0: {} - smob@1.6.1: {} smol-toml@1.6.1: {} @@ -34598,19 +32045,6 @@ snapshots: transitivePeerDependencies: - supports-color - socks-proxy-agent@8.0.5: - dependencies: - agent-base: 7.1.4 - debug: 4.4.3(supports-color@10.2.2) - socks: 2.8.9 - transitivePeerDependencies: - - supports-color - - socks@2.8.9: - dependencies: - ip-address: 10.2.0 - smart-buffer: 4.2.0 - sonic-boom@2.8.0: dependencies: atomic-sleep: 1.0.0 @@ -34653,6 +32087,11 @@ snapshots: space-separated-tokens@2.0.2: {} + spawndamnit@3.0.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 @@ -34669,15 +32108,9 @@ snapshots: split-on-first@1.1.0: {} - split2@3.2.2: - dependencies: - readable-stream: 3.6.2 - split2@4.2.0: {} - split@1.0.1: - dependencies: - through: 2.3.8 + sprintf-js@1.0.3: {} srvx@0.11.15: {} @@ -34685,14 +32118,6 @@ snapshots: dependencies: minipass: 7.1.3 - ssri@12.0.0: - dependencies: - minipass: 7.1.3 - - ssri@13.0.1: - dependencies: - minipass: 7.1.3 - stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 @@ -34707,23 +32132,6 @@ snapshots: standard-as-callback@2.1.0: {} - standard-version@9.5.0: - dependencies: - chalk: 2.4.2 - conventional-changelog: 3.1.25 - conventional-changelog-config-spec: 2.1.0 - conventional-changelog-conventionalcommits: 4.6.3 - conventional-recommended-bump: 6.1.0 - detect-indent: 6.1.0 - detect-newline: 3.1.0 - dotgitignore: 2.1.0 - figures: 3.2.0 - find-up: 5.0.0 - git-semver-tags: 4.1.1 - semver: 7.8.0 - stringify-package: 1.0.1 - yargs: 16.2.0 - state-local@1.0.7: {} statuses@1.5.0: {} @@ -34819,8 +32227,6 @@ snapshots: is-obj: 1.0.1 is-regexp: 1.0.0 - stringify-package@1.0.1: {} - strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -34831,8 +32237,6 @@ snapshots: strip-bom@3.0.0: {} - strip-bom@4.0.0: {} - strip-final-newline@2.0.0: {} strip-final-newline@3.0.0: {} @@ -34895,13 +32299,12 @@ snapshots: react-dom: 19.2.6(react@19.2.6) react-native: 0.85.3(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6) - styled-jsx@5.1.6(@babel/core@7.29.0)(babel-plugin-macros@3.1.0)(react@19.2.6): + styled-jsx@5.1.6(@babel/core@7.29.0)(react@19.2.6): dependencies: client-only: 0.0.1 react: 19.2.6 optionalDependencies: '@babel/core': 7.29.0 - babel-plugin-macros: 3.1.0 stylehacks@7.0.11(postcss@8.5.14): dependencies: @@ -35032,14 +32435,6 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - tar@7.5.11: - dependencies: - '@isaacs/fs-minipass': 4.0.1 - chownr: 3.0.0 - minipass: 7.1.3 - minizlib: 3.1.0 - yallist: 5.0.0 - tar@7.5.15: dependencies: '@isaacs/fs-minipass': 4.0.1 @@ -35060,6 +32455,8 @@ snapshots: mkdirp: 0.5.6 rimraf: 2.6.3 + term-size@2.2.1: {} + terser@5.47.1: dependencies: '@jridgewell/source-map': 0.3.11 @@ -35077,8 +32474,6 @@ snapshots: text-encoding@0.7.0: {} - text-extensions@1.9.0: {} - thread-stream@0.15.2: dependencies: real-require: 0.1.0 @@ -35094,12 +32489,6 @@ snapshots: readable-stream: 2.3.8 xtend: 4.0.2 - through2@4.0.2: - dependencies: - readable-stream: 3.6.2 - - through@2.3.8: {} - timers-browserify@2.0.12: dependencies: setimmediate: 1.0.5 @@ -35116,11 +32505,6 @@ snapshots: tinyexec@1.1.2: {} - tinyglobby@0.2.12: - dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 - tinyglobby@0.2.16: dependencies: fdir: 6.5.0(picomatch@4.0.4) @@ -35134,8 +32518,6 @@ snapshots: dependencies: tldts-core: 6.1.86 - tmp@0.2.4: {} - tmpl@1.0.5: {} to-buffer@1.2.2: @@ -35164,12 +32546,8 @@ snapshots: treeify@1.1.0: {} - treeverse@3.0.0: {} - trim-lines@3.0.1: {} - trim-newlines@3.0.1: {} - tronweb@6.2.2(bufferutil@4.1.0)(utf-8-validate@6.0.6): dependencies: '@babel/runtime': 7.26.10 @@ -35268,14 +32646,6 @@ snapshots: tty-browserify@0.0.1: {} - tuf-js@4.1.0: - dependencies: - '@tufjs/models': 4.1.0 - debug: 4.4.3(supports-color@10.2.2) - make-fetch-happen: 15.0.2 - transitivePeerDependencies: - - supports-color - turbo-stream@2.4.1: {} tweetnacl@1.0.3: {} @@ -35284,14 +32654,8 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-fest@0.18.1: {} - - type-fest@0.6.0: {} - type-fest@0.7.1: {} - type-fest@0.8.1: {} - type-fest@5.6.0: dependencies: tagged-tag: 1.0.0 @@ -35309,8 +32673,6 @@ snapshots: es-errors: 1.3.0 is-typed-array: 1.1.15 - typedarray@0.0.6: {} - typeforce@1.18.0: {} typescript-eslint@8.59.2(eslint@10.3.0(jiti@2.7.0))(typescript@6.0.3): @@ -35340,9 +32702,6 @@ snapshots: ufo@1.6.4: {} - uglify-js@3.19.3: - optional: true - uint8array-tools@0.0.8: {} uint8array-tools@0.0.9: {} @@ -35470,7 +32829,7 @@ snapshots: unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 - universal-user-agent@6.0.1: {} + universalify@0.1.2: {} universalify@2.0.1: {} @@ -35543,8 +32902,6 @@ snapshots: pathe: 2.0.3 pkg-types: 2.3.1 - upath@2.0.1: {} - update-browserslist-db@1.2.3(browserslist@4.28.2): dependencies: browserslist: 4.28.2 @@ -35642,8 +32999,6 @@ snapshots: validate-npm-package-name@5.0.1: {} - validate-npm-package-name@6.0.2: {} - validator@13.15.23: {} valtio@1.11.2(@types/react@19.2.14)(react@19.2.6): @@ -36193,10 +33548,6 @@ snapshots: dependencies: isexe: 2.0.0 - which@5.0.0: - dependencies: - isexe: 3.1.5 - which@6.0.1: dependencies: isexe: 4.0.0 @@ -36206,18 +33557,12 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 - wide-align@1.1.5: - dependencies: - string-width: 4.2.3 - wif@2.0.6: dependencies: bs58check: 2.1.2 word-wrap@1.2.5: {} - wordwrap@1.0.0: {} - wrap-ansi@10.0.0: dependencies: ansi-styles: 6.2.3 @@ -36250,16 +33595,6 @@ snapshots: wrappy@1.0.2: {} - write-file-atomic@5.0.1: - dependencies: - imurmurhash: 0.1.4 - signal-exit: 4.1.0 - - write-file-atomic@6.0.0: - dependencies: - imurmurhash: 0.1.4 - signal-exit: 4.1.0 - ws@7.5.10(bufferutil@4.1.0)(utf-8-validate@6.0.6): optionalDependencies: bufferutil: 4.1.0 @@ -36358,8 +33693,6 @@ snapshots: yaml@1.10.3: {} - yaml@2.8.0: {} - yaml@2.8.4: {} yargs-parser@18.1.3: @@ -36418,8 +33751,6 @@ snapshots: yocto-queue@0.1.0: {} - yoctocolors-cjs@2.1.3: {} - yoctocolors@2.1.2: {} youch-core@0.3.3: From 4bc3db6026e193e030a39bc6e86f6e04bccc8e56 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Wed, 27 May 2026 17:13:00 +0200 Subject: [PATCH 06/36] chore: remove Lerna and freeze monorepo CHANGELOG - Delete lerna.json (independent versioning now handled by Changesets) - standard-version + lerna devdeps and release:* scripts removed in prior commit - Add archive note to root CHANGELOG.md; per-package CHANGELOGs are now authoritative --- CHANGELOG.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 552d52ef0..647846fed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # Changelog -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +> **Archived.** This monorepo-wide changelog is frozen as of the migration to +> [Changesets](https://github.com/changesets/changesets). It is kept for historical +> reference up to the v3 line. Going forward, each published package maintains its +> **own** `CHANGELOG.md` (e.g. `packages/widget/CHANGELOG.md`), which is the +> authoritative source of release notes. Do not add new entries to this file. + +All notable changes to this project (through the standard-version era) are documented below. See [standard-version](https://github.com/conventional-changelog/standard-version) for the historical commit guidelines. ## [3.38.0](https://github.com/lifinance/widget/compare/v3.37.0...v3.38.0) (2025-12-16) From d7e755ff23d62609d63e28255db714afc05662e1 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Wed, 27 May 2026 17:13:36 +0200 Subject: [PATCH 07/36] fix(scripts): normalize widget-provider-tron prerelease to README.md only Other 8 publishable packages copy only README.md via build:prerelease; tron used 'cpy ../../*.md' which also dragged in the root CHANGELOG.md. Align it so changeset publish never bundles the (now archived) root changelog. --- packages/widget-provider-tron/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/widget-provider-tron/package.json b/packages/widget-provider-tron/package.json index 4804c0745..4e9f7c861 100644 --- a/packages/widget-provider-tron/package.json +++ b/packages/widget-provider-tron/package.json @@ -9,8 +9,8 @@ "scripts": { "watch": "tsdown --watch", "build": "pnpm clean && tsdown", - "build:prerelease": "node ../../scripts/prerelease.js && cpy '../../*.md' .", - "build:postrelease": "node ../../scripts/postrelease.js && rm -rf *.md", + "build:prerelease": "node ../../scripts/prerelease.js && cpy '../../README.md' .", + "build:postrelease": "node ../../scripts/postrelease.js && rm -rf README.md", "release:build": "pnpm build", "clean": "rm -rf dist", "check:types": "tsc --noEmit", From 8552ca1526b2638865cd5a2efda2fd88034d156c Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Wed, 27 May 2026 17:19:11 +0200 Subject: [PATCH 08/36] ci: rewrite publish.yaml around changesets/action - Trigger on push to main (was: v* tag push); add workflow_dispatch - concurrency: release-${{ github.ref }}, cancel-in-progress: false - verify job: pnpm check / check:types / build (reuses pnpm-install action) - changesets job: opens 'chore: version packages' PR, outputs hasChangesets - release job (if hasChangesets == false): changeset:publish + createGithubReleases, NPM_CONFIG_PROVENANCE=true, id-token: write, outputs publishedPackages - SHA-pinned changesets/action (v1.5.3) and checkout (v6.0.2) - Static gated Linear jobs per anchor (Widget live, Checkout dormant) deriving version/channel/tag from publishedPackages via jq - Drops softprops/action-gh-release (now changesets createGithubReleases) --- .github/workflows/publish.yaml | 202 +++++++++++++++++++++++++++++---- 1 file changed, 180 insertions(+), 22 deletions(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 999a9a306..913b1bf1c 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -1,37 +1,195 @@ name: Release & Publish -# Orchestrator: composes the release pipeline from single-purpose reusable -# workflows. GitHub Release and npm publish run in parallel; the Linear sync -# runs only after npm publish succeeds, so tickets move to Done strictly when -# the packages are actually on npm. +# Changesets-driven release pipeline. +# +# On push to main: +# 1. verify — lint, types, build (gate). +# 2. changesets — opens/updates the "Version Packages" PR. When that PR is +# merged (no changesets left on main), this run instead has +# hasChangesets == 'false'. +# 3. release — runs ONLY when there are no pending changesets, i.e. the +# version PR has just been merged. Builds + runs the +# per-package prerelease transform, then `changeset publish` +# (flat per-package `npm publish` with OIDC provenance) and +# creates GitHub Releases. Exposes publishedPackages. +# 4. linear-* — one static gated job per release anchor. Each derives its +# version + channel from publishedPackages and syncs Linear. on: push: - tags: - - 'v[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+' - - 'v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+' - - 'v[0-9]+.[0-9]+.[0-9]+' + branches: [main] workflow_dispatch: +# Never run two releases at once; do NOT cancel an in-flight publish. +concurrency: + group: release-${{ github.ref }} + cancel-in-progress: false + +permissions: + contents: read + jobs: - github-release: + verify: + name: Verify + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Install dependencies + uses: ./.github/actions/pnpm-install + - name: Check code + run: pnpm check + - name: Check types + run: pnpm check:types + - name: Build + run: pnpm build + + changesets: + name: Changesets + needs: verify + # Prevent this action from running on forks. + if: github.repository == 'lifinance/widget' + runs-on: ubuntu-latest + permissions: + contents: write # to create the version PR / push tags + pull-requests: write # to create the version PR + outputs: + hasChangesets: ${{ steps.changesets.outputs.hasChangesets }} + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + # Fetch full history so Changesets can generate changelogs. + fetch-depth: 0 + - name: Install dependencies + uses: ./.github/actions/pnpm-install + - name: Create version pull request + id: changesets + uses: changesets/action@e0145edc7d9d8679003495b11f87bd8ef63c0cba # v1.5.3 + with: + version: pnpm changeset:version + title: 'chore: version packages' + commit: 'chore: version packages' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + release: + name: Release + needs: changesets + # Only publish once the version PR has been merged (no changesets left). + if: needs.changesets.outputs.hasChangesets == 'false' + runs-on: ubuntu-latest + permissions: + contents: write # to create GitHub Releases + id-token: write # OIDC token for npm provenance / trusted publishing + outputs: + publishedPackages: ${{ steps.changesets.outputs.publishedPackages }} + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + fetch-depth: 0 + - name: Install dependencies + uses: ./.github/actions/pnpm-install + - name: Publish to npm + id: changesets + uses: changesets/action@e0145edc7d9d8679003495b11f87bd8ef63c0cba # v1.5.3 + with: + publish: pnpm changeset:publish + createGithubReleases: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_CONFIG_PROVENANCE: true + + # --------------------------------------------------------------------------- + # Linear release sync — one STATIC gated job per anchor package. Secret refs + # must be static YAML, so we cannot use a dynamic matrix. Each job derives the + # version + channel from publishedPackages (NOT from a git tag) and forwards + # them to the reusable linear-release.yaml. + # --------------------------------------------------------------------------- + linear-widget: + name: Linear Sync (Widget) + needs: release + # Fires only when @lifi/widget was actually published this run. + if: contains(needs.release.outputs.publishedPackages, '"@lifi/widget"') + runs-on: ubuntu-latest permissions: - contents: write - uses: ./.github/workflows/github-release.yaml + contents: read + outputs: + full: ${{ steps.meta.outputs.full }} + version: ${{ steps.meta.outputs.version }} + channel: ${{ steps.meta.outputs.channel }} + steps: + - name: Derive version and channel from publishedPackages + id: meta + env: + PUBLISHED: ${{ needs.release.outputs.publishedPackages }} + run: | + FULL=$(echo "$PUBLISHED" | jq -r '.[] | select(.name=="@lifi/widget") | .version') + VERSION="${FULL%%-*}" # 4.0.0-beta.21 -> 4.0.0 + case "$FULL" in + *-alpha.*) CHANNEL=alpha ;; + *-beta.*) CHANNEL=beta ;; + *) CHANNEL=stable ;; + esac + echo "full=$FULL" >> "$GITHUB_OUTPUT" + echo "version=$VERSION" >> "$GITHUB_OUTPUT" + echo "channel=$CHANNEL" >> "$GITHUB_OUTPUT" + echo "Resolved @lifi/widget $FULL -> version=$VERSION channel=$CHANNEL" - npm-publish: + linear-widget-sync: + name: Linear Sync (Widget) · run + needs: linear-widget permissions: - contents: write - id-token: write - uses: ./.github/workflows/npm-publish.yaml - - linear-release: - needs: npm-publish - # Only for real release tags — skip manual branch dispatches. - if: startsWith(github.ref, 'refs/tags/v') + contents: read + uses: ./.github/workflows/linear-release.yaml + with: + release_name: Widget + version: ${{ needs.linear-widget.outputs.version }} + channel: ${{ needs.linear-widget.outputs.channel }} + release_tag: '@lifi/widget@${{ needs.linear-widget.outputs.full }}' + secrets: + access_key: ${{ secrets.WIDGET_LINEAR_RELEASE_ACCESS_KEY }} + + # DORMANT until @lifi/widget-checkout ships (PR #727). The `if` never matches + # today; enabling it later requires no further change. + linear-checkout: + name: Linear Sync (Checkout) + needs: release + if: contains(needs.release.outputs.publishedPackages, '"@lifi/widget-checkout"') + runs-on: ubuntu-latest + permissions: + contents: read + outputs: + full: ${{ steps.meta.outputs.full }} + version: ${{ steps.meta.outputs.version }} + channel: ${{ steps.meta.outputs.channel }} + steps: + - name: Derive version and channel from publishedPackages + id: meta + env: + PUBLISHED: ${{ needs.release.outputs.publishedPackages }} + run: | + FULL=$(echo "$PUBLISHED" | jq -r '.[] | select(.name=="@lifi/widget-checkout") | .version') + VERSION="${FULL%%-*}" + case "$FULL" in + *-alpha.*) CHANNEL=alpha ;; + *-beta.*) CHANNEL=beta ;; + *) CHANNEL=stable ;; + esac + echo "full=$FULL" >> "$GITHUB_OUTPUT" + echo "version=$VERSION" >> "$GITHUB_OUTPUT" + echo "channel=$CHANNEL" >> "$GITHUB_OUTPUT" + echo "Resolved @lifi/widget-checkout $FULL -> version=$VERSION channel=$CHANNEL" + + linear-checkout-sync: + name: Linear Sync (Checkout) · run + needs: linear-checkout permissions: contents: read uses: ./.github/workflows/linear-release.yaml with: - tag: ${{ github.ref_name }} + release_name: Checkout + version: ${{ needs.linear-checkout.outputs.version }} + channel: ${{ needs.linear-checkout.outputs.channel }} + release_tag: '@lifi/widget-checkout@${{ needs.linear-checkout.outputs.full }}' secrets: - access_key: ${{ secrets.LINEAR_RELEASE_ACCESS_KEY }} + access_key: ${{ secrets.CHECKOUT_LINEAR_RELEASE_ACCESS_KEY }} From 16bd8fb1cfa343809ab5019218848fc0904e3a88 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Wed, 27 May 2026 17:19:40 +0200 Subject: [PATCH 09/36] ci: reparameterize linear-release.yaml for changesets - Inputs now (release_name, version, channel, release_tag); secret access_key - version/channel are supplied by the caller (derived from publishedPackages), no longer parsed from a v* git tag inside this workflow - release_tag carries the full per-package GitHub release tag for the link - Keep sync (attach issues + link) / update+stage (alpha|beta) / complete (stable) --- .github/workflows/linear-release.yaml | 58 +++++++++++++-------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/.github/workflows/linear-release.yaml b/.github/workflows/linear-release.yaml index 4a447debc..c1aaf00ad 100644 --- a/.github/workflows/linear-release.yaml +++ b/.github/workflows/linear-release.yaml @@ -1,12 +1,28 @@ name: 'Release · Linear Sync' -# Reusable: syncs the published release into the Linear "Widget" pipeline. -# Called by publish.yaml after npm publish succeeds; not triggered on its own. +# Reusable: syncs a published release into a Linear release pipeline. +# Called by publish.yaml once per anchor package after `changeset publish` +# succeeds; not triggered on its own. +# +# Version + channel are DERIVED by the caller from the changesets +# publishedPackages output (NOT from a git tag) and passed in here. on: workflow_call: inputs: - tag: - description: 'Release tag that was published (e.g. v4.0.0-beta.20)' + release_name: + description: 'Linear release name prefix (e.g. "Widget" or "Checkout")' + required: true + type: string + version: + description: 'Released semver, prerelease stripped (e.g. 4.0.0)' + required: true + type: string + channel: + description: 'Release channel: alpha | beta | stable' + required: true + type: string + release_tag: + description: 'Full per-package GitHub release tag (e.g. @lifi/widget@4.0.0-beta.21)' required: true type: string secrets: @@ -27,48 +43,32 @@ jobs: fetch-tags: true persist-credentials: false - - name: Resolve version and channel - id: meta - env: - TAG: ${{ inputs.tag }} - run: | - VERSION="${TAG#v}" # strip leading v -> 4.0.0-beta.20 - VERSION="${VERSION%%-*}" # strip prerelease -> 4.0.0 - case "$TAG" in - *-alpha.*) CHANNEL=alpha ;; - *-beta.*) CHANNEL=beta ;; - *) CHANNEL=stable ;; - esac - echo "version=$VERSION" >> "$GITHUB_OUTPUT" - echo "channel=$CHANNEL" >> "$GITHUB_OUTPUT" - echo "Resolved tag=$TAG version=$VERSION channel=$CHANNEL" - - # Attach merged issues to the X.Y.Z release and record this tag as a link. + # Attach merged issues to the X.Y.Z release and record a link. - name: Sync issues to release uses: linear/linear-release-action@ad7da502eec3a93dd17e2e249e6c1cd84e3ee588 # v0 with: access_key: ${{ secrets.access_key }} command: sync - release_version: ${{ steps.meta.outputs.version }} - name: Widget ${{ steps.meta.outputs.version }} + release_version: ${{ inputs.version }} + name: ${{ inputs.release_name }} ${{ inputs.version }} links: | - ${{ github.server_url }}/${{ github.repository }}/releases/tag/${{ inputs.tag }} + ${{ github.server_url }}/${{ github.repository }}/releases/tag/${{ inputs.release_tag }} # Prerelease: advance the stage only (release stays open -> tickets stay "Ready for Release"). - name: Advance stage (alpha/beta) - if: steps.meta.outputs.channel != 'stable' + if: inputs.channel != 'stable' uses: linear/linear-release-action@ad7da502eec3a93dd17e2e249e6c1cd84e3ee588 # v0 with: access_key: ${{ secrets.access_key }} command: update - release_version: ${{ steps.meta.outputs.version }} - stage: ${{ steps.meta.outputs.channel == 'alpha' && 'Alpha' || 'Beta' }} + release_version: ${{ inputs.version }} + stage: ${{ inputs.channel == 'alpha' && 'Alpha' || 'Beta' }} # Stable: complete the release -> fires the "On release completion -> Done" automation. - name: Complete release (stable) - if: steps.meta.outputs.channel == 'stable' + if: inputs.channel == 'stable' uses: linear/linear-release-action@ad7da502eec3a93dd17e2e249e6c1cd84e3ee588 # v0 with: access_key: ${{ secrets.access_key }} command: complete - release_version: ${{ steps.meta.outputs.version }} + release_version: ${{ inputs.version }} From 9019bab1fd48ff5f2e3f50e647b9244e31492120 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Wed, 27 May 2026 17:20:17 +0200 Subject: [PATCH 10/36] ci: delete superseded github-release and npm-publish workflows changesets/action now creates GitHub Releases (createGithubReleases) and publishes to npm (changeset:publish), so these reusable workflows are obsolete. The OIDC trusted-publisher binding moves from npm-publish.yaml to the release job in publish.yaml and must be re-pointed on npmjs.com before first publish. --- .github/workflows/github-release.yaml | 25 ------------------------- .github/workflows/npm-publish.yaml | 25 ------------------------- 2 files changed, 50 deletions(-) delete mode 100644 .github/workflows/github-release.yaml delete mode 100644 .github/workflows/npm-publish.yaml diff --git a/.github/workflows/github-release.yaml b/.github/workflows/github-release.yaml deleted file mode 100644 index 1f7f1e9cd..000000000 --- a/.github/workflows/github-release.yaml +++ /dev/null @@ -1,25 +0,0 @@ -name: 'Release · GitHub Release' - -# Reusable: creates the GitHub Release for the current tag. -# Called by publish.yaml; not triggered on its own. -on: - workflow_call: - -permissions: - contents: write - -jobs: - github-release: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Create GitHub Release - uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - generate_release_notes: true - name: ${{ github.ref_name }} - draft: false - prerelease: false diff --git a/.github/workflows/npm-publish.yaml b/.github/workflows/npm-publish.yaml deleted file mode 100644 index a7fd1c0fb..000000000 --- a/.github/workflows/npm-publish.yaml +++ /dev/null @@ -1,25 +0,0 @@ -name: 'Release · npm Publish' - -# Reusable: builds and publishes the packages to npm with provenance (OIDC). -# Called by publish.yaml; not triggered on its own. -on: - workflow_call: - -permissions: - contents: write - id-token: write - -jobs: - npm-publish: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Install dependencies - uses: ./.github/actions/pnpm-install - - name: Build - run: pnpm release:build - - name: Publish to npm - run: | - pnpm release:publish${{ contains(github.ref_name, 'alpha') && ':alpha' || contains(github.ref_name, 'beta') && ':beta' || '' }} - env: - NPM_CONFIG_PROVENANCE: true From 02d6336b222a4e1d7b9727663300b5250feb1260 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Wed, 27 May 2026 17:20:37 +0200 Subject: [PATCH 11/36] ci(deploy): add shared concurrency to avoid overlapping releases The Changesets release job pushes version + publish commits to main, each re-triggering this S3 deploy. Add a concurrency group with cancel-in-progress so back-to-back main pushes collapse onto a single, latest deploy. --- .github/workflows/deploy.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 55b4585bb..bdda5f930 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -5,6 +5,14 @@ on: branches: - main +# The Changesets release job pushes a "chore: version packages" commit and a +# publish commit to main, each of which also triggers this deploy. Collapse +# rapid back-to-back main pushes onto one deploy and supersede any in-flight +# run so we never race two S3 syncs. +concurrency: + group: deploy-${{ github.ref }} + cancel-in-progress: true + jobs: build: permissions: From babf809fbf96904383f2855993942a53f14ae964 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Wed, 27 May 2026 17:22:01 +0200 Subject: [PATCH 12/36] ci: add fail-closed changeset enforcement on PRs changeset-check.yaml fails a PR when a publishable package changes but no changeset is added. Two layers: 'changeset status --since=origin/' plus an independent git-diff guard scoped to publishable package globs. Docs-only (*.md) and private packages (widget-embedded, widget-playground*) are exempt. --- .github/workflows/changeset-check.yaml | 82 ++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 .github/workflows/changeset-check.yaml diff --git a/.github/workflows/changeset-check.yaml b/.github/workflows/changeset-check.yaml new file mode 100644 index 000000000..88d2e34fd --- /dev/null +++ b/.github/workflows/changeset-check.yaml @@ -0,0 +1,82 @@ +name: Changeset Check + +# Fail-closed PR gate: if a pull request modifies a PUBLISHABLE package but +# adds no changeset, the build fails. Docs-only changes and private/ignored +# packages (widget-embedded, widget-playground*) are exempt. +on: + pull_request: + branches: [main] + +permissions: + contents: read + +concurrency: + group: changeset-check-${{ github.event.pull_request.number }} + cancel-in-progress: true + +jobs: + changeset-check: + name: Changeset present + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + # Need history back to the merge base for the diff + changeset status. + fetch-depth: 0 + + - name: Install dependencies + uses: ./.github/actions/pnpm-install + + # Layer 1 — Changesets' own view: errors if publishable packages changed + # since the base branch but no changeset is present. + - name: changeset status + run: pnpm changeset status --since=origin/${{ github.base_ref }} + + # Layer 2 — Independent fail-closed guard. Even if `changeset status` + # heuristics miss something, fail when publishable package source changed + # and no new .changeset/*.md was added in this PR. + - name: Guard — publishable change requires a changeset + env: + BASE: origin/${{ github.base_ref }} + run: | + set -euo pipefail + + # Publishable package globs (private packages are intentionally excluded: + # widget-embedded, widget-playground, widget-playground-next, widget-playground-vite). + PUBLISHABLE=( + 'packages/widget/**' + 'packages/wallet-management/**' + 'packages/widget-light/**' + 'packages/widget-provider/**' + 'packages/widget-provider-bitcoin/**' + 'packages/widget-provider-ethereum/**' + 'packages/widget-provider-solana/**' + 'packages/widget-provider-sui/**' + 'packages/widget-provider-tron/**' + ) + + # Changed files under publishable packages, excluding docs-only files + # (*.md) which don't warrant a release. + CHANGED=$(git diff --name-only "$BASE"...HEAD -- "${PUBLISHABLE[@]}" \ + | grep -v -E '\.md$' || true) + + # New changeset markdown files added in this PR (README.md is not a changeset). + ADDED_CHANGESETS=$(git diff --name-only --diff-filter=A "$BASE"...HEAD -- '.changeset/*.md' \ + | grep -v -E '\.changeset/README\.md$' || true) + + if [ -n "$CHANGED" ] && [ -z "$ADDED_CHANGESETS" ]; then + echo "::error::A publishable package changed but no changeset was added." + echo "Changed publishable files:" + echo "$CHANGED" | sed 's/^/ - /' + echo "" + echo "Add one with: pnpm changeset" + echo "(feat -> minor, fix -> patch, breaking -> major; skip cascade-only dependents)" + exit 1 + fi + + echo "Changeset check passed." + if [ -z "$CHANGED" ]; then + echo "No publishable package source changed (docs/private-only or no package change)." + else + echo "Publishable changes are accompanied by a changeset." + fi From 1ad7cd37a27f13d0a840b89727537e122b0ae04b Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Wed, 27 May 2026 17:23:02 +0200 Subject: [PATCH 13/36] docs: rewrite CLAUDE.md Release section for Changesets - Replace Lerna/standard-version flow with Changesets pre-PR rule (feat->minor, fix->patch, breaking->major; no cascade-only changesets) - Document pre-mode (beta) and the hard rule: never 'changeset pre exit' until cutting stable 4.0.0 - Explain changeset:version/:prepublish/:publish and why the transform must run in prepublish; note workspace:* resolves to concrete at publish time --- CLAUDE.md | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 983c57e36..3165ca2d2 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## Repository Overview -LI.FI Widget monorepo — a cross-chain DeFi swap/bridge widget supporting Ethereum, Solana, Bitcoin, and Sui ecosystems. Managed with pnpm workspaces, Lerna (independent versioning), and TypeScript composite builds. +LI.FI Widget monorepo — a cross-chain DeFi swap/bridge widget supporting Ethereum, Solana, Bitcoin, and Sui ecosystems. Managed with pnpm workspaces, Changesets (independent versioning), and TypeScript composite builds. ## Commands @@ -116,10 +116,39 @@ QueryClient → Settings → WidgetConfig → I18n → Theme → SDK → Wallet ## Release -Independent versioning via Lerna. Release flow: -1. `pnpm release:version` — bump versions -2. `pnpm release:build` — build all packages -3. `standard-version` — generate changelog -4. Git tag triggers GitHub Actions publish (`alpha`, `beta`, or `latest` npm tags) +Releases are managed with **[Changesets](https://github.com/changesets/changesets)** (independent per-package versioning — no `fixed`/`linked`). Lerna and standard-version have been removed. Each published package owns its `CHANGELOG.md`; the root `CHANGELOG.md` is a frozen v3-era archive. -`scripts/version.js` generates `src/config/version.ts` per-package during build. +### Per-PR rule (do this on every feature/fix PR) + +When a change touches a **publishable** package (not a private package, not docs-only), add a `.changeset/*.md` before committing: + +```bash +pnpm changeset # interactive: pick packages + bump type, write a summary +``` + +- `feat:` → **minor**, `fix:` → **patch**, breaking change → **major**. +- Do **not** author changesets for cascade-only dependents — Changesets bumps internal dependents automatically (`updateInternalDependencies: minor`). +- Publishable packages: `@lifi/widget`, `@lifi/wallet-management`, `@lifi/widget-light`, `@lifi/widget-provider`, `@lifi/widget-provider-{bitcoin,ethereum,solana,sui,tron}`. +- Private/ignored (never need a changeset): `@lifi/widget-embedded`, `@lifi/widget-playground`, `@lifi/widget-playground-next`, `@lifi/widget-playground-vite`, examples, e2e. +- CI enforces this: `.github/workflows/changeset-check.yaml` fails any PR that edits a publishable package without adding a changeset. + +### PRE-MODE — currently in `beta` (DO NOT EXIT) + +The repo is in Changesets **pre mode** (`.changeset/pre.json`, `tag: beta`). While in pre mode, `changeset version` produces `4.0.0-beta.N` versions and `changeset publish` publishes under the `beta` dist-tag. `latest` on npm stays on the v3 line (`@lifi/widget@3.x`). + +**NEVER run `changeset pre exit`** unless you are deliberately cutting the stable `4.0.0` release. Exiting pre mode is the single action that moves the npm `latest` tag to 4.x — do it only on purpose. + +### How a release happens (automated) + +1. Open PRs with changesets (per the rule above). +2. On merge to `main`, `.github/workflows/publish.yaml` runs the `changesets` job, which opens/updates a **`chore: version packages`** PR aggregating all pending changesets (bumps versions, regenerates per-package CHANGELOGs, refreshes the lockfile). +3. Merging that version PR triggers the `release` job: it runs `pnpm changeset:publish` (build → per-package prerelease transform → `changeset publish`) and creates GitHub Releases. npm provenance is enabled via `NPM_CONFIG_PROVENANCE=true` + OIDC (`id-token: write`). +4. The `linear-*` jobs sync the published versions into Linear, deriving version/channel from the action's `publishedPackages` output. + +### Root scripts + +- `pnpm changeset:version` — `changeset version` + `pnpm install --lockfile-only` + `pnpm check:write`. +- `pnpm changeset:prepublish` — `pnpm clean && pnpm build`, then `build:prerelease` across publishable packages. **This is where the publish transform runs:** `changeset publish` does flat per-package `npm publish` and does NOT run each package's `build:prerelease` lifecycle, so the transform (`scripts/prerelease.js` → `scripts/formatPackageJson.js`, rewriting entry points to `dist/esm/` and copying `README.md`) must run here. +- `pnpm changeset:publish` — `pnpm changeset:prepublish && changeset publish` (used by CI). + +`workspace:*` internal deps are resolved to concrete versions by `changeset publish` at publish time; `formatPackageJson.js` leaves `dependencies` untouched. `scripts/version.js` generates `src/config/version.ts` during build for `@lifi/widget` and `@lifi/widget-light` only. From aa47acc97394c3d0ac21d40531bc5f6437030959 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Wed, 27 May 2026 17:28:46 +0200 Subject: [PATCH 14/36] fix(scripts): drop redundant root pnpm clean from changeset:prepublish The root 'pnpm clean' script is broken under pnpm v11 (pre-existing, not introduced by this migration) and is redundant: each package's 'build' script already runs its own per-package clean before tsdown. Removing the leading call unblocks changeset:prepublish without expanding scope to fix the root script. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5620b3e3f..71d99bfc3 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "dev:local": "pnpm --filter widget-playground-vite dev:local", "dev:next": "pnpm --filter widget-playground-next dev", "changeset:version": "changeset version && pnpm install --lockfile-only && pnpm check:write", - "changeset:prepublish": "pnpm clean && pnpm build && pnpm -r --filter './packages/**' --filter '!*-playground-*' --filter '!*-embedded' build:prerelease", + "changeset:prepublish": "pnpm build && pnpm -r --filter './packages/**' --filter '!*-playground-*' --filter '!*-embedded' build:prerelease", "changeset:publish": "pnpm changeset:prepublish && changeset publish", "check": "biome check", "check:write": "biome check --write", From a09834f0ac6927631a23a68d528cacd62cff6ae3 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Wed, 27 May 2026 18:08:19 +0200 Subject: [PATCH 15/36] chore(claude): add changeset + release skills and /changeset command Add a contributor 'changeset' skill (+ /changeset command) so every PR that touches a publishable package ships with a changeset, and a maintainer 'release' skill documenting the Changesets + Linear pipeline, channels, and dist-tag safety. Read-only command allowlist in settings.json. Uniform structure across all repos; references tailored per repo. --- .claude/commands/changeset.md | 22 +++++++ .claude/settings.json | 17 +++++ .claude/skills/changeset/SKILL.md | 54 +++++++++++++++ .../skills/changeset/references/bump-rules.md | 49 ++++++++++++++ .claude/skills/changeset/references/format.md | 66 +++++++++++++++++++ .claude/skills/release/SKILL.md | 47 +++++++++++++ .claude/skills/release/references/channels.md | 45 +++++++++++++ .../skills/release/references/dist-tags.md | 41 ++++++++++++ .../skills/release/references/linear-sync.md | 50 ++++++++++++++ .claude/skills/release/references/pipeline.md | 55 ++++++++++++++++ 10 files changed, 446 insertions(+) create mode 100644 .claude/commands/changeset.md create mode 100644 .claude/settings.json create mode 100644 .claude/skills/changeset/SKILL.md create mode 100644 .claude/skills/changeset/references/bump-rules.md create mode 100644 .claude/skills/changeset/references/format.md create mode 100644 .claude/skills/release/SKILL.md create mode 100644 .claude/skills/release/references/channels.md create mode 100644 .claude/skills/release/references/dist-tags.md create mode 100644 .claude/skills/release/references/linear-sync.md create mode 100644 .claude/skills/release/references/pipeline.md diff --git a/.claude/commands/changeset.md b/.claude/commands/changeset.md new file mode 100644 index 000000000..b5198dbc4 --- /dev/null +++ b/.claude/commands/changeset.md @@ -0,0 +1,22 @@ +--- +description: Add a Changesets changeset for the changes on the current branch +--- + +Add a [Changesets](https://github.com/changesets/changesets) changeset describing the +changes on the current branch, so this work ships with the right version bump and a +changelog entry. + +Use the **`changeset` skill** to do this. In short: + +1. `git fetch origin main` then `git diff --name-only origin/main...HEAD` to see which + packages changed. +2. Map changed files to **publishable** packages (skip private packages and docs-only + changes — see the skill's `references/bump-rules.md`). +3. Choose a bump per package (`feat:` → minor, `fix:` → patch, breaking → major) and + write `.changeset/.md` in the format from the skill's + `references/format.md`. + +Only declare the packages you actually changed — dependents bump automatically via the +internal-dependency cascade. + +$ARGUMENTS diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 000000000..0b511ac20 --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,17 @@ +{ + "permissions": { + "allow": [ + "Bash(pnpm changeset status:*)", + "Bash(pnpm changeset --help:*)", + "Bash(pnpm exec changeset status:*)", + "Bash(git status:*)", + "Bash(git diff:*)", + "Bash(git log:*)", + "Bash(git branch:*)", + "Bash(git fetch:*)", + "Bash(npm view:*)", + "Bash(ls .changeset:*)", + "Bash(cat .changeset/*)" + ] + } +} diff --git a/.claude/skills/changeset/SKILL.md b/.claude/skills/changeset/SKILL.md new file mode 100644 index 000000000..d6b2f17eb --- /dev/null +++ b/.claude/skills/changeset/SKILL.md @@ -0,0 +1,54 @@ +--- +name: changeset +description: >- + Author a Changesets changeset (a `.changeset/*.md` file) for the current + changes. Use this whenever a change touches publishable library source under + `packages/` and is about to be committed or opened as a PR, or whenever the + user mentions a changeset, a version bump, release notes, or asks "what bump + should this be". This repo uses Changesets (not Lerna/conventional-commit + bumps), and CI fails any PR that changes a publishable package without a + changeset — so adding one is part of finishing a change, even if the user + didn't say "changeset" explicitly. +--- + +# Authoring a changeset + +This repo releases with **Changesets**: every PR that changes a publishable package +carries a small `.changeset/*.md` file declaring which packages bump and by how much. +`changeset version` later consumes those files into per-package `CHANGELOG.md`s and +version bumps. No changeset → no release for that change, and CI (`changeset-check.yaml`) +fails the PR. Your job here is to write a correct changeset for the work in progress. + +## Steps + +1. **See what changed.** Fetch and diff against the base branch: + ```bash + git fetch origin main + git diff --name-only origin/main...HEAD + ``` + (Use the working tree too if changes aren't committed yet: `git status`.) + +2. **Map files → packages.** A file under `packages//` belongs to that package. + Read `references/bump-rules.md` for this repo's **publishable** vs **private/ignored** + package list and the dependency graph. Only publishable packages need a changeset. + +3. **Decide the bump per package.** `feat:` → **minor**, `fix:` → **patch**, a breaking + change → **major**. See `references/bump-rules.md` for the nuances (and why you should + *not* list cascade-only dependents). + +4. **Write the file.** Create `.changeset/.md` in the exact frontmatter + format from `references/format.md`. The summary becomes the changelog line, so write it + for a reader of the release notes, not a commit log. + +5. **Confirm.** Run `pnpm changeset status` to verify Changesets sees your file and the + intended packages bump (including the automatic dependent cascade). + +## Key rules (full detail in `references/`) + +- **Only declare packages you intentionally changed.** Internal dependents re-release + automatically (`updateInternalDependencies: minor`); authoring changesets for them + double-counts and produces noisy changelogs. +- **Skip** docs-only, chore-only, test-only, and private-package-only changes. For a + deliberately release-less change, `pnpm changeset --empty`. +- One changeset can cover multiple packages; use multiple changesets if different parts of + the work deserve different changelog entries. diff --git a/.claude/skills/changeset/references/bump-rules.md b/.claude/skills/changeset/references/bump-rules.md new file mode 100644 index 000000000..da55c321a --- /dev/null +++ b/.claude/skills/changeset/references/bump-rules.md @@ -0,0 +1,49 @@ +# Bump rules — widget + +## Bump level + +- **`feat:`** (new capability, backwards-compatible) → **minor** +- **`fix:`** (bug fix, backwards-compatible) → **patch** +- **breaking change** (removed/renamed export, changed signature, behavior break) → **major** + +While the repo is in **pre-beta** (see the `release` skill's `channels.md`), every bump +lands as `4.0.0-beta.N` regardless of level — but still pick the level that *would* apply +on the stable line, because it determines the eventual stable bump on `pre exit`. + +## Publishable packages (these need a changeset when changed) + +- `@lifi/widget` +- `@lifi/wallet-management` +- `@lifi/widget-light` +- `@lifi/widget-provider` +- `@lifi/widget-provider-bitcoin` +- `@lifi/widget-provider-ethereum` +- `@lifi/widget-provider-solana` +- `@lifi/widget-provider-sui` +- `@lifi/widget-provider-tron` + +> `@lifi/widget-checkout` and `@lifi/widget-provider-mesh` arrive with PR #727; add them +> here when that lands. + +## Private / ignored (NEVER need a changeset) + +`@lifi/widget-embedded`, `@lifi/widget-playground`, `@lifi/widget-playground-next`, +`@lifi/widget-playground-vite`, everything under `examples/` and `e2e/`. These are +`private: true` and listed in `.changeset/config.json` `ignore`. + +## Dependency graph — don't author cascade-only changesets + +``` +@lifi/widget-provider + ↑ @lifi/widget-provider-{bitcoin,ethereum,solana,sui,tron} + ↑ @lifi/wallet-management + ↑ @lifi/widget +@lifi/widget-light (standalone, zero deps) +``` + +`updateInternalDependencies: minor` means when you bump a package, every dependent +**re-releases automatically** with an updated range. So if you change only +`@lifi/widget-provider`, declare a changeset for **just** `@lifi/widget-provider` — +`wallet-management` and `widget` bump on their own. Authoring changesets for those +dependents double-counts and creates noisy, misleading changelogs. Declare only the +packages whose *source* you actually edited. diff --git a/.claude/skills/changeset/references/format.md b/.claude/skills/changeset/references/format.md new file mode 100644 index 000000000..a4d3e0192 --- /dev/null +++ b/.claude/skills/changeset/references/format.md @@ -0,0 +1,66 @@ +# Changeset file format + +A changeset is a markdown file in `.changeset/` with a YAML frontmatter block mapping +package names to bump types, followed by a summary that becomes the changelog entry. + +## Shape + +```markdown +--- +"@scope/package-a": minor +"@scope/package-b": patch +--- + +A human-readable summary of the change. This text is copied verbatim into each listed +package's CHANGELOG.md and its GitHub Release, so write it for someone reading release +notes — what changed and why it matters, not "fix bug". +``` + +- **Bump values:** `major`, `minor`, or `patch`. +- **Filename:** any unique name ending in `.md`. `pnpm changeset` generates a random one + (e.g. `fenced-stories-add.md`); a descriptive kebab-case name like + `fix-solana-balance-race.md` is also fine. +- **Multiple packages:** list each on its own frontmatter line. Use **separate** changeset + files when distinct changes deserve distinct changelog entries. +- **Summary:** the first paragraph is the changelog line. Markdown is allowed; keep it + tight. Reference a PR/issue if useful — the changelog generator + (`@svitejs/changesets-changelog-github-compact`) adds the PR/author links automatically. + +## Worked examples + +**A fix in one package:** +```markdown +--- +"@scope/core": patch +--- + +Fix a race where rapid reconnects could drop the active session. +``` + +**A feature touching two packages:** +```markdown +--- +"@scope/client": minor +"@scope/react": minor +--- + +Add `useFoo()` and the underlying `getFoo()` action for querying foo state. +``` + +**A breaking change:** +```markdown +--- +"@scope/core": major +--- + +Rename `connect()` to `connectWallet()` and drop the deprecated `autoConnect` option. +Migration: replace `connect(opts)` with `connectWallet(opts)`. +``` + +## Lifecycle (why `.changeset/` looks empty on main) + +`changeset version` (run by the bot's "chore: version packages" PR) **consumes and +deletes** every `*.md` changeset, rolling them into version bumps and per-package +`CHANGELOG.md`s. So between releases, `.changeset/` holds only `config.json`, `README.md`, +and (if the repo is in pre-mode) `pre.json` — no leftover changeset files. An empty +`.changeset/` is the normal resting state, not a sign that something was lost. diff --git a/.claude/skills/release/SKILL.md b/.claude/skills/release/SKILL.md new file mode 100644 index 000000000..e18ed62ea --- /dev/null +++ b/.claude/skills/release/SKILL.md @@ -0,0 +1,47 @@ +--- +name: release +description: >- + Cut and manage releases for the widget monorepo (Changesets + wagmi model). + Use this when the user wants to release/publish widget packages, asks about + the "version packages" PR, dist-tags, alpha/beta/stable channels, the npm + publish pipeline, the Linear release sync, or how a merge becomes published + npm packages + GitHub Releases. Covers the maintainer flow, the pre-beta + channel state, and the dist-tag safety rules specific to this repo. +--- + +# Releasing widget + +widget publishes with **Changesets** on the wagmi model: releases are driven by +`push: main`, not by tags. There is **no single repo version tag** — each package gets its +own `@scope/pkg@x.y.z` tag and GitHub Release, all created in one publish run. + +## The flow at a glance + +1. PRs land on `main`, each carrying a changeset (see the `changeset` skill). +2. `.github/workflows/publish.yaml` `changesets` job opens/updates a **"chore: version + packages"** PR that bumps versions + writes per-package `CHANGELOG.md`s. +3. Merging that PR → the `release` job runs `pnpm changeset:publish` (build → per-package + prerelease transform → `changeset publish`), publishes to npm with provenance, and + creates per-package GitHub Releases. +4. `linear-*` jobs sync the published versions into Linear. + +Read the reference for the part you're working on: + +- **`references/pipeline.md`** — the workflow jobs, what triggers what, idempotency on rerun. +- **`references/channels.md`** — alpha/beta/stable/canary via Changesets `pre` mode, and the + **current pre-beta state** + the one rule that must not be broken. +- **`references/dist-tags.md`** — the npm dist-tag safety map (v3 is on `latest`!) and the + cutover sequence. **Read this before any publish action.** +- **`references/linear-sync.md`** — this repo's two Linear anchors (Widget + Checkout) and + how version/channel are derived. + +## This repo's release state (the things to keep in your head) + +- **Pre-beta.** `.changeset/pre.json` (`tag: beta`) is committed. `latest` on npm is the + **v3** line; 4.x ships under `@beta`. **Never `changeset pre exit`** except to + deliberately cut stable `4.0.0` — that is the single action that moves `latest` to 4.x. +- **Two Linear anchors:** `@lifi/widget` → "Widget", `@lifi/widget-checkout` → "Checkout". + The Checkout job is **dormant** until PR #727 ships that package. +- **OIDC trusted publishing** (no npm token). The publishing workflow filename + (`publish.yaml`) and job are bound to npmjs trusted-publisher config — see + `references/pipeline.md` for the re-point caveat before the first publish on this branch. diff --git a/.claude/skills/release/references/channels.md b/.claude/skills/release/references/channels.md new file mode 100644 index 000000000..625e54bb4 --- /dev/null +++ b/.claude/skills/release/references/channels.md @@ -0,0 +1,45 @@ +# Channels — widget + +Channels map to npm **dist-tags**, controlled by Changesets `pre` mode. + +| Channel | dist-tag | How | +|---|---|---| +| stable | `latest` | normal (not in pre mode) — **moves `latest`** | +| beta | `beta` | `pre` mode with `tag: beta` (current state) | +| alpha | `alpha` | `pre` mode with `tag: alpha` | +| canary | `canary` | snapshot: `changeset version --snapshot canary` + `changeset publish --tag canary` (additive; not wired in CI today) | + +## Current state: pre-beta + +`.changeset/pre.json` exists with `tag: beta`. While in pre mode: + +- `changeset version` produces `4.0.0-beta.N` (the beta counter increments; it never jumps + to a bare stable `4.0.0`). +- `changeset publish` publishes under the **`beta`** dist-tag, so npm `latest` stays on the + v3 line and v3 consumers are unaffected. + +## The one rule: do not `pre exit` casually + +``` +pnpm changeset pre exit # ← moves the next publish to `latest` (4.x becomes stable) +``` + +`pre exit` is the **only** action that moves npm `latest` from v3 to 4.x. Run it **only** +when you are deliberately cutting the stable `4.0.0` release. Cutting stable is then: + +1. `pnpm changeset pre exit` +2. ensure a graduating changeset exists (the bump that lands `4.0.0`) +3. merge the resulting "version packages" PR → `release` publishes `4.0.0` to `latest`. + +After stable, re-enter pre mode (`pnpm changeset pre enter beta`) if you want to continue +betas on the next line. See `dist-tags.md` for the safety check to run after any publish. + +## Entering/leaving pre mode + +``` +pnpm changeset pre enter beta # start a beta line +pnpm changeset pre enter alpha # start an alpha line +pnpm changeset pre exit # leave pre mode (next publish → latest) +``` + +`pre.json` is committed and travels through the "version packages" PR like any other change. diff --git a/.claude/skills/release/references/dist-tags.md b/.claude/skills/release/references/dist-tags.md new file mode 100644 index 000000000..58d04ce1b --- /dev/null +++ b/.claude/skills/release/references/dist-tags.md @@ -0,0 +1,41 @@ +# dist-tag safety — widget + +**Read before any publish action.** Publishing the wrong dist-tag is the highest-risk +mistake in this migration: it can move `latest` off the stable v3 line that production +consumers install. + +## Current npm dist-tags (the hazard) + +| Package | `latest` | Note | +|---|---|---| +| `@lifi/widget` | **v3 (`3.40.x`)** | production consumers; MUST NOT regress | +| `@lifi/wallet-management` | **v3 (`3.22.x`)** | same | +| `@lifi/widget-light` | `4.0.0-alpha.1` | pre-existing mis-tag; leave as-is | +| `@lifi/widget-provider*` | 4.x prerelease | pre-existing; leave as-is | + +`changeset publish` defaults to the **`latest`** dist-tag when **not** in pre mode. The +repo is in **pre-beta** precisely so 4.x ships under `@beta` and `latest` stays on v3. + +## The rules + +1. **Pre-beta must stay entered** until the deliberate stable cut. `.changeset/pre.json` + (`tag: beta`) is committed; do not delete it or `pre exit` except to cut stable `4.0.0` + (see `channels.md`). +2. **Verification gate after the first beta publish:** confirm `latest` did not move. + ```bash + npm view @lifi/widget dist-tags + npm view @lifi/wallet-management dist-tags + ``` + `latest` must still be `3.x`; the new build must be on `beta`. If a 4.x became `latest` + unexpectedly, **stop and roll back**: + ```bash + npm dist-tag add @lifi/widget@ latest + ``` +3. **Stable cut (intentional `latest` move):** `pre exit` + graduating changeset → merge + version PR. After it, verify `latest` is now `4.0.0` on purpose. + +## Reversibility + +dist-tag mistakes are reversible (`npm dist-tag add @ latest`). **Version +unpublish is generally NOT reversible** (npm's 72h/policy window). So the pre-mode gate + +the post-publish dist-tag check are the real safety net — not unpublish. diff --git a/.claude/skills/release/references/linear-sync.md b/.claude/skills/release/references/linear-sync.md new file mode 100644 index 000000000..341deb136 --- /dev/null +++ b/.claude/skills/release/references/linear-sync.md @@ -0,0 +1,50 @@ +# Linear sync — widget + +widget syncs **two** Linear release pipelines, one per anchor package. Secret refs must be +static YAML, so each anchor is a **static gated job pair** (a `linear-` meta job + +a `linear--sync` reusable-workflow caller), not a dynamic matrix. + +| Anchor package | Linear release | Secret | State | +|---|---|---|---| +| `@lifi/widget` | "Widget" | `WIDGET_LINEAR_RELEASE_ACCESS_KEY` | live | +| `@lifi/widget-checkout` | "Checkout" | `CHECKOUT_LINEAR_RELEASE_ACCESS_KEY` | **dormant** until PR #727 | + +## How it works + +Each meta job is gated on its anchor actually publishing: + +```yaml +if: contains(needs.release.outputs.publishedPackages, '"@lifi/widget"') +``` + +(The quotes matter — `'"@lifi/widget"'` won't false-match `@lifi/widget-provider`.) The +meta job derives, via `jq` over `publishedPackages`: + +- `full` — the published version, e.g. `4.0.0-beta.21` +- `version` — `full` with the prerelease suffix stripped, e.g. `4.0.0` +- `channel` — `alpha` / `beta` / `stable` from the suffix + +The sync job calls the reusable `linear-release.yaml` with `release_name`, `version` +(stripped), `channel`, and `release_tag: '@lifi/widget@'`. The reusable: + +- **`sync`** — attaches merged issues to the `X.Y.Z` Linear release and records a link to + the GitHub Release at `releases/tag/`. +- **`update`** + `stage` (alpha/beta) — advances the release's stage; the release stays + open so tickets stay "Ready for Release". +- **`complete`** (stable) — closes the release, firing Linear's "on completion → Done" + automation. + +Linear releases are keyed on the **marketing `X.Y.Z`** (stripped), so all betas of `4.0.0` +attach to one "Widget 4.0.0" release and advance its stage; the stable cut completes it. + +## Skip behavior + +A cycle that doesn't publish `@lifi/widget` (e.g. only a provider bumped) leaves the +"Widget" anchor out of `publishedPackages`, so the Widget meta/sync jobs **skip** — no +fallback. Same for Checkout. That's intended. + +## Dormant Checkout + +The Checkout jobs are wired identically but their `if` never matches until +`@lifi/widget-checkout` exists and publishes (PR #727). Enabling Checkout then needs **no** +workflow change — just the package and the `CHECKOUT_LINEAR_RELEASE_ACCESS_KEY` secret. diff --git a/.claude/skills/release/references/pipeline.md b/.claude/skills/release/references/pipeline.md new file mode 100644 index 000000000..9995a4c04 --- /dev/null +++ b/.claude/skills/release/references/pipeline.md @@ -0,0 +1,55 @@ +# Pipeline — widget (`.github/workflows/publish.yaml`) + +Trigger: **`push: main`** (not tags). `concurrency: release-${{ github.ref }}`, +`cancel-in-progress: false`. + +## Jobs + +1. **verify** — install + checks (lint / types / build) as the release gate. +2. **changesets** — `changesets/action` with `version: pnpm changeset:version`. When + changesets are pending it opens/refreshes the **"chore: version packages"** PR + (bumps versions, regenerates per-package `CHANGELOG.md`, refreshes the lockfile). + Outputs `hasChangesets`. +3. **release** — runs only when `hasChangesets == 'false'` (i.e. the version PR just + merged, no pending changesets). Runs `publish: pnpm changeset:publish` + + `createGithubReleases: true`; holds `id-token: write` for npm provenance (OIDC). Outputs + `publishedPackages` (JSON `[{name,version}]`). +4. **linear-widget / linear-widget-sync** and **linear-checkout / linear-checkout-sync** — + gated on the anchor appearing in `publishedPackages`; see `linear-sync.md`. + +Per-package npm publishes, per-package git tags (`@lifi/widget@x.y.z`), and per-package +GitHub Releases are all emitted by the single `release` run. + +## Why push:main, not tags + +`GITHUB_TOKEN`-created tags don't retrigger workflows, and one merge that publishes N +packages must produce N tags in **one** run. Tag-as-trigger can't do that (N tags = N +runs). Inverting to `push: main` + `createGithubReleases` is the wagmi pattern. + +## The transform must run in `changeset:publish` + +`changeset publish` does a flat per-package `npm publish` and does **not** run each +package's `build:prerelease` lifecycle. So `changeset:prepublish` (called by +`changeset:publish`) runs the build + `scripts/prerelease.js` → `formatPackageJson.js` +(rewrites entry points to `dist/esm/`, strips dev fields, copies README). Never call +`changeset publish` bare. + +## Superseded workflows + +`github-release.yaml` and `npm-publish.yaml` were the old reusable publish/release steps; +they are **superseded** by `changesets/action` (`createGithubReleases` replaces +`softprops/action-gh-release`). + +## OIDC re-point — do before the first publish on this pipeline + +npm trusted publishing binds to `{repo, workflow_filename, job}`. Publishing moved from +`npm-publish.yaml` (job `npm-publish`) into `publish.yaml` (job `release`), so the +`job_workflow_ref` changed. **Each publishable widget package's trusted-publisher entry on +npmjs.com must be re-pointed to `publish.yaml` / `release` before the first publish**, or +OIDC silently fails. This is a maintainer action on npmjs.com (outside this repo). + +## Rerun idempotency + +Re-running `release` after a partial publish is safe: `changeset publish` skips +already-published versions (npm 409) and an existing tag/Release is tolerated (422). +Confirm rather than assume when recovering from a failed run. From 6a6a41f1241ddf18a9ec069a50ef367f66ed07db Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Wed, 27 May 2026 18:13:22 +0200 Subject: [PATCH 16/36] chore: add empty changeset for the release-pipeline migration This PR is infrastructure-only (Changesets adoption, CI rewrite, .claude tooling, package `files`/prerelease tweaks) and intentionally ships no package release, so it carries an empty changeset. This satisfies the new fail-closed changeset-check gate that this same PR introduces. The published-tarball improvements (CHANGELOG.md inclusion, stripped dev fields) take effect on the next real release. Swap this for a patch changeset before merge if the team prefers those tarball changes to ship immediately. --- .changeset/migrate-release-pipeline.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .changeset/migrate-release-pipeline.md diff --git a/.changeset/migrate-release-pipeline.md b/.changeset/migrate-release-pipeline.md new file mode 100644 index 000000000..a845151cc --- /dev/null +++ b/.changeset/migrate-release-pipeline.md @@ -0,0 +1,2 @@ +--- +--- From 04a04851130c272b7f8e2778e045a8107a2640a2 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Thu, 28 May 2026 10:09:35 +0200 Subject: [PATCH 17/36] ci+docs: review followups - changeset-check.yaml: drop `**` from pathspecs (use directory form). Modern git treats them equivalently for `git diff -- `, but `packages/x/` is the idiomatic 'directory and contents' pathspec and avoids ambiguity with globpathspec requirements. - CLAUDE.md: drop the stale `pnpm clean &&` reference from the changeset:prepublish description (the clean step was removed in 7e01eef6 because root pnpm clean is broken under pnpm 11). --- .github/workflows/changeset-check.yaml | 22 ++++++++++++---------- CLAUDE.md | 2 +- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/workflows/changeset-check.yaml b/.github/workflows/changeset-check.yaml index 88d2e34fd..f68d57183 100644 --- a/.github/workflows/changeset-check.yaml +++ b/.github/workflows/changeset-check.yaml @@ -41,18 +41,20 @@ jobs: run: | set -euo pipefail - # Publishable package globs (private packages are intentionally excluded: + # Publishable package directories (private packages are intentionally excluded: # widget-embedded, widget-playground, widget-playground-next, widget-playground-vite). + # Trailing slash = directory pathspec; git matches everything beneath it without + # needing the (glob) magic prefix that `**` would require. PUBLISHABLE=( - 'packages/widget/**' - 'packages/wallet-management/**' - 'packages/widget-light/**' - 'packages/widget-provider/**' - 'packages/widget-provider-bitcoin/**' - 'packages/widget-provider-ethereum/**' - 'packages/widget-provider-solana/**' - 'packages/widget-provider-sui/**' - 'packages/widget-provider-tron/**' + 'packages/widget/' + 'packages/wallet-management/' + 'packages/widget-light/' + 'packages/widget-provider/' + 'packages/widget-provider-bitcoin/' + 'packages/widget-provider-ethereum/' + 'packages/widget-provider-solana/' + 'packages/widget-provider-sui/' + 'packages/widget-provider-tron/' ) # Changed files under publishable packages, excluding docs-only files diff --git a/CLAUDE.md b/CLAUDE.md index 3165ca2d2..8817383f7 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -148,7 +148,7 @@ The repo is in Changesets **pre mode** (`.changeset/pre.json`, `tag: beta`). Whi ### Root scripts - `pnpm changeset:version` — `changeset version` + `pnpm install --lockfile-only` + `pnpm check:write`. -- `pnpm changeset:prepublish` — `pnpm clean && pnpm build`, then `build:prerelease` across publishable packages. **This is where the publish transform runs:** `changeset publish` does flat per-package `npm publish` and does NOT run each package's `build:prerelease` lifecycle, so the transform (`scripts/prerelease.js` → `scripts/formatPackageJson.js`, rewriting entry points to `dist/esm/` and copying `README.md`) must run here. +- `pnpm changeset:prepublish` — `pnpm build`, then `build:prerelease` across publishable packages. **This is where the publish transform runs:** `changeset publish` does flat per-package `npm publish` and does NOT run each package's `build:prerelease` lifecycle, so the transform (`scripts/prerelease.js` → `scripts/formatPackageJson.js`, rewriting entry points to `dist/esm/` and copying `README.md`) must run here. - `pnpm changeset:publish` — `pnpm changeset:prepublish && changeset publish` (used by CI). `workspace:*` internal deps are resolved to concrete versions by `changeset publish` at publish time; `formatPackageJson.js` leaves `dependencies` untouched. `scripts/version.js` generates `src/config/version.ts` during build for `@lifi/widget` and `@lifi/widget-light` only. From 241f18619df19dec76cb7d2da26570e095a4543d Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Thu, 28 May 2026 16:37:34 +0200 Subject: [PATCH 18/36] docs(release): add npm trusted-publisher re-point checklist MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit One-time operational checklist for re-pointing each publishable widget package's npmjs Trusted Publisher entry from 'npm-publish.yaml' to 'publish.yaml' before the first real publish from this branch. The publishing step was collapsed into publish.yaml (job 'release' via changesets/action), so the workflow filename that npmjs binds to changed; without updating it, OIDC silently fails on first publish. Self-contained — covers the 9 affected packages, exact npmjs steps, verification (pre-merge + post-publish), and rollback. --- docs/release/npm-trusted-publisher-repoint.md | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 docs/release/npm-trusted-publisher-repoint.md diff --git a/docs/release/npm-trusted-publisher-repoint.md b/docs/release/npm-trusted-publisher-repoint.md new file mode 100644 index 000000000..d431d10fe --- /dev/null +++ b/docs/release/npm-trusted-publisher-repoint.md @@ -0,0 +1,107 @@ +# npm Trusted Publisher Re-point — widget + +**One-time operational checklist.** Required before the **first** real publish from +`ci/changesets-migration` (or any branch where this migration has landed). Skip this and +OIDC will silently fail when the `release` job tries to publish to npm — the publish step +errors out instead of authenticating. + +## Why this is required + +npm Trusted Publishing binds to `{owner, repo, workflow filename, optional environment}`. +Before this migration, the publishing step lived in **reusable `npm-publish.yaml`**, so +every publishable widget package's npmjs Trusted Publisher entry pointed at +`npm-publish.yaml`. The migration **collapsed publish into `publish.yaml`** (job `release` +via `changesets/action`), so the **workflow filename changed** — the existing trusted +publisher entries no longer match the workflow that runs publish, and npm will reject the +OIDC token. + +| | Before | After | +|---|---|---| +| Workflow filename | `npm-publish.yaml` | **`publish.yaml`** ← update this | +| Job | `npm-publish` | `release` (filename is what npmjs binds to, so this is informational) | +| Trigger | `workflow_call` from `publish.yaml` | `push: main` directly | +| Repo / owner | `lifinance/widget` | `lifinance/widget` (unchanged) | + +## Who does this + +A user with **admin/owner access to the `@lifi` npm scope** (or a per-package maintainer +with the right role on each package below). It cannot be done by Claude or by a GitHub +Actions workflow — it requires interactive login to npmjs.com. + +## Packages requiring re-point (9 total) + +- `@lifi/widget` +- `@lifi/wallet-management` +- `@lifi/widget-light` +- `@lifi/widget-provider` +- `@lifi/widget-provider-bitcoin` +- `@lifi/widget-provider-ethereum` +- `@lifi/widget-provider-solana` +- `@lifi/widget-provider-sui` +- `@lifi/widget-provider-tron` + +If/when `@lifi/widget-checkout` and `@lifi/widget-provider-mesh` arrive with PR #727, +add their trusted publisher entries against `publish.yaml` at the same time. + +## Steps (per package) + +1. **Sign in** to [https://www.npmjs.com](https://www.npmjs.com) as a maintainer of the + `@lifi` scope. +2. **Navigate** to the package settings — Access tab: + `https://www.npmjs.com/package//access` + (e.g. `https://www.npmjs.com/package/@lifi/widget/access`). +3. Scroll to **Trusted Publisher**. The existing entry should show + `lifinance/widget` + workflow `npm-publish.yaml`. +4. Click **Edit** (or **Remove** and re-add — npm currently surfaces "Remove" more + reliably than in-place edit). Fill in the new entry: + - **Publisher:** GitHub Actions + - **Organization or user:** `lifinance` + - **Repository:** `widget` + - **Workflow filename:** `publish.yaml` ← the change + - **Environment:** *(leave blank — the new `release` job does not use a GitHub + environment)* +5. **Save.** npm will require a 2FA re-confirmation; have your authenticator ready. +6. Repeat for the remaining 8 packages. + +## Verification (before merging the migration PR) + +After updating all 9 entries, before merging `ci/changesets-migration`: + +1. Confirm each entry reads `workflow filename: publish.yaml`: + - quick visual: `https://www.npmjs.com/package//access` for each. +2. Verify no entry still points at `npm-publish.yaml`. (Stale entries are not exploitable + on their own, since the matching workflow file is deleted by this PR — but they will + confuse the next person.) + +## Verification (after the first real publish) + +The first publish that flows through `publish.yaml`/`release` will surface any +mis-configured entry as an OIDC failure. Watch the `release` job logs: + +- **Success** looks like: `npm publish --provenance --access public` returns 200, and + `npm view @lifi/widget@ --json | jq '.dist.attestations'` reports + provenance signed by `https://github.com/lifinance/widget/.github/workflows/publish.yaml`. +- **Failure** looks like: `npm error code E403` / `npm error 403 Forbidden` / + `npm error This package requires that publishers... authenticate via OIDC trusted publishing`. + +If you see a 403 on any package, the most likely cause is that package's entry still points +at `npm-publish.yaml`. Fix the entry (steps above) and **re-run the failed `release` job** — +`changeset publish` skips packages already on npm and retries the ones that failed, so it +is safe to re-run. + +## Rollback + +If something goes badly wrong and you need to abort: + +1. The current branches haven't been pushed; closing the PR keeps `main` on the old + Lerna+tag pipeline. +2. If the PR was already merged and a publish failed, **the trusted publisher entries + themselves can be re-pointed back to `npm-publish.yaml`** — but doing so leaves you on + a half-migrated state. Better to fix forward (the publish 403 doesn't damage the npm + registry; the new versions just haven't shipped yet). + +## After the first successful publish + +Delete this file (it has served its purpose) or move it to the team's runbook archive. +The recurring `release` skill (`.claude/skills/release/references/pipeline.md`) carries +the steady-state OIDC documentation. From 16441359ee40ce19301a74fe8c7530502d1c2532 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Thu, 28 May 2026 17:23:33 +0200 Subject: [PATCH 19/36] chore(claude): drop release skill (covered by CLAUDE.md) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The release skill duplicated material already in CLAUDE.md ## Release. Under the Changesets flow the maintainer's job is to merge the always-open 'chore: version packages' PR — there is no recurring maintainer task that benefits from a skill triggering. The high-stakes operational rules (never 'pre exit' casually, anchor + skip policy, OIDC) already live in CLAUDE.md; one-time op docs live in docs/release/. Keeps: - .claude/skills/changeset/ (contributor skill — actively prevents the 'forgot a changeset' failure mode on every PR) - .claude/commands/changeset.md - .claude/settings.json --- .claude/skills/release/SKILL.md | 47 ---------------- .claude/skills/release/references/channels.md | 45 --------------- .../skills/release/references/dist-tags.md | 41 -------------- .../skills/release/references/linear-sync.md | 50 ----------------- .claude/skills/release/references/pipeline.md | 55 ------------------- 5 files changed, 238 deletions(-) delete mode 100644 .claude/skills/release/SKILL.md delete mode 100644 .claude/skills/release/references/channels.md delete mode 100644 .claude/skills/release/references/dist-tags.md delete mode 100644 .claude/skills/release/references/linear-sync.md delete mode 100644 .claude/skills/release/references/pipeline.md diff --git a/.claude/skills/release/SKILL.md b/.claude/skills/release/SKILL.md deleted file mode 100644 index e18ed62ea..000000000 --- a/.claude/skills/release/SKILL.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -name: release -description: >- - Cut and manage releases for the widget monorepo (Changesets + wagmi model). - Use this when the user wants to release/publish widget packages, asks about - the "version packages" PR, dist-tags, alpha/beta/stable channels, the npm - publish pipeline, the Linear release sync, or how a merge becomes published - npm packages + GitHub Releases. Covers the maintainer flow, the pre-beta - channel state, and the dist-tag safety rules specific to this repo. ---- - -# Releasing widget - -widget publishes with **Changesets** on the wagmi model: releases are driven by -`push: main`, not by tags. There is **no single repo version tag** — each package gets its -own `@scope/pkg@x.y.z` tag and GitHub Release, all created in one publish run. - -## The flow at a glance - -1. PRs land on `main`, each carrying a changeset (see the `changeset` skill). -2. `.github/workflows/publish.yaml` `changesets` job opens/updates a **"chore: version - packages"** PR that bumps versions + writes per-package `CHANGELOG.md`s. -3. Merging that PR → the `release` job runs `pnpm changeset:publish` (build → per-package - prerelease transform → `changeset publish`), publishes to npm with provenance, and - creates per-package GitHub Releases. -4. `linear-*` jobs sync the published versions into Linear. - -Read the reference for the part you're working on: - -- **`references/pipeline.md`** — the workflow jobs, what triggers what, idempotency on rerun. -- **`references/channels.md`** — alpha/beta/stable/canary via Changesets `pre` mode, and the - **current pre-beta state** + the one rule that must not be broken. -- **`references/dist-tags.md`** — the npm dist-tag safety map (v3 is on `latest`!) and the - cutover sequence. **Read this before any publish action.** -- **`references/linear-sync.md`** — this repo's two Linear anchors (Widget + Checkout) and - how version/channel are derived. - -## This repo's release state (the things to keep in your head) - -- **Pre-beta.** `.changeset/pre.json` (`tag: beta`) is committed. `latest` on npm is the - **v3** line; 4.x ships under `@beta`. **Never `changeset pre exit`** except to - deliberately cut stable `4.0.0` — that is the single action that moves `latest` to 4.x. -- **Two Linear anchors:** `@lifi/widget` → "Widget", `@lifi/widget-checkout` → "Checkout". - The Checkout job is **dormant** until PR #727 ships that package. -- **OIDC trusted publishing** (no npm token). The publishing workflow filename - (`publish.yaml`) and job are bound to npmjs trusted-publisher config — see - `references/pipeline.md` for the re-point caveat before the first publish on this branch. diff --git a/.claude/skills/release/references/channels.md b/.claude/skills/release/references/channels.md deleted file mode 100644 index 625e54bb4..000000000 --- a/.claude/skills/release/references/channels.md +++ /dev/null @@ -1,45 +0,0 @@ -# Channels — widget - -Channels map to npm **dist-tags**, controlled by Changesets `pre` mode. - -| Channel | dist-tag | How | -|---|---|---| -| stable | `latest` | normal (not in pre mode) — **moves `latest`** | -| beta | `beta` | `pre` mode with `tag: beta` (current state) | -| alpha | `alpha` | `pre` mode with `tag: alpha` | -| canary | `canary` | snapshot: `changeset version --snapshot canary` + `changeset publish --tag canary` (additive; not wired in CI today) | - -## Current state: pre-beta - -`.changeset/pre.json` exists with `tag: beta`. While in pre mode: - -- `changeset version` produces `4.0.0-beta.N` (the beta counter increments; it never jumps - to a bare stable `4.0.0`). -- `changeset publish` publishes under the **`beta`** dist-tag, so npm `latest` stays on the - v3 line and v3 consumers are unaffected. - -## The one rule: do not `pre exit` casually - -``` -pnpm changeset pre exit # ← moves the next publish to `latest` (4.x becomes stable) -``` - -`pre exit` is the **only** action that moves npm `latest` from v3 to 4.x. Run it **only** -when you are deliberately cutting the stable `4.0.0` release. Cutting stable is then: - -1. `pnpm changeset pre exit` -2. ensure a graduating changeset exists (the bump that lands `4.0.0`) -3. merge the resulting "version packages" PR → `release` publishes `4.0.0` to `latest`. - -After stable, re-enter pre mode (`pnpm changeset pre enter beta`) if you want to continue -betas on the next line. See `dist-tags.md` for the safety check to run after any publish. - -## Entering/leaving pre mode - -``` -pnpm changeset pre enter beta # start a beta line -pnpm changeset pre enter alpha # start an alpha line -pnpm changeset pre exit # leave pre mode (next publish → latest) -``` - -`pre.json` is committed and travels through the "version packages" PR like any other change. diff --git a/.claude/skills/release/references/dist-tags.md b/.claude/skills/release/references/dist-tags.md deleted file mode 100644 index 58d04ce1b..000000000 --- a/.claude/skills/release/references/dist-tags.md +++ /dev/null @@ -1,41 +0,0 @@ -# dist-tag safety — widget - -**Read before any publish action.** Publishing the wrong dist-tag is the highest-risk -mistake in this migration: it can move `latest` off the stable v3 line that production -consumers install. - -## Current npm dist-tags (the hazard) - -| Package | `latest` | Note | -|---|---|---| -| `@lifi/widget` | **v3 (`3.40.x`)** | production consumers; MUST NOT regress | -| `@lifi/wallet-management` | **v3 (`3.22.x`)** | same | -| `@lifi/widget-light` | `4.0.0-alpha.1` | pre-existing mis-tag; leave as-is | -| `@lifi/widget-provider*` | 4.x prerelease | pre-existing; leave as-is | - -`changeset publish` defaults to the **`latest`** dist-tag when **not** in pre mode. The -repo is in **pre-beta** precisely so 4.x ships under `@beta` and `latest` stays on v3. - -## The rules - -1. **Pre-beta must stay entered** until the deliberate stable cut. `.changeset/pre.json` - (`tag: beta`) is committed; do not delete it or `pre exit` except to cut stable `4.0.0` - (see `channels.md`). -2. **Verification gate after the first beta publish:** confirm `latest` did not move. - ```bash - npm view @lifi/widget dist-tags - npm view @lifi/wallet-management dist-tags - ``` - `latest` must still be `3.x`; the new build must be on `beta`. If a 4.x became `latest` - unexpectedly, **stop and roll back**: - ```bash - npm dist-tag add @lifi/widget@ latest - ``` -3. **Stable cut (intentional `latest` move):** `pre exit` + graduating changeset → merge - version PR. After it, verify `latest` is now `4.0.0` on purpose. - -## Reversibility - -dist-tag mistakes are reversible (`npm dist-tag add @ latest`). **Version -unpublish is generally NOT reversible** (npm's 72h/policy window). So the pre-mode gate + -the post-publish dist-tag check are the real safety net — not unpublish. diff --git a/.claude/skills/release/references/linear-sync.md b/.claude/skills/release/references/linear-sync.md deleted file mode 100644 index 341deb136..000000000 --- a/.claude/skills/release/references/linear-sync.md +++ /dev/null @@ -1,50 +0,0 @@ -# Linear sync — widget - -widget syncs **two** Linear release pipelines, one per anchor package. Secret refs must be -static YAML, so each anchor is a **static gated job pair** (a `linear-` meta job + -a `linear--sync` reusable-workflow caller), not a dynamic matrix. - -| Anchor package | Linear release | Secret | State | -|---|---|---|---| -| `@lifi/widget` | "Widget" | `WIDGET_LINEAR_RELEASE_ACCESS_KEY` | live | -| `@lifi/widget-checkout` | "Checkout" | `CHECKOUT_LINEAR_RELEASE_ACCESS_KEY` | **dormant** until PR #727 | - -## How it works - -Each meta job is gated on its anchor actually publishing: - -```yaml -if: contains(needs.release.outputs.publishedPackages, '"@lifi/widget"') -``` - -(The quotes matter — `'"@lifi/widget"'` won't false-match `@lifi/widget-provider`.) The -meta job derives, via `jq` over `publishedPackages`: - -- `full` — the published version, e.g. `4.0.0-beta.21` -- `version` — `full` with the prerelease suffix stripped, e.g. `4.0.0` -- `channel` — `alpha` / `beta` / `stable` from the suffix - -The sync job calls the reusable `linear-release.yaml` with `release_name`, `version` -(stripped), `channel`, and `release_tag: '@lifi/widget@'`. The reusable: - -- **`sync`** — attaches merged issues to the `X.Y.Z` Linear release and records a link to - the GitHub Release at `releases/tag/`. -- **`update`** + `stage` (alpha/beta) — advances the release's stage; the release stays - open so tickets stay "Ready for Release". -- **`complete`** (stable) — closes the release, firing Linear's "on completion → Done" - automation. - -Linear releases are keyed on the **marketing `X.Y.Z`** (stripped), so all betas of `4.0.0` -attach to one "Widget 4.0.0" release and advance its stage; the stable cut completes it. - -## Skip behavior - -A cycle that doesn't publish `@lifi/widget` (e.g. only a provider bumped) leaves the -"Widget" anchor out of `publishedPackages`, so the Widget meta/sync jobs **skip** — no -fallback. Same for Checkout. That's intended. - -## Dormant Checkout - -The Checkout jobs are wired identically but their `if` never matches until -`@lifi/widget-checkout` exists and publishes (PR #727). Enabling Checkout then needs **no** -workflow change — just the package and the `CHECKOUT_LINEAR_RELEASE_ACCESS_KEY` secret. diff --git a/.claude/skills/release/references/pipeline.md b/.claude/skills/release/references/pipeline.md deleted file mode 100644 index 9995a4c04..000000000 --- a/.claude/skills/release/references/pipeline.md +++ /dev/null @@ -1,55 +0,0 @@ -# Pipeline — widget (`.github/workflows/publish.yaml`) - -Trigger: **`push: main`** (not tags). `concurrency: release-${{ github.ref }}`, -`cancel-in-progress: false`. - -## Jobs - -1. **verify** — install + checks (lint / types / build) as the release gate. -2. **changesets** — `changesets/action` with `version: pnpm changeset:version`. When - changesets are pending it opens/refreshes the **"chore: version packages"** PR - (bumps versions, regenerates per-package `CHANGELOG.md`, refreshes the lockfile). - Outputs `hasChangesets`. -3. **release** — runs only when `hasChangesets == 'false'` (i.e. the version PR just - merged, no pending changesets). Runs `publish: pnpm changeset:publish` + - `createGithubReleases: true`; holds `id-token: write` for npm provenance (OIDC). Outputs - `publishedPackages` (JSON `[{name,version}]`). -4. **linear-widget / linear-widget-sync** and **linear-checkout / linear-checkout-sync** — - gated on the anchor appearing in `publishedPackages`; see `linear-sync.md`. - -Per-package npm publishes, per-package git tags (`@lifi/widget@x.y.z`), and per-package -GitHub Releases are all emitted by the single `release` run. - -## Why push:main, not tags - -`GITHUB_TOKEN`-created tags don't retrigger workflows, and one merge that publishes N -packages must produce N tags in **one** run. Tag-as-trigger can't do that (N tags = N -runs). Inverting to `push: main` + `createGithubReleases` is the wagmi pattern. - -## The transform must run in `changeset:publish` - -`changeset publish` does a flat per-package `npm publish` and does **not** run each -package's `build:prerelease` lifecycle. So `changeset:prepublish` (called by -`changeset:publish`) runs the build + `scripts/prerelease.js` → `formatPackageJson.js` -(rewrites entry points to `dist/esm/`, strips dev fields, copies README). Never call -`changeset publish` bare. - -## Superseded workflows - -`github-release.yaml` and `npm-publish.yaml` were the old reusable publish/release steps; -they are **superseded** by `changesets/action` (`createGithubReleases` replaces -`softprops/action-gh-release`). - -## OIDC re-point — do before the first publish on this pipeline - -npm trusted publishing binds to `{repo, workflow_filename, job}`. Publishing moved from -`npm-publish.yaml` (job `npm-publish`) into `publish.yaml` (job `release`), so the -`job_workflow_ref` changed. **Each publishable widget package's trusted-publisher entry on -npmjs.com must be re-pointed to `publish.yaml` / `release` before the first publish**, or -OIDC silently fails. This is a maintainer action on npmjs.com (outside this repo). - -## Rerun idempotency - -Re-running `release` after a partial publish is safe: `changeset publish` skips -already-published versions (npm 409) and an existing tag/Release is tolerated (422). -Confirm rather than assume when recovering from a failed run. From eccc4ae21e69e03023b1e98a125a18218fadfc0e Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Thu, 28 May 2026 17:25:24 +0200 Subject: [PATCH 20/36] docs: drop OIDC re-point checklist (not needed) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Verified against widget's main publish.yaml: it already does the actual 'npm publish' directly (job 'publish', id-token: write), so the npmjs trusted-publisher entries are bound to publish.yaml — the same filename our migration publishes from. The ci/linear-release-sync branch's split into reusable npm-publish.yaml never published anything (unmerged), so npmjs was never configured for that filename. OIDC binds to {repo, workflow filename, environment}, not job name, so renaming the job from 'publish' to 'release' does not affect the binding. --- docs/release/npm-trusted-publisher-repoint.md | 107 ------------------ 1 file changed, 107 deletions(-) delete mode 100644 docs/release/npm-trusted-publisher-repoint.md diff --git a/docs/release/npm-trusted-publisher-repoint.md b/docs/release/npm-trusted-publisher-repoint.md deleted file mode 100644 index d431d10fe..000000000 --- a/docs/release/npm-trusted-publisher-repoint.md +++ /dev/null @@ -1,107 +0,0 @@ -# npm Trusted Publisher Re-point — widget - -**One-time operational checklist.** Required before the **first** real publish from -`ci/changesets-migration` (or any branch where this migration has landed). Skip this and -OIDC will silently fail when the `release` job tries to publish to npm — the publish step -errors out instead of authenticating. - -## Why this is required - -npm Trusted Publishing binds to `{owner, repo, workflow filename, optional environment}`. -Before this migration, the publishing step lived in **reusable `npm-publish.yaml`**, so -every publishable widget package's npmjs Trusted Publisher entry pointed at -`npm-publish.yaml`. The migration **collapsed publish into `publish.yaml`** (job `release` -via `changesets/action`), so the **workflow filename changed** — the existing trusted -publisher entries no longer match the workflow that runs publish, and npm will reject the -OIDC token. - -| | Before | After | -|---|---|---| -| Workflow filename | `npm-publish.yaml` | **`publish.yaml`** ← update this | -| Job | `npm-publish` | `release` (filename is what npmjs binds to, so this is informational) | -| Trigger | `workflow_call` from `publish.yaml` | `push: main` directly | -| Repo / owner | `lifinance/widget` | `lifinance/widget` (unchanged) | - -## Who does this - -A user with **admin/owner access to the `@lifi` npm scope** (or a per-package maintainer -with the right role on each package below). It cannot be done by Claude or by a GitHub -Actions workflow — it requires interactive login to npmjs.com. - -## Packages requiring re-point (9 total) - -- `@lifi/widget` -- `@lifi/wallet-management` -- `@lifi/widget-light` -- `@lifi/widget-provider` -- `@lifi/widget-provider-bitcoin` -- `@lifi/widget-provider-ethereum` -- `@lifi/widget-provider-solana` -- `@lifi/widget-provider-sui` -- `@lifi/widget-provider-tron` - -If/when `@lifi/widget-checkout` and `@lifi/widget-provider-mesh` arrive with PR #727, -add their trusted publisher entries against `publish.yaml` at the same time. - -## Steps (per package) - -1. **Sign in** to [https://www.npmjs.com](https://www.npmjs.com) as a maintainer of the - `@lifi` scope. -2. **Navigate** to the package settings — Access tab: - `https://www.npmjs.com/package//access` - (e.g. `https://www.npmjs.com/package/@lifi/widget/access`). -3. Scroll to **Trusted Publisher**. The existing entry should show - `lifinance/widget` + workflow `npm-publish.yaml`. -4. Click **Edit** (or **Remove** and re-add — npm currently surfaces "Remove" more - reliably than in-place edit). Fill in the new entry: - - **Publisher:** GitHub Actions - - **Organization or user:** `lifinance` - - **Repository:** `widget` - - **Workflow filename:** `publish.yaml` ← the change - - **Environment:** *(leave blank — the new `release` job does not use a GitHub - environment)* -5. **Save.** npm will require a 2FA re-confirmation; have your authenticator ready. -6. Repeat for the remaining 8 packages. - -## Verification (before merging the migration PR) - -After updating all 9 entries, before merging `ci/changesets-migration`: - -1. Confirm each entry reads `workflow filename: publish.yaml`: - - quick visual: `https://www.npmjs.com/package//access` for each. -2. Verify no entry still points at `npm-publish.yaml`. (Stale entries are not exploitable - on their own, since the matching workflow file is deleted by this PR — but they will - confuse the next person.) - -## Verification (after the first real publish) - -The first publish that flows through `publish.yaml`/`release` will surface any -mis-configured entry as an OIDC failure. Watch the `release` job logs: - -- **Success** looks like: `npm publish --provenance --access public` returns 200, and - `npm view @lifi/widget@ --json | jq '.dist.attestations'` reports - provenance signed by `https://github.com/lifinance/widget/.github/workflows/publish.yaml`. -- **Failure** looks like: `npm error code E403` / `npm error 403 Forbidden` / - `npm error This package requires that publishers... authenticate via OIDC trusted publishing`. - -If you see a 403 on any package, the most likely cause is that package's entry still points -at `npm-publish.yaml`. Fix the entry (steps above) and **re-run the failed `release` job** — -`changeset publish` skips packages already on npm and retries the ones that failed, so it -is safe to re-run. - -## Rollback - -If something goes badly wrong and you need to abort: - -1. The current branches haven't been pushed; closing the PR keeps `main` on the old - Lerna+tag pipeline. -2. If the PR was already merged and a publish failed, **the trusted publisher entries - themselves can be re-pointed back to `npm-publish.yaml`** — but doing so leaves you on - a half-migrated state. Better to fix forward (the publish 403 doesn't damage the npm - registry; the new versions just haven't shipped yet). - -## After the first successful publish - -Delete this file (it has served its purpose) or move it to the team's runbook archive. -The recurring `release` skill (`.claude/skills/release/references/pipeline.md`) carries -the steady-state OIDC documentation. From 5f563c7f21aa268df6ac8a27755c1eab740ce157 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Thu, 28 May 2026 17:41:51 +0200 Subject: [PATCH 21/36] chore: swap deprecated changelog generator for @changesets/changelog-github MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @svitejs/changesets-changelog-github-compact is marked deprecated ('unmaintained') on npm. The first-party @changesets/changelog-github is actively maintained, ~10x the usage, and a drop-in replacement (same config interface). The format is slightly more verbose ('Thanks @user!' credit per entry) but adds proper contributor recognition in every release note. No CHANGELOG re-render needed — we haven't shipped any generated entries yet. --- .changeset/config.json | 2 +- package.json | 2 +- pnpm-lock.yaml | 35 +++++++++++++++++------------------ 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/.changeset/config.json b/.changeset/config.json index 8f9d6bd82..222411117 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -1,7 +1,7 @@ { "$schema": "https://unpkg.com/@changesets/config@3.0.5/schema.json", "changelog": [ - "@svitejs/changesets-changelog-github-compact", + "@changesets/changelog-github", { "repo": "lifinance/widget" } ], "commit": false, diff --git a/package.json b/package.json index 71d99bfc3..af901500d 100644 --- a/package.json +++ b/package.json @@ -49,9 +49,9 @@ "devDependencies": { "@biomejs/biome": "^2.4.15", "@changesets/cli": "^2.29.7", + "@changesets/changelog-github": "^0.7.0", "@commitlint/cli": "^21.0.0", "@commitlint/config-conventional": "^21.0.0", - "@svitejs/changesets-changelog-github-compact": "^1.2.0", "@types/node": "^25.6.2", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 212ce410d..ca6b5cf03 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,6 +28,9 @@ importers: '@biomejs/biome': specifier: ^2.4.15 version: 2.4.15 + '@changesets/changelog-github': + specifier: ^0.7.0 + version: 0.7.0(encoding@0.1.13) '@changesets/cli': specifier: ^2.29.7 version: 2.31.0(@types/node@25.6.2) @@ -37,9 +40,6 @@ importers: '@commitlint/config-conventional': specifier: ^21.0.0 version: 21.0.0 - '@svitejs/changesets-changelog-github-compact': - specifier: ^1.2.0 - version: 1.2.0(encoding@0.1.13) '@types/node': specifier: ^25.6.2 version: 25.6.2 @@ -2308,6 +2308,9 @@ packages: '@changesets/changelog-git@0.2.1': resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} + '@changesets/changelog-github@0.7.0': + resolution: {integrity: sha512-rBsbRvc4TVn+FvFnOVM3LxlFJfTXXCp8gfVJ+0BubxWNSVnLuAzowi5j+IEraLLP52w8AAs9QfKbPS3MMiXQJA==} + '@changesets/cli@2.31.0': resolution: {integrity: sha512-AhI4enNTgHu2IZr6K4WZyf0EPch4XVMn1yOMFmCD9gsfBGqMYaHXls5HyDv6/CL5axVQABz68eG30eCtbr2wFg==} hasBin: true @@ -2321,8 +2324,8 @@ packages: '@changesets/get-dependents-graph@2.1.4': resolution: {integrity: sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg==} - '@changesets/get-github-info@0.6.0': - resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} + '@changesets/get-github-info@0.8.0': + resolution: {integrity: sha512-cRnC+xdF0JIik7coko3iUP9qbnfi1iJQ3sAa6dE+Tx3+ET8bjFEm63PA4WEohgjYcmsOikPHWzPsMWWiZmntOQ==} '@changesets/get-release-plan@4.0.16': resolution: {integrity: sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g==} @@ -7194,11 +7197,6 @@ packages: svelte: ^5.46.4 vite: ^8.0.0-beta.7 || ^8.0.0 - '@svitejs/changesets-changelog-github-compact@1.2.0': - resolution: {integrity: sha512-08eKiDAjj4zLug1taXSIJ0kGL5cawjVCyJkBb6EWSg5fEPX6L+Wtr0CH2If4j5KYylz85iaZiFlUItvgJvll5g==} - engines: {node: ^14.13.1 || ^16.0.0 || >=18} - deprecated: unmaintained - '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} @@ -15934,6 +15932,14 @@ snapshots: dependencies: '@changesets/types': 6.1.0 + '@changesets/changelog-github@0.7.0(encoding@0.1.13)': + dependencies: + '@changesets/get-github-info': 0.8.0(encoding@0.1.13) + '@changesets/types': 6.1.0 + dotenv: 8.2.0 + transitivePeerDependencies: + - encoding + '@changesets/cli@2.31.0(@types/node@25.6.2)': dependencies: '@changesets/apply-release-plan': 7.1.1 @@ -15987,7 +15993,7 @@ snapshots: picocolors: 1.1.1 semver: 7.8.0 - '@changesets/get-github-info@0.6.0(encoding@0.1.13)': + '@changesets/get-github-info@0.8.0(encoding@0.1.13)': dependencies: dataloader: 1.4.0 node-fetch: 2.7.0(encoding@0.1.13) @@ -22559,13 +22565,6 @@ snapshots: vite: 8.0.12(@types/node@25.6.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(yaml@2.8.4) vitefu: 1.1.3(vite@8.0.12(@types/node@25.6.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(yaml@2.8.4)) - '@svitejs/changesets-changelog-github-compact@1.2.0(encoding@0.1.13)': - dependencies: - '@changesets/get-github-info': 0.6.0(encoding@0.1.13) - dotenv: 16.6.1 - transitivePeerDependencies: - - encoding - '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 From 6241fbbae7f8acde4ce64631657fea74f72ebe0c Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Thu, 28 May 2026 17:51:23 +0200 Subject: [PATCH 22/36] chore: seed @lifi/widget CHANGELOG.md with pre-Changesets history Copy the repository-root CHANGELOG.md (the lerna + standard-version era archive) into packages/widget/CHANGELOG.md as the historical baseline for @lifi/widget. H1 swapped to the package name; archive note rewritten to explain that pre-Changesets history is repo-wide and references multiple packages. Changesets prepends new release entries between the H1 and the first historical entry, so future releases stack cleanly on top while the historical record is preserved at the bottom of the file (and remains visible on the npm page). The root CHANGELOG.md stays frozen as the in-tree historical archive (unchanged by this commit). --- packages/widget/CHANGELOG.md | 2597 ++++++++++++++++++++++++++++++++++ 1 file changed, 2597 insertions(+) create mode 100644 packages/widget/CHANGELOG.md diff --git a/packages/widget/CHANGELOG.md b/packages/widget/CHANGELOG.md new file mode 100644 index 000000000..701f19f3e --- /dev/null +++ b/packages/widget/CHANGELOG.md @@ -0,0 +1,2597 @@ +# @lifi/widget + +> **Pre-Changesets history (aggregated, repo-wide).** The entries below are +> inherited verbatim from the repository root `CHANGELOG.md`, which aggregated +> releases across all packages of this monorepo before the Changesets cutover. +> Many entries reference packages other than `@lifi/widget`; per-package release +> notes (attributed by Changesets) appear above this section as future releases +> ship. + +All notable changes to this project (through the standard-version era) are documented below. See [standard-version](https://github.com/conventional-changelog/standard-version) for the historical commit guidelines. + +## [3.38.0](https://github.com/lifinance/widget/compare/v3.37.0...v3.38.0) (2025-12-16) + + +### Features + +* add warning indicator in token search UI for unverified search results ([#625](https://github.com/lifinance/widget/issues/625)) ([82cab01](https://github.com/lifinance/widget/commit/82cab01c2817eeb9a4f2156c0336dfcfa072de24)) +* allow configuration of default bridge tab ([#632](https://github.com/lifinance/widget/issues/632)) ([0a8e022](https://github.com/lifinance/widget/commit/0a8e02267263f0ad9b65a2ab38f7bcd2077f2dec)) + + +### Bug Fixes + +* make input price background transparent in dark mode ([#629](https://github.com/lifinance/widget/issues/629)) ([c246c6a](https://github.com/lifinance/widget/commit/c246c6a4093116571bc8cdea3da139902875d018)) +* misc all networks fixes ([#619](https://github.com/lifinance/widget/issues/619)) ([ce24dbd](https://github.com/lifinance/widget/commit/ce24dbd95607a5cf5a03baebbbdd8cedd2d310f4)) + +## [3.37.0](https://github.com/lifinance/widget/compare/v3.36.1...v3.37.0) (2025-12-10) + + +### Features + +* add option to hide route card price impact ([#623](https://github.com/lifinance/widget/issues/623)) ([4d9c77a](https://github.com/lifinance/widget/commit/4d9c77ad67c64d81af4373a9ef941e150bbcc373)) + + +### Bug Fixes + +* sync widget lg with config.languages.default ([#622](https://github.com/lifinance/widget/issues/622)) ([18cf1d6](https://github.com/lifinance/widget/commit/18cf1d67e4579f2914689dc3a3170f1a3cd00729)) + +### [3.36.1](https://github.com/lifinance/widget/compare/v3.36.0...v3.36.1) (2025-12-04) + + +### Bug Fixes + +* limit decimals in formatInputAmount ([#601](https://github.com/lifinance/widget/issues/601)) ([02dd64d](https://github.com/lifinance/widget/commit/02dd64d0379906d98b7df36ece9e2b2bfc3e0876)) + +## [3.36.0](https://github.com/lifinance/widget/compare/v3.35.1...v3.36.0) (2025-12-03) + + +### Features + +* fix peer dependencies and update license ([#617](https://github.com/lifinance/widget/issues/617)) ([7ac2171](https://github.com/lifinance/widget/commit/7ac21711375642e18e2b487c1245f7bb920e97ba)) + + +### Bug Fixes + +* refactor hidden ui token logic ([#618](https://github.com/lifinance/widget/issues/618)) ([9d6a41e](https://github.com/lifinance/widget/commit/9d6a41ea35f99d20d5dbf2831766ffbdf1953ec4)) + +### [3.35.1](https://github.com/lifinance/widget/compare/v3.35.0...v3.35.1) (2025-12-01) + + +### Bug Fixes + +* add hidden UI contact support option ([#612](https://github.com/lifinance/widget/issues/612)) ([1a774e4](https://github.com/lifinance/widget/commit/1a774e445b110bc2c897534066a9ffb0342c0d97)) +* update support link ([#611](https://github.com/lifinance/widget/issues/611)) ([0fd04a5](https://github.com/lifinance/widget/commit/0fd04a5a86eccaa79a4190410e4f70cd637ec719)) + +## [3.35.0](https://github.com/lifinance/widget/compare/v3.34.3...v3.35.0) (2025-11-28) + + +### Features + +* add HiddenUI.FromToken ([#602](https://github.com/lifinance/widget/issues/602)) ([6fe0112](https://github.com/lifinance/widget/commit/6fe0112c11805a065f52a803d30ff443f2bb1677)) + + +### Bug Fixes + +* adjust tokens min price usd ([d82b72c](https://github.com/lifinance/widget/commit/d82b72c3807a0f36ddda079cd36f1042d8296c49)) + +### [3.34.3](https://github.com/lifinance/widget/compare/v3.34.2...v3.34.3) (2025-11-17) + + +### Bug Fixes + +* align licenses ([c740ee5](https://github.com/lifinance/widget/commit/c740ee5ba95ed0249bee763c1f01d7034786208d)) + +### [3.34.2](https://github.com/lifinance/widget/compare/v3.34.1...v3.34.2) (2025-11-13) + +### [3.34.1](https://github.com/lifinance/widget/compare/v3.34.0...v3.34.1) (2025-10-31) + + +### Bug Fixes + +* disable gasless for tokens with non-ASCII names ([#590](https://github.com/lifinance/widget/issues/590)) ([8227a11](https://github.com/lifinance/widget/commit/8227a11d8f2637c82afca2fb7fd81df6e3544157)) + +## [3.34.0](https://github.com/lifinance/widget/compare/v3.33.1...v3.34.0) (2025-10-31) + + +### Features + +* add approval reset for legacy tokens ([#582](https://github.com/lifinance/widget/issues/582)) ([35d32a2](https://github.com/lifinance/widget/commit/35d32a260b51c0fd3a90189217c6af5ca817690e)) +* messaging flow improvements ([#581](https://github.com/lifinance/widget/issues/581)) ([3323127](https://github.com/lifinance/widget/commit/3323127eebb9976639cf33c65df08f13c98bcb12)) + + +### Bug Fixes + +* **playground:** undetected evm wallets and empty wallet connect modal ([#570](https://github.com/lifinance/widget/issues/570)) ([10fdaa6](https://github.com/lifinance/widget/commit/10fdaa6dfaf422eade30d57208cec6a3ddd1aa31)) +* preserve search filter when switching chains ([#577](https://github.com/lifinance/widget/issues/577)) ([6e13ebf](https://github.com/lifinance/widget/commit/6e13ebf0779a5fcc202f25ea3e236150e790872b)) + +### [3.33.1](https://github.com/lifinance/widget/compare/v3.33.0...v3.33.1) (2025-10-08) + +## [3.33.0](https://github.com/lifinance/widget/compare/v3.32.2...v3.33.0) (2025-10-08) + + +### Features + +* dynamic loading for translations ([#545](https://github.com/lifinance/widget/issues/545)) ([33bf161](https://github.com/lifinance/widget/commit/33bf161c71f96d3a760b664dcc65cbb1379eebc7)) + + +### Bug Fixes + +* search results for chains with categories ([#574](https://github.com/lifinance/widget/issues/574)) ([ee115b6](https://github.com/lifinance/widget/commit/ee115b6b3e62ccf7708bf185f3d664553fda641c)) + +### [3.32.2](https://github.com/lifinance/widget/compare/v3.32.1...v3.32.2) (2025-09-26) + + +### Bug Fixes + +* improve explorer links handling ([#569](https://github.com/lifinance/widget/issues/569)) ([e96ce1a](https://github.com/lifinance/widget/commit/e96ce1a97e9c94937b34a7d32bb7efa6daca7343)) + +### [3.32.1](https://github.com/lifinance/widget/compare/v3.32.0...v3.32.1) (2025-09-25) + + +### Bug Fixes + +* **format:** improve handling of initial decimal point in amount formatting ([#564](https://github.com/lifinance/widget/issues/564)) ([3886139](https://github.com/lifinance/widget/commit/3886139b3a1e5e0ffc114ce03b9d69628c48b475)) +* remove retry for existing evm balances ([#568](https://github.com/lifinance/widget/issues/568)) ([b0ce626](https://github.com/lifinance/widget/commit/b0ce626dc6888ef2a7b173e7e9be89f4191054e3)) + +## [3.32.0](https://github.com/lifinance/widget/compare/v3.31.0...v3.32.0) (2025-09-23) + + +### Features + +* add multi-step badge ([#561](https://github.com/lifinance/widget/issues/561)) ([91de17d](https://github.com/lifinance/widget/commit/91de17dad6e1fd089299f1b11d0fac66fba42dc7)) + +## [3.31.0](https://github.com/lifinance/widget/compare/v3.30.13...v3.31.0) (2025-09-18) + + +### Features + +* add porto ([#538](https://github.com/lifinance/widget/issues/538)) ([687c0b4](https://github.com/lifinance/widget/commit/687c0b4c14e890a3dbab932cdfecae853809b446)) + + +### Bug Fixes + +* simplify fee display logic and update tooltip text ([#558](https://github.com/lifinance/widget/issues/558)) ([4b74af0](https://github.com/lifinance/widget/commit/4b74af0ca0fdde74c2eddc3b6f212e78f89d721a)) + +### [3.30.13](https://github.com/lifinance/widget/compare/v3.30.12...v3.30.13) (2025-09-16) + +### [3.30.12](https://github.com/lifinance/widget/compare/v3.30.11...v3.30.12) (2025-09-16) + + +### Bug Fixes + +* adjust gasless handling ([1514285](https://github.com/lifinance/widget/commit/15142853928b9203f9acb5888df138cd372e753a)) +* don't request gas recommendation when refuel is disabled ([d7bb69e](https://github.com/lifinance/widget/commit/d7bb69eb3f223e234a8c762e3c7d1af6d8084753)) + +### [3.30.11](https://github.com/lifinance/widget/compare/v3.30.10...v3.30.11) (2025-09-15) + + +### Bug Fixes + +* add chain pinned event ([#552](https://github.com/lifinance/widget/issues/552)) ([7817b03](https://github.com/lifinance/widget/commit/7817b03a0a65899c2a66b545956eaee2c6efdfd4)) + +### [3.30.10](https://github.com/lifinance/widget/compare/v3.30.9...v3.30.10) (2025-09-15) + + +### Bug Fixes + +* improve insufficient gas error handling ([4fb6c80](https://github.com/lifinance/widget/commit/4fb6c802e7bed7cc89b5b4fe3058df737aea64cf)) + +### [3.30.9](https://github.com/lifinance/widget/compare/v3.30.8...v3.30.9) (2025-09-15) + + +### Bug Fixes + +* add InsufficientGasMessage hiddenUI option ([1775aea](https://github.com/lifinance/widget/commit/1775aeae01e8b45a7b613fde66baaca792b66b31)) + +### [3.30.8](https://github.com/lifinance/widget/compare/v3.30.7...v3.30.8) (2025-09-13) + + +### Bug Fixes + +* expose disableMessageSigning option ([8d21779](https://github.com/lifinance/widget/commit/8d21779c57922f766a4eff47f5219331fc1554fb)) + +### [3.30.7](https://github.com/lifinance/widget/compare/v3.30.6...v3.30.7) (2025-09-12) + + +### Bug Fixes + +* improve SCA permit signature handling ([#549](https://github.com/lifinance/widget/issues/549)) ([55166a2](https://github.com/lifinance/widget/commit/55166a29cb88186ca1939ad8a1dd369c807b5356)) + +### [3.30.6](https://github.com/lifinance/widget/compare/v3.30.5...v3.30.6) (2025-09-12) + + +### Bug Fixes + +* reduce maximumFractionDigits to support older iOS ([#548](https://github.com/lifinance/widget/issues/548)) ([03f0ea3](https://github.com/lifinance/widget/commit/03f0ea37ee389ed7cb97bd9bbfb76a828000603a)) + +### [3.30.5](https://github.com/lifinance/widget/compare/v3.30.4...v3.30.5) (2025-09-10) + + +### Bug Fixes + +* add form type to isAllNetworks ([#546](https://github.com/lifinance/widget/issues/546)) ([d31b1bf](https://github.com/lifinance/widget/commit/d31b1bff26d9891d2adce624d513b86a2d63d851)) + +### [3.30.4](https://github.com/lifinance/widget/compare/v3.30.3...v3.30.4) (2025-09-09) + +### [3.30.3](https://github.com/lifinance/widget/compare/v3.30.2...v3.30.3) (2025-09-09) + + +### Bug Fixes + +* return from queryFn ([#544](https://github.com/lifinance/widget/issues/544)) ([aa497b5](https://github.com/lifinance/widget/commit/aa497b5891d4b56e06331ee1edfd3891d5dc6cff)) + +### [3.30.2](https://github.com/lifinance/widget/compare/v3.30.1...v3.30.2) (2025-09-09) + + +### Bug Fixes + +* check chain config before syncing opposite chain ([#543](https://github.com/lifinance/widget/issues/543)) ([f1cf4c5](https://github.com/lifinance/widget/commit/f1cf4c5ad03f5991d25ff567d9056eb3ed4206d7)) + +### [3.30.1](https://github.com/lifinance/widget/compare/v3.30.0...v3.30.1) (2025-09-08) + + +### Bug Fixes + +* add /token response to search results ([#542](https://github.com/lifinance/widget/issues/542)) ([55c7ca9](https://github.com/lifinance/widget/commit/55c7ca9f41ca6b70e6d89439a3490d738c831ffa)) +* improve gasless step validation ([#535](https://github.com/lifinance/widget/issues/535)) ([426e848](https://github.com/lifinance/widget/commit/426e8486947c7ce8bffc09dbadad89afa1e43e50)) +* limit slippage input value decimals ([#536](https://github.com/lifinance/widget/issues/536)) ([b8addc2](https://github.com/lifinance/widget/commit/b8addc2cf75d660756f187fed9fd8418af238196)) +* missing usd conversion ([#534](https://github.com/lifinance/widget/issues/534)) ([2ab359c](https://github.com/lifinance/widget/commit/2ab359c7f5eb5980b3b80ddaa8c16035a615922b)) +* respect token deny list for tokens with balances ([#537](https://github.com/lifinance/widget/issues/537)) ([326e455](https://github.com/lifinance/widget/commit/326e4557bfe683a08370985f0062d58e48edff4c)) +* use lower case when comparing addresses ([#540](https://github.com/lifinance/widget/issues/540)) ([70387f8](https://github.com/lifinance/widget/commit/70387f8299e096190f30bd380e8b63758d8ba6ea)) + +## [3.30.0](https://github.com/lifinance/widget/compare/v3.29.1...v3.30.0) (2025-09-02) + + +### Features + +* add all networks tab ([#430](https://github.com/lifinance/widget/issues/430)) ([2b6bfb3](https://github.com/lifinance/widget/commit/2b6bfb3a7256ebfca3e134f12b72c23f16f21f57)) + + +### Bug Fixes + +* update network fee display logic to account for 0 values ([#533](https://github.com/lifinance/widget/issues/533)) ([e386168](https://github.com/lifinance/widget/commit/e3861680009ebdd5e693ade112812f6a09391f24)) + +### [3.29.1](https://github.com/lifinance/widget/compare/v3.29.0...v3.29.1) (2025-08-29) + + +### Bug Fixes + +* prevent bottom sheets from mounting when hidden not to affect widget height ([#529](https://github.com/lifinance/widget/issues/529)) ([c11b2ec](https://github.com/lifinance/widget/commit/c11b2ecf7024f5db02495fed877d04dc0e12870d)) + +## [3.29.0](https://github.com/lifinance/widget/compare/v3.28.0...v3.29.0) (2025-08-28) + + +### Features + +* add config option to force internal management ([#519](https://github.com/lifinance/widget/issues/519)) ([58939d1](https://github.com/lifinance/widget/commit/58939d1958e4c5ff72254d6844cb95bdd47beae9)) +* option to hide search bar in the token list ([#523](https://github.com/lifinance/widget/issues/523)) ([3ac36d0](https://github.com/lifinance/widget/commit/3ac36d0428bc1466f7b8c36375b05b89689fae51)) +* permit and message-based flow improvements ([#525](https://github.com/lifinance/widget/issues/525)) ([ce05c76](https://github.com/lifinance/widget/commit/ce05c7677ff1229fde29e713518f7ec528aca0e9)) + + +### Bug Fixes + +* responsiveness for under 360px-wide screens ([#516](https://github.com/lifinance/widget/issues/516)) ([c4494fa](https://github.com/lifinance/widget/commit/c4494fa53aba6de221c7a319a9124a8b7566d0d0)) +* **utxo:** remove chain id from connector config ([#527](https://github.com/lifinance/widget/issues/527)) ([5452d1e](https://github.com/lifinance/widget/commit/5452d1e8654f903247ea016adc503f4086cf2fdc)) + +## [3.28.0](https://github.com/lifinance/widget/compare/v3.27.6...v3.28.0) (2025-08-20) + + +### Features + +* add checkbox customization ([#515](https://github.com/lifinance/widget/issues/515)) ([ec4f7e3](https://github.com/lifinance/widget/commit/ec4f7e3acb831c23d77c92f70d90baed39468b36)) + + +### Bug Fixes + +* adjust skeleton heights ([1dc74f1](https://github.com/lifinance/widget/commit/1dc74f1f7a1ee6f0e827d3aa4b15e271fc3c7d94)) +* remix example ([862bcb5](https://github.com/lifinance/widget/commit/862bcb5b6b025baceff7c4747c90634470ffe299)) +* sort tokens by volume and add limit ([#518](https://github.com/lifinance/widget/issues/518)) ([9f5546a](https://github.com/lifinance/widget/commit/9f5546aae28cd7efe7d3c05d6acdd97037bf8199)) + +### [3.27.6](https://github.com/lifinance/widget/compare/v3.27.5...v3.27.6) (2025-08-18) + + +### Bug Fixes + +* adjust examples and fix biome issues ([c0ed4de](https://github.com/lifinance/widget/commit/c0ed4de5bc091aacbe7a3830053667074e005f3e)) + +### [3.27.5](https://github.com/lifinance/widget/compare/v3.27.4...v3.27.5) (2025-08-18) + +### [3.27.4](https://github.com/lifinance/widget/compare/v3.27.3...v3.27.4) (2025-08-18) + + +### Bug Fixes + +* enable forceJsExtensions rule ([#517](https://github.com/lifinance/widget/issues/517)) ([0fa463f](https://github.com/lifinance/widget/commit/0fa463fcc7d902c254a737a81713b2bb58add7bb)) + +### [3.27.3](https://github.com/lifinance/widget/compare/v3.27.2...v3.27.3) (2025-08-14) + + +### Bug Fixes + +* add data-testid attribute to SearchList for improved testing ([#509](https://github.com/lifinance/widget/issues/509)) ([e793d89](https://github.com/lifinance/widget/commit/e793d8926d32d5268bce9458c701053a9de5ada1)) +* should not show Safe wallet when integrated in iframe ([#511](https://github.com/lifinance/widget/issues/511)) ([b78dd04](https://github.com/lifinance/widget/commit/b78dd042343776705e55b37665939418d1fdcec7)) + +### [3.27.2](https://github.com/lifinance/widget/compare/v3.27.1...v3.27.2) (2025-08-13) + + +### Bug Fixes + +* improve token data cloning in useRoutes hook ([60bb6b7](https://github.com/lifinance/widget/commit/60bb6b74ff71bbaf4a7c1199c00d7165e4125a93)) + +### [3.27.1](https://github.com/lifinance/widget/compare/v3.27.0...v3.27.1) (2025-08-13) + + +### Bug Fixes + +* improve cache handling for fetched routes ([#508](https://github.com/lifinance/widget/issues/508)) ([0814365](https://github.com/lifinance/widget/commit/0814365d8be5e1e0499fb166edf0049203407aa1)) +* scroll to index retry warnings ([#504](https://github.com/lifinance/widget/issues/504)) ([bc958eb](https://github.com/lifinance/widget/commit/bc958eb6f182a8b2986fe8a9dc54c14f52174d8a)) + +## [3.27.0](https://github.com/lifinance/widget/compare/v3.26.1...v3.27.0) (2025-08-11) + + +### Features + +* add pure swap/bridge ([#491](https://github.com/lifinance/widget/issues/491)) ([d3a815b](https://github.com/lifinance/widget/commit/d3a815bc4245d4d61d9443f3c1025a042c55f24d)) +* add taproot wallets, and UNS support ([#503](https://github.com/lifinance/widget/issues/503)) ([585777d](https://github.com/lifinance/widget/commit/585777df7c49dfc242b85d66c04906b69946a7a8)) + + +### Bug Fixes + +* adjust tx links ([#505](https://github.com/lifinance/widget/issues/505)) ([8cfbdfa](https://github.com/lifinance/widget/commit/8cfbdfa7615e818ea6fe875084ba2d439d92f248)) +* resolve drawer/modal focus traps ([#498](https://github.com/lifinance/widget/issues/498)) ([d2dda5b](https://github.com/lifinance/widget/commit/d2dda5b50702ffa2d5e3be04a5121927aade4dd1)) + +### [3.26.1](https://github.com/lifinance/widget/compare/v3.26.0...v3.26.1) (2025-08-06) + + +### Bug Fixes + +* revert container fallbacks ([#501](https://github.com/lifinance/widget/issues/501)) ([147647b](https://github.com/lifinance/widget/commit/147647be64910b920d45e0e000f30fa3eaf6c82e)) + +## [3.26.0](https://github.com/lifinance/widget/compare/v3.25.0...v3.26.0) (2025-08-05) + + +### Features + +* add option to hide low address activity confirmation ([#497](https://github.com/lifinance/widget/issues/497)) ([6c44863](https://github.com/lifinance/widget/commit/6c448632b008c63e60204281066b81b33decfb0d)) +* enable mui native colors ([2026ae5](https://github.com/lifinance/widget/commit/2026ae55f0a895831cedce6cf5152cdaf863a197)) +* improve amount input ([#489](https://github.com/lifinance/widget/issues/489)) ([584f247](https://github.com/lifinance/widget/commit/584f247527090d07cc2b8aaaf3392395dbd58880)) +* **wallet-management:** add support for base account ([#482](https://github.com/lifinance/widget/issues/482)) ([eff8baa](https://github.com/lifinance/widget/commit/eff8baa1ba014cef8f59d3dc99ca817d01c9e0f5)) + + +### Bug Fixes + +* add misc styling adjustments ([#494](https://github.com/lifinance/widget/issues/494)) ([b743ef3](https://github.com/lifinance/widget/commit/b743ef3416bcf8985cc00cf0f940d82de65d7598)) +* avoid undefined query data in gas sufficiency ([#490](https://github.com/lifinance/widget/issues/490)) ([b66edf4](https://github.com/lifinance/widget/commit/b66edf435ea546c5e4657a50da99c1b46dfb861a)) +* navigation from transaction details ([#499](https://github.com/lifinance/widget/issues/499)) ([b6500df](https://github.com/lifinance/widget/commit/b6500dff4d7e683e24b274095676bf1035566a86)) +* price impact typo ([5b1f957](https://github.com/lifinance/widget/commit/5b1f957392bf56c57acba4be72debc70a03e24ee)) +* remove unnecessary field value hook ([c144319](https://github.com/lifinance/widget/commit/c1443193091b161c91d0ab18ef370e3e6725ae94)) +* update transaction link handling ([#500](https://github.com/lifinance/widget/issues/500)) ([bae8e9f](https://github.com/lifinance/widget/commit/bae8e9fe7ec3c9617b9f8dbcfb66abab972553a8)) + +## [3.25.0](https://github.com/lifinance/widget/compare/v3.25.0-beta.2...v3.25.0) (2025-07-28) + + +### Features + +* add market cap and volume to token details ([#475](https://github.com/lifinance/widget/issues/475)) ([3f4f0f3](https://github.com/lifinance/widget/commit/3f4f0f37783e60fbc5bf1eff3ddd369b5aeacc46)) +* add minFromAmountUSD configuration option ([#480](https://github.com/lifinance/widget/issues/480)) ([b3b7648](https://github.com/lifinance/widget/commit/b3b7648e2cab2fd39f2258f132686008a2a0e26d)) +* add pinned chains ([#474](https://github.com/lifinance/widget/issues/474)) ([2ccde57](https://github.com/lifinance/widget/commit/2ccde572babacc4c1e22b7f519fb935d10134118)) +* add pointer events for token details ([#477](https://github.com/lifinance/widget/issues/477)) ([84332ec](https://github.com/lifinance/widget/commit/84332eccc3b118f81cd4811d77e786b641bd8989)) +* add wallet ecosystems ordering ([#464](https://github.com/lifinance/widget/issues/464)) ([ca0b42a](https://github.com/lifinance/widget/commit/ca0b42a2c512a3808b6384db309d87b880cd4fc6)) +* separate config for chain sidebar and routes ([#469](https://github.com/lifinance/widget/issues/469)) ([ed1d817](https://github.com/lifinance/widget/commit/ed1d81751d80c6ead9a18c368a8943c66e4b725e)) + + +### Bug Fixes + +* filter out duplicate EVM connectors ([#468](https://github.com/lifinance/widget/issues/468)) ([bed5130](https://github.com/lifinance/widget/commit/bed51303bd1afc6078010e412483b194f48fc1f9)) +* **format:** wrap hashes in messages for better display ([#465](https://github.com/lifinance/widget/issues/465)) ([83da273](https://github.com/lifinance/widget/commit/83da273ca8aef413d9314cd981dd11e9ad5d5f11)) +* improve tx link handling for relayed txs ([#473](https://github.com/lifinance/widget/issues/473)) ([41c19c7](https://github.com/lifinance/widget/commit/41c19c78f119371a65cab99c2181357067fc4def)) +* remove outer routes container causing unnecessary scrolling ([#476](https://github.com/lifinance/widget/issues/476)) ([21fa74d](https://github.com/lifinance/widget/commit/21fa74dbfcadf40a37589f63c8e162b538bee8f6)) +* reorg token filters ([#485](https://github.com/lifinance/widget/issues/485)) ([d97e709](https://github.com/lifinance/widget/commit/d97e709e96675b125d3cdd52fb78a52f115d4cdc)) +* token details should not have empty state on transition ([#488](https://github.com/lifinance/widget/issues/488)) ([b299eca](https://github.com/lifinance/widget/commit/b299ecaf19ac3c5430ca21e8bd6a91aec4c6f6af)) +* update color mixing for Card and ListItemButton components ([#471](https://github.com/lifinance/widget/issues/471)) ([af33afd](https://github.com/lifinance/widget/commit/af33afdffae644267176346e80588b92d231d73b)) + +### [3.24.3](https://github.com/lifinance/widget/compare/v3.24.2...v3.24.3) (2025-07-04) + + +### Bug Fixes + +* add wallet menu args to external on connect ([#450](https://github.com/lifinance/widget/issues/450)) ([8a00045](https://github.com/lifinance/widget/commit/8a000450dd5a73bcdd1e385cf308488f82822bd0)) + +### [3.24.2](https://github.com/lifinance/widget/compare/v3.24.1...v3.24.2) (2025-07-03) + + +### Bug Fixes + +* allow-deny - do not filter out tokens from unspecified chains ([#449](https://github.com/lifinance/widget/issues/449)) ([ced6cf6](https://github.com/lifinance/widget/commit/ced6cf68f329e31af0338b31fe18c5feed8417fb)) + +### [3.24.1](https://github.com/lifinance/widget/compare/v3.24.0...v3.24.1) (2025-07-02) + + +### Bug Fixes + +* export createTheme function ([121372b](https://github.com/lifinance/widget/commit/121372b3a8efc2ef27e0155de80bb819204ad4e6)) + +## [3.24.0](https://github.com/lifinance/widget/compare/v3.23.0...v3.24.0) (2025-07-02) + + +### Features + +* add fit-content option for widget container ([#404](https://github.com/lifinance/widget/issues/404)) ([bc90dd4](https://github.com/lifinance/widget/commit/bc90dd430f30c3eac9027fd6b3d416e7e8331aed)) +* add optional filter for wallets in modal ([#414](https://github.com/lifinance/widget/issues/414)) ([348167f](https://github.com/lifinance/widget/commit/348167fa346b69db4975536d1d5dff36ea1da7c3)) +* add token details drawer ([#423](https://github.com/lifinance/widget/issues/423)) ([a7f3b8b](https://github.com/lifinance/widget/commit/a7f3b8b772d668e5adb6778079d9155f4d6d473a)) +* implement separate token filtering for from/to lists ([#444](https://github.com/lifinance/widget/issues/444)) ([41732ff](https://github.com/lifinance/widget/commit/41732ff29b24fa37d49cea937ec5195d804be948)) +* restyled connect wallet view ([#418](https://github.com/lifinance/widget/issues/418)) ([8149607](https://github.com/lifinance/widget/commit/8149607a65d760a61437865f32b603b199575847)) + + +### Bug Fixes + +* adjust show all transactions button styles ([#411](https://github.com/lifinance/widget/issues/411)) ([9932617](https://github.com/lifinance/widget/commit/9932617d50905f8b14db4c77e0e84afb86ad159f)) +* adjust themed status color for processes and bottom sheet ([#448](https://github.com/lifinance/widget/issues/448)) ([f227803](https://github.com/lifinance/widget/commit/f2278037a31373c8b047e13ab0157f854350c802)) +* cutoff corners on full height ([#445](https://github.com/lifinance/widget/issues/445)) ([c9a40b5](https://github.com/lifinance/widget/commit/c9a40b527ff3a2321b24cdc294150a119957c9b6)) +* format long bridging times ([#431](https://github.com/lifinance/widget/issues/431)) ([b12e93b](https://github.com/lifinance/widget/commit/b12e93b78bdf4776ae21bb56fe00c62c85bc025e)) +* missing highlight on Azure theme ([#426](https://github.com/lifinance/widget/issues/426)) ([6539e91](https://github.com/lifinance/widget/commit/6539e91a27ddf4c2f48e1ab5069d7939e4a91013)) +* send to wallet adjustments ([#415](https://github.com/lifinance/widget/issues/415)) ([1cab928](https://github.com/lifinance/widget/commit/1cab928a3a941aa71c428a75c87bc17ce5b9df0a)) +* update height setting for restricted heights ([#436](https://github.com/lifinance/widget/issues/436)) ([1395bc6](https://github.com/lifinance/widget/commit/1395bc613532d2435df82efa7decdfff9b689834)) +* wallet toggle, add cache cleaning command ([#437](https://github.com/lifinance/widget/issues/437)) ([8b71caa](https://github.com/lifinance/widget/commit/8b71caa94ce9ace7548127857c7add636e223c03)) + +### [3.23.3](https://github.com/lifinance/widget/compare/v3.23.1-alpha.0...v3.23.3) (2025-06-06) + + +### Bug Fixes + +* update main version ([40ba37d](https://github.com/lifinance/widget/commit/40ba37d502bbce7feb7cc630163bcf0b71366151)) + +## [3.23.0](https://github.com/lifinance/widget/compare/v3.22.0...v3.23.0) (2025-05-30) + + +### Features + +* **wallet-management:** add support for okx, oyl, and binance Bitcoin wallets ([#403](https://github.com/lifinance/widget/issues/403)) ([9df94ed](https://github.com/lifinance/widget/commit/9df94ed9d1d0359589aa29a560836a10416796b4)) + + +### Bug Fixes + +* adjust wallets priority ([785a56b](https://github.com/lifinance/widget/commit/785a56b8a690009680f3e4756b74e95c2f91b6a6)) +* broken height when switching from drawer variant ([#409](https://github.com/lifinance/widget/issues/409)) ([bc99b70](https://github.com/lifinance/widget/commit/bc99b704ae7929f60d64b15ab712b5e64f21cd9c)) +* do not pass non-evm chains to wagmi ([#410](https://github.com/lifinance/widget/issues/410)) ([27810ee](https://github.com/lifinance/widget/commit/27810ee173fa37e3a61a8cbf75410a4eb5233282)) + +## [3.22.0](https://github.com/lifinance/widget/compare/v3.21.3...v3.22.0) (2025-05-29) + + +### Features + +* add cross-vm 2-steps tx flow ([#402](https://github.com/lifinance/widget/issues/402)) ([f06cbad](https://github.com/lifinance/widget/commit/f06cbadf2acedf8139f1b52d6dcafcff8ec46dca)) +* make custom explorer urls tx and address paths configurable ([#400](https://github.com/lifinance/widget/issues/400)) ([bf8f47b](https://github.com/lifinance/widget/commit/bf8f47b5b1261d5560f2bf166c5ca1d9fae9d41b)) +* update transaction execution success screen in the widget ([#396](https://github.com/lifinance/widget/issues/396)) ([8c3dd2b](https://github.com/lifinance/widget/commit/8c3dd2b963f8374093ce42e49ba2c5be1fb0fbe7)) + + +### Bug Fixes + +* account for hidden UI elements in required address logic ([#399](https://github.com/lifinance/widget/issues/399)) ([25b63ff](https://github.com/lifinance/widget/commit/25b63ff8ec1f7007ad779b42a2f385ea5962e6ca)) +* allow hiding toAddress when necessary ([#405](https://github.com/lifinance/widget/issues/405)) ([e70e88d](https://github.com/lifinance/widget/commit/e70e88d60afe8735f8b4fdd91d9efd9bd04b0574)) +* height of virtualized list in drawer ([#398](https://github.com/lifinance/widget/issues/398)) ([c8ae76d](https://github.com/lifinance/widget/commit/c8ae76ddecb994decc0493d11b56f6520d7227f0)) +* improve logic to distribute chains in its grid ([#397](https://github.com/lifinance/widget/issues/397)) ([ffafc2b](https://github.com/lifinance/widget/commit/ffafc2ba898c16c7f737e8c6c0f55d227f346012)) +* no widget render when using chain filters ([#406](https://github.com/lifinance/widget/issues/406)) ([676f0bb](https://github.com/lifinance/widget/commit/676f0bbf4f5790856cdb0ec1daa2ccf4ef744ba8)) +* wallet connect modal search input ([#407](https://github.com/lifinance/widget/issues/407)) ([52a9056](https://github.com/lifinance/widget/commit/52a90565dc0c6cf4f6049c5d2fe7db31ff0451cd)) +* **widget:** hour display bug on safari ([#408](https://github.com/lifinance/widget/issues/408)) ([88ff370](https://github.com/lifinance/widget/commit/88ff370ee90a384cd4a2c7f0dbce456da7c16203)) + +### [3.21.3](https://github.com/lifinance/widget/compare/v3.21.2...v3.21.3) (2025-05-21) + + +### Bug Fixes + +* update collapse logic in SendToWalletButton component ([ccbb69b](https://github.com/lifinance/widget/commit/ccbb69b03fe307866bd96a566ba1bb1ffb36e155)) + +### [3.21.2](https://github.com/lifinance/widget/compare/v3.21.1...v3.21.2) (2025-05-21) + +### [3.21.1](https://github.com/lifinance/widget/compare/v3.21.0...v3.21.1) (2025-05-20) + + +### Bug Fixes + +* allow to create txs without enough gas ([#395](https://github.com/lifinance/widget/issues/395)) ([61ea1d0](https://github.com/lifinance/widget/commit/61ea1d029d991ef740d5b0b7a05d5b844084bc91)) + +## [3.21.0](https://github.com/lifinance/widget/compare/v3.20.5...v3.21.0) (2025-05-15) + + +### Features + +* add Sui support ([#394](https://github.com/lifinance/widget/issues/394)) ([669b7a9](https://github.com/lifinance/widget/commit/669b7a9cf727b37b4b954d944076b04a1dac56b3)) +* replace viem dependencies with bigmi imports ([#388](https://github.com/lifinance/widget/issues/388)) ([624be1a](https://github.com/lifinance/widget/commit/624be1a4437abc30679cb78f10d6d65d118b1a23)) + +### [3.20.5](https://github.com/lifinance/widget/compare/v3.20.4...v3.20.5) (2025-05-12) + + +### Bug Fixes + +* add timeout for getCapabilities call ([#392](https://github.com/lifinance/widget/issues/392)) ([2b73bf6](https://github.com/lifinance/widget/commit/2b73bf67499f2443ff2da268b4dec8f8ca59c131)) +* **avatar-icon:** add skeleton for token image ([#390](https://github.com/lifinance/widget/issues/390)) ([d9054ce](https://github.com/lifinance/widget/commit/d9054cecbdf10bf79741f706fbee33a4a53af4e7)) +* should not require destination address for 7702 accounts ([#393](https://github.com/lifinance/widget/issues/393)) ([00faad2](https://github.com/lifinance/widget/commit/00faad276adbbbdc9c14d444d5e598cce553d52f)) + +### [3.20.4](https://github.com/lifinance/widget/compare/v3.20.3...v3.20.4) (2025-05-06) + + +### Bug Fixes + +* add new error messages for rate limits and third-party tools ([#391](https://github.com/lifinance/widget/issues/391)) ([da820be](https://github.com/lifinance/widget/commit/da820be7bcb25b58fb9c21c3baa42c6d4ea45bba)) +* prevent unnecessary capabilities requests ([d0dca6b](https://github.com/lifinance/widget/commit/d0dca6b2ecf0292f4518bea8794e7d6042876b30)) + +### [3.20.3](https://github.com/lifinance/widget/compare/v3.20.2...v3.20.3) (2025-05-06) + + +### Bug Fixes + +* button color for text variant should respect vars ([5efc9fd](https://github.com/lifinance/widget/commit/5efc9fd6d660369149e20989d12ae5c7334ff35f)) + +### [3.20.2](https://github.com/lifinance/widget/compare/v3.20.1...v3.20.2) (2025-05-05) + + +### Bug Fixes + +* should only hide bridge settings when hidden UI is applied ([8898a67](https://github.com/lifinance/widget/commit/8898a67e096fbbb719f07b724cd60cc18a9526ff)) + +### [3.20.1](https://github.com/lifinance/widget/compare/v3.20.0...v3.20.1) (2025-05-05) + + +### Bug Fixes + +* add new default UI and hidden UI options ([#389](https://github.com/lifinance/widget/issues/389)) ([b9579ad](https://github.com/lifinance/widget/commit/b9579adf09e4dfc84832ecf5bdf1b22b8468caef)) + +## [3.20.0](https://github.com/lifinance/widget/compare/v3.19.2...v3.20.0) (2025-05-05) + + +### Features + +* upgrade to MUI v7 ([#377](https://github.com/lifinance/widget/issues/377)) ([dc97603](https://github.com/lifinance/widget/commit/dc97603dab13047525c206e2536d9b4fcac29465)) + +### [3.19.2](https://github.com/lifinance/widget/compare/v3.19.1...v3.19.2) (2025-04-29) + + +### Bug Fixes + +* improve used tool retrieval in transaction history ([cba3ed6](https://github.com/lifinance/widget/commit/cba3ed69822afd0fb88bac647c41478153375e11)) + +### [3.19.1](https://github.com/lifinance/widget/compare/v3.19.0...v3.19.1) (2025-04-29) + + +### Bug Fixes + +* add options to show fee percentage ([#387](https://github.com/lifinance/widget/issues/387)) ([3dbd751](https://github.com/lifinance/widget/commit/3dbd7516c598ef896362df784c1ad5fe810a3dbb)) + +## [3.19.0](https://github.com/lifinance/widget/compare/v3.18.9...v3.19.0) (2025-04-28) + + +### Features + +* add option to hide chain selection ([#386](https://github.com/lifinance/widget/issues/386)) ([0bc15bf](https://github.com/lifinance/widget/commit/0bc15bff6f0127d21b8f976d82ce32e860004da1)) + +### [3.18.9](https://github.com/lifinance/widget/compare/v3.18.8...v3.18.9) (2025-04-28) + + +### Bug Fixes + +* adjust fee types ([#385](https://github.com/lifinance/widget/issues/385)) ([04dffc7](https://github.com/lifinance/widget/commit/04dffc7200ff8feadd6b88e235a63fbf1bd2538f)) + +### [3.18.8](https://github.com/lifinance/widget/compare/v3.18.7...v3.18.8) (2025-04-28) + +### [3.18.7](https://github.com/lifinance/widget/compare/v3.18.6...v3.18.7) (2025-04-17) + + +### Bug Fixes + +* add support for displaying positive price impacts with a plus sign ([#378](https://github.com/lifinance/widget/issues/378)) ([be3a23d](https://github.com/lifinance/widget/commit/be3a23ddd4540c48f8a4da9e9ffcf501065af9e8)) +* enable _vcComponent ([#382](https://github.com/lifinance/widget/issues/382)) ([fd37fa4](https://github.com/lifinance/widget/commit/fd37fa448707f6a57102d76817b0b34f4cbe9e88)) + +### [3.18.6](https://github.com/lifinance/widget/compare/v3.18.5...v3.18.6) (2025-04-17) + + +### Bug Fixes + +* missing availableRoute event ([#381](https://github.com/lifinance/widget/issues/381)) ([a884b81](https://github.com/lifinance/widget/commit/a884b81ec10a129831be744078678248aa8a9316)) + +### [3.18.5](https://github.com/lifinance/widget/compare/v3.18.4...v3.18.5) (2025-04-15) + + +### Bug Fixes + +* make transaction execution timer count down ([#376](https://github.com/lifinance/widget/issues/376)) ([0595587](https://github.com/lifinance/widget/commit/05955873b1d901efd7c6b0bd2f3143bdb44d5ab3)) + +### [3.18.4](https://github.com/lifinance/widget/compare/v3.18.3...v3.18.4) (2025-04-08) + + +### Bug Fixes + +* we should correctly track routes when there is a relayer one ([#370](https://github.com/lifinance/widget/issues/370)) ([a64390c](https://github.com/lifinance/widget/commit/a64390c20211798e19a91b1a61b71a1fb2175310)) + +### [3.18.3](https://github.com/lifinance/widget/compare/v3.18.2...v3.18.3) (2025-04-07) + + +### Bug Fixes + +* update routes incrementally as they're ready ([#367](https://github.com/lifinance/widget/issues/367)) ([fafe735](https://github.com/lifinance/widget/commit/fafe73510498b88676e97120452ba640823acdef)) + +### [3.18.2](https://github.com/lifinance/widget/compare/v3.18.1...v3.18.2) (2025-04-01) + + +### Bug Fixes + +* use auto slippage in transaction details ([32551e2](https://github.com/lifinance/widget/commit/32551e2534be5222e02d06bfada7eded116e593b)) + +### [3.18.1](https://github.com/lifinance/widget/compare/v3.18.0...v3.18.1) (2025-03-13) + + +### Bug Fixes + +* update permit handling with standardized EIP-712 typed data ([#365](https://github.com/lifinance/widget/issues/365)) ([77cf606](https://github.com/lifinance/widget/commit/77cf606d7e03e48f919fe4073f51ae5e4997a7a0)) + +## [3.18.0](https://github.com/lifinance/widget/compare/v3.17.1...v3.18.0) (2025-03-10) + + +### Features + +* add Permit (ERC-2612), Permit2 and Wallet Call API (EIP-5792) support ([#331](https://github.com/lifinance/widget/issues/331)) ([1ec9786](https://github.com/lifinance/widget/commit/1ec97864f12e6e15074f6efeb1dbe45d715d2261)) +* add RouteTokenDescription hidden option ([#361](https://github.com/lifinance/widget/issues/361)) ([bb3e047](https://github.com/lifinance/widget/commit/bb3e047adc05dc934b7981de1438cd51cb760678)) + + +### Bug Fixes + +* enable undeployed sca transfers ([#362](https://github.com/lifinance/widget/issues/362)) ([4038d7f](https://github.com/lifinance/widget/commit/4038d7fdc412f5918e31a5a8dfce8f58b608987c)) +* **timers:** display hours and days section of timers, and update copy ([#358](https://github.com/lifinance/widget/issues/358)) ([0654c20](https://github.com/lifinance/widget/commit/0654c2000b3dfd87ca02be6e4aff5b51dd153681)) + +### [3.17.1](https://github.com/lifinance/widget/compare/v3.17.0...v3.17.1) (2025-02-16) + +## [3.17.0](https://github.com/lifinance/widget/compare/v3.16.1...v3.17.0) (2025-02-16) + + +### Features + +* add option to hide reverse tokens button ([#352](https://github.com/lifinance/widget/issues/352)) ([bd4b882](https://github.com/lifinance/widget/commit/bd4b8824d0a4d02e506fcca51ba55a74df44f1eb)) +* **timer:** counts up instead of countdown ([#348](https://github.com/lifinance/widget/issues/348)) ([6c9d22e](https://github.com/lifinance/widget/commit/6c9d22e8b1bf4cc3228d1534aae6b81120000da4)) +* widget auto slippage mode ([#349](https://github.com/lifinance/widget/issues/349)) ([580ce06](https://github.com/lifinance/widget/commit/580ce067f26fe0122a2ef14f6b0783b232148775)) + + +### Bug Fixes + +* transaction history page virtualization ([#351](https://github.com/lifinance/widget/issues/351)) ([257a581](https://github.com/lifinance/widget/commit/257a581f6794e309d9d05f8156e359ec9d59d0fa)) + +### [3.16.1](https://github.com/lifinance/widget/compare/v3.16.0...v3.16.1) (2025-02-11) + + +### Bug Fixes + +* improve SCA as destination flow ([#350](https://github.com/lifinance/widget/issues/350)) ([c58e5dd](https://github.com/lifinance/widget/commit/c58e5dd5835f8b25411f9b33070c914702f659ab)) +* replace lifuel protocol with gasZip ([#347](https://github.com/lifinance/widget/issues/347)) ([8b4bdf2](https://github.com/lifinance/widget/commit/8b4bdf24936c01f4efd24f8a370262992cd545a0)) +* restrict 2-step routes if account is not deployed on destination… ([#346](https://github.com/lifinance/widget/issues/346)) ([bf48c3c](https://github.com/lifinance/widget/commit/bf48c3c0ed5501bc720dfa8003f1b0ffd3ec571d)) + +## [3.16.0](https://github.com/lifinance/widget/compare/v3.15.2...v3.16.0) (2025-02-01) + + +### Features + +* add low activity wallet warning ([fb69217](https://github.com/lifinance/widget/commit/fb692176b87666dd37e18a72b11ad7b43901a6bf)) + +### [3.15.2](https://github.com/lifinance/widget/compare/v3.15.1...v3.15.2) (2025-01-31) + + +### Bug Fixes + +* hide required wallet info message when wallet is present ([#345](https://github.com/lifinance/widget/issues/345)) ([88b5e18](https://github.com/lifinance/widget/commit/88b5e189961afaed8e6902f114758886512fd980)) + +### [3.15.1](https://github.com/lifinance/widget/compare/v3.15.0...v3.15.1) (2025-01-31) + + +### Bug Fixes + +* improve funds loss warning message ([317f8b1](https://github.com/lifinance/widget/commit/317f8b131cfc0c685ebb5e4f4fe1a9828afa4a51)) +* include gas sufficiency message props ([2b29bd8](https://github.com/lifinance/widget/commit/2b29bd857a81733dfe61894fc446814be3b6c7b0)) + +## [3.15.0](https://github.com/lifinance/widget/compare/v3.14.2...v3.15.0) (2025-01-30) + + +### Features + +* improve warning messages ([#344](https://github.com/lifinance/widget/issues/344)) ([17e5a2b](https://github.com/lifinance/widget/commit/17e5a2b236e54590c83e1e6c279d04c45f9dcbef)) + +### [3.14.2](https://github.com/lifinance/widget/compare/v3.14.1...v3.14.2) (2025-01-28) + + +### Bug Fixes + +* validate address from URL params and bookmark it ([#343](https://github.com/lifinance/widget/issues/343)) ([688236e](https://github.com/lifinance/widget/commit/688236e6e374482155bcbab6d3a454a0cab9fa7f)) + +### [3.14.1](https://github.com/lifinance/widget/compare/v3.14.0...v3.14.1) (2025-01-23) + + +### Bug Fixes + +* address confirmation bottom sheet height ([59d034b](https://github.com/lifinance/widget/commit/59d034b89b25d58345105de731fe3af2746e3119)) + +## [3.14.0](https://github.com/lifinance/widget/compare/v3.13.2...v3.14.0) (2025-01-22) + + +### Features + +* add configurable route labels/badges ([#338](https://github.com/lifinance/widget/issues/338)) ([f6fe53e](https://github.com/lifinance/widget/commit/f6fe53e5b1b90003c87651bb82f637b85ce0da37)) +* add more UTXO wallets ([d787698](https://github.com/lifinance/widget/commit/d7876980c839a9f591078a613d28de956e9c0805)) +* add smart contract account info message for destination wallets ([#340](https://github.com/lifinance/widget/issues/340)) ([ba57082](https://github.com/lifinance/widget/commit/ba57082582a9ddfae9ccec7847ade5e1041491ee)) + + +### Bug Fixes + +* improve step titles in custom steps ([825856c](https://github.com/lifinance/widget/commit/825856c74d2ba8f32eeb6d4fcde771613776e534)) +* improve token amount formatting ([#339](https://github.com/lifinance/widget/issues/339)) ([a6a3d10](https://github.com/lifinance/widget/commit/a6a3d1094d3403fac5b14797ba652d00a415f5a8)) + +### [3.13.2](https://github.com/lifinance/widget/compare/v3.13.1...v3.13.2) (2024-12-27) + + +### Bug Fixes + +* support loadable wallets ([783ed97](https://github.com/lifinance/widget/commit/783ed9750cc59767bc02708935e207667b1a73fe)) + +### [3.13.1](https://github.com/lifinance/widget/compare/v3.13.0...v3.13.1) (2024-12-20) + + +### Bug Fixes + +* remix compatibility ([#336](https://github.com/lifinance/widget/issues/336)) ([3b6fcb3](https://github.com/lifinance/widget/commit/3b6fcb3905c1751ac125e3e4ac9f9ac588eac4c0)) + +## [3.13.0](https://github.com/lifinance/widget/compare/v3.12.5...v3.13.0) (2024-12-20) + + +### Features + +* improve peer dependencies ([#335](https://github.com/lifinance/widget/issues/335)) ([cb159cf](https://github.com/lifinance/widget/commit/cb159cfe892eef466a4370774c9bb6c25835a967)) +* migrate to MUI v6 ([#334](https://github.com/lifinance/widget/issues/334)) ([12c632d](https://github.com/lifinance/widget/commit/12c632d7a89f2b75b4946eec315489b85601f452)) + + +### Bug Fixes + +* improve deposit flow card titles ([#328](https://github.com/lifinance/widget/issues/328)) ([9eb9a20](https://github.com/lifinance/widget/commit/9eb9a200308c9889d403595984eaef33bb93a31e)) +* prepare for react router v7 ([43d27a1](https://github.com/lifinance/widget/commit/43d27a19d878079b50858165fc4d287f6cbc581d)) +* should show wallet menu in split mode ([7ca782c](https://github.com/lifinance/widget/commit/7ca782c31146ee5ea312eb24b489c70e356277de)) + +### [3.12.5](https://github.com/lifinance/widget/compare/v3.12.4...v3.12.5) (2024-12-13) + +### [3.12.4](https://github.com/lifinance/widget/compare/v3.12.3...v3.12.4) (2024-12-12) + + +### Bug Fixes + +* improve powered by with dynamic configuration ([#332](https://github.com/lifinance/widget/issues/332)) ([6ae3abb](https://github.com/lifinance/widget/commit/6ae3abbca2140fcda5c9a3ce1f014b27651141aa)) +* keep previous data only when wallet is connected ([1b4df34](https://github.com/lifinance/widget/commit/1b4df3448f69c1639a1edc23d5b70ad66b0538e9)) + +### [3.12.3](https://github.com/lifinance/widget/compare/v3.12.2...v3.12.3) (2024-12-05) + +### [3.12.2](https://github.com/lifinance/widget/compare/v3.12.1...v3.12.2) (2024-11-19) + +### [3.12.1](https://github.com/lifinance/widget/compare/v3.12.0...v3.12.1) (2024-11-08) + +## [3.12.0](https://github.com/lifinance/widget/compare/v3.11.0...v3.12.0) (2024-11-06) + + +### Features + +* add TokenSearch and RouteSelected events ([#324](https://github.com/lifinance/widget/issues/324)) ([9165dd0](https://github.com/lifinance/widget/commit/9165dd03987fb8494671c1a46c9c16dd61e18d1f)) + + +### Bug Fixes + +* improve token balance and transaction history invalidation ([#325](https://github.com/lifinance/widget/issues/325)) ([5bcf6dc](https://github.com/lifinance/widget/commit/5bcf6dca1b1e2068925db3f6039a2d5fcc6f5ccc)) + +## [3.11.0](https://github.com/lifinance/widget/compare/v3.10.0...v3.11.0) (2024-11-01) + + +### Features + +* improve Safe support ([#323](https://github.com/lifinance/widget/issues/323)) ([6f1e5d1](https://github.com/lifinance/widget/commit/6f1e5d1cbb4e00c4219b0256ef29a4636df4d4e4)) + +## [3.10.0](https://github.com/lifinance/widget/compare/v3.9.0...v3.10.0) (2024-10-30) + + +### Features + +* add support for partial wallet management ([#320](https://github.com/lifinance/widget/issues/320)) ([e3b919b](https://github.com/lifinance/widget/commit/e3b919bc2d04b4205472e521df3f134076e43d98)) + + +### Bug Fixes + +* correct jumping title for in progress transfers ([3d0a607](https://github.com/lifinance/widget/commit/3d0a6076cbb1fa46dde60673637bc0fe9ff5df3c)) + +## [3.9.0](https://github.com/lifinance/widget/compare/v3.8.2...v3.9.0) (2024-10-28) + + +### Features + +* add active account tracking to the internal wallet management ([0872fe2](https://github.com/lifinance/widget/commit/0872fe2da2d2b3bd450d4cad181f5b50dd064c41)) +* add support for okx bitcoin wallet ([175c5fb](https://github.com/lifinance/widget/commit/175c5fb6b251dd591d14530303aeb8f41788f071)) +* try to auto-populate destination address for cross-ecosystem transfers ([323d3a1](https://github.com/lifinance/widget/commit/323d3a16255763e44caa0b3126641bb92a320da2)) + + +### Bug Fixes + +* always update the destination chain to match the source one ([4d428ea](https://github.com/lifinance/widget/commit/4d428ea566763e77fdbde73c0bd78f6adea41e67)) +* make destination address required if source address is a smart contract wallet ([34d8528](https://github.com/lifinance/widget/commit/34d8528a770198132b67d4af373961dce5d0ebe5)) + +### [3.8.2](https://github.com/lifinance/widget/compare/v3.8.1...v3.8.2) (2024-10-24) + + +### Bug Fixes + +* avoid gas check for smart contract wallets ([1bd956d](https://github.com/lifinance/widget/commit/1bd956d93d1bceb5c27b64e7ca2c8777d5b9ee7a)) +* improve safe wallet connectivity ([df5ded3](https://github.com/lifinance/widget/commit/df5ded3e4f195ac96090509e3e54933a45232c97)) +* replace first-child with first-of-type to avoid warning ([d098a7c](https://github.com/lifinance/widget/commit/d098a7cc78e3e9aacf1bf10c5652b0ef60e638ee)) +* solana providers doesn't update accounts sometimes ([e911bea](https://github.com/lifinance/widget/commit/e911beaa43ceaf39a8d88e22f166db876174da10)) + +### [3.8.1](https://github.com/lifinance/widget/compare/v3.8.0...v3.8.1) (2024-10-21) + + +### Bug Fixes + +* add auto focus for search input field ([#314](https://github.com/lifinance/widget/issues/314)) ([01c1b49](https://github.com/lifinance/widget/commit/01c1b494886247f3f57f0a072041622998c38a53)) +* increase fractional and significant digits ([#313](https://github.com/lifinance/widget/issues/313)) ([06e4df6](https://github.com/lifinance/widget/commit/06e4df69a8cf2221eda87348e685880f02f5473b)) + +## [3.8.0](https://github.com/lifinance/widget/compare/v3.7.0...v3.8.0) (2024-10-18) + + +### Features + +* add Bitcoin/UTXO support ([#297](https://github.com/lifinance/widget/issues/297)) ([f83341f](https://github.com/lifinance/widget/commit/f83341f9b0d559dfda6c0cd37629b5f36642ae86)) +* emit events for settings changes ([#312](https://github.com/lifinance/widget/issues/312)) ([cf48cf2](https://github.com/lifinance/widget/commit/cf48cf22bec198099284cf3ce6ed6609b76a5f39)) +* widget events for send to wallet ([#309](https://github.com/lifinance/widget/issues/309)) ([b247afb](https://github.com/lifinance/widget/commit/b247afbb41b1ffd04be8f4b09862f72fc40d4a37)) + + +### Bug Fixes + +* crowdin config ([f9bf9ba](https://github.com/lifinance/widget/commit/f9bf9bab7fa2891d849f70c72ff16b096701fbb0)) +* nextjs example link ([a482ff3](https://github.com/lifinance/widget/commit/a482ff3510a72a6d619ac5e86af70b2dc28e11cc)) +* refactor, use and export calcPriceImpact function ([#307](https://github.com/lifinance/widget/issues/307)) ([234844f](https://github.com/lifinance/widget/commit/234844f79afd7b65dbfb6f46c3725ace247f5c0a)) + +## [3.7.0](https://github.com/lifinance/widget/compare/v3.6.2...v3.7.0) (2024-10-02) + + +### Features + +* add emitter event on location change ([#304](https://github.com/lifinance/widget/issues/304)) ([d6146f8](https://github.com/lifinance/widget/commit/d6146f83dcc27381d52b95f51e7fdcd05552dc58)) +* add search input to chain, bridges and exchanges pages ([#305](https://github.com/lifinance/widget/issues/305)) ([5504d95](https://github.com/lifinance/widget/commit/5504d95621d11a70ee3fb39108dbd8c0a2417978)) + +### [3.6.2](https://github.com/lifinance/widget/compare/v3.6.1...v3.6.2) (2024-09-24) + + +### Bug Fixes + +* status sheet buttons and height adjustment ([#303](https://github.com/lifinance/widget/issues/303)) ([56db5e4](https://github.com/lifinance/widget/commit/56db5e4033a05a295cf022843c9a359008c70ce5)) + +### [3.6.1](https://github.com/lifinance/widget/compare/v3.6.0...v3.6.1) (2024-09-18) + + +### Bug Fixes + +* trim amount input ([66eed73](https://github.com/lifinance/widget/commit/66eed7386826e7cf0c249ebd2fdc1930ab550f6c)) + +## [3.6.0](https://github.com/lifinance/widget/compare/v3.5.3...v3.6.0) (2024-09-18) + + +### Features + +* add voluntary contribution component ([#301](https://github.com/lifinance/widget/issues/301)) ([d0453a7](https://github.com/lifinance/widget/commit/d0453a76b1a429580adafed5e6289bda10c49f8d)) + + +### Bug Fixes + +* factor external wallet management into header height calculations ([#300](https://github.com/lifinance/widget/issues/300)) ([b31aaa7](https://github.com/lifinance/widget/commit/b31aaa717fe2a49747b159c2d07b78f6099003df)) +* reactive chain and token properties from config ([#294](https://github.com/lifinance/widget/issues/294)) ([1ff7cfc](https://github.com/lifinance/widget/commit/1ff7cfcc99569c52f05d29a9929f1be06ff53170)) +* use process tx link if no tx hash is available ([#299](https://github.com/lifinance/widget/issues/299)) ([8c59d31](https://github.com/lifinance/widget/commit/8c59d313defdeea4a59df6f06ef40edd5e36c329)) + +### [3.5.3](https://github.com/lifinance/widget/compare/v3.5.2...v3.5.3) (2024-09-12) + +### [3.5.2](https://github.com/lifinance/widget/compare/v3.5.1...v3.5.2) (2024-09-11) + + +### Bug Fixes + +* widget header with subvariant split ([#298](https://github.com/lifinance/widget/issues/298)) ([c33d42a](https://github.com/lifinance/widget/commit/c33d42abcabaa80c533caae915384dd6d2bc36ab)) + +### [3.5.1](https://github.com/lifinance/widget/compare/v3.5.0...v3.5.1) (2024-09-10) + + +### Bug Fixes + +* make internal explorer optional ([a0f51c6](https://github.com/lifinance/widget/commit/a0f51c6d7664824543ad3f2a6ab672d01ca0a91b)) + +## [3.5.0](https://github.com/lifinance/widget/compare/v3.4.4...v3.5.0) (2024-09-10) + + +### Features + +* add explorer link to the support card ([#292](https://github.com/lifinance/widget/issues/292)) ([0792c15](https://github.com/lifinance/widget/commit/0792c158aa39b9c1b05139a494e5ec9483473733)) +* allow configuration of explorer links ([#293](https://github.com/lifinance/widget/issues/293)) ([c173546](https://github.com/lifinance/widget/commit/c1735465580e9199e448167dc1445b58246f569e)) + + +### Bug Fixes + +* add percent formatter to improve display of price impact ([#287](https://github.com/lifinance/widget/issues/287)) ([2061012](https://github.com/lifinance/widget/commit/20610129dedb4fefd23a145b173eeee2bb4f7066)) +* allow the token list to fill the full height available and default max height to 686px ([#289](https://github.com/lifinance/widget/issues/289)) ([4882755](https://github.com/lifinance/widget/commit/48827559ac5db87140669247c1728083ace7a94e)) +* container should not forward prop ([6e326cd](https://github.com/lifinance/widget/commit/6e326cd27efb965058923830c4831395365b802a)) +* prevent sending a request for the same chain token combinations ([282bdf0](https://github.com/lifinance/widget/commit/282bdf046c01025b61057887613129647ad3d50d)) + +### [3.4.4](https://github.com/lifinance/widget/compare/v3.4.3...v3.4.4) (2024-08-15) + + +### Bug Fixes + +* improve deposit flow text ([ee5f178](https://github.com/lifinance/widget/commit/ee5f17871a89befa03e920e63ab307b820c6479d)) + +### [3.4.3](https://github.com/lifinance/widget/compare/v3.4.2...v3.4.3) (2024-08-15) + + +### Bug Fixes + +* add check for coinbase browser ([1899e6d](https://github.com/lifinance/widget/commit/1899e6df451e3e8cf90f58a4011262f0bfc3a26f)) +* rename coinbase wallet ([070ce5b](https://github.com/lifinance/widget/commit/070ce5b59a26a426d9064cf352d0ae71d3808a6e)) +* window typo ([bbbf91e](https://github.com/lifinance/widget/commit/bbbf91eabd2422c4675df5cdef589a76ae312d3f)) + +### [3.4.2](https://github.com/lifinance/widget/compare/v3.4.1...v3.4.2) (2024-08-14) + + +### Bug Fixes + +* check for window in next.js ([f9a134f](https://github.com/lifinance/widget/commit/f9a134fa7238aa3ef020c9fededf1d97332ecdbb)) + +### [3.4.1](https://github.com/lifinance/widget/compare/v3.4.0...v3.4.1) (2024-08-14) + + +### Bug Fixes + +* check for window in next.js ([d873c49](https://github.com/lifinance/widget/commit/d873c49110c2be58cf06d83cbabc2e9817528a4c)) + +## [3.4.0](https://github.com/lifinance/widget/compare/v3.4.0-beta.3...v3.4.0) (2024-08-14) + + +### Features + +* changing height and present widget better for mobile ([#276](https://github.com/lifinance/widget/issues/276)) ([d2f3ec8](https://github.com/lifinance/widget/commit/d2f3ec880c492e3f3671ca2f6b268de12fdbe174)) +* improved fee configuration ([#284](https://github.com/lifinance/widget/issues/284)) ([e7ba200](https://github.com/lifinance/widget/commit/e7ba2002b920905b65a5dcc9a420ffbc247ccb9a)) +* optimize wallet sdks handling ([#283](https://github.com/lifinance/widget/issues/283)) ([eee87aa](https://github.com/lifinance/widget/commit/eee87aa1b5e029ff104f38a9598178094c7cd0cd)) + + +### Bug Fixes + +* add subvariant deposit key ([abe9ba0](https://github.com/lifinance/widget/commit/abe9ba0b8ae317ddee2e8195dcfb65d4f5c44df4)) +* avoid from amount/token reset if they are disabled ([#285](https://github.com/lifinance/widget/issues/285)) ([86820c9](https://github.com/lifinance/widget/commit/86820c96b08064c3ee7224c7f47f1a386a68f78b)) + +## [3.3.0](https://github.com/lifinance/widget/compare/v3.2.2...v3.3.0) (2024-07-30) + + +### Features + +* improve the display of estimated duration and fees ([#278](https://github.com/lifinance/widget/issues/278)) ([5180526](https://github.com/lifinance/widget/commit/5180526154371c5378c38224592894933d1cc313)) + + +### Bug Fixes + +* change assert to with ([#279](https://github.com/lifinance/widget/issues/279)) ([5d6ac56](https://github.com/lifinance/widget/commit/5d6ac569e239317edb288a42918ead107369d1ae)) + +### [3.2.2](https://github.com/lifinance/widget/compare/v3.2.1...v3.2.2) (2024-07-24) + + +### Bug Fixes + +* allow syncing with mixed chains ([#277](https://github.com/lifinance/widget/issues/277)) ([b32287f](https://github.com/lifinance/widget/commit/b32287fab518e89c90ec5bfd95e0c2781fdc48b0)) + +### [3.2.1](https://github.com/lifinance/widget/compare/v3.2.0...v3.2.1) (2024-07-22) + + +### Bug Fixes + +* add slippage tooltip ([9624fd1](https://github.com/lifinance/widget/commit/9624fd165fb76f698371afd7569854c4a687cece)) +* change send and receive wording ([6585723](https://github.com/lifinance/widget/commit/6585723b8fd9cc88e5e8bad68b1216960d6518f0)) +* refuel variant should show get gas review button ([587bbda](https://github.com/lifinance/widget/commit/587bbda834aed5a5599481d40864797707261c0a)) +* show correct number of available tools ([da893cc](https://github.com/lifinance/widget/commit/da893cc50cdc266850358628524d6ed7c04185c3)) + +## [3.2.0](https://github.com/lifinance/widget/compare/v3.1.1...v3.2.0) (2024-07-19) + + +### Features + +* bump sdk ([b85059f](https://github.com/lifinance/widget/commit/b85059f4bb265b305c887601442dcc6f368bc193)) + +### [3.1.1](https://github.com/lifinance/widget/compare/v3.1.0...v3.1.1) (2024-07-19) + + +### Bug Fixes + +* add new error messages for Solana ([3370507](https://github.com/lifinance/widget/commit/3370507fb0f8132fd1c298fe1439916cebc99f67)) +* adjust fees amount USD calculation ([d479ecd](https://github.com/lifinance/widget/commit/d479ecda93e61c45a6ba6ffe7b28eaa55fadebc8)) +* adjust get gas title ([ccc11e1](https://github.com/lifinance/widget/commit/ccc11e1cd036f99df6b9f28472455080babd560a)) +* adjust step connector color ([f8694cc](https://github.com/lifinance/widget/commit/f8694cc3e60c5be3815b57f0cc742631c90c5e1f)) + +## [3.1.0](https://github.com/lifinance/widget/compare/v3.0.2...v3.1.0) (2024-07-15) + + +### Features + +* add price impact to transaction details ([#273](https://github.com/lifinance/widget/issues/273)) ([d983b91](https://github.com/lifinance/widget/commit/d983b91d697b45803e67d06dc92fbcf3f5b82d0f)) +* improve review page with route tracker, added new fee card and improved route card ([#268](https://github.com/lifinance/widget/issues/268)) ([258c5d3](https://github.com/lifinance/widget/commit/258c5d32cad0e7f306e49288f03921264bdcef73)) + + +### Bug Fixes + +* adjust partial transfer message ([#274](https://github.com/lifinance/widget/issues/274)) ([0354930](https://github.com/lifinance/widget/commit/0354930c2036a18c50687c86372b43674b0b24ce)) +* import for common js lib react-timer-hook ([#269](https://github.com/lifinance/widget/issues/269)) ([f8075fd](https://github.com/lifinance/widget/commit/f8075fd2678e53e3e1db5d2b9e8f2708919a0ae0)) +* json assertions ([#267](https://github.com/lifinance/widget/issues/267)) ([1c0c157](https://github.com/lifinance/widget/commit/1c0c15781ca04ddd059d53324f09ac2b27832d5a)) +* remove wagmi warnings ([#271](https://github.com/lifinance/widget/issues/271)) ([6048ef0](https://github.com/lifinance/widget/commit/6048ef022d50ec4ffa35b47aa602bfe851e52a20)) + +### [3.0.2](https://github.com/lifinance/widget/compare/v3.0.0...v3.0.2) (2024-07-08) + + +### Bug Fixes + +* allowed bridges option doesn't applied correctly ([1e00fb4](https://github.com/lifinance/widget/commit/1e00fb4da805c6001369d8b1806949c52632b0ce)) + +## [3.0.0](https://github.com/lifinance/widget/compare/v3.0.0-beta.4...v3.0.0) (2024-06-26) + +## [2.8.0](https://github.com/lifinance/widget/compare/v2.7.1...v2.8.0) (2023-10-30) + + +### Features + +* add walletConnected event ([f916940](https://github.com/lifinance/widget/commit/f916940f90dea1d71e402a38e875947793fb3b95)) + +### [2.7.1](https://github.com/lifinance/widget/compare/v2.7.0...v2.7.1) (2023-10-19) + + +### Bug Fixes + +* remove xmlns:xodm attribute ([b64757e](https://github.com/lifinance/widget/commit/b64757eb6eeee4145dc13954dd5ce1758bfcd41e)) + +## [2.7.0](https://github.com/lifinance/widget/compare/v2.6.3...v2.7.0) (2023-10-19) + + +### Features + +* SafePal wallet added ([#145](https://github.com/lifinance/widget/issues/145)) ([38199fc](https://github.com/lifinance/widget/commit/38199fc60477f49cc1ffdba21e07d731f18d6b8f)) + + +### Bug Fixes + +* allow lower mobile view min-width ([6d05d54](https://github.com/lifinance/widget/commit/6d05d546687854000a3e3f3a0d892e5e3b7930bb)) + +### [2.6.3](https://github.com/lifinance/widget/compare/v2.6.2...v2.6.3) (2023-10-18) + + +### Bug Fixes + +* remove quotes from inside string template ([9fa27a9](https://github.com/lifinance/widget/commit/9fa27a9e2110b4f31baee00effc38c1e577d0513)) + +### [2.6.2](https://github.com/lifinance/widget/compare/v2.6.1...v2.6.2) (2023-10-16) + + +### Bug Fixes + +* enable gas sufficiency check for SAFE ([#142](https://github.com/lifinance/widget/issues/142)) ([a2030cf](https://github.com/lifinance/widget/commit/a2030cf58dd25b9028e751c9ccebadb67adcb60c)) + +### [2.6.1](https://github.com/lifinance/widget/compare/v2.6.0...v2.6.1) (2023-10-13) + + +### Bug Fixes + +* use keyframes in string templates ([6799aaf](https://github.com/lifinance/widget/commit/6799aaf6fc3f384aed1cea3ef9bc4cc0676dd9e2)) + +## [2.6.0](https://github.com/lifinance/widget/compare/v2.5.1...v2.6.0) (2023-10-11) + + +### Features + +* add ReviewTransactionPageEntered event ([b09cfee](https://github.com/lifinance/widget/commit/b09cfee90fbccf2938d10416e64ac7064e73167a)) + + +### Bug Fixes + +* use object syntax for keyframes ([8c2032f](https://github.com/lifinance/widget/commit/8c2032f73a6975b8c51c6576909652275719d828)) + +### [2.5.1](https://github.com/lifinance/widget/compare/v2.5.0...v2.5.1) (2023-10-03) + + +### Bug Fixes + +* events import ([cd97fd1](https://github.com/lifinance/widget/commit/cd97fd1de2c79007fd573b958508bca50304c28e)) + +## [2.5.0](https://github.com/lifinance/widget/compare/v2.4.6...v2.5.0) (2023-10-03) + + +### Features + +* add apiKey configuration option ([6948dd6](https://github.com/lifinance/widget/commit/6948dd6c06163e0b5ebe87f10b2adec567b6a76a)) + + +### Bug Fixes + +* improve fee costs handling ([d5e8c53](https://github.com/lifinance/widget/commit/d5e8c539a43885d661b6b1e2e71059e317654d6b)) + +### [2.4.6](https://github.com/lifinance/widget/compare/v2.4.5...v2.4.6) (2023-10-02) + + +### Bug Fixes + +* add options for split subvariant ([a63b303](https://github.com/lifinance/widget/commit/a63b303f641f67e9f02c037a81baf1a4362cf6ff)) +* adjust actions ([#136](https://github.com/lifinance/widget/issues/136)) ([77da36b](https://github.com/lifinance/widget/commit/77da36bd52b377af1eac4434e435ce63dcc5b7a2)) +* custom bridge and exchange select indicator ([#130](https://github.com/lifinance/widget/issues/130)) ([05fb020](https://github.com/lifinance/widget/commit/05fb020ce395971f94a95528581c76bf348306ce)) + +### [2.4.5](https://github.com/lifinance/widget/compare/v2.4.4...v2.4.5) (2023-09-20) + + +### Bug Fixes + +* hide browser wallets for mobile and tablets ([#131](https://github.com/lifinance/widget/issues/131)) ([bd07ca6](https://github.com/lifinance/widget/commit/bd07ca691d2767c7a01b8baa0cc493ea7604ebbb)) +* remove empty spaces from ens- or walletAddress input (LF-3268) ([#121](https://github.com/lifinance/widget/issues/121)) ([d28cbc5](https://github.com/lifinance/widget/commit/d28cbc5eeac5c6bce0ed5fb01291df7787d6d627)) + +### [2.4.4](https://github.com/lifinance/widget/compare/v2.4.3...v2.4.4) (2023-09-14) + + +### Bug Fixes + +* add close button on mobile ([#119](https://github.com/lifinance/widget/issues/119)) ([8c2ab60](https://github.com/lifinance/widget/commit/8c2ab605b52f8fc30a6ffa01b5d552a6e1f8da9e)) + +### [2.4.3](https://github.com/lifinance/widget/compare/v2.4.2...v2.4.3) (2023-09-13) + +### [2.4.2](https://github.com/lifinance/widget/compare/v2.4.0...v2.4.2) (2023-09-12) + + +### Bug Fixes + +* gate wallet name ([ce423a3](https://github.com/lifinance/widget/commit/ce423a3d902e96bd13baf3e5fddfaba606c7c82a)) +* remove unnecessary svg tags ([7f46bdd](https://github.com/lifinance/widget/commit/7f46bdd6c409a64f8c8f573e40af829a1cab5fa1)) + +### [2.4.1](https://github.com/lifinance/widget/compare/v2.4.0...v2.4.1) (2023-09-11) + + +### Bug Fixes + +* remove unnecessary svg tags ([a33c294](https://github.com/lifinance/widget/commit/a33c29473cc8d1e65e652a28a4c303792063d667)) + +## [2.4.0](https://github.com/lifinance/widget/compare/v2.3.0...v2.4.0) (2023-09-11) + + +### Features + +* add bitkeep wallet ([#122](https://github.com/lifinance/widget/issues/122)) ([ae83ae6](https://github.com/lifinance/widget/commit/ae83ae63678c8c0471870e5ba19dbc8acf6194c0)) +* add gate wallet ([#123](https://github.com/lifinance/widget/issues/123)) ([cd19867](https://github.com/lifinance/widget/commit/cd19867e56fdc2b3d198560e7e7b1dd1d68244d7)) +* added okx wallet ([#124](https://github.com/lifinance/widget/issues/124)) ([d977981](https://github.com/lifinance/widget/commit/d977981edd0234b07ce4c44e4fa0b2ed028f5464)) + +## [2.3.0](https://github.com/lifinance/widget/compare/v2.2.8...v2.3.0) (2023-08-25) + + +### Features + +* add SendToWalletToggled event ([e6bffcf](https://github.com/lifinance/widget/commit/e6bffcf013b34aca999d6a2763a4866c4164b52b)) + +### [2.2.8](https://github.com/lifinance/widget/compare/v2.2.7...v2.2.8) (2023-08-18) + + +### Bug Fixes + +* remove Huobi, MeetOne, AToken and MyKey wallets (LF-4489) ([#120](https://github.com/lifinance/widget/issues/120)) ([3f52729](https://github.com/lifinance/widget/commit/3f52729a02b6824777707ddc13c65403cc179c09)) + +### [2.2.7](https://github.com/lifinance/widget/compare/v2.2.6...v2.2.7) (2023-08-14) + + +### Bug Fixes + +* chain order for multiple widget instances ([4255ea3](https://github.com/lifinance/widget/commit/4255ea3ef4c027b2c1a3fedd0004eca6b1db2a2b)) + +### [2.2.6](https://github.com/lifinance/widget/compare/v2.2.5...v2.2.6) (2023-08-02) + + +### Bug Fixes + +* partially bridged tokens are not displayed correctly ([2a94b8d](https://github.com/lifinance/widget/commit/2a94b8d663f2e860e87e3ea9b0ccbf7e4e2254e7)) + +### [2.2.5](https://github.com/lifinance/widget/compare/v2.2.4...v2.2.5) (2023-07-25) + + +### Bug Fixes + +* add element ids to containers ([6ba591c](https://github.com/lifinance/widget/commit/6ba591cb4b617033118afd3e9d19ebcf6baba3fc)) + +### [2.2.4](https://github.com/lifinance/widget/compare/v2.2.3...v2.2.4) (2023-07-25) + + +### Bug Fixes + +* allow header transparent background ([b40d773](https://github.com/lifinance/widget/commit/b40d7736b53c399b2279502a81b4f876c1c8c28c)) + +### [2.2.3](https://github.com/lifinance/widget/compare/v2.2.1...v2.2.3) (2023-07-24) + +### [2.2.2](https://github.com/lifinance/widget/compare/v2.2.1...v2.2.2) (2023-07-24) + +### [2.2.1](https://github.com/lifinance/widget/compare/v2.2.0...v2.2.1) (2023-07-12) + + +### Bug Fixes + +* safe env check logic ([#113](https://github.com/lifinance/widget/issues/113)) ([d873e43](https://github.com/lifinance/widget/commit/d873e43f78ca3f47b485ecf10523373a922852a9)) + +## [2.2.0](https://github.com/lifinance/widget/compare/v2.1.4...v2.2.0) (2023-07-11) + + +### Features + +* add Safe Wallet to wallet management ([#100](https://github.com/lifinance/widget/issues/100)) ([ba1b483](https://github.com/lifinance/widget/commit/ba1b483830253515e58cc2fb785f89493fe8d917)) + +### [2.1.4](https://github.com/lifinance/widget/compare/v2.1.3...v2.1.4) (2023-07-05) + + +### Bug Fixes + +* make chain filtering available for multiple instances ([b2c9083](https://github.com/lifinance/widget/commit/b2c9083ed230719e1f36f886dc73f3885d22c4ef)) +* unknown account [#0](https://github.com/lifinance/widget/issues/0) (LF-3621) ([6f67d4f](https://github.com/lifinance/widget/commit/6f67d4fc95afb9fba05433a9243f8cd4151144ba)) + +### [2.1.3](https://github.com/lifinance/widget/compare/v2.1.2...v2.1.3) (2023-07-03) + +### [2.1.2](https://github.com/lifinance/widget/compare/v2.1.0...v2.1.2) (2023-06-28) + + +### Bug Fixes + +* WalletConnect multiple instances + increase z-index ([e69a3a1](https://github.com/lifinance/widget/commit/e69a3a1455117031f105f56f11763a3291d28f58)) + +## [2.1.0](https://github.com/lifinance/widget/compare/v2.0.1...v2.1.0) (2023-06-27) + + +### Features + +* add emitter-event for contact support button ([192140a](https://github.com/lifinance/widget/commit/192140a624bc6a55b6f7288632891c1e5cb6576b)) +* support WalletConnect v2 ([#89](https://github.com/lifinance/widget/issues/89)) ([5c8cd6d](https://github.com/lifinance/widget/commit/5c8cd6ddabd898ec27411f4b19a5f354d9d365aa)) + + +### Bug Fixes + +* add header store context ([5274705](https://github.com/lifinance/widget/commit/5274705c5dfa8412cc25a54792d58ddccb5b501b)) + +### [2.0.1](https://github.com/lifinance/widget/compare/v2.0.0...v2.0.1) (2023-06-16) + + +### Bug Fixes + +* don't modify estimations for contract calls ([23f8997](https://github.com/lifinance/widget/commit/23f89971b77bf1e72d3b99f471fe49a99259ca8d)) +* warning color in dark theme ([bf3aeac](https://github.com/lifinance/widget/commit/bf3aeac92dc0dcc7fad4ed0eb6f7c64618946e01)) + +## [2.0.0](https://github.com/lifinance/widget/compare/v2.0.0-beta.16...v2.0.0) (2023-06-15) + +## [2.0.0-beta.16](https://github.com/lifinance/widget/compare/v2.0.0-beta.15...v2.0.0-beta.16) (2023-06-14) + + +### Bug Fixes + +* drawer button icon color in dark theme ([dcbe962](https://github.com/lifinance/widget/commit/dcbe962dd0a229eeb6d063f33110d62e52a877f8)) + +## [2.0.0-beta.15](https://github.com/lifinance/widget/compare/v2.0.0-beta.14...v2.0.0-beta.15) (2023-06-14) + + +### Features + +* update nft subvariant to support drawer and send to another wallet ([87d8927](https://github.com/lifinance/widget/commit/87d892778fdc87078509885ea98f0c700c6802d1)) + + +### Bug Fixes + +* adjust swap/bridge terminology across the widget ([ca69314](https://github.com/lifinance/widget/commit/ca693143892a25d5468f315c665d49cce972e422)) +* don't disable button when refreshing routes ([398e70b](https://github.com/lifinance/widget/commit/398e70b67bbef8add9c9e0a56db4afbfd4658400)) +* don't gray out button on loading state ([af2220e](https://github.com/lifinance/widget/commit/af2220ed90ece2bc051b8fa290dc38d2726f749c)) +* don't throw if autoConnect fails ([7dc4578](https://github.com/lifinance/widget/commit/7dc4578442aed5728231550157c4b02493a0067b)) +* make button gray in loading state ([d64220e](https://github.com/lifinance/widget/commit/d64220e7c62cf05c023c190241cced978cff7bc4)) +* request additional route for insurance only when bridging ([84a9bae](https://github.com/lifinance/widget/commit/84a9bae87b9273f1b03cb55f2534f75109859f3e)) +* translation tags should work inside tooltip ([afbf669](https://github.com/lifinance/widget/commit/afbf669743d99835fed96bb3b04c506a25dedfb6)) +* update progress text ([5d7030d](https://github.com/lifinance/widget/commit/5d7030d26a9dabfd8ec8bf49017e61c226ecc2c7)) +* use subvariant split state for button text ([1cb952c](https://github.com/lifinance/widget/commit/1cb952cc8c3051bfd94d10f9a6f47bb1d1d4d29f)) + +## [2.0.0-beta.14](https://github.com/lifinance/widget/compare/v2.0.0-beta.13...v2.0.0-beta.14) (2023-06-02) + + +### Bug Fixes + +* make icon as a link to address explorer ([e173400](https://github.com/lifinance/widget/commit/e17340004344574eac3426a0c930bb1b7d06590b)) +* tabs background color within split subvariant ([beb78c6](https://github.com/lifinance/widget/commit/beb78c6cf4447936e12c739e5ae533064eacac9b)) + +## [2.0.0-beta.13](https://github.com/lifinance/widget/compare/v2.0.0-beta.12...v2.0.0-beta.13) (2023-05-25) + + +### Bug Fixes + +* prevent decimals removal if no tokens are selected ([b78066e](https://github.com/lifinance/widget/commit/b78066e98ec783ba4662bc562d38ba95a70b64d1)) + +## [2.0.0-beta.12](https://github.com/lifinance/widget/compare/v2.0.0-beta.11...v2.0.0-beta.12) (2023-05-25) + + +### Features + +* add option to include additional tokens ([e2040bb](https://github.com/lifinance/widget/commit/e2040bb8c56c0ebad6db460b3eb3ad1487fafd33)) + + +### Bug Fixes + +* limit decimals for swap input amount ([93973d8](https://github.com/lifinance/widget/commit/93973d82d0c5fa14eac62c7a09f4de84afa9d68d)) +* trigger gas suggestion only for supported chains ([d5f5750](https://github.com/lifinance/widget/commit/d5f5750eb5123b946f6c816047683c3eee6bb6a4)) + +## [2.0.0-beta.11](https://github.com/lifinance/widget/compare/v2.0.0-beta.10...v2.0.0-beta.11) (2023-05-23) + + +### Bug Fixes + +* fix tab radius in split mode ([24fa80b](https://github.com/lifinance/widget/commit/24fa80bff99e5bf5aa33f6d8bd62580699aa1ee1)) + +## [2.0.0-beta.10](https://github.com/lifinance/widget/compare/v2.0.0-beta.9...v2.0.0-beta.10) (2023-05-23) + + +### Features + +* add HighValueLoss emitter event ([#86](https://github.com/lifinance/widget/issues/86)) ([69d3918](https://github.com/lifinance/widget/commit/69d391852644a09a4ac8b37ec8d4b5ffd61bbe98)) +* show insured amount ([b928d08](https://github.com/lifinance/widget/commit/b928d0805360a33b1ec27601c7ade64a6a6fc680)) + + +### Bug Fixes + +* max button should return full amount ([64e0592](https://github.com/lifinance/widget/commit/64e05924e5481c96c5d797e90fe11a751356888d)) +* remove direct @mui/system import ([39080e4](https://github.com/lifinance/widget/commit/39080e467425be18257cd47377564596e3eff9b3)) +* wagmi can't switch chain ([2a708c2](https://github.com/lifinance/widget/commit/2a708c2683abe268936a79bdc071becaeedcf6f4)) + +## [2.0.0-beta.9](https://github.com/lifinance/widget/compare/v2.0.0-beta.8...v2.0.0-beta.9) (2023-05-15) + + +### Bug Fixes + +* add insufficient funds error handling ([6991ee4](https://github.com/lifinance/widget/commit/6991ee457771540e6da5a723d2bb7201842956b4)) +* include auto refuel into gas sufficiency check ([d31f7e4](https://github.com/lifinance/widget/commit/d31f7e4eb393b64204dd364b0e9a85ea4299f421)) +* insurance card isn't shown in some cases ([a8eb1ef](https://github.com/lifinance/widget/commit/a8eb1ef6e7fd0a83f1e61c1b9974f18e72796e1a)) + +## [2.0.0-beta.8](https://github.com/lifinance/widget/compare/v2.0.0-beta.7...v2.0.0-beta.8) (2023-05-11) + + +### Features + +* add hiddenUI toToken option ([4e5376b](https://github.com/lifinance/widget/commit/4e5376b5a9db1fa4b35012b6db3f6fb996555b6e)) +* show token address in token list items ([e5d6411](https://github.com/lifinance/widget/commit/e5d64115452a6798fd8d5464ed15d38e1dc49ab4)) + + +### Bug Fixes + +* adjust token search field text ([4aa5cef](https://github.com/lifinance/widget/commit/4aa5cefaea78341af0872400fb527cea9140dae0)) +* apply auto refuel when swapping to native tokens ([14d5a1a](https://github.com/lifinance/widget/commit/14d5a1ae800779a5ee5547a379777c18284272e3)) +* handle duplicates in token list ([ee804da](https://github.com/lifinance/widget/commit/ee804daa522bd695e450792c3613332bb22583ae)) +* handle undefined current wallet ([#87](https://github.com/lifinance/widget/issues/87)) ([5b37b6f](https://github.com/lifinance/widget/commit/5b37b6f93e041148d47b6661d0e59b5b3c16c847)) +* replace support link ([55a04df](https://github.com/lifinance/widget/commit/55a04dfe35b06d0a3f2804738d9f2278689d16c7)) + +## [2.0.0-beta.7](https://github.com/lifinance/widget/compare/v2.0.0-beta.6...v2.0.0-beta.7) (2023-05-04) + + +### Bug Fixes + +* widget drawer types for refs ([0168ff7](https://github.com/lifinance/widget/commit/0168ff79154fe9925b199a8e3c36328c7f33babd)) + +## [2.0.0-beta.6](https://github.com/lifinance/widget/compare/v2.0.0-beta.5...v2.0.0-beta.6) (2023-05-04) + + +### Features + +* add split subvariant ([#81](https://github.com/lifinance/widget/issues/81)) ([7c65124](https://github.com/lifinance/widget/commit/7c65124fb14cdd765c4703625a26865803ddacf1)) + + +### Bug Fixes + +* move exodus up the list ([#85](https://github.com/lifinance/widget/issues/85)) ([5fc59bc](https://github.com/lifinance/widget/commit/5fc59bc97b899d5ced2a7fd2dc545470c8c0a976)) + +## [2.0.0-beta.5](https://github.com/lifinance/widget/compare/v2.0.0-beta.4...v2.0.0-beta.5) (2023-04-28) + + +### Features + +* add exodus wallet ([#80](https://github.com/lifinance/widget/issues/80)) ([2d13333](https://github.com/lifinance/widget/commit/2d1333360b7de203966165390cd04ea30f853b7d)) +* add recommended tag tooltip ([6021bb3](https://github.com/lifinance/widget/commit/6021bb38aa17f9bc31a4631221eddd038c132cb8)) + + +### Bug Fixes + +* exchange rate hook is undefined on first render ([6fd0c06](https://github.com/lifinance/widget/commit/6fd0c065642c83d39163b5e8b948ae11d75e746b)) + +## [2.0.0-beta.4](https://github.com/lifinance/widget/compare/v2.0.0-beta.3...v2.0.0-beta.4) (2023-04-27) + + +### Features + +* add tooltip for insurance badge ([9ac2a76](https://github.com/lifinance/widget/commit/9ac2a76cd797fd58307ac55289f89a2ab65fa879)) + + +### Bug Fixes + +* correctly return balances on first call ([0b9b30e](https://github.com/lifinance/widget/commit/0b9b30e46e0a7b38afb56cabf454d5ec0f46d149)) +* hide history icon when HiddenUI.History is provided ([748c6cd](https://github.com/lifinance/widget/commit/748c6cd3e1ced30e159bcfe2caeba895de3dec1c)) +* insurance card should expand when enabled ([d6f47e7](https://github.com/lifinance/widget/commit/d6f47e7ad3e421f41e2c5d3a0be702e1b83c6d20)) +* show fallback token step when present ([8a19cb8](https://github.com/lifinance/widget/commit/8a19cb8bd1b8dcc1f79c05dd13782f5461399330)) +* update powered by look ([cccd168](https://github.com/lifinance/widget/commit/cccd1689e388910bfe957904c3bcd190f032aaaa)) + +## [2.0.0-beta.3](https://github.com/lifinance/widget/compare/v2.0.0-beta.2...v2.0.0-beta.3) (2023-04-21) + + +### Features + +* update insurance card and text ([c623d11](https://github.com/lifinance/widget/commit/c623d11cf82e88e987d56932591da4c2fe3b2cf8)) + + +### Bug Fixes + +* remove svg icons unnecessary attributes ([#75](https://github.com/lifinance/widget/issues/75)) ([ee12534](https://github.com/lifinance/widget/commit/ee125349c8e3131fb0d9a3a5f6b2c166d10e3431)) + +## [2.0.0-beta.2](https://github.com/lifinance/widget/compare/v2.0.0-beta.1...v2.0.0-beta.2) (2023-04-20) + + +### Features + +* rename disableI18n -> disableLanguageDetector ([186d28c](https://github.com/lifinance/widget/commit/186d28c1928601afe64c6e0694a2e5cabc3df447)) + + +### Bug Fixes + +* set correct width ([72f3a6a](https://github.com/lifinance/widget/commit/72f3a6afe2abe2c6507c9cc2c8461fbbac11f661)) + +## [2.0.0-beta.1](https://github.com/lifinance/widget/compare/v2.0.0-beta.0...v2.0.0-beta.1) (2023-04-19) + + +### Features + +* new wallet management ([#69](https://github.com/lifinance/widget/issues/69)) ([626bc68](https://github.com/lifinance/widget/commit/626bc68b9f6c8dcdcf34d08e7e7ba13ef01efd19)) + +## [2.0.0-beta.0](https://github.com/lifinance/widget/compare/v2.0.0-alpha.4...v2.0.0-beta.0) (2023-04-18) + + +### Features + +* add link to insurance coverage ([f8a9df6](https://github.com/lifinance/widget/commit/f8a9df62f3412094ef53a8ce6a285f236917ee05)) + + +### Bug Fixes + +* transaction support id should be swap or bridge source one ([d9c7e14](https://github.com/lifinance/widget/commit/d9c7e14eb0c42ea112ebe807a2dffe3b76cc678e)) + +## [2.0.0-alpha.4](https://github.com/lifinance/widget/compare/v2.0.0-alpha.3...v2.0.0-alpha.4) (2023-04-13) + +## [2.0.0-alpha.3](https://github.com/lifinance/widget/compare/v2.0.0-alpha.2...v2.0.0-alpha.3) (2023-04-13) + +## [2.0.0-alpha.2](https://github.com/lifinance/widget/compare/v2.0.0-alpha.1...v2.0.0-alpha.2) (2023-04-13) + + +### Bug Fixes + +* make config integrator optional ([7b983de](https://github.com/lifinance/widget/commit/7b983de3ed0fe30c77f8b00f9be36d9c9d87c307)) + +## [2.0.0-alpha.1](https://github.com/lifinance/widget/compare/v2.0.0-alpha.0...v2.0.0-alpha.1) (2023-04-12) + + +### Bug Fixes + +* long text overflow ([fdf8153](https://github.com/lifinance/widget/commit/fdf8153a312dc4309eaef4a79f882700298a6321)) +* route not found using MemoryRouter ([e4a2c47](https://github.com/lifinance/widget/commit/e4a2c47f37df8d69333d487b75e955f2ef21fbfa)) +* update step types ([6f547d7](https://github.com/lifinance/widget/commit/6f547d71d0870b5d14778244a185ec2b436bc129)) + +## [2.0.0-alpha.0](https://github.com/lifinance/widget/compare/v1.32.8...v2.0.0-alpha.0) (2023-03-28) + + +### ⚠ BREAKING CHANGES + +* remove deprecations +* make integrator property required + +### Features + +* add auto refuel ([41de404](https://github.com/lifinance/widget/commit/41de404b12e989031364c5c3c92c66618dd253f6)) +* add insurance ([08162a6](https://github.com/lifinance/widget/commit/08162a666e8416e598b0585f68962953d80f33bb)) +* add insurance config option ([9a3f0be](https://github.com/lifinance/widget/commit/9a3f0bee717f44959c798b8edf0feca1aaaeb5a3)) +* add maxPriceImpact config options ([458e6a4](https://github.com/lifinance/widget/commit/458e6a4f1b98795d7c300420d22cb7f78e96b828)) +* make integrator property required ([d9b2a01](https://github.com/lifinance/widget/commit/d9b2a01cb2a72a2c5987d84e611b3136c0c4a1dc)) +* remove deprecations ([a966186](https://github.com/lifinance/widget/commit/a9661868dea3af96b6ac52a63545ba6128468c90)) + + +### Bug Fixes + +* add insurable route id ([79e838e](https://github.com/lifinance/widget/commit/79e838e025b0ba887a0a4c98182bb7435d2e73d7)) +* adjust card title to protocol steps ([670f67f](https://github.com/lifinance/widget/commit/670f67f47a9497a33a819c32619ccee8f85f6e7e)) +* check for ENS name while looking for balances ([ace7070](https://github.com/lifinance/widget/commit/ace7070ff12b8c03393c5a43cf5983affc8d9a06)) +* check for funds sufficiency as soon as it becomes possible ([cd1ef6e](https://github.com/lifinance/widget/commit/cd1ef6eb17987a75e620755dbc71506757b4b770)) +* don't apply auto refuel when swapping to native tokens ([fe85b38](https://github.com/lifinance/widget/commit/fe85b38174b436e20cecfd7fa95bafd8fecd669c)) +* possible duplicate keys ([6d294ed](https://github.com/lifinance/widget/commit/6d294edc9447c54e70943004a5719e8790904354)) +* reduce max price impact to 40% ([4b2a718](https://github.com/lifinance/widget/commit/4b2a71879971497bfdba14de82028ad07b0b70d0)) +* route priority tags now lowercased ([c93ca15](https://github.com/lifinance/widget/commit/c93ca15b3b5b222cdfcf5ec455aafa02fb16b5b8)) +* support input when it starts with a dot ([80857dd](https://github.com/lifinance/widget/commit/80857dd779c4d56caf4242ecdb16d36cdccf0d50)) + +### [1.32.8](https://github.com/lifinance/widget/compare/v1.32.7...v1.32.8) (2023-03-06) + + +### Bug Fixes + +* add actions permissions ([a8dcf18](https://github.com/lifinance/widget/commit/a8dcf18581057aa1fad95735c81d785d695dc4eb)) +* only reset appearance if not set via config ([bc5f164](https://github.com/lifinance/widget/commit/bc5f16471235ffb6afe9bf39839375a1090323a6)) +* TextFitter visibility when using display: none ([05eb5aa](https://github.com/lifinance/widget/commit/05eb5aa1eaf34d704e514130daab1255674b08bf)) +* use iam role in github actions ([d663c7e](https://github.com/lifinance/widget/commit/d663c7e7c1b7e93775b7d11c8b8546ca7a3b3316)) + +### [1.32.7](https://github.com/lifinance/widget/compare/v1.32.6...v1.32.7) (2023-03-03) + +### [1.32.6](https://github.com/lifinance/widget/compare/v1.32.5...v1.32.6) (2023-03-01) + +### [1.32.5](https://github.com/lifinance/widget/compare/v1.32.4...v1.32.5) (2023-03-01) + + +### Bug Fixes + +* provider destructuring doesn't work for WalletConnect ([76647ed](https://github.com/lifinance/widget/commit/76647ede568d2fe8fee2a07b03fc0cb8747ed8c6)) +* update local tokens cache to keep priceUSD in sync ([#61](https://github.com/lifinance/widget/issues/61)) ([d3f4d87](https://github.com/lifinance/widget/commit/d3f4d87133f89c5ff4e3276e09492c2d9c279ec2)) + +### [1.32.4](https://github.com/lifinance/widget/compare/v1.32.3...v1.32.4) (2023-02-24) + +### [1.32.3](https://github.com/lifinance/widget/compare/v1.32.2...v1.32.3) (2023-02-22) + + +### Bug Fixes + +* drawer variant isn't wrapped in i18n provider ([c33f0ce](https://github.com/lifinance/widget/commit/c33f0ce36b0c3e49c9dde230fce09804c4bf788a)) +* fetch balance more often ([7a7d574](https://github.com/lifinance/widget/commit/7a7d57462a801154ed9c3747189922f94129d608)) + +### [1.32.2](https://github.com/lifinance/widget/compare/v1.32.1...v1.32.2) (2023-02-20) + + +### Bug Fixes + +* refine ripple effect usage and colors ([#57](https://github.com/lifinance/widget/issues/57)) ([c9eaa91](https://github.com/lifinance/widget/commit/c9eaa91752fedbd4b818c70c3316d6f1ffe1685d)) + +### [1.32.1](https://github.com/lifinance/widget/compare/v1.32.0...v1.32.1) (2023-02-15) + + +### Bug Fixes + +* add provider for recommended route store ([e31da8f](https://github.com/lifinance/widget/commit/e31da8f7498b4c4174fc79b548e0cd68e3fba40b)) + +## [1.32.0](https://github.com/lifinance/widget/compare/v1.31.1...v1.32.0) (2023-02-15) + + +### Features + +* revamped settings page ([1b87761](https://github.com/lifinance/widget/commit/1b87761cac44cbca3dc69ee6f3a6fb8f887cf7e0)) + +### [1.31.1](https://github.com/lifinance/widget/compare/v1.31.0...v1.31.1) (2023-02-10) + + +### Bug Fixes + +* remove sentry ([c1b2d7e](https://github.com/lifinance/widget/commit/c1b2d7e43f3b9d716597929a525639be65c2bf12)) + +## [1.31.0](https://github.com/lifinance/widget/compare/v1.29.6...v1.31.0) (2023-02-06) + + +### Features + +* add requiredUI config option ([61a7960](https://github.com/lifinance/widget/commit/61a7960b0524d0d96210d4e450028b80f0c58a5d)) +* update wallet menu UI and add view on explorer link ([3eb822f](https://github.com/lifinance/widget/commit/3eb822f76ab5880bdc47f195106064739c02d906)) + + +### Bug Fixes + +* accept comma as valid decimal delimiter ([9af2686](https://github.com/lifinance/widget/commit/9af26864db130c0999b965a34e18b4c1b5fcaeb5)) +* show more decimal places for exchange rate bottom sheet ([88b7f6a](https://github.com/lifinance/widget/commit/88b7f6afac6e6421d134de2b87911be03f96dc24)) + +## [1.30.0](https://github.com/lifinance/widget/compare/v1.29.6...v1.30.0) (2023-02-02) + + +### Features + +* add requiredUI config option ([61a7960](https://github.com/lifinance/widget/commit/61a7960b0524d0d96210d4e450028b80f0c58a5d)) + + +### Bug Fixes + +* show more decimal places for exchange rate bottom sheet ([88b7f6a](https://github.com/lifinance/widget/commit/88b7f6afac6e6421d134de2b87911be03f96dc24)) + +### [1.29.6](https://github.com/lifinance/widget/compare/v1.29.5...v1.29.6) (2023-01-30) + + +### Bug Fixes + +* preserve old routes while the new ones are loading ([13998ad](https://github.com/lifinance/widget/commit/13998ad9efbdf855f9738a1ef97734df6ff114e5)) +* WalletConnect does not connect a second time ([#44](https://github.com/lifinance/widget/issues/44)) ([72b5373](https://github.com/lifinance/widget/commit/72b53739e9255bda82380a567781d35173261463)) + +### [1.29.5](https://github.com/lifinance/widget/compare/v1.29.4...v1.29.5) (2023-01-25) + + +### Bug Fixes + +* adjust token avatar skeleton badge to match with background ([333b3c3](https://github.com/lifinance/widget/commit/333b3c35a77acc2f3d3cef028b76d871d7543ba2)) + +### [1.29.4](https://github.com/lifinance/widget/compare/v1.29.3...v1.29.4) (2023-01-24) + + +### Bug Fixes + +* rename gas start and review buttons ([3285151](https://github.com/lifinance/widget/commit/3285151476300cf81579f9838dba142bccc24bf5)) + +### [1.29.3](https://github.com/lifinance/widget/compare/v1.29.2...v1.29.3) (2023-01-24) + + +### Bug Fixes + +* add id prefix to all ids in case of multiple instances of the widget in a page ([684f6d8](https://github.com/lifinance/widget/commit/684f6d878e99a8e53f27b8c625f614f68c2ee2cc)) + +### [1.29.2](https://github.com/lifinance/widget/compare/v1.29.1...v1.29.2) (2023-01-23) + + +### Bug Fixes + +* remove namePrefix for chain order ([6e42e76](https://github.com/lifinance/widget/commit/6e42e766565c8f332391d8a5563cb554118a82f0)) + +### [1.29.1](https://github.com/lifinance/widget/compare/v1.29.0...v1.29.1) (2023-01-23) + + +### Bug Fixes + +* use main border radius in list items ([09a4a4a](https://github.com/lifinance/widget/commit/09a4a4a7fbfacc0247403b22b69150ede44669e9)) + +## [1.29.0](https://github.com/lifinance/widget/compare/v1.28.4...v1.29.0) (2023-01-23) + + +### Features + +* add StoreProvider and localStorageKeyPrefix config option ([709aa0a](https://github.com/lifinance/widget/commit/709aa0afc7366dee63d82ea6c54d721f72447d62)) + + +### Bug Fixes + +* improve dark theme colors ([7dff268](https://github.com/lifinance/widget/commit/7dff2688625eee0e359dc624a698f33687572a8e)) +* remove settings provider namePrefix ([0503922](https://github.com/lifinance/widget/commit/0503922581f11565dbcf62174e9576639608d8f9)) + +### [1.28.4](https://github.com/lifinance/widget/compare/v1.28.3...v1.28.4) (2023-01-10) + + +### Bug Fixes + +* bump zustand + fix imports ([4914880](https://github.com/lifinance/widget/commit/491488013319121200eab269314e37ba4d6fc836)) + +### [1.28.3](https://github.com/lifinance/widget/compare/v1.28.2...v1.28.3) (2023-01-06) + + +### Bug Fixes + +* bignumber conversion ([a0e6221](https://github.com/lifinance/widget/commit/a0e622195df09cd6056c715f6d23cb3ac7098616)) +* make square icon button possible ([9ce176d](https://github.com/lifinance/widget/commit/9ce176d59aa4073cbded7e06c72538a5fb3582eb)) + +### [1.28.2](https://github.com/lifinance/widget/compare/v1.28.1...v1.28.2) (2023-01-06) + + +### Bug Fixes + +* expanded view background has no z-index ([f5a955f](https://github.com/lifinance/widget/commit/f5a955fe2980bfc8cbaaeace98ce25fdd45010fc)) + +### [1.28.1](https://github.com/lifinance/widget/compare/v1.28.0...v1.28.1) (2023-01-05) + + +### Bug Fixes + +* postbuild script ([f06a87a](https://github.com/lifinance/widget/commit/f06a87ab7b7ebb31cb57708e7607a63008c07184)) +* postbuild script ([f002233](https://github.com/lifinance/widget/commit/f0022330f0e92bd9941bc5a4e9d556df53266db3)) + +## [1.28.0](https://github.com/lifinance/widget/compare/v1.27.2...v1.28.0) (2023-01-05) + + +### Features + +* add interactive tools ([acc3aa9](https://github.com/lifinance/widget/commit/acc3aa96e48850d50e179e2b3a7c577b8781af3f)) +* new variant draft ([#40](https://github.com/lifinance/widget/issues/40)) ([5d0f36a](https://github.com/lifinance/widget/commit/5d0f36a479101badccfe581f7b0d9fe232072345)) +* use yarn v3 and fix dependencies ([b09bc34](https://github.com/lifinance/widget/commit/b09bc3499f1d03a63a7547f2933de884ed0e316d)) + + +### Bug Fixes + +* long token names ([596b212](https://github.com/lifinance/widget/commit/596b21203541dde4909d271d02ab333df94fbe03)) +* remove sdks ([b0f7018](https://github.com/lifinance/widget/commit/b0f701802a8a418082164c0cab24ce23f3f65aff)) + +### [1.27.2](https://github.com/lifinance/widget/compare/v1.27.1...v1.27.2) (2022-12-15) + + +### Bug Fixes + +* allow adding crossOrigin tag to avatar props ([d7aff7e](https://github.com/lifinance/widget/commit/d7aff7ea2cd45174a3537e8752171815775f8f01)) + +### [1.27.1](https://github.com/lifinance/widget/compare/v1.27.0...v1.27.1) (2022-12-13) + +## [1.27.0](https://github.com/lifinance/widget/compare/v1.26.5...v1.27.0) (2022-12-13) + + +### Features + +* add hiddenUI and extend disabledUI options ([6aea124](https://github.com/lifinance/widget/commit/6aea124d967cd47fd671b0d475454cd8443928b0)) +* add more palette customization options ([2794190](https://github.com/lifinance/widget/commit/27941909d6bc8c10375683258168f157862516a4)) +* move failed swaps to hisory after one day ([63bf2d2](https://github.com/lifinance/widget/commit/63bf2d2ba657aa5c7383ead609827f6f1fbfe1cb)) + + +### Bug Fixes + +* menu should use main border radius ([2a78952](https://github.com/lifinance/widget/commit/2a78952417e54c573f51be848ed6abe05274806e)) +* remove box shadow from swap input ([a93b64b](https://github.com/lifinance/widget/commit/a93b64be090b6268585dfce5c153baa9bb8417e1)) +* unblock Review swap button if other routes are possible for execution ([85bb861](https://github.com/lifinance/widget/commit/85bb861c14fa56a8db4e8066aab8443b418f704c)) + +### [1.26.5](https://github.com/lifinance/widget/compare/v1.26.4...v1.26.5) (2022-12-06) + + +### Bug Fixes + +* chain selection resize ([beae60c](https://github.com/lifinance/widget/commit/beae60cf9a9efa4bd8310d8059dd7d7114ded350)) + +### [1.26.4](https://github.com/lifinance/widget/compare/v1.26.3...v1.26.4) (2022-12-01) + + +### Bug Fixes + +* add referrer as top level option ([3a5ac47](https://github.com/lifinance/widget/commit/3a5ac47b620304a07fa1b8aa61a386b259b20ff4)) +* remove blankwallet ([d62c35d](https://github.com/lifinance/widget/commit/d62c35d70af9869b84c66d25ab2728deb5bf57ca)) + +### [1.26.3](https://github.com/lifinance/widget/compare/v1.26.2...v1.26.3) (2022-11-29) + +### [1.26.2](https://github.com/lifinance/widget/compare/v1.26.1...v1.26.2) (2022-11-28) + + +### Bug Fixes + +* bottom sheet closing ([f34b0b8](https://github.com/lifinance/widget/commit/f34b0b8058fc4e6771b70027560745946dddd2cd)) +* clean the cache of available routes after starting the execution ([f60a0dd](https://github.com/lifinance/widget/commit/f60a0dd7359679d894682179808207035c5d9f6a)) + +### [1.26.1](https://github.com/lifinance/widget/compare/v1.26.0...v1.26.1) (2022-11-24) + + +### Bug Fixes + +* cancelation on backdrop click ([7d648ad](https://github.com/lifinance/widget/commit/7d648ad58e7689428bf52e3e3a85565bb4ea1939)) + +## [1.26.0](https://github.com/lifinance/widget/compare/v1.25.1...v1.26.0) (2022-11-24) + + +### Features + +* add acceptExchangeRateUpdateHook and improve substatus handling ([2a70a88](https://github.com/lifinance/widget/commit/2a70a88a7b3e159563a628e722ef33ea4d7fc7a6)) +* add destination wallet address to swap details ([4214577](https://github.com/lifinance/widget/commit/42145772b46f3cf9e02faa6bf4a67b55bd97f9e0)) +* add estimated and paid gas fees to swap details page ([be4f613](https://github.com/lifinance/widget/commit/be4f6133b87cdcda31cbddee7c12e08d5bcaef3a)) + + +### Bug Fixes + +* add refresh time for tools and chains ([0a2e4c0](https://github.com/lifinance/widget/commit/0a2e4c0a31ec922e99c91113f6bea7166ae4e154)) +* add retry exception for not found routes ([afe2415](https://github.com/lifinance/widget/commit/afe2415b0d888e388e5c45d06de84b593a44fd92)) +* adjust connect button color ([68b45a9](https://github.com/lifinance/widget/commit/68b45a9440e05522c24c43e9db06b610d1d8f471)) +* change sentry sample rate ([f960704](https://github.com/lifinance/widget/commit/f9607043fac28e171e8543e4e393ebf3e86b20dd)) +* correct step title ([5024614](https://github.com/lifinance/widget/commit/5024614f5a063609bb77bb8e2e995f6dbe93c187)) +* make main page sticky ([7466c8f](https://github.com/lifinance/widget/commit/7466c8f678a3f9195f32a9303b18eceddccc0d36)) +* make support id a source tx hash ([d837b47](https://github.com/lifinance/widget/commit/d837b47df988c00ace068103c3755fc1a560e244)) +* not found routes padding ([57d54b2](https://github.com/lifinance/widget/commit/57d54b2664cb3976ab8ab7664dc7d11e6f8b467e)) +* reduce refresh time for token balance ([e5bd5af](https://github.com/lifinance/widget/commit/e5bd5afb98a4308f674ced9e7e35be1663a94f71)) + +### [1.25.1](https://github.com/lifinance/widget/compare/v1.25.0...v1.25.1) (2022-11-17) + + +### Bug Fixes + +* add fee option to top level config ([4ce4d7d](https://github.com/lifinance/widget/commit/4ce4d7d30dc851e52fc3a7001d9b53e4d874affb)) + +## [1.25.0](https://github.com/lifinance/widget/compare/v1.24.0...v1.25.0) (2022-11-16) + + +### Features + +* add swap partially successful message ([9c3be1e](https://github.com/lifinance/widget/commit/9c3be1e9e2dba70bbeb9f530e3a520eb48ee11a7)) + + +### Bug Fixes + +* ability to set default slippage and route priority ([594c427](https://github.com/lifinance/widget/commit/594c427c756c8a3004be25be629450ea352a00e4)) +* eagerConnect ([#36](https://github.com/lifinance/widget/issues/36)) ([b2b7dde](https://github.com/lifinance/widget/commit/b2b7dde1c971f67971d9eb0afdc4c65ea3e80a76)) +* network error when switching chains ([#37](https://github.com/lifinance/widget/issues/37)) ([cb2b691](https://github.com/lifinance/widget/commit/cb2b691ef13b23d59efef6c3b43ec685e192b6e5)) +* update chain value if config did not provide it ([8394cd9](https://github.com/lifinance/widget/commit/8394cd9bf23ec48943db9f9e697a24ba794dbd97)) +* updating widget config options in runtime ([75eb492](https://github.com/lifinance/widget/commit/75eb4928a62076d495c8686708269fae562cae42)) + +## [1.24.0](https://github.com/lifinance/widget/compare/v1.23.1...v1.24.0) (2022-11-11) + + +### Features + +* allow for alternative wallet injections ([#34](https://github.com/lifinance/widget/issues/34)) ([f7790b4](https://github.com/lifinance/widget/commit/f7790b4ca6eb32775aa0446284fa3da07197004f)) + + +### Bug Fixes + +* bridges types ([ac21920](https://github.com/lifinance/widget/commit/ac219205d4823f286aa28988b096939ab8ff9bca)) +* use toToken from execution if present ([3afa3e5](https://github.com/lifinance/widget/commit/3afa3e5db68ca66f52259c1945ebae00f62763be)) + +### [1.23.1](https://github.com/lifinance/widget/compare/v1.23.0...v1.23.1) (2022-11-09) + + +### Bug Fixes + +* adjust button text for refuel mode ([e4ce0ef](https://github.com/lifinance/widget/commit/e4ce0ef88b8c5926a2f875ac9e8686e2344484f9)) +* adjust margin in refuel mode ([7a47bfc](https://github.com/lifinance/widget/commit/7a47bfc041abe30ad8150c0d8951f5b22f0ff555)) +* re-export wallet icons with names ([1bedc9e](https://github.com/lifinance/widget/commit/1bedc9ee6cfd2ed2673f18a2cd16f280a3eca2b5)) +* reduce initialization requests in strict mode ([1892674](https://github.com/lifinance/widget/commit/189267431a24dbe375b52d8a2f8aec9523a245de)) +* wallets import ([6b20491](https://github.com/lifinance/widget/commit/6b20491131222de27df45bed5d7898fd7ba71b0f)) + +## [1.23.0](https://github.com/lifinance/widget/compare/v1.22.1...v1.23.0) (2022-11-08) + + +### Features + +* add token avatar skeletons ([c118e8e](https://github.com/lifinance/widget/commit/c118e8ef22b581abdef6b08664bbdbb5bbcc4250)) +* show token price in route cards ([e1380f8](https://github.com/lifinance/widget/commit/e1380f8842600c88d5f3181ecc631d7d568ff8fe)) + + +### Bug Fixes + +* disable background refetch ([b96ec48](https://github.com/lifinance/widget/commit/b96ec482fa46f029f6a593711958383ba76d7e9c)) +* use execution token if present ([4e71609](https://github.com/lifinance/widget/commit/4e71609f8e353b19e2e918313e57aec897c6654e)) + +### [1.22.1](https://github.com/lifinance/widget/compare/v1.22.0...v1.22.1) (2022-11-07) + + +### Bug Fixes + +* correctly fit swap input text ([9288b58](https://github.com/lifinance/widget/commit/9288b58128bd442f6f42da88264c389cff9c9884)) +* fix circular component reference issue ([e3f3209](https://github.com/lifinance/widget/commit/e3f3209b9c7a23c60980edee48a86602cfeb987f)) + +## [1.22.0](https://github.com/lifinance/widget/compare/v1.21.0...v1.22.0) (2022-10-27) + + +### Features + +* add disabledUI config option ([7d6f95b](https://github.com/lifinance/widget/commit/7d6f95bde908046f267c226eb40d5d5ed7aef8cc)) +* add i18n management ([6ec80af](https://github.com/lifinance/widget/commit/6ec80af087c8220d7c32090873c6f872e5e5fe58)) +* add useRecommendedRoute config option ([8c5ed74](https://github.com/lifinance/widget/commit/8c5ed744280cec4e95e7c6a20053c11f72c5b3b0)) +* new wallet header menu ([0caf75f](https://github.com/lifinance/widget/commit/0caf75f0b39f7164756eb6b49dd56f27af7854f3)) +* walletconnect ([#24](https://github.com/lifinance/widget/issues/24)) ([b3e7bcf](https://github.com/lifinance/widget/commit/b3e7bcf845f58049820651f76d4d0f53aa1d88a2)) + + +### Bug Fixes + +* allow using symbols in url builder ([f84b340](https://github.com/lifinance/widget/commit/f84b3408e5dd159a0c382debd683ebe3c6e1ca64)) +* correct execution time ceiling ([c6cecbd](https://github.com/lifinance/widget/commit/c6cecbde0d17f1721d77cfeda955bb09b8c75f71)) +* format numbers ([fe63cdd](https://github.com/lifinance/widget/commit/fe63cdd8181ff680a82b0d8bec8a26d26b885347)) + +## [1.21.0](https://github.com/lifinance/widget/compare/v1.20.3...v1.21.0) (2022-10-13) + + +### Features + +* add drawer variant to main config ([5407a34](https://github.com/lifinance/widget/commit/5407a34fd6109734ed0a6a27f2cc5445df83d6d7)) + + +### Bug Fixes + +* isolate i18next instance ([#14](https://github.com/lifinance/widget/issues/14)) ([e2ff741](https://github.com/lifinance/widget/commit/e2ff741d5e008629bf0443e639b97d611b11ad6e)) + +### [1.20.3](https://github.com/lifinance/widget/compare/v1.20.2...v1.20.3) (2022-10-12) + + +### Bug Fixes + +* allow integrator option override ([170d604](https://github.com/lifinance/widget/commit/170d6047f9c229cef40f85826079162be92cc2af)) + +### [1.20.2](https://github.com/lifinance/widget/compare/v1.20.1...v1.20.2) (2022-10-12) + + +### Bug Fixes + +* load only supported chains tokens ([882beb7](https://github.com/lifinance/widget/commit/882beb7e86ffcbfcf61252c51461a81c909c98d9)) + +### [1.20.1](https://github.com/lifinance/widget/compare/v1.20.0...v1.20.1) (2022-10-10) + + +### Bug Fixes + +* value loss calculation ([02ee277](https://github.com/lifinance/widget/commit/02ee27762fd30f7c6254d90883ef13b3e1365295)) + +## [1.20.0](https://github.com/lifinance/widget/compare/v1.19.0...v1.20.0) (2022-10-10) + + +### Features + +* add high value loss consent bottom sheet ([f588b43](https://github.com/lifinance/widget/commit/f588b4397083322f012d4b38a94b4a04c33f544c)) + + +### Bug Fixes + +* bottom sheet scroll ([0c2aac3](https://github.com/lifinance/widget/commit/0c2aac3816710682e9085d30a7891eab9cfc3508)) + +## [1.19.0](https://github.com/lifinance/widget/compare/v1.18.9...v1.19.0) (2022-10-10) + + +### Features + +* add delete active swaps button ([3365ed8](https://github.com/lifinance/widget/commit/3365ed89f9253bb35a047ba9a09d47fb4096b0f1)) +* add tooltips to cards and header ([5b88a93](https://github.com/lifinance/widget/commit/5b88a93dd5e17b7f0bc58e945267b2f9107866cf)) +* add URL search params builder ([9e9c396](https://github.com/lifinance/widget/commit/9e9c396207cb24a969744ab4e95d9b586b7fdb71)) + + +### Bug Fixes + +* dark theme card and button adjustments ([06905c4](https://github.com/lifinance/widget/commit/06905c4e75d4f0e2dbb93997e7112d06cb89cb5b)) +* disable expandable variant on small devices ([d03c4c8](https://github.com/lifinance/widget/commit/d03c4c8dc46fb2c233ef833b7a8bc962f0cedd0b)) +* don't keep bottom sheet mounted ([861bec5](https://github.com/lifinance/widget/commit/861bec598b37a5f00303860a1c270ce908c6352d)) +* make action buttons variant contained ([74eb1c6](https://github.com/lifinance/widget/commit/74eb1c62fa79c54c57ef78ef31c22d8fbcb99f46)) +* preserve history state ([8662e37](https://github.com/lifinance/widget/commit/8662e371e01bb608feb6febe38e5309021fd1a9c)) +* prevent using fromToken/toToken params if chain is not selected ([2e21b9e](https://github.com/lifinance/widget/commit/2e21b9ed315cb50d0789d2f9959332e449d8272d)) +* set only right border width ([6f09075](https://github.com/lifinance/widget/commit/6f090752917f5db9093079f774e41f9ccb96349d)) +* show time and gas cost default values ([7d9c220](https://github.com/lifinance/widget/commit/7d9c22015aa53411616e6f97e9d61d1a4b5cd5a6)) + +### [1.18.9](https://github.com/lifinance/widget/compare/v1.18.8...v1.18.9) (2022-09-30) + + +### Bug Fixes + +* add ScopedCssBaseline to expandable view ([a81c216](https://github.com/lifinance/widget/commit/a81c21672813c61f63cb5917c209369fe680d142)) +* enable color scheme for container ([d2c2416](https://github.com/lifinance/widget/commit/d2c241675506e1dec57e64855e997d8daaefa15a)) +* improve token layout for longer bridge names ([36c341c](https://github.com/lifinance/widget/commit/36c341c2e10700017d6ce6b3dea785c4b32a82c4)) +* provide default values if execution time or gas cost are too small ([6bb908b](https://github.com/lifinance/widget/commit/6bb908b35d7a245dfd31879222bbd49654ea5dd6)) +* query for tokens if not present in local cache ([d809d8e](https://github.com/lifinance/widget/commit/d809d8e8fdf154ab8b74c5bba30099c019a6d907)) +* reduce default slippage ([292c2db](https://github.com/lifinance/widget/commit/292c2dbfabf71a5e1cb492c56f0cd2e8ce83746a)) +* remove old routes history object after merge ([487c990](https://github.com/lifinance/widget/commit/487c9909ff9d6fe7ed4d3754779de62217c0ee1f)) +* use i18n for execution time ([7c9a188](https://github.com/lifinance/widget/commit/7c9a18806b1fbea6cb5f94447af184c6914b5d0a)) + +### [1.18.8](https://github.com/lifinance/widget/compare/v1.18.7...v1.18.8) (2022-09-28) + + +### Bug Fixes + +* debouncing should work from the first value ([e288dcf](https://github.com/lifinance/widget/commit/e288dcfc556689941e3e92b8aaf9531037530d4f)) +* query tokens only if no local ones are found ([25225fd](https://github.com/lifinance/widget/commit/25225fd5425ed3aff5bd70232e488348935bcc48)) + +### [1.18.7](https://github.com/lifinance/widget/compare/v1.18.6...v1.18.7) (2022-09-28) + + +### Bug Fixes + +* process type may not exists ([eb44846](https://github.com/lifinance/widget/commit/eb4484602ebda614315f1610bdf64964386a0316)) + +### [1.18.6](https://github.com/lifinance/widget/compare/v1.18.5...v1.18.6) (2022-09-28) + + +### Bug Fixes + +* drawer layout height ([fe53895](https://github.com/lifinance/widget/commit/fe5389588eadb48c882c01ae08b7287babaa9553)) + +### [1.18.5](https://github.com/lifinance/widget/compare/v1.18.4...v1.18.5) (2022-09-28) + + +### Bug Fixes + +* set box-sizing to content-box ([2e1319d](https://github.com/lifinance/widget/commit/2e1319ddbe7b9aa8a7b12b8184e2fb950cdb6812)) + +### [1.18.4](https://github.com/lifinance/widget/compare/v1.18.3...v1.18.4) (2022-09-28) + + +### Bug Fixes + +* remove box-sizing for container ([c56ba98](https://github.com/lifinance/widget/commit/c56ba987ad67ae03f3e8c6a5a1802391ccb8ac2d)) + +### [1.18.3](https://github.com/lifinance/widget/compare/v1.18.2...v1.18.3) (2022-09-27) + + +### Bug Fixes + +* add retry to token balance checking ([50e2915](https://github.com/lifinance/widget/commit/50e29157648b063277285c6c74aff250ac8fb408)) +* add tooltip to chain buttons ([0fd9626](https://github.com/lifinance/widget/commit/0fd9626b58303943e67b98fbc8fc70f74c91a16b)) +* adjust wallet address shortening ([d12d4a7](https://github.com/lifinance/widget/commit/d12d4a713829814033e5c3728ae1ee573789f2fb)) +* auto focus and clean send wallet field ([a983ca4](https://github.com/lifinance/widget/commit/a983ca4c7dcc7849690f1c0b39b63323bb945157)) +* improve funds received message to include wallet address ([5829e64](https://github.com/lifinance/widget/commit/5829e64a67a2b2f663173d96636e5973633f7b9c)) + +### [1.18.2](https://github.com/lifinance/widget/compare/v1.18.1...v1.18.2) (2022-09-23) + + +### Bug Fixes + +* always expand cards if there are one or two ([5c0b3a3](https://github.com/lifinance/widget/commit/5c0b3a3bfd355572a8c26dbb698e2a82605185da)) +* disable route cards if form is not valid ([7165164](https://github.com/lifinance/widget/commit/716516427548148c89e10ba625f63fa2f66efdda)) + +### [1.18.1](https://github.com/lifinance/widget/compare/v1.18.0...v1.18.1) (2022-09-23) + + +### Bug Fixes + +* remove show all button background ([9990fcc](https://github.com/lifinance/widget/commit/9990fcc12a1ec75ee1149e83bcef4009d377dfa0)) + +## [1.18.0](https://github.com/lifinance/widget/compare/v1.17.2...v1.18.0) (2022-09-23) + + +### Features + +* add new route selection UI ([beb780c](https://github.com/lifinance/widget/commit/beb780c5e6113a0d079d348e6f9b8e566c15f153)) + + +### Bug Fixes + +* hide powered by section on token page ([41cd261](https://github.com/lifinance/widget/commit/41cd2619b3f756828834668248b07973af3103c0)) +* improve path parsing ([c9e1a28](https://github.com/lifinance/widget/commit/c9e1a28fa6936a87c870347c08bade43ce509ae2)) +* show delete only if history exist ([dd34a1d](https://github.com/lifinance/widget/commit/dd34a1d9f8ee947bfcc509974d448fa46d5cffb8)) +* temp fix for MemoryRouter ([555a7d2](https://github.com/lifinance/widget/commit/555a7d24fd4e8345dc091ea631a0f8461f37f393)) + +### [1.17.2](https://github.com/lifinance/widget/compare/v1.17.1...v1.17.2) (2022-09-14) + + +### Bug Fixes + +* navigate to home page if no routes are found on a page ([4f22c8c](https://github.com/lifinance/widget/commit/4f22c8c65c695c15f61dcce8d1c727c606f551bb)) +* only check route data for gas sufficiency ([d2b08be](https://github.com/lifinance/widget/commit/d2b08be94b99841fde302cc2908d57ef4fda8895)) + +### [1.17.1](https://github.com/lifinance/widget/compare/v1.17.0...v1.17.1) (2022-09-13) + + +### Bug Fixes + +* add chain check to find correct token balance ([cff5de2](https://github.com/lifinance/widget/commit/cff5de2aa931e366a6ea29a8f5f37cfa773f6106)) +* reset insufficient gas check ([4afe42a](https://github.com/lifinance/widget/commit/4afe42ac63780611379894b7588129b1bbcc3609)) + +## [1.17.0](https://github.com/lifinance/widget/compare/v1.16.1...v1.17.0) (2022-09-12) + + +### Features + +* add bridges, exchanges, tokens and chains config options ([457ffb7](https://github.com/lifinance/widget/commit/457ffb7a77c06e0cf22c3e57321529963507e111)) + +### [1.16.1](https://github.com/lifinance/widget/compare/v1.16.0...v1.16.1) (2022-09-06) + + +### Bug Fixes + +* move sdk initialization to provider ([882e02a](https://github.com/lifinance/widget/commit/882e02ab72e924e6620f4fefe3fbb3a6b7ce3e1c)) + +## [1.16.0](https://github.com/lifinance/widget/compare/v1.15.1...v1.16.0) (2022-09-06) + + +### Features + +* add active swaps page and live updates ([4d470b5](https://github.com/lifinance/widget/commit/4d470b52be482c0b75c9c2e88bc1104dba865890)) +* add checkboxes to bridges and exchanges selection ([88a4e5d](https://github.com/lifinance/widget/commit/88a4e5d2707d6f9f24262c52f37134d1459bb0ac)) +* add new chain selection view ([3c4d3fe](https://github.com/lifinance/widget/commit/3c4d3fe0030cbc5ba5bb7d644adbfe6c8c26b0c2)) +* add sdk configuration option ([74aaead](https://github.com/lifinance/widget/commit/74aaead1f6648c79d48e0e300b842867751e6543)) +* add swap completed and failed events ([69ff4bc](https://github.com/lifinance/widget/commit/69ff4bc4994b8de7777403e444e3938c2fa85b0e)) +* add widget events ([7c0857e](https://github.com/lifinance/widget/commit/7c0857e3ee3505f89cdc575706c0b7ef5f9ac2fe)) +* sort executing routes ([f9fecac](https://github.com/lifinance/widget/commit/f9fecac7cb3551a1f60d77446cebb264269a340d)) + + +### Bug Fixes + +* better handle chain switch rejection ([48d34ce](https://github.com/lifinance/widget/commit/48d34ce786abf8e324de1b6ce8981303cd55bd5b)) +* correctly disable button if form is not valid ([2a536d9](https://github.com/lifinance/widget/commit/2a536d9b6cfada26c7ac1d95b9f103bef53b84ab)) +* filter tools we no longer have ([edc5fb8](https://github.com/lifinance/widget/commit/edc5fb890875ce63a5f72d5c1eadeb7f226ad283)) +* set fromAmount to 0 after starting the swap ([9493fed](https://github.com/lifinance/widget/commit/9493fed8a05523e722e5c6cee009e45a0c8211d3)) + +### [1.15.1](https://github.com/lifinance/widget/compare/v1.15.0...v1.15.1) (2022-08-25) + +## [1.15.0](https://github.com/lifinance/widget/compare/v1.14.1...v1.15.0) (2022-08-24) + + +### Features + +* add send to wallet field ([9f23752](https://github.com/lifinance/widget/commit/9f23752a2879b24ad188e814a31ba7d9c338c4cc)) + + +### Bug Fixes + +* better handle go back navigation ([c0840a4](https://github.com/lifinance/widget/commit/c0840a47a77e6f403b1e753663824ccacad6cb26)) +* check if value compatible with Big.js ([4617954](https://github.com/lifinance/widget/commit/46179545b71d6c471156dc4b1574a80e36a9a299)) + +### [1.14.1](https://github.com/lifinance/widget/compare/v1.14.0...v1.14.1) (2022-08-22) + + +### Bug Fixes + +* increase token list overscan ([440aabd](https://github.com/lifinance/widget/commit/440aabd929a8c1117502b4c9b7565a2714f657fd)) + +## [1.14.0](https://github.com/lifinance/widget/compare/v1.13.7...v1.14.0) (2022-08-22) + + +### Features + +* check for new package versions ([573f639](https://github.com/lifinance/widget/commit/573f63995013a6400ac8d356b931e4c4bbdd210e)) + +### [1.13.7](https://github.com/lifinance/widget/compare/v1.13.6...v1.13.7) (2022-08-22) + + +### Bug Fixes + +* contrast text color ([4d090e9](https://github.com/lifinance/widget/commit/4d090e98fcac4f3cdfb148df932e5b2e122671c5)) + +### [1.13.6](https://github.com/lifinance/widget/compare/v1.13.5...v1.13.6) (2022-08-19) + +### [1.13.5](https://github.com/lifinance/widget/compare/v1.13.4...v1.13.5) (2022-08-19) + +### [1.13.4](https://github.com/lifinance/widget/compare/v1.13.3...v1.13.4) (2022-08-19) + +### [1.13.3](https://github.com/lifinance/widget/compare/v1.13.2...v1.13.3) (2022-08-19) + +### [1.13.2](https://github.com/lifinance/widget/compare/v1.13.1...v1.13.2) (2022-08-17) + + +### Bug Fixes + +* ignore getAddress error ([df64eba](https://github.com/lifinance/widget/commit/df64ebad065c94cee52350f87030604858181446)) +* nextjs icon import ([0b023ce](https://github.com/lifinance/widget/commit/0b023ced48a592c30f53f98379dce7db56ddb5fb)) + +### [1.13.1](https://github.com/lifinance/widget/compare/v1.13.0...v1.13.1) (2022-08-11) + + +### Bug Fixes + +* icons import ([43ff424](https://github.com/lifinance/widget/commit/43ff4245cfab208e3ddfcc9b0597a91d0fa795f9)) + +## [1.13.0](https://github.com/lifinance/widget/compare/v1.12.1...v1.13.0) (2022-08-11) + + +### Features + +* add advanced token search ([4e4068a](https://github.com/lifinance/widget/commit/4e4068a6455dd6a0a770724567df7dd9d06e57ee)) +* add featured tokens ([a941359](https://github.com/lifinance/widget/commit/a941359055d733e48863e11c27ca38579dedc483)) +* parse config from search params ([f01f333](https://github.com/lifinance/widget/commit/f01f3338445b9964fb1b2f57605a94156ee1b63d)) +* set wallet chain as default if config option is not provided ([d04285d](https://github.com/lifinance/widget/commit/d04285dbf87eed3f9d72d0b6e6a34144b7dd323e)) + +### [1.12.1](https://github.com/lifinance/widget/compare/v1.12.0...v1.12.1) (2022-08-06) + + +### Bug Fixes + +* fromTokenAmount prevents showing routes on initial load ([ffcd4fd](https://github.com/lifinance/widget/commit/ffcd4fd83c6399ca605d1e89703d827e56349858)) +* gas sufficiency message appears after reloading while executing the route ([e281787](https://github.com/lifinance/widget/commit/e2817875f48efb3e1d896dc2e92c81c15603a7c6)) +* remove resuming route after switching chain ([7e3be5c](https://github.com/lifinance/widget/commit/7e3be5c02d7a4b55660e0ae7d9f00659dbbf7fc6)) +* switch chain only if route exists ([cf3c7d6](https://github.com/lifinance/widget/commit/cf3c7d6c763ab8f9de89339e6c330bb458e5f4bc)) +* sync drawer animation with button ([858c3b5](https://github.com/lifinance/widget/commit/858c3b58979d92d34016d6f5fb3425d40e4205f0)) +* underlying network changed error ([fa1ebee](https://github.com/lifinance/widget/commit/fa1ebeed7617bd6025f3a6213192aad1e559c25b)) +* wait for balances to load before showing warning ([58ae002](https://github.com/lifinance/widget/commit/58ae00274be9d1879cf479e038ab3c5c9d99c813)) + +## [1.12.0](https://github.com/lifinance/widget/compare/v1.11.4...v1.12.0) (2022-07-28) + + +### Features + +* add delete swap history button ([91f6642](https://github.com/lifinance/widget/commit/91f6642d43c5174b693e5c58b8a11a1404ddf7ab)) + +### [1.11.4](https://github.com/lifinance/widget/compare/v1.11.3...v1.11.4) (2022-07-27) + + +### Bug Fixes + +* add missing translations ([8fc5cbe](https://github.com/lifinance/widget/commit/8fc5cbe3748450e250ddd23ffe34e881f8f1f9d6)) +* show skeletons while loading after not found routes state ([3960544](https://github.com/lifinance/widget/commit/3960544bb7a9daeda038388bf37f94361c2c302f)) + +### [1.11.3](https://github.com/lifinance/widget/compare/v1.11.2...v1.11.3) (2022-07-27) + + +### Bug Fixes + +* add hover state for disabled button ([917560c](https://github.com/lifinance/widget/commit/917560c64b17856a83fc811401821b933425986c)) +* add missing currentRoute ([ac9df1e](https://github.com/lifinance/widget/commit/ac9df1e08d70e64da0055068856ee2dc6643dd6c)) + +### [1.11.2](https://github.com/lifinance/widget/compare/v1.11.1...v1.11.2) (2022-07-27) + + +### Bug Fixes + +* shape and color theme inconsistency ([2701476](https://github.com/lifinance/widget/commit/2701476eb1e6610366d1e748f3f16c170f465c0b)) + +### [1.11.1](https://github.com/lifinance/widget/compare/v1.11.0...v1.11.1) (2022-07-27) + + +### Bug Fixes + +* gas message is not shown in some cases ([52fcfaf](https://github.com/lifinance/widget/commit/52fcfaf541b619b7af51b7593347e8a83577f99c)) +* header action is not shown in some cases ([d5840e8](https://github.com/lifinance/widget/commit/d5840e8259a1fb0cf936e62b22c86cf8343fb797)) +* missing routes ([c8ee71d](https://github.com/lifinance/widget/commit/c8ee71d6c6d6768028a0c69bc23704827fb3f90d)) + +## [1.11.0](https://github.com/lifinance/widget/compare/v1.10.4...v1.11.0) (2022-07-26) + + +### Features + +* add chain icons to token avatars ([5cb5343](https://github.com/lifinance/widget/commit/5cb534348e6c3679c96e0a61487d189ca874fa0b)) +* add swap history ([00f6fd7](https://github.com/lifinance/widget/commit/00f6fd78303a686eb8afa5e148333f7f3d094984)) +* add tools icons to swap details ([5b652d7](https://github.com/lifinance/widget/commit/5b652d719348a47df0dfe2279cb4ede688f8f3b4)) +* connect executing routes to wallet address ([37a736b](https://github.com/lifinance/widget/commit/37a736b39a665f50ea83a980f5edae388568360c)) + + +### Bug Fixes + +* add keys ([e381f06](https://github.com/lifinance/widget/commit/e381f06d0ecbb1e30e9b1bb8fc52eca6ff904f48)) +* disable when no routes found ([9ee7c3a](https://github.com/lifinance/widget/commit/9ee7c3a471d7dba003a4bf40f1ddb18746076fe1)) +* improve gas sufficiency handling ([164501c](https://github.com/lifinance/widget/commit/164501c600454f4bdd499dc02fb6655475ef9127)) +* lower font in headers ([66fc7d9](https://github.com/lifinance/widget/commit/66fc7d9bd7ca1b9a7d118c138b239843e974bb3f)) +* make formattedTools persistent ([8fde026](https://github.com/lifinance/widget/commit/8fde026f07bddf7cecf9941592258a3f1a726884)) +* make icons outlined ([91495a9](https://github.com/lifinance/widget/commit/91495a93102ffc748d3829a894ba8f617d3168c1)) +* minor layout issues ([adad66a](https://github.com/lifinance/widget/commit/adad66aa601734a9e46969bacfbe0ba736900254)) +* remove attemptEagerConnect ([61506cf](https://github.com/lifinance/widget/commit/61506cf1ae93d93e50f6f0a765cf105e34078d84)) +* remove border if no routes found ([99d3355](https://github.com/lifinance/widget/commit/99d33551dde50fd307dac527f4f15b6f8555ece9)) +* reverse chain and token if only one selected ([43462cd](https://github.com/lifinance/widget/commit/43462cda58a5ff51c38cd502d59107f7413157bf)) +* show more than one route on the main page ([bd7c8dd](https://github.com/lifinance/widget/commit/bd7c8dd1fd97cc71824e665f4ef26b1c1e48d5f7)) +* show swap routes progress during initial loading ([911a5c5](https://github.com/lifinance/widget/commit/911a5c5432dd6cd3336b2d36fd41c00d310403dd)) +* show tool names in settings ([297fa96](https://github.com/lifinance/widget/commit/297fa9691d44334603ec8e9f18b37a6665c191b1)) +* swap button wording ([66879a6](https://github.com/lifinance/widget/commit/66879a6ca3e06da7dd92bdc33ec97fc8e1989014)) +* title ([fc21139](https://github.com/lifinance/widget/commit/fc2113962b9a8830d925698e0c7fc2289feb7534)) + +### [1.10.4](https://github.com/lifinance/widget/compare/v1.10.3...v1.10.4) (2022-07-18) + + +### Bug Fixes + +* networkChanged is deprecated ([d901074](https://github.com/lifinance/widget/commit/d9010748196d74669c67b151f679951a7db9de2d)) +* show correct final toAmount ([4a64558](https://github.com/lifinance/widget/commit/4a645580f42fc9841676aa2a68c2d7f2a49f6116)) +* show warning only in production build ([4e34b3b](https://github.com/lifinance/widget/commit/4e34b3b715ae6e2470c2f2d9c2a2fbc977f26566)) + +### [1.10.3](https://github.com/lifinance/widget/compare/v1.10.2...v1.10.3) (2022-07-18) + + +### Bug Fixes + +* disable sentry if widget is not mounted ([cccb78d](https://github.com/lifinance/widget/commit/cccb78dce42d95cdc2c58bf249418d4087cdbcee)) + +### [1.10.2](https://github.com/lifinance/widget/compare/v1.10.1...v1.10.2) (2022-07-18) + + +### Bug Fixes + +* don't show routes with 0 fromAmount ([e2a4473](https://github.com/lifinance/widget/commit/e2a44731d454ee4be1475583b47478808c61f00e)) +* insufficient gas message ([0b24868](https://github.com/lifinance/widget/commit/0b24868a8110f313b5e2d09014ada80846c6aafd)) +* NaN when no gas cost is provided ([2adea9a](https://github.com/lifinance/widget/commit/2adea9a80833a220e0227119c8a41b988cf88ae4)) +* too many re-renders ([c68c558](https://github.com/lifinance/widget/commit/c68c558d579a3d6e58ba5d88209c67da39f64c4e)) + +### [1.10.1](https://github.com/lifinance/widget/compare/v1.10.0...v1.10.1) (2022-07-15) + + +### Bug Fixes + +* propagate width props to drawer mode ([8d36f1c](https://github.com/lifinance/widget/commit/8d36f1c5db9186f507d996c4bea7a40b85dd1567)) +* show correct step details label ([931a67d](https://github.com/lifinance/widget/commit/931a67dcfdefadaf9c41a98b8e42bde12c7cedc8)) + +## [1.10.0](https://github.com/lifinance/widget/compare/v1.9.0...v1.10.0) (2022-07-15) + + +### Features + +* add and always include integrator option ([9e57ee3](https://github.com/lifinance/widget/commit/9e57ee32e27e23c44519a815608a25a46b257b1b)) + + +### Bug Fixes + +* better handle gas check with disconnected wallet ([432ebf4](https://github.com/lifinance/widget/commit/432ebf431d6c8c3357eec931d3bef244c611404b)) +* handle disconnected wallet and switch chain on the swap page ([08ceb08](https://github.com/lifinance/widget/commit/08ceb08ae920d28f5894ac4aaf25ac47127a68b1)) +* show routes with disconnected wallet ([f875f4e](https://github.com/lifinance/widget/commit/f875f4e07416d114156d98a69bd6960ee70f65b6)) +* use default readme across packages ([db69a26](https://github.com/lifinance/widget/commit/db69a261816cd4b7e28ce2dcd2b8f7f6d499bbdf)) + +## [1.9.0](https://github.com/lifinance/widget/compare/v1.8.1...v1.9.0) (2022-07-14) + + +### Features + +* add no routes available message ([797db9c](https://github.com/lifinance/widget/commit/797db9c05d0870e837eb70ee2b6861e80cfd94cc)) + + +### Bug Fixes + +* shifting of big amount ([065ee86](https://github.com/lifinance/widget/commit/065ee861b5cac542a193bebdb6f29a862239c99b)) + +### [1.8.1](https://github.com/lifinance/widget/compare/v1.8.0...v1.8.1) (2022-07-12) + + +### Bug Fixes + +* imports ([39ddeb0](https://github.com/lifinance/widget/commit/39ddeb04142bbbe18526a999cd652abfe625ebab)) + +## [1.8.0](https://github.com/lifinance/widget/compare/v1.7.0...v1.8.0) (2022-07-12) + + +### Features + +* add page not found message ([2c1b381](https://github.com/lifinance/widget/commit/2c1b38157dd45930b64f4da992568182137af992)) +* show insufficient gas error messages on swap page ([0152fd1](https://github.com/lifinance/widget/commit/0152fd1ea9dd663f859d1b35526842bfe79b8161)) + + +### Bug Fixes + +* check gas sufficiency for chain native tokens ([9deea31](https://github.com/lifinance/widget/commit/9deea31758d81d5b34018326d41a7cc337f18a45)) +* current route is not always updated ([ebd11cc](https://github.com/lifinance/widget/commit/ebd11cce12dc3e551e4d40880f3ff2df2e7ebde5)) +* current route is not always updated ([d291348](https://github.com/lifinance/widget/commit/d2913482f6876b8ec36e8b195fcbfa3144d4e50f)) +* insert empty box to center the header ([674bf90](https://github.com/lifinance/widget/commit/674bf903f7b41162df4de6bb3d87a344354befd4)) +* make cursor pointer ([54f32ff](https://github.com/lifinance/widget/commit/54f32ff85959c291f1995f1782f4451c6998d53d)) +* update insufficient gas error messages look ([3172f9a](https://github.com/lifinance/widget/commit/3172f9aa20c680e0b54ea777651cebacd43d18e1)) +* warning message colors ([19652bf](https://github.com/lifinance/widget/commit/19652bffd31e5ca2b18b888aac34214258a1bd1d)) +* wording for token allowance ([a81a9c7](https://github.com/lifinance/widget/commit/a81a9c7df768bb70285d300e12091be96c7ebe01)) + +## [1.7.0](https://github.com/lifinance/widget/compare/v1.6.1...v1.7.0) (2022-07-06) + + +### Features + +* deactivate metamask provider check ([#8](https://github.com/lifinance/widget/issues/8)) ([d34eba3](https://github.com/lifinance/widget/commit/d34eba3869a34f1c92a2019eafac4a87b57e4c84)) + + +### Bug Fixes + +* **Safari:** overlapping issue ([f2590e2](https://github.com/lifinance/widget/commit/f2590e24f0b19865f3315c47bee1a949f332f2e0)) + +### [1.6.1](https://github.com/lifinance/widget/compare/v1.6.0...v1.6.1) (2022-07-06) + + +### Bug Fixes + +* fix styles for mobile ([c3930ca](https://github.com/lifinance/widget/commit/c3930cabfcbad2624a8b933c535869d9694da035)) +* **Safari:** top border radius and right scrollbar are hidden by overlapping element ([ff4f2a6](https://github.com/lifinance/widget/commit/ff4f2a62ef9da00eed067fe28899e83e0ed22eec)) +* show only if amount is present ([fa5c590](https://github.com/lifinance/widget/commit/fa5c5907024d3af2cef0d3bcc9b4e51db632c441)) + +## [1.6.0](https://github.com/lifinance/widget/compare/v1.5.0...v1.6.0) (2022-07-05) + + +### Features + +* add insufficient gas and funds messages ([c016e15](https://github.com/lifinance/widget/commit/c016e15979246db85b81101ada11e3a88326990a)) +* add slippage too large error ([17b0780](https://github.com/lifinance/widget/commit/17b0780a6399771728eb6e7ca8a360364428d781)) + + +### Bug Fixes + +* handle replaced transaction ([2a0674d](https://github.com/lifinance/widget/commit/2a0674dec5230a00bea97d27e5c0d8686ceb866f)) +* sometimes account signer is not found after page refresh ([054648e](https://github.com/lifinance/widget/commit/054648e2c86aeafcb6f1a77e3708f865b82c869b)) + +## [1.5.0](https://github.com/lifinance/widget/compare/v1.4.0...v1.5.0) (2022-07-01) + + +### Features + +* add crash reports and diagnostic data collection ([276f624](https://github.com/lifinance/widget/commit/276f62450441999dd5fb789ac7b256cf181df84b)) + + +### Bug Fixes + +* can't select tokens with the same address ([60e6b44](https://github.com/lifinance/widget/commit/60e6b446ce6142c5b6e742f973d4206abf963d34)) +* PoweredBy hover color ([e6b75d1](https://github.com/lifinance/widget/commit/e6b75d14ca97173858f70cf1b85e2bc03c25d56f)) + +## [1.4.0](https://github.com/lifinance/lifi-widget/compare/v1.3.2...v1.4.0) (2022-06-27) + + +### Features + +* hide internal wallet UI if walletManagement is provided ([68dd45f](https://github.com/lifinance/lifi-widget/commit/68dd45fbd5712cf5348c3a1bd53bc4d7c1684c50)) + +### [1.3.2](https://github.com/lifinance/lifi-widget/compare/v1.3.1...v1.3.2) (2022-06-27) + + +### Bug Fixes + +* handleSwapButtonClick for external wallet menagement ([9d680a8](https://github.com/lifinance/lifi-widget/commit/9d680a8b975cdecb152b242f3c0bdaeaa9c795c7)) + +### [1.3.1](https://github.com/lifinance/lifi-widget/compare/v1.3.0...v1.3.1) (2022-06-22) + +## [1.3.0](https://github.com/lifinance/lifi-widget/compare/v1.2.0...v1.3.0) (2022-06-22) + + +### Features + +* add external wallet management functionality ([#9](https://github.com/lifinance/lifi-widget/issues/9)) ([459589b](https://github.com/lifinance/lifi-widget/commit/459589b161ad5e440f3f7c0cfa6a2685af7ef5d1)) + + +### Bug Fixes + +* build errors ([161f503](https://github.com/lifinance/lifi-widget/commit/161f5032af804e6f3a098a2bc4dd9ce2dbbe1ca5)) + +## [1.2.0](https://github.com/lifinance/lifi-widget/compare/v1.1.3...v1.2.0) (2022-06-13) + + +### Features + +* save settings to localStorage ([ee4a9d1](https://github.com/lifinance/lifi-widget/commit/ee4a9d1ca96cfa26388641b137123a2a2c8d2b2d)) + + +### Bug Fixes + +* always initialize tools ([2d2be1a](https://github.com/lifinance/lifi-widget/commit/2d2be1a0842f5dae1784424efed53a578898cc6a)) +* font size in some circumstances ([35ac8c8](https://github.com/lifinance/lifi-widget/commit/35ac8c8f7edf348651d947433e577e1cdeabe021)) +* make tools optional on first load ([4b8ab69](https://github.com/lifinance/lifi-widget/commit/4b8ab6971fdebed6995b209544cede7bfc4d967d)) +* remove home route ([2085bc6](https://github.com/lifinance/lifi-widget/commit/2085bc67decaa60cd94047ec035c9947a872a3c1)) +* restrict variations of config usage ([5ec0fcc](https://github.com/lifinance/lifi-widget/commit/5ec0fcc4576eefa6f38175287f1ff00bd86ad551)) + +### [1.1.3](https://github.com/lifinance/lifi-widget/compare/v1.1.2...v1.1.3) (2022-06-08) + + +### Bug Fixes + +* usage inside nested routers ([0cc9835](https://github.com/lifinance/lifi-widget/commit/0cc98354825b2b579cf82ed4a7dd5b466adc307d)) + +### [1.1.2](https://github.com/lifinance/lifi-widget/compare/v1.1.1...v1.1.2) (2022-06-08) + + +### Bug Fixes + +* build with fonts and icons ([9d2f598](https://github.com/lifinance/lifi-widget/commit/9d2f598a6682982d99c64f60e11a665d27060dc5)) +* make config optional ([ea14369](https://github.com/lifinance/lifi-widget/commit/ea14369e3462c04517d3fc05f93af86b908499f0)) + +### [1.1.1](https://github.com/lifinance/lifi-widget/compare/v1.1.0...v1.1.1) (2022-06-08) + + +### Bug Fixes + +* enable all default chains ([0215034](https://github.com/lifinance/lifi-widget/commit/02150348eccf563853d03c4f07968c7a0faa97be)) + +## [1.1.0](https://github.com/lifinance/lifi-widget/compare/v1.0.1...v1.1.0) (2022-06-08) + + +### Features + +* add route priority badges (tags) to route cards ([31e18ea](https://github.com/lifinance/lifi-widget/commit/31e18ea092e7fe48cac290623d3bfaec81b23174)) + + +### Bug Fixes + +* auto calculate header hight ([80b317e](https://github.com/lifinance/lifi-widget/commit/80b317ec842c4e1816a1c048530b6f062cc23ea9)) +* disable selection of the same tokens ([9fb33e9](https://github.com/lifinance/lifi-widget/commit/9fb33e98c1525e5e22a9b969bca45f4c6261067d)) +* remove delay when pressing the max button ([70a1691](https://github.com/lifinance/lifi-widget/commit/70a16916f93083c0e4667089851bc0d800fcdf88)) +* routes are not always refreshed correctly after time was elapsed ([67058c6](https://github.com/lifinance/lifi-widget/commit/67058c68217d8df413c7a7f8a85ef42afe32bff0)) + +### [1.0.1](https://github.com/lifinance/lifi-widget/compare/v1.0.0...v1.0.1) (2022-06-06) + +## 1.0.0 (2022-06-06) + + +### ⚠ BREAKING CHANGES + +* prepare to publish + +### Features + +* ability to remove active route ([f4e5c32](https://github.com/lifinance/lifi-widget/commit/f4e5c320b84ed4a2a91819860abb41fa67d67321)) +* add appearance settings ([7d36597](https://github.com/lifinance/lifi-widget/commit/7d365976e78c5fbd83c21a99fb5fa0e9212fa4cf)) +* add arrow to swap routes ([11f154e](https://github.com/lifinance/lifi-widget/commit/11f154e56b413087878a714e317618586bc9b262)) +* add auto color scheme checkbox ([75eddcc](https://github.com/lifinance/lifi-widget/commit/75eddcc775bba26e33b89073a4600b11872fe0e6)) +* add border radius customization ([779b935](https://github.com/lifinance/lifi-widget/commit/779b935f8114704002c3f7aa82dc4da30552a9c3)) +* add CardTitle ([260339a](https://github.com/lifinance/lifi-widget/commit/260339adf5338307004dc8afbff21ddba770d958)) +* add connect wallet button ([4e93bcc](https://github.com/lifinance/lifi-widget/commit/4e93bcc22e5e5948d10e520716c88351f6edd6f8)) +* add ContainerDrawer ([ba19dac](https://github.com/lifinance/lifi-widget/commit/ba19dac21796e4ea2bd47387867de0cd6c69d9eb)) +* add dark color scheme support ([b70526a](https://github.com/lifinance/lifi-widget/commit/b70526a20b326bf815258f8617f6937e44cf9db7)) +* add dark mode switch ([b66eabc](https://github.com/lifinance/lifi-widget/commit/b66eabcd3a8fa9689c696b337b7a0a61b2024f84)) +* add details to route cards ([bbd5926](https://github.com/lifinance/lifi-widget/commit/bbd5926f7189d716c23b06cbed49d215227e60a9)) +* add different layout presentations ([e7c495e](https://github.com/lifinance/lifi-widget/commit/e7c495e25d14a18da812549ee9bf440248648b83)) +* add different layout presentations ([05cbcb6](https://github.com/lifinance/lifi-widget/commit/05cbcb6ddfc26032edbe60b288ec0ed062b47d4d)) +* add error appearance ([095a39f](https://github.com/lifinance/lifi-widget/commit/095a39fb3625320a8fbc9a0f243ee2516296fb5b)) +* add error messages for process ([20542bc](https://github.com/lifinance/lifi-widget/commit/20542bc2f792383eb74cccf91aaac6a93bfb3866)) +* add font family customization ([ea46d79](https://github.com/lifinance/lifi-widget/commit/ea46d79c3d3d1c265d7ae2d52a80a6310ddfa6c6)) +* add header, add form draft ([4ee2615](https://github.com/lifinance/lifi-widget/commit/4ee261599ed9cea6a23012ab9507bc857ae8e0cc)) +* add i18n support, upgrade to React 18 ([54ef854](https://github.com/lifinance/lifi-widget/commit/54ef854dcbaa571dd14c7503031688b815239b93)) +* add Inter font ([f814b3a](https://github.com/lifinance/lifi-widget/commit/f814b3a32c6c086619f20dd0e36ef2a88744f6e3)) +* add LI.FI as a tool ([a637ca0](https://github.com/lifinance/lifi-widget/commit/a637ca0ff65516dd8b680bc38286205232b1f4a2)) +* add link ([acd71c0](https://github.com/lifinance/lifi-widget/commit/acd71c00c4272f165e63b9780a989cdd994677e7)) +* add link to block explorer ([69c2ee1](https://github.com/lifinance/lifi-widget/commit/69c2ee118687f044870193d99adaaa38dc031f22)) +* add powered by section ([0226495](https://github.com/lifinance/lifi-widget/commit/02264957143fa8f2c4f47431933795b343e2990d)) +* add react-scripts with support of monorepo ([fae05f5](https://github.com/lifinance/lifi-widget/commit/fae05f59a976409997cf9ae0b525d1b295be3ce1)) +* add reverse tokens button ([b0f826d](https://github.com/lifinance/lifi-widget/commit/b0f826db7844c62ca16ed0e8380271c4f0260a1f)) +* add secondary color customization ([471cd93](https://github.com/lifinance/lifi-widget/commit/471cd93c28fdfa981db76fbd8577332ff82719ea)) +* add select chain and token compact layout ([66d0beb](https://github.com/lifinance/lifi-widget/commit/66d0bebac4721d30cf34b991b22bf8eb4ae77c16)) +* add select token drawer, header improvements ([00c28a9](https://github.com/lifinance/lifi-widget/commit/00c28a9bf137808e87d7a279ef0f2a4fae925bbb)) +* add send to recipient switch, refine colors ([d674546](https://github.com/lifinance/lifi-widget/commit/d674546774d4a89892d2a4dae5b75e38035b9574)) +* add settings components ([a9d4175](https://github.com/lifinance/lifi-widget/commit/a9d417505b5f5193985c73db50dae9740999bfe5)) +* add settings page draft ([2370a30](https://github.com/lifinance/lifi-widget/commit/2370a30c2e9960a1fb70c1f8a4c67b5e9ae02873)) +* add skeleton to chain select ([af62515](https://github.com/lifinance/lifi-widget/commit/af625153fcb9bcd782d1027dab78f7d63984ae42)) +* add skeleton while loading balances with all tokens filter set ([5e486cd](https://github.com/lifinance/lifi-widget/commit/5e486cd66703e10cef7d0344c2817a5c6d9e12f5)) +* add step and execution items ([b715bed](https://github.com/lifinance/lifi-widget/commit/b715bedb051a7d57f41a8cc83d763d5401267cac)) +* add step divider ([05e76d6](https://github.com/lifinance/lifi-widget/commit/05e76d6e1e3590d6f88ee1d78a2e68a2db205085)) +* add stepper draft ([91677e7](https://github.com/lifinance/lifi-widget/commit/91677e78ae822b0d7a318a4daa92cea372bdae4a)) +* add sticky header ([ffade59](https://github.com/lifinance/lifi-widget/commit/ffade5996989eff2f5eb667ca02247217e1bb6e8)) +* add sufficient balance check ([f96b472](https://github.com/lifinance/lifi-widget/commit/f96b4723a9a5d45db9c65e206431f012cf2c519f)) +* add supported chains to drawer ([913db7f](https://github.com/lifinance/lifi-widget/commit/913db7fc59fd92765b33853f113e9035b83e37c5)) +* add swap execution logic draft + minor improvements ([9fb867f](https://github.com/lifinance/lifi-widget/commit/9fb867ffb23f9cb8990c88cffef0916230c5908d)) +* add swap in progress draft ([ffbd288](https://github.com/lifinance/lifi-widget/commit/ffbd28894457d3ad4afa9ec2619adf00d01b6ad7)) +* add swap route card draft ([14df8c3](https://github.com/lifinance/lifi-widget/commit/14df8c320d60e7f8151a359ec088787c6d1d9b6a)) +* add swap routes page ([72415c3](https://github.com/lifinance/lifi-widget/commit/72415c342a861495fad3b619415c385b191d9cac)) +* add swap routes update progress circle ([25acb5e](https://github.com/lifinance/lifi-widget/commit/25acb5ea4a8b520f0ade32932d98da584b81bf6d)) +* add swap status bottom sheet ([83575c9](https://github.com/lifinance/lifi-widget/commit/83575c938663c245258d553fc3b669b243237fe6)) +* add swap step timer ([24b52f9](https://github.com/lifinance/lifi-widget/commit/24b52f9b89720ccf9298a1a663cb0236948eba98)) +* add SwapButton, small fixes ([dad26dc](https://github.com/lifinance/lifi-widget/commit/dad26dca842c8162be9ab3e06247ccfbfd478bfc)) +* add swapping page draft ([1c387ab](https://github.com/lifinance/lifi-widget/commit/1c387abbe41affe90793c1b10ea31ba96097ec39)) +* add text fitter ([ad1e272](https://github.com/lifinance/lifi-widget/commit/ad1e272794f7caca2268240e3238afee0a43fa8d)) +* add token list draft ([a318735](https://github.com/lifinance/lifi-widget/commit/a318735fd18a9656455af537ebc129e12bdbee77)) +* add token price to token list ([7171135](https://github.com/lifinance/lifi-widget/commit/717113537d06e585a40690b6279356d061617ca3)) +* add ToolItem draft ([167dd4b](https://github.com/lifinance/lifi-widget/commit/167dd4ba38300b1934457f4b3e4237f3d2ba5e8c)) +* add tooltip and refetch ([89b91c3](https://github.com/lifinance/lifi-widget/commit/89b91c3dc5c7b29d8a35131e5a3cbe1b888394ed)) +* add translations and more status handling ([2b0af0b](https://github.com/lifinance/lifi-widget/commit/2b0af0bff3eef9293b0229118ac8c02c6fec65d6)) +* add useChain(s) hooks ([d74140b](https://github.com/lifinance/lifi-widget/commit/d74140bb1db43877b98412b64bbaa90721e8c5e5)) +* add useSwapRoutes hook draft ([239c2f7](https://github.com/lifinance/lifi-widget/commit/239c2f74958dba54eb5bbb94b121991204b8a791)) +* add useToken and useTokenBalance hooks, update SwapInput ([be17b6d](https://github.com/lifinance/lifi-widget/commit/be17b6d544b133bfa35264af24b86a5de972830b)) +* add validation to slippage input ([fa14a49](https://github.com/lifinance/lifi-widget/commit/fa14a49080b4fceded60a21906f8f6b966ecacae)) +* add you pay token price ([5a6fddf](https://github.com/lifinance/lifi-widget/commit/5a6fddff824a78130eeed1c6fa5b5457bc7e83d8)) +* beautiful wallet extension not found dialog ([ecdc8e2](https://github.com/lifinance/lifi-widget/commit/ecdc8e264b9c6654c7bb37edb199aa3ddf07e1cc)) +* blockwallet support ([#7](https://github.com/lifinance/lifi-widget/issues/7)) ([1f5a508](https://github.com/lifinance/lifi-widget/commit/1f5a508cb9bd92cc4063e41fb82297440e7b4055)) +* don't show circle when loading ([fa832a4](https://github.com/lifinance/lifi-widget/commit/fa832a4bc27fcd70946458ed5e060cfb427548d9)) +* enable gas and funds check ([c105766](https://github.com/lifinance/lifi-widget/commit/c105766d6101adc2211096ef548bab38949b4ee1)) +* get and display routes ([#3](https://github.com/lifinance/lifi-widget/issues/3)) ([91565b4](https://github.com/lifinance/lifi-widget/commit/91565b4baeccd992b4d2e519775e179192f43262)) +* handle long amounts ([a1c9454](https://github.com/lifinance/lifi-widget/commit/a1c9454f94ea121994028c23015e9908e63e7588)) +* improve send to recipient form, add route priority select ([52d91ca](https://github.com/lifinance/lifi-widget/commit/52d91ca7ad1b4db807d17d93192f7004fd17d4d2)) +* improve token selection ([5a87346](https://github.com/lifinance/lifi-widget/commit/5a8734680ca833e9ef8cfb6f9de622a5feff2813)) +* move customization to sidebar ([f4664e7](https://github.com/lifinance/lifi-widget/commit/f4664e759dc4fbab1347f630857b208e4138a151)) +* move settings to drawer ([9c6adcc](https://github.com/lifinance/lifi-widget/commit/9c6adcc37d07d9d4e515a747082bea7ede65042d)) +* move to monorepo ([fe7e24b](https://github.com/lifinance/lifi-widget/commit/fe7e24b6a915af4f3f3338946e25ba165384d03d)) +* move token amount formatting to hook ([ec55aa1](https://github.com/lifinance/lifi-widget/commit/ec55aa1522b4be066ed3ad95e02033189d63f699)) +* restructure swap execution logic ([74ebf3d](https://github.com/lifinance/lifi-widget/commit/74ebf3d4dff14e7f53471612d956985367c1941a)) +* show amount to receive ([5c76104](https://github.com/lifinance/lifi-widget/commit/5c761041faee6ac3198cdcd0636871d25ebed63b)) +* stepper improvements ([4589d4d](https://github.com/lifinance/lifi-widget/commit/4589d4d6056903f4ea42cae504500cf4b68873c9)) +* stop timer when action is required ([482bddb](https://github.com/lifinance/lifi-widget/commit/482bddb4b1ab540a6af1853b0f9d53fc16e905e5)) +* transaction stepper with all states ([34a2278](https://github.com/lifinance/lifi-widget/commit/34a227895d8a6081677a51e2a1b69e7b5ca1671d)) +* update chain selection ([a9261f0](https://github.com/lifinance/lifi-widget/commit/a9261f0670ab9469cb14147ac30c64c9898c01c4)) +* update icons and colors ([52eb4b8](https://github.com/lifinance/lifi-widget/commit/52eb4b82e774d7e15f8e2e05658634a6a6129d95)) +* update swap form layout ([7f9b3b6](https://github.com/lifinance/lifi-widget/commit/7f9b3b69df5770e99224dbd59dd628ac87f8f6d5)) +* update to new SDK status handling ([cb87f62](https://github.com/lifinance/lifi-widget/commit/cb87f62241a340b2c378f265871d55e4b124427e)) +* update token drawer ([52a17ec](https://github.com/lifinance/lifi-widget/commit/52a17ecc210778bc4ccc7354f4d4e838e1e418aa)) +* use getTokens endpoint ([5e4f86a](https://github.com/lifinance/lifi-widget/commit/5e4f86ad0a4e419c7f5b2c63d45743c59b5d62a4)) +* use route from location state ([5050cd6](https://github.com/lifinance/lifi-widget/commit/5050cd6d1840bd6f11fb34a40caa1eb9e630bdf7)) + + +### Bug Fixes + +* fix useTokens typo ([e71ad88](https://github.com/lifinance/lifi-widget/commit/e71ad88a95de68ad67525268f5687a346c0c018f)) +* add inputMode search ([17c22bd](https://github.com/lifinance/lifi-widget/commit/17c22bda1d757b333901c218babc4bc5097099b7)) +* add keys and loading states ([c576101](https://github.com/lifinance/lifi-widget/commit/c576101bb5cc737a3906dd5e8868ec8be2cb1103)) +* add possibility topic ([d564803](https://github.com/lifinance/lifi-widget/commit/d564803f6b311947eb51b8bf8350dc2393825aa4)) +* adjust padding ([626acf0](https://github.com/lifinance/lifi-widget/commit/626acf0141371437bc76adf0064c97c5fa838f6f)) +* adjust typography ([8edfecf](https://github.com/lifinance/lifi-widget/commit/8edfecfdd880faf061952aefcee3d924dc8428d9)) +* change wording ([f3b9498](https://github.com/lifinance/lifi-widget/commit/f3b9498d1f96b58157c196f6e838389cdde9d320)) +* clear from amount on close ([e3fda8c](https://github.com/lifinance/lifi-widget/commit/e3fda8c3e09ae17449e0583f4b223e30b4369b94)) +* debounce only when has value ([0a18dc2](https://github.com/lifinance/lifi-widget/commit/0a18dc21dc6f7d2fe05e47a8d5a7f9f4f024fdaf)) +* disable bridge prioritization ([aea18ea](https://github.com/lifinance/lifi-widget/commit/aea18ea4cab8bed9973a5c8ccf4f5494e1ec8e95)) +* disable default tokens ([0e95966](https://github.com/lifinance/lifi-widget/commit/0e9596659168626eca5e6fb595c665af513cb232)) +* disable swap chains when they are not selected ([8531863](https://github.com/lifinance/lifi-widget/commit/8531863752a7936817be4f0520d03da70bae2ab9)) +* disable token loading while wallet disconnected ([be23def](https://github.com/lifinance/lifi-widget/commit/be23defbc6fb12dce395c02de9e619a28baa16a3)) +* EIP1193 provider not found ([68d3829](https://github.com/lifinance/lifi-widget/commit/68d38290376057d4eceaba4c8cf32fe90a562461)) +* execution route mutability hotfix ([375e575](https://github.com/lifinance/lifi-widget/commit/375e575119f3404a14bf3e61b46237d4295e4f2c)) +* fix dark theme logo ([effa1d4](https://github.com/lifinance/lifi-widget/commit/effa1d4274adc12fe9d00f0b1fb68a7b9bad7f1a)) +* fix eslint, bump packages ([1bc3a61](https://github.com/lifinance/lifi-widget/commit/1bc3a61d18c4624f604be0de63d2b867b830e307)) +* fix external theme control ([8ae3848](https://github.com/lifinance/lifi-widget/commit/8ae38482ebfd49c94100243b7328ef4ac1b28eed)) +* fix input field not resetting after changing chain ([cf4b715](https://github.com/lifinance/lifi-widget/commit/cf4b715cd5b04c1c47a8bc89ba97e3bb2f15feb4)) +* fix layout margins ([4bbe4a1](https://github.com/lifinance/lifi-widget/commit/4bbe4a12f0bd2d030bea0994b25de7f71bcabb69)) +* fix navigation to swapping page ([3316bff](https://github.com/lifinance/lifi-widget/commit/3316bffdd9b5b7f894042dd6824120a0aa3aec83)) +* fix skeleton width ([56dfbae](https://github.com/lifinance/lifi-widget/commit/56dfbaed018bfd19f29de1aba9dc525ef6bfb44a)) +* header not sticky sometimes ([f045008](https://github.com/lifinance/lifi-widget/commit/f04500827a4bba885291dfaed078650457c1581e)) +* heavy re-renders on every amount change ([62f725a](https://github.com/lifinance/lifi-widget/commit/62f725ad4e0c2c76a042419c1594a9cb8f036304)) +* hide empty scrollbar ([cc2a2fe](https://github.com/lifinance/lifi-widget/commit/cc2a2fef6e1cd35dcf93286e6f03eb0d6716ecc6)) +* improve dark theme support ([fea0977](https://github.com/lifinance/lifi-widget/commit/fea09772ca1ee261264e28edacd704a07066b514)) +* improve formatting, add max handler ([45b12f8](https://github.com/lifinance/lifi-widget/commit/45b12f884cc2656cefcc95a5936a28fd502bc29d)) +* improve outlined button dark mode support ([eaa65bc](https://github.com/lifinance/lifi-widget/commit/eaa65bc85ce78a75b774082f5681167214d94774)) +* improve token filtering perfomance ([383a8a5](https://github.com/lifinance/lifi-widget/commit/383a8a5da7fb0927d96ce4a9708ad5f37094e89b)) +* increase refetchTime ([91fb903](https://github.com/lifinance/lifi-widget/commit/91fb903ad0cdb73373dc349aa34c6b409fd6f794)) +* input shrinks ([e390016](https://github.com/lifinance/lifi-widget/commit/e39001612c44b2e181fa86a6a0b57c218ce03500)) +* lower font weight when not selected ([7223873](https://github.com/lifinance/lifi-widget/commit/72238733e7d203789e20764f769c4aec335c6f3f)) +* lower item height ([cb67308](https://github.com/lifinance/lifi-widget/commit/cb67308af766130772719ed3f6a79dad0a5e2fc6)) +* make title match others ([085d20b](https://github.com/lifinance/lifi-widget/commit/085d20b35184e90c1762fb39b3139e983d0728d5)) +* make token selection smoother ([51ef8ed](https://github.com/lifinance/lifi-widget/commit/51ef8edc288e2db31805a006e835987b141015e2)) +* make webpack 5 work with crypto libs ([6106b95](https://github.com/lifinance/lifi-widget/commit/6106b9566b3e03412e6aac30f6f95f303d166298)) +* migrate old appearance settings ([dfd92fe](https://github.com/lifinance/lifi-widget/commit/dfd92fe163005212e6d0eb5f1696cc968c731644)) +* missed loading state ([36b3535](https://github.com/lifinance/lifi-widget/commit/36b35350779b92d5179cdf734a519fbacbc6f2bd)) +* missing packages and types ([49260fb](https://github.com/lifinance/lifi-widget/commit/49260fb0261b3e52ef231868fa885070e881082d)) +* not found dom route ([e3c961f](https://github.com/lifinance/lifi-widget/commit/e3c961fbcf1f0bdfe74f4eacb20b2ff7a31bf159)) +* optimize wallet interface usage ([b8716e6](https://github.com/lifinance/lifi-widget/commit/b8716e6491ea51157f0bc247ca7407376a1d9547)) +* p nesting ([ee519d2](https://github.com/lifinance/lifi-widget/commit/ee519d27df0375e542d8c5d45071a8c38fcb4ff8)) +* postcss-normalize module not found ([fd0afa3](https://github.com/lifinance/lifi-widget/commit/fd0afa308399db0ca7099cbb73605abb8b89dadc)) +* prevent running on mount ([acd8389](https://github.com/lifinance/lifi-widget/commit/acd838908a41e12050061f2a10f1712f77801976)) +* proper avatar colors for dark mode ([88df9ff](https://github.com/lifinance/lifi-widget/commit/88df9ff825a190e0bf0c1223f4cb56ed36b90fc9)) +* props forwarding error ([5a1f110](https://github.com/lifinance/lifi-widget/commit/5a1f1105ff0d9fd8691108efef27a7d0bc8111c8)) +* reduce max width ([4d3432d](https://github.com/lifinance/lifi-widget/commit/4d3432dfa013631efdca9b3c0013e3cb9af19c2d)) +* reduce max width ([233a1f3](https://github.com/lifinance/lifi-widget/commit/233a1f35de8cea24c4182065e8d370522726f428)) +* remove backgroundImage ([a395b48](https://github.com/lifinance/lifi-widget/commit/a395b4888b3c901d43c42ec07ddb49398695cf10)) +* remove default tokens ([1428e75](https://github.com/lifinance/lifi-widget/commit/1428e750160913fb1705589648a7e2c3b7924171)) +* remove notched prop ([272dae6](https://github.com/lifinance/lifi-widget/commit/272dae6e88a281e627e7ace779c88fcbc1e0555d)) +* remove scripts ([a133696](https://github.com/lifinance/lifi-widget/commit/a133696160131e1d01e61128c752ed510d61c0c7)) +* remove testing steps ([a7f16ac](https://github.com/lifinance/lifi-widget/commit/a7f16ac632c8940cd4f6f2c9b6bc2f41bb88a60e)) +* rename route priority ([833cfa9](https://github.com/lifinance/lifi-widget/commit/833cfa907daf24d68179964db357c2aa0ecf01d0)) +* return debounced value immediately on mount ([247fd9e](https://github.com/lifinance/lifi-widget/commit/247fd9e01358049cc00ca8977076c5c4b02f1613)) +* scroll to top after changing chain ([bc772ab](https://github.com/lifinance/lifi-widget/commit/bc772abc2de319a7d59c3a8ce670f5a8007c1e2e)) +* set correct header name for token selection ([68d20e9](https://github.com/lifinance/lifi-widget/commit/68d20e9bd160739470febc0e130977c927be895f)) +* set gas price default value ([ff777d4](https://github.com/lifinance/lifi-widget/commit/ff777d444ae6e33cfba2b19ec9e957311fa42a7c)) +* show meesage only if no gas ([ddb0702](https://github.com/lifinance/lifi-widget/commit/ddb0702ac666d0c3d3af52bc5003b87d3959a39f)) +* style adjustments ([ccbeb51](https://github.com/lifinance/lifi-widget/commit/ccbeb5180a7c1fede7b1a4db635f558dc7214348)) +* switch to using chain ids ([d6dceea](https://github.com/lifinance/lifi-widget/commit/d6dceea0009d5a212924c878e50aa5e536afaacf)) +* theme adjustments ([526de7f](https://github.com/lifinance/lifi-widget/commit/526de7f98c99708b55f37e368804b3c6e911c622)) +* title jump when progress is empty ([8d8fdc9](https://github.com/lifinance/lifi-widget/commit/8d8fdc9f09c02360ea1133c5b8e7d40bb86cf3a5)) +* walleticon import ([ec58843](https://github.com/lifinance/lifi-widget/commit/ec588433be85cc615194ec41cf0261d46df0f1c4)) + + +* prepare to publish ([6ae9bc7](https://github.com/lifinance/lifi-widget/commit/6ae9bc777e38848d19245b5b1ddf632fc1725ebd)) From 0a01d0d62986399ec4a0b1927dac4ef4f28e2d54 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Thu, 28 May 2026 18:00:55 +0200 Subject: [PATCH 23/36] chore(ci): SHA-pin all third-party actions, bump to latest MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Supply-chain hygiene pass over every external 'uses:' reference in the workflows this PR creates or touches. Every action is now pinned to its commit SHA with a '# vX.Y.Z' comment naming the resolved version. Bumps where a newer release was available. - changesets/action: v1.5.3 → v1.8.0 (commit-SHA-pinned) - linear/linear-release-action: comment fixed from '# v0' (floating tag) to '# v0.14.0' (SHA was already correct — that floating tag currently points to v0.14.0; pin doesn't move, comment now accurately reflects the version) Verified each SHA against the upstream repo's tag → commit mapping (using the commit SHA, not the annotated-tag-object SHA — both forms resolve in Actions, but pinning to the commit is immutable even if a tag is force-moved). --- .github/workflows/linear-release.yaml | 6 +++--- .github/workflows/publish.yaml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/linear-release.yaml b/.github/workflows/linear-release.yaml index c1aaf00ad..b4de3a437 100644 --- a/.github/workflows/linear-release.yaml +++ b/.github/workflows/linear-release.yaml @@ -45,7 +45,7 @@ jobs: # Attach merged issues to the X.Y.Z release and record a link. - name: Sync issues to release - uses: linear/linear-release-action@ad7da502eec3a93dd17e2e249e6c1cd84e3ee588 # v0 + uses: linear/linear-release-action@ad7da502eec3a93dd17e2e249e6c1cd84e3ee588 # v0.14.0 with: access_key: ${{ secrets.access_key }} command: sync @@ -57,7 +57,7 @@ jobs: # Prerelease: advance the stage only (release stays open -> tickets stay "Ready for Release"). - name: Advance stage (alpha/beta) if: inputs.channel != 'stable' - uses: linear/linear-release-action@ad7da502eec3a93dd17e2e249e6c1cd84e3ee588 # v0 + uses: linear/linear-release-action@ad7da502eec3a93dd17e2e249e6c1cd84e3ee588 # v0.14.0 with: access_key: ${{ secrets.access_key }} command: update @@ -67,7 +67,7 @@ jobs: # Stable: complete the release -> fires the "On release completion -> Done" automation. - name: Complete release (stable) if: inputs.channel == 'stable' - uses: linear/linear-release-action@ad7da502eec3a93dd17e2e249e6c1cd84e3ee588 # v0 + uses: linear/linear-release-action@ad7da502eec3a93dd17e2e249e6c1cd84e3ee588 # v0.14.0 with: access_key: ${{ secrets.access_key }} command: complete diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 913b1bf1c..7bd57ff20 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -64,7 +64,7 @@ jobs: uses: ./.github/actions/pnpm-install - name: Create version pull request id: changesets - uses: changesets/action@e0145edc7d9d8679003495b11f87bd8ef63c0cba # v1.5.3 + uses: changesets/action@63a615b9cd06ba9a3e6d13796c7fbcb080a60a0b # v1.8.0 with: version: pnpm changeset:version title: 'chore: version packages' @@ -91,7 +91,7 @@ jobs: uses: ./.github/actions/pnpm-install - name: Publish to npm id: changesets - uses: changesets/action@e0145edc7d9d8679003495b11f87bd8ef63c0cba # v1.5.3 + uses: changesets/action@63a615b9cd06ba9a3e6d13796c7fbcb080a60a0b # v1.8.0 with: publish: pnpm changeset:publish createGithubReleases: true From 1acffb28ce046452d68d8dd33cfe2e428e20b814 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Fri, 29 May 2026 10:29:56 +0200 Subject: [PATCH 24/36] chore: bump @changesets/cli to ^2.31.0 (latest) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Was ^2.29.7 (caret already resolved to 2.31.0); update the declared range to match the latest release explicitly. No behavior change — lockfile already installed 2.31.0. --- package.json | 2 +- pnpm-lock.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index af901500d..8808505e3 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ }, "devDependencies": { "@biomejs/biome": "^2.4.15", - "@changesets/cli": "^2.29.7", + "@changesets/cli": "^2.31.0", "@changesets/changelog-github": "^0.7.0", "@commitlint/cli": "^21.0.0", "@commitlint/config-conventional": "^21.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca6b5cf03..aeb59a8e6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,7 +32,7 @@ importers: specifier: ^0.7.0 version: 0.7.0(encoding@0.1.13) '@changesets/cli': - specifier: ^2.29.7 + specifier: ^2.31.0 version: 2.31.0(@types/node@25.6.2) '@commitlint/cli': specifier: ^21.0.0 From 3087205bfe64be3d03c27777870b28ecfb9f6221 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Fri, 29 May 2026 13:49:42 +0200 Subject: [PATCH 25/36] ci: add label-triggered canary preview releases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a `canary` job to publish.yaml: applying the `release-canary` label to a PR publishes a throwaway 0.0.0-canary- build of the changed packages to npm under the `canary` dist-tag, for sharing PR builds with other teams / externally. The label is auto-removed after publish (one-shot; re-add to repeat). This restores the pre-migration ability to publish prereleases from a PR branch (previously `pnpm release:beta` + a pushed `v*-beta.N` tag) and keeps the SAME trust boundary that flow had — a maintainer publishing unreviewed branch code via OIDC — while being strictly safer (0.0.0-canary can never become `latest`). Security controls (the job builds+publishes PR code with OIDC publish rights): * trigger is `pull_request: types:[labeled]` (never pull_request_target) * same-repo branches only — forks/external PRs can't trigger it * fail-closed check that the label-applier has write+ permission * isolated job: only id-token/contents/pull-requests perms; no AWS/CF/Linear secrets The main-release chain is gated to non-PR events so it never runs on label events. widget: widget is in pre mode, so the job exits pre mode in the throwaway CI checkout (never committed/pushed) before snapshotting. --- .github/workflows/publish.yaml | 105 +++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 7bd57ff20..0843c74e6 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -18,6 +18,9 @@ on: push: branches: [main] workflow_dispatch: + # Canary preview releases are opt-in via the `release-canary` PR label. + pull_request: + types: [labeled] # Never run two releases at once; do NOT cancel an in-flight publish. concurrency: @@ -30,6 +33,9 @@ permissions: jobs: verify: name: Verify + # The main-release chain runs on push/dispatch only — never on the + # pull_request (labeled) event that drives canary previews. + if: github.event_name != 'pull_request' runs-on: ubuntu-latest permissions: contents: read @@ -193,3 +199,102 @@ jobs: release_tag: '@lifi/widget-checkout@${{ needs.linear-checkout.outputs.full }}' secrets: access_key: ${{ secrets.CHECKOUT_LINEAR_RELEASE_ACCESS_KEY }} + + # --------------------------------------------------------------------------- + # Canary preview release (opt-in, per PR). + # + # Add the `release-canary` label to a PR to publish a throwaway + # 0.0.0-canary- build of the changed packages to npm under the + # `canary` dist-tag, so the branch can be shared for testing (internally or + # with external integrators). One-shot: the label is removed after a publish; + # re-add it to cut another canary. + # + # Trust boundary — matches the OLD `v*-beta.N` tag-push flow, which already + # let any maintainer publish unreviewed branch code to npm via OIDC: + # * same-repo branches only (forks/external PRs cannot trigger it) + # * the label must be applied by a maintainer (write+), verified fail-closed + # * isolated job: only id-token/contents/PR perms; no deploy/Linear secrets + # NEVER convert this to pull_request_target. + canary: + name: Canary release (PR preview) + if: >- + github.event_name == 'pull_request' + && github.event.label.name == 'release-canary' + && github.event.pull_request.head.repo.full_name == github.repository + && contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.pull_request.author_association) + runs-on: ubuntu-latest + timeout-minutes: 15 + permissions: + contents: read + id-token: write # npm OIDC trusted publishing + provenance + pull-requests: write # post the install comment + remove the label + steps: + - name: Verify the label was applied by a maintainer (fail-closed) + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ACTOR: ${{ github.event.sender.login }} + run: | + PERM=$(gh api "repos/${{ github.repository }}/collaborators/${ACTOR}/permission" --jq '.permission' 2>/dev/null || echo none) + echo "Actor ${ACTOR} has '${PERM}' permission." + case "$PERM" in + admin|maintain|write) : ;; + *) echo "::error::release-canary may only be triggered by a maintainer (write+); '${ACTOR}' has '${PERM}'."; exit 1 ;; + esac + + - name: Checkout PR head + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + ref: ${{ github.event.pull_request.head.sha }} + fetch-depth: 0 + + - name: Install dependencies + uses: ./.github/actions/pnpm-install + # widget is in Changesets pre mode; `--snapshot` is disallowed in pre + # mode, so exit it in THIS throwaway checkout only. Never committed/pushed. + - name: Exit pre mode (ephemeral) + run: pnpm changeset pre exit + + - name: Version changed packages as canary + run: pnpm changeset version --snapshot canary + + - name: Detect whether a canary version was produced + id: detect + run: | + VER=$(grep -hoE '0\.0\.0-canary-[0-9]+' packages/*/package.json | head -1 || true) + if [ -n "$VER" ]; then + echo "version=$VER" >> "$GITHUB_OUTPUT" + echo "publish=true" >> "$GITHUB_OUTPUT" + echo "Will publish canary $VER" + else + echo "::warning::No changeset in this PR — nothing to publish as canary." + echo "publish=false" >> "$GITHUB_OUTPUT" + fi + + - name: Build + prerelease transform + if: steps.detect.outputs.publish == 'true' + run: pnpm changeset:prepublish + + - name: Publish canary to npm + if: steps.detect.outputs.publish == 'true' + run: pnpm changeset publish --tag canary --no-git-tag + env: + NPM_CONFIG_PROVENANCE: true + + - name: Comment the install command on the PR + if: steps.detect.outputs.publish == 'true' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + VER: ${{ steps.detect.outputs.version }} + run: | + gh pr comment "${{ github.event.pull_request.number }}" --body "📦 **Canary published** under the \`canary\` dist-tag at \`${VER}\`. + + Install the exact version (recommended — \`@canary\` moves with the newest canary across PRs): + \`\`\`bash + npm i @lifi/widget@${VER} + \`\`\`" + + - name: Remove the release-canary label (one-shot) + if: always() + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: gh pr edit "${{ github.event.pull_request.number }}" --remove-label release-canary || true From 88d90c7314b392ddebbf282f0171b502ec388814 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Fri, 29 May 2026 13:53:05 +0200 Subject: [PATCH 26/36] docs: document canary preview releases in CLAUDE.md Document the release-canary label flow (0.0.0-canary- to the canary dist-tag), the install command, and the trust-boundary guardrails for maintainers. --- CLAUDE.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 8817383f7..f7bdf7167 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -145,6 +145,23 @@ The repo is in Changesets **pre mode** (`.changeset/pre.json`, `tag: beta`). Whi 3. Merging that version PR triggers the `release` job: it runs `pnpm changeset:publish` (build → per-package prerelease transform → `changeset publish`) and creates GitHub Releases. npm provenance is enabled via `NPM_CONFIG_PROVENANCE=true` + OIDC (`id-token: write`). 4. The `linear-*` jobs sync the published versions into Linear, deriving version/channel from the action's `publishedPackages` output. +### Canary previews (per-PR, opt-in) + +To share an unmerged PR build with other teams or external integrators, add the +**`release-canary`** label to the PR. The `canary` job in `publish.yaml` publishes a +throwaway `0.0.0-canary-` build of the changed packages to npm under the +**`canary`** dist-tag and comments the exact install command on the PR. The label is +removed after a successful publish (one-shot — re-add it to cut another canary). + +- Install the **exact** version it prints (e.g. `npm i @lifi/widget@0.0.0-canary-…`); + `@canary` moves with the newest canary across PRs. `0.0.0` can never become `latest`/`beta`. +- This repo is in **pre mode**, where `--snapshot` is disallowed — the job therefore runs + `changeset pre exit` in the **throwaway CI checkout only** (never committed or pushed) + before snapshotting. `.changeset/pre.json` on the branch is untouched. +- Guardrails: same-repo branches only (forks can't trigger it), the label must be applied + by a maintainer (write+), and the job is isolated (no deploy/Linear secrets). It mirrors + the trust boundary of the old `pnpm release:beta` + `v*-beta.N` tag flow. + ### Root scripts - `pnpm changeset:version` — `changeset version` + `pnpm install --lockfile-only` + `pnpm check:write`. From c542f2173c2155d19b3b1d48a096db11f71cdbe7 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Fri, 29 May 2026 14:20:18 +0200 Subject: [PATCH 27/36] ci: gate canary on write access (clarify wording) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The canary trigger is intentionally open to anyone with write access to the repo — the same trust population that could publish via the old 'v*-beta.N' tag-push flow. Clarify the in-workflow check and docs accordingly: - permission gate now reads as admin|write (.permission maps maintain->write, triage->read), dropping the dead 'maintain' arm - step/comment/error wording: 'maintainer (write+)' -> 'write access' - CLAUDE.md canary note reworded to 'someone with write access' No behavior change (the prior check already allowed admin+write); this is a correctness-of-intent + messaging cleanup. --- .github/workflows/publish.yaml | 16 ++++++++++------ CLAUDE.md | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 0843c74e6..745261554 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -210,9 +210,9 @@ jobs: # re-add it to cut another canary. # # Trust boundary — matches the OLD `v*-beta.N` tag-push flow, which already - # let any maintainer publish unreviewed branch code to npm via OIDC: + # let anyone with write access publish unreviewed branch code to npm via OIDC: # * same-repo branches only (forks/external PRs cannot trigger it) - # * the label must be applied by a maintainer (write+), verified fail-closed + # * the label-applier must have write access, verified fail-closed # * isolated job: only id-token/contents/PR perms; no deploy/Linear secrets # NEVER convert this to pull_request_target. canary: @@ -229,16 +229,20 @@ jobs: id-token: write # npm OIDC trusted publishing + provenance pull-requests: write # post the install comment + remove the label steps: - - name: Verify the label was applied by a maintainer (fail-closed) + - name: Verify the actor has write access (fail-closed) env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} ACTOR: ${{ github.event.sender.login }} run: | + # `.permission` returns the legacy base role: admin | write | read | none + # (maintain maps to write, triage maps to read). Write access or higher is + # the trust bar — the same people who can push branches and who could + # publish via the old `v*-beta.N` tag flow. PERM=$(gh api "repos/${{ github.repository }}/collaborators/${ACTOR}/permission" --jq '.permission' 2>/dev/null || echo none) - echo "Actor ${ACTOR} has '${PERM}' permission." + echo "Actor ${ACTOR} has '${PERM}' access to ${{ github.repository }}." case "$PERM" in - admin|maintain|write) : ;; - *) echo "::error::release-canary may only be triggered by a maintainer (write+); '${ACTOR}' has '${PERM}'."; exit 1 ;; + admin|write) : ;; + *) echo "::error::release-canary requires write access to ${{ github.repository }}; '${ACTOR}' has '${PERM}'."; exit 1 ;; esac - name: Checkout PR head diff --git a/CLAUDE.md b/CLAUDE.md index f7bdf7167..5d37b00fe 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -159,7 +159,7 @@ removed after a successful publish (one-shot — re-add it to cut another canary `changeset pre exit` in the **throwaway CI checkout only** (never committed or pushed) before snapshotting. `.changeset/pre.json` on the branch is untouched. - Guardrails: same-repo branches only (forks can't trigger it), the label must be applied - by a maintainer (write+), and the job is isolated (no deploy/Linear secrets). It mirrors + by someone with write access, and the job is isolated (no deploy/Linear secrets). It mirrors the trust boundary of the old `pnpm release:beta` + `v*-beta.N` tag flow. ### Root scripts From 139c12e09f4dd6798fe9d4af7187f94aced7772d Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Fri, 29 May 2026 14:27:26 +0200 Subject: [PATCH 28/36] ci(canary): use modern role_name for the write-access gate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Switch the canary authorization check from the legacy .permission base-role field to the granular .role_name (admin|maintain|write). Same endpoint, same fully-automatic in-workflow check (no manual approval) — just the modern role field. Custom write-granting roles would be added to the allowlist if introduced. --- .github/workflows/publish.yaml | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 745261554..c3480a71e 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -234,15 +234,17 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} ACTOR: ${{ github.event.sender.login }} run: | - # `.permission` returns the legacy base role: admin | write | read | none - # (maintain maps to write, triage maps to read). Write access or higher is - # the trust bar — the same people who can push branches and who could - # publish via the old `v*-beta.N` tag flow. - PERM=$(gh api "repos/${{ github.repository }}/collaborators/${ACTOR}/permission" --jq '.permission' 2>/dev/null || echo none) - echo "Actor ${ACTOR} has '${PERM}' access to ${{ github.repository }}." - case "$PERM" in - admin|write) : ;; - *) echo "::error::release-canary requires write access to ${{ github.repository }}; '${ACTOR}' has '${PERM}'."; exit 1 ;; + # role_name is GitHub's granular permission role: admin | maintain | + # write | triage | read (+ any custom roles). Write access or higher + # (write/maintain/admin) is the trust bar — the same people who can push + # branches and who could publish via the old `v*-beta.N` tag flow. Fully + # automatic; no manual approval. (If you add a CUSTOM role that grants + # write, add its name to the case below.) + ROLE=$(gh api "repos/${{ github.repository }}/collaborators/${ACTOR}/permission" --jq '.role_name // "none"' 2>/dev/null || echo none) + echo "Actor ${ACTOR} has role '${ROLE}' on ${{ github.repository }}." + case "$ROLE" in + admin|maintain|write) : ;; + *) echo "::error::release-canary requires write access to ${{ github.repository }}; '${ACTOR}' has role '${ROLE}'."; exit 1 ;; esac - name: Checkout PR head From 0031b1ec584ca5443985ad770e5ca3d2c06808a5 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Fri, 29 May 2026 14:37:23 +0200 Subject: [PATCH 29/36] ci(canary): drop in-workflow role check, rely on native label gating MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Simplify the canary job: remove the gh-api role check and the redundant author_association clause. Applying a label already requires Triage+ on the repo (external people / fork-PR authors cannot label), and the same-repo guard means the published code was pushed by someone with Write access. GitHub has no per-label permission control, so 'collaborators with Triage+' is the trigger population — matching, and only slightly broader than, the old v*-beta.N tag-push flow. Versions remain throwaway 0.0.0-canary. The job stays isolated (id-token/contents/pull-requests only; no deploy/Linear secrets). --- .github/workflows/publish.yaml | 34 ++++++++++------------------------ CLAUDE.md | 8 +++++--- 2 files changed, 15 insertions(+), 27 deletions(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index c3480a71e..2c12bdb1d 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -209,11 +209,16 @@ jobs: # with external integrators). One-shot: the label is removed after a publish; # re-add it to cut another canary. # - # Trust boundary — matches the OLD `v*-beta.N` tag-push flow, which already - # let anyone with write access publish unreviewed branch code to npm via OIDC: - # * same-repo branches only (forks/external PRs cannot trigger it) - # * the label-applier must have write access, verified fail-closed - # * isolated job: only id-token/contents/PR perms; no deploy/Linear secrets + # Trust boundary — gated by GitHub's native label permissions, no in-workflow + # role check needed: + # * applying a label requires Triage+ on the repo, so external people and + # fork-PR authors cannot trigger this (GitHub has no per-label permission; + # the trigger population is "collaborators with Triage+", matching — and + # slightly broader than — the old `v*-beta.N` tag-push flow that needed Write). + # * same-repo branches only (forks excluded) → the published code was pushed + # to the repo, which requires Write access. + # * isolated job: only id-token/contents/PR perms; no deploy/Linear secrets. + # * versions are throwaway 0.0.0-canary — they can never become `latest`/`beta`. # NEVER convert this to pull_request_target. canary: name: Canary release (PR preview) @@ -221,7 +226,6 @@ jobs: github.event_name == 'pull_request' && github.event.label.name == 'release-canary' && github.event.pull_request.head.repo.full_name == github.repository - && contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.pull_request.author_association) runs-on: ubuntu-latest timeout-minutes: 15 permissions: @@ -229,24 +233,6 @@ jobs: id-token: write # npm OIDC trusted publishing + provenance pull-requests: write # post the install comment + remove the label steps: - - name: Verify the actor has write access (fail-closed) - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - ACTOR: ${{ github.event.sender.login }} - run: | - # role_name is GitHub's granular permission role: admin | maintain | - # write | triage | read (+ any custom roles). Write access or higher - # (write/maintain/admin) is the trust bar — the same people who can push - # branches and who could publish via the old `v*-beta.N` tag flow. Fully - # automatic; no manual approval. (If you add a CUSTOM role that grants - # write, add its name to the case below.) - ROLE=$(gh api "repos/${{ github.repository }}/collaborators/${ACTOR}/permission" --jq '.role_name // "none"' 2>/dev/null || echo none) - echo "Actor ${ACTOR} has role '${ROLE}' on ${{ github.repository }}." - case "$ROLE" in - admin|maintain|write) : ;; - *) echo "::error::release-canary requires write access to ${{ github.repository }}; '${ACTOR}' has role '${ROLE}'."; exit 1 ;; - esac - - name: Checkout PR head uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: diff --git a/CLAUDE.md b/CLAUDE.md index 5d37b00fe..e46fac590 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -158,9 +158,11 @@ removed after a successful publish (one-shot — re-add it to cut another canary - This repo is in **pre mode**, where `--snapshot` is disallowed — the job therefore runs `changeset pre exit` in the **throwaway CI checkout only** (never committed or pushed) before snapshotting. `.changeset/pre.json` on the branch is untouched. -- Guardrails: same-repo branches only (forks can't trigger it), the label must be applied - by someone with write access, and the job is isolated (no deploy/Linear secrets). It mirrors - the trust boundary of the old `pnpm release:beta` + `v*-beta.N` tag flow. +- Guardrails: applying a label requires Triage+ on the repo, so external people / fork-PR + authors can't trigger it; the same-repo guard means the published code was pushed by + someone with Write access (forks excluded); and the job is isolated (no deploy/Linear + secrets). This is GitHub's native label-permission gate — no in-workflow role check — + mirroring (slightly broader than) the old `pnpm release:beta` + `v*-beta.N` tag flow. ### Root scripts From 6429f627f1eaa9d946292117eed26e97622c442b Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Fri, 29 May 2026 14:48:19 +0200 Subject: [PATCH 30/36] ci(canary): list actually-published packages in the install comment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The install hint hardcoded the anchor package (npm i @anchor@), which was wrong whenever a change didn't cascade up to the anchor — e.g. a provider-only sdk PR (providers depend on @lifi/sdk, not vice-versa) or a widget-light-only widget PR (widget-light is standalone). The named package@version was never published in those cases. Now the detect step records every non-private package bumped to a 0.0.0-canary version (the exact publish set) to $RUNNER_TEMP/canary-pkgs.txt, and the comment emits one 'npm i @' per published package via --body-file. The detect + comment steps are now identical across all four repos. --- .github/workflows/publish.yaml | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 2c12bdb1d..2a050588b 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -249,14 +249,21 @@ jobs: - name: Version changed packages as canary run: pnpm changeset version --snapshot canary - - name: Detect whether a canary version was produced + - name: Detect canary packages id: detect run: | - VER=$(grep -hoE '0\.0\.0-canary-[0-9]+' packages/*/package.json | head -1 || true) - if [ -n "$VER" ]; then - echo "version=$VER" >> "$GITHUB_OUTPUT" + # List every non-private package that `changeset version --snapshot` + # bumped to a 0.0.0-canary version — i.e. exactly what will be published. + : > "$RUNNER_TEMP/canary-pkgs.txt" + for f in packages/*/package.json; do + v=$(jq -r '.version' "$f") + case "$v" in *-canary-*) ;; *) continue ;; esac + [ "$(jq -r '.private // false' "$f")" = "true" ] && continue + printf '%s@%s\n' "$(jq -r '.name' "$f")" "$v" >> "$RUNNER_TEMP/canary-pkgs.txt" + done + if [ -s "$RUNNER_TEMP/canary-pkgs.txt" ]; then echo "publish=true" >> "$GITHUB_OUTPUT" - echo "Will publish canary $VER" + echo "Canary versions to publish:"; cat "$RUNNER_TEMP/canary-pkgs.txt" else echo "::warning::No changeset in this PR — nothing to publish as canary." echo "publish=false" >> "$GITHUB_OUTPUT" @@ -276,14 +283,17 @@ jobs: if: steps.detect.outputs.publish == 'true' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - VER: ${{ steps.detect.outputs.version }} run: | - gh pr comment "${{ github.event.pull_request.number }}" --body "📦 **Canary published** under the \`canary\` dist-tag at \`${VER}\`. - - Install the exact version (recommended — \`@canary\` moves with the newest canary across PRs): - \`\`\`bash - npm i @lifi/widget@${VER} - \`\`\`" + { + echo "📦 **Canary published** under the \`canary\` dist-tag." + echo + echo "Install the exact version(s) — \`@canary\` moves with the newest canary across PRs:" + echo + echo '```bash' + while IFS= read -r pkg; do echo "npm i $pkg"; done < "$RUNNER_TEMP/canary-pkgs.txt" + echo '```' + } > "$RUNNER_TEMP/canary-comment.md" + gh pr comment "${{ github.event.pull_request.number }}" --body-file "$RUNNER_TEMP/canary-comment.md" - name: Remove the release-canary label (one-shot) if: always() From 7700ee3137a47492ba3d32741c8bebed7a2f89df Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Fri, 29 May 2026 14:55:55 +0200 Subject: [PATCH 31/36] ci(canary): extract canary steps into a composite action MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move the canary snapshot/publish/comment/label-removal steps into a local composite action (.github/actions/canary-publish) for readability. The canary job in publish.yaml is now thin (checkout → install → run the action). A `pre_mode` input handles the ephemeral `changeset pre exit` for the pre-mode repos (widget/sdk), so the action file is byte-identical across all four repos. Composite — NOT a reusable workflow — so its steps run inside the calling job and the npm OIDC trusted-publisher identity stays bound to publish.yaml; no extra trusted-publisher registration needed. The release/version/Linear flow is unchanged and still gated to non-PR events. --- .github/actions/canary-publish/action.yml | 84 +++++++++++++++++++++++ .github/workflows/publish.yaml | 66 +++--------------- 2 files changed, 92 insertions(+), 58 deletions(-) create mode 100644 .github/actions/canary-publish/action.yml diff --git a/.github/actions/canary-publish/action.yml b/.github/actions/canary-publish/action.yml new file mode 100644 index 000000000..9cb74020f --- /dev/null +++ b/.github/actions/canary-publish/action.yml @@ -0,0 +1,84 @@ +name: Canary publish +description: >- + Snapshot-publish the changed workspace packages to the npm `canary` dist-tag as + 0.0.0-canary- versions, then comment the exact install command(s) on + the PR and remove the `release-canary` label. Runs as a composite action inside + the calling job, so the npm OIDC trusted-publisher identity stays bound to the + caller workflow (publish.yaml). Expects pnpm + deps already installed. + +inputs: + pre_mode: + description: >- + Set to "true" when the repo is in Changesets pre mode. Snapshots are + disallowed in pre mode, so the action exits it in this throwaway checkout + only (never committed or pushed). + default: 'false' + +runs: + using: composite + steps: + - name: Exit pre mode (ephemeral) + if: inputs.pre_mode == 'true' + shell: bash + run: pnpm changeset pre exit + + - name: Version changed packages as canary + shell: bash + run: pnpm changeset version --snapshot canary + + - name: Detect canary packages + id: detect + shell: bash + run: | + # List every non-private package that `changeset version --snapshot` + # bumped to a 0.0.0-canary version — i.e. exactly what will be published. + : > "$RUNNER_TEMP/canary-pkgs.txt" + for f in packages/*/package.json; do + v=$(jq -r '.version' "$f") + case "$v" in *-canary-*) ;; *) continue ;; esac + [ "$(jq -r '.private // false' "$f")" = "true" ] && continue + printf '%s@%s\n' "$(jq -r '.name' "$f")" "$v" >> "$RUNNER_TEMP/canary-pkgs.txt" + done + if [ -s "$RUNNER_TEMP/canary-pkgs.txt" ]; then + echo "publish=true" >> "$GITHUB_OUTPUT" + echo "Canary versions to publish:"; cat "$RUNNER_TEMP/canary-pkgs.txt" + else + echo "::warning::No changeset in this PR — nothing to publish as canary." + echo "publish=false" >> "$GITHUB_OUTPUT" + fi + + - name: Build + prerelease transform + if: steps.detect.outputs.publish == 'true' + shell: bash + run: pnpm changeset:prepublish + + - name: Publish canary to npm + if: steps.detect.outputs.publish == 'true' + shell: bash + run: pnpm changeset publish --tag canary --no-git-tag + env: + NPM_CONFIG_PROVENANCE: true + + - name: Comment the install command on the PR + if: steps.detect.outputs.publish == 'true' + shell: bash + env: + GH_TOKEN: ${{ github.token }} + run: | + { + echo "📦 **Canary published** under the \`canary\` dist-tag." + echo + echo "Install the exact version(s) — \`@canary\` moves with the newest canary across PRs:" + echo + echo '```bash' + while IFS= read -r pkg; do echo "npm i $pkg"; done < "$RUNNER_TEMP/canary-pkgs.txt" + echo '```' + } > "$RUNNER_TEMP/canary-comment.md" + gh pr comment "${{ github.event.pull_request.number }}" --body-file "$RUNNER_TEMP/canary-comment.md" + + - name: Remove the release-canary label (one-shot) + if: always() + shell: bash + env: + GH_TOKEN: ${{ github.token }} + run: gh pr edit "${{ github.event.pull_request.number }}" --remove-label release-canary || true diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 2a050588b..942ea3714 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -241,62 +241,12 @@ jobs: - name: Install dependencies uses: ./.github/actions/pnpm-install - # widget is in Changesets pre mode; `--snapshot` is disallowed in pre - # mode, so exit it in THIS throwaway checkout only. Never committed/pushed. - - name: Exit pre mode (ephemeral) - run: pnpm changeset pre exit - - name: Version changed packages as canary - run: pnpm changeset version --snapshot canary - - - name: Detect canary packages - id: detect - run: | - # List every non-private package that `changeset version --snapshot` - # bumped to a 0.0.0-canary version — i.e. exactly what will be published. - : > "$RUNNER_TEMP/canary-pkgs.txt" - for f in packages/*/package.json; do - v=$(jq -r '.version' "$f") - case "$v" in *-canary-*) ;; *) continue ;; esac - [ "$(jq -r '.private // false' "$f")" = "true" ] && continue - printf '%s@%s\n' "$(jq -r '.name' "$f")" "$v" >> "$RUNNER_TEMP/canary-pkgs.txt" - done - if [ -s "$RUNNER_TEMP/canary-pkgs.txt" ]; then - echo "publish=true" >> "$GITHUB_OUTPUT" - echo "Canary versions to publish:"; cat "$RUNNER_TEMP/canary-pkgs.txt" - else - echo "::warning::No changeset in this PR — nothing to publish as canary." - echo "publish=false" >> "$GITHUB_OUTPUT" - fi - - - name: Build + prerelease transform - if: steps.detect.outputs.publish == 'true' - run: pnpm changeset:prepublish - - - name: Publish canary to npm - if: steps.detect.outputs.publish == 'true' - run: pnpm changeset publish --tag canary --no-git-tag - env: - NPM_CONFIG_PROVENANCE: true - - - name: Comment the install command on the PR - if: steps.detect.outputs.publish == 'true' - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - { - echo "📦 **Canary published** under the \`canary\` dist-tag." - echo - echo "Install the exact version(s) — \`@canary\` moves with the newest canary across PRs:" - echo - echo '```bash' - while IFS= read -r pkg; do echo "npm i $pkg"; done < "$RUNNER_TEMP/canary-pkgs.txt" - echo '```' - } > "$RUNNER_TEMP/canary-comment.md" - gh pr comment "${{ github.event.pull_request.number }}" --body-file "$RUNNER_TEMP/canary-comment.md" - - - name: Remove the release-canary label (one-shot) - if: always() - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: gh pr edit "${{ github.event.pull_request.number }}" --remove-label release-canary || true + # Snapshot-publish to the `canary` dist-tag + comment the install command. + # Composite (not reusable workflow) so OIDC stays bound to publish.yaml. + # pre_mode: true — widget is in Changesets pre mode (snapshot needs an + # ephemeral `pre exit`, done inside the action; never committed). + - name: Publish canary + uses: ./.github/actions/canary-publish + with: + pre_mode: 'true' From 4336e5a91e35833b15f647091d2a8cc199198052 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Fri, 29 May 2026 15:09:16 +0200 Subject: [PATCH 32/36] ci: harden publish workflow (least-privilege + cache isolation) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adopt two further workflow hardenings we didn't already have (the version-PR/publish split was already in place): - permissions: {} at the workflow top level — deny-by-default; every job declares only what it needs. This also fixes sdk, which had no top-level permissions block (it inherited the repo default token scope). Added explicit contents: read to the verify jobs that relied on the old top-level default (sdk, bigmi). - skip the pnpm store cache in privileged jobs (changesets / release / canary, plus explorer's deploy-prod) via a new cache input on the pnpm-install composite (default true). Prevents restoring a poisoned dependency cache into a context that holds publish (id-token) or write permissions. verify keeps the cache (read-only, runs on every push). Marginal under our write-access trust model, but it's the defense-in-depth best practice. cancel-in-progress: false and per-job least-privilege were already in place. --- .github/actions/pnpm-install/action.yaml | 13 +++++++++++-- .github/workflows/publish.yaml | 9 +++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/.github/actions/pnpm-install/action.yaml b/.github/actions/pnpm-install/action.yaml index 1ec4e5a73..82f1cf103 100644 --- a/.github/actions/pnpm-install/action.yaml +++ b/.github/actions/pnpm-install/action.yaml @@ -1,5 +1,13 @@ name: 'PNPM install' -description: 'Run pnpm install with pnpm store cache' +description: 'Run pnpm install (pnpm store cache on by default)' + +inputs: + cache: + description: >- + Use the pnpm store cache. Set to "false" in privileged jobs + (publish / version PR / canary) so a poisoned cache can't be restored + into a context that holds publish (id-token) or write permissions. + default: 'true' runs: using: 'composite' @@ -11,7 +19,8 @@ runs: with: node-version: '24' registry-url: 'https://registry.npmjs.org' - cache: 'pnpm' # https://github.com/actions/setup-node/blob/main/docs/advanced-usage.md#caching-packages-dependencies + # '' disables caching entirely (no restore, no save) for privileged jobs. + cache: ${{ inputs.cache == 'true' && 'pnpm' || '' }} - name: Install dependencies env: HUSKY: '0' # By default do not run HUSKY install diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 942ea3714..654cb99e4 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -27,8 +27,7 @@ concurrency: group: release-${{ github.ref }} cancel-in-progress: false -permissions: - contents: read +permissions: {} # each job declares only the permissions it needs jobs: verify: @@ -68,6 +67,8 @@ jobs: fetch-depth: 0 - name: Install dependencies uses: ./.github/actions/pnpm-install + with: + cache: 'false' # privileged job — don't restore a potentially poisoned cache - name: Create version pull request id: changesets uses: changesets/action@63a615b9cd06ba9a3e6d13796c7fbcb080a60a0b # v1.8.0 @@ -95,6 +96,8 @@ jobs: fetch-depth: 0 - name: Install dependencies uses: ./.github/actions/pnpm-install + with: + cache: 'false' # privileged job — don't restore a potentially poisoned cache - name: Publish to npm id: changesets uses: changesets/action@63a615b9cd06ba9a3e6d13796c7fbcb080a60a0b # v1.8.0 @@ -241,6 +244,8 @@ jobs: - name: Install dependencies uses: ./.github/actions/pnpm-install + with: + cache: 'false' # privileged job — don't restore a potentially poisoned cache # Snapshot-publish to the `canary` dist-tag + comment the install command. # Composite (not reusable workflow) so OIDC stays bound to publish.yaml. From e618632536e96ae35baff189778fe39657b5945a Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Fri, 29 May 2026 15:25:36 +0200 Subject: [PATCH 33/36] ci(canary): simplify composite (auto-detect pre mode, single-pass detect) Two cleanups from a simplification review (no behavior change): - Drop the pre_mode input; detect Changesets pre mode at runtime from .changeset/pre.json instead. Removes a dual source of truth (callers no longer assert pre_mode that could drift from the committed pre.json) and makes the composite self-configuring + every caller identical (no 'with:'). - Replace the per-file 3x-jq detect loop with a single jq pass over packages/*/package.json (verified equivalent output). --- .github/actions/canary-publish/action.yml | 33 +++++++++-------------- .github/workflows/publish.yaml | 6 ++--- 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/.github/actions/canary-publish/action.yml b/.github/actions/canary-publish/action.yml index 9cb74020f..cfc55e6e8 100644 --- a/.github/actions/canary-publish/action.yml +++ b/.github/actions/canary-publish/action.yml @@ -6,21 +6,19 @@ description: >- the calling job, so the npm OIDC trusted-publisher identity stays bound to the caller workflow (publish.yaml). Expects pnpm + deps already installed. -inputs: - pre_mode: - description: >- - Set to "true" when the repo is in Changesets pre mode. Snapshots are - disallowed in pre mode, so the action exits it in this throwaway checkout - only (never committed or pushed). - default: 'false' - runs: using: composite steps: - - name: Exit pre mode (ephemeral) - if: inputs.pre_mode == 'true' + # Snapshots are disallowed in Changesets pre mode. If this repo is in pre mode + # (committed .changeset/pre.json), exit it in THIS throwaway checkout only — + # never committed or pushed. Stable-line repos have no pre.json and skip this. + - name: Exit pre mode if active (ephemeral) shell: bash - run: pnpm changeset pre exit + run: | + if [ -f .changeset/pre.json ]; then + echo "Exiting Changesets pre mode for the snapshot (ephemeral, not committed)." + pnpm changeset pre exit + fi - name: Version changed packages as canary shell: bash @@ -30,15 +28,10 @@ runs: id: detect shell: bash run: | - # List every non-private package that `changeset version --snapshot` - # bumped to a 0.0.0-canary version — i.e. exactly what will be published. - : > "$RUNNER_TEMP/canary-pkgs.txt" - for f in packages/*/package.json; do - v=$(jq -r '.version' "$f") - case "$v" in *-canary-*) ;; *) continue ;; esac - [ "$(jq -r '.private // false' "$f")" = "true" ] && continue - printf '%s@%s\n' "$(jq -r '.name' "$f")" "$v" >> "$RUNNER_TEMP/canary-pkgs.txt" - done + # Every non-private package that `changeset version --snapshot` bumped to a + # 0.0.0-canary version — i.e. exactly what will be published. + jq -r 'select((.private // false) | not) | select(.version | test("-canary-")) | "\(.name)@\(.version)"' \ + packages/*/package.json > "$RUNNER_TEMP/canary-pkgs.txt" if [ -s "$RUNNER_TEMP/canary-pkgs.txt" ]; then echo "publish=true" >> "$GITHUB_OUTPUT" echo "Canary versions to publish:"; cat "$RUNNER_TEMP/canary-pkgs.txt" diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 654cb99e4..dd6c80e4f 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -249,9 +249,7 @@ jobs: # Snapshot-publish to the `canary` dist-tag + comment the install command. # Composite (not reusable workflow) so OIDC stays bound to publish.yaml. - # pre_mode: true — widget is in Changesets pre mode (snapshot needs an - # ephemeral `pre exit`, done inside the action; never committed). + # The action auto-detects pre mode from .changeset/pre.json and exits it + # ephemerally when present (widget is currently in pre-beta). - name: Publish canary uses: ./.github/actions/canary-publish - with: - pre_mode: 'true' From 5e63c69571fc6ac2d6e1717c99df8794fb58172e Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Fri, 29 May 2026 15:35:03 +0200 Subject: [PATCH 34/36] chore: remove orphaned release:build scripts (dead code) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The per-package 'release:build': 'pnpm build' alias was only ever invoked by the old root release:build (pnpm -r --parallel release:build), which the Changesets migration deleted. Nothing calls it now — the new flow uses changeset:prepublish (pnpm build + per-package build:prerelease). sdk and bigmi already dropped these during the migration; this brings widget in line. --- packages/wallet-management/package.json | 1 - packages/widget-light/package.json | 1 - packages/widget-provider-bitcoin/package.json | 1 - packages/widget-provider-ethereum/package.json | 1 - packages/widget-provider-solana/package.json | 1 - packages/widget-provider-sui/package.json | 1 - packages/widget-provider-tron/package.json | 1 - packages/widget-provider/package.json | 1 - packages/widget/package.json | 1 - 9 files changed, 9 deletions(-) diff --git a/packages/wallet-management/package.json b/packages/wallet-management/package.json index c2ac5c22f..a423d7947 100644 --- a/packages/wallet-management/package.json +++ b/packages/wallet-management/package.json @@ -11,7 +11,6 @@ "build": "pnpm clean && tsdown", "build:prerelease": "node ../../scripts/prerelease.js && cpy '../../README.md' .", "build:postrelease": "node ../../scripts/postrelease.js && rm -rf README.md", - "release:build": "pnpm build", "clean": "rm -rf dist", "check:types": "tsc --noEmit", "check:circular-deps": "madge --circular $(find ./src -name '*.ts' -o -name '*.tsx')", diff --git a/packages/widget-light/package.json b/packages/widget-light/package.json index 305546e58..cf6dd01f0 100644 --- a/packages/widget-light/package.json +++ b/packages/widget-light/package.json @@ -20,7 +20,6 @@ "build:prerelease": "node ../../scripts/prerelease.js && cpy '../../README.md' .", "build:postrelease": "node ../../scripts/postrelease.js && rm -rf README.md", "build:version": "node ../../scripts/version.js", - "release:build": "pnpm build", "clean": "rm -rf dist", "check:types": "tsc --noEmit", "check:circular-deps": "madge --circular $(find ./src -name '*.ts' -o -name '*.tsx')", diff --git a/packages/widget-provider-bitcoin/package.json b/packages/widget-provider-bitcoin/package.json index 35e042c9f..8ddef9e47 100644 --- a/packages/widget-provider-bitcoin/package.json +++ b/packages/widget-provider-bitcoin/package.json @@ -11,7 +11,6 @@ "build": "pnpm clean && tsdown", "build:prerelease": "node ../../scripts/prerelease.js && cpy '../../README.md' .", "build:postrelease": "node ../../scripts/postrelease.js && rm -rf README.md", - "release:build": "pnpm build", "clean": "rm -rf dist", "check:types": "tsc --noEmit", "check:circular-deps": "madge --circular $(find ./src -name '*.ts' -o -name '*.tsx')", diff --git a/packages/widget-provider-ethereum/package.json b/packages/widget-provider-ethereum/package.json index bead45870..3bd57ef38 100644 --- a/packages/widget-provider-ethereum/package.json +++ b/packages/widget-provider-ethereum/package.json @@ -11,7 +11,6 @@ "build": "pnpm clean && tsdown", "build:prerelease": "node ../../scripts/prerelease.js && cpy '../../README.md' .", "build:postrelease": "node ../../scripts/postrelease.js && rm -rf README.md", - "release:build": "pnpm build", "clean": "rm -rf dist", "check:types": "tsc --noEmit", "check:circular-deps": "madge --circular $(find ./src -name '*.ts' -o -name '*.tsx')", diff --git a/packages/widget-provider-solana/package.json b/packages/widget-provider-solana/package.json index 6efde0d21..8061b93dd 100644 --- a/packages/widget-provider-solana/package.json +++ b/packages/widget-provider-solana/package.json @@ -11,7 +11,6 @@ "build": "pnpm clean && tsdown", "build:prerelease": "node ../../scripts/prerelease.js && cpy '../../README.md' .", "build:postrelease": "node ../../scripts/postrelease.js && rm -rf README.md", - "release:build": "pnpm build", "clean": "rm -rf dist", "check:types": "tsc --noEmit", "check:circular-deps": "madge --circular $(find ./src -name '*.ts' -o -name '*.tsx')", diff --git a/packages/widget-provider-sui/package.json b/packages/widget-provider-sui/package.json index efeee1e5b..4ad544569 100644 --- a/packages/widget-provider-sui/package.json +++ b/packages/widget-provider-sui/package.json @@ -11,7 +11,6 @@ "build": "pnpm clean && tsdown", "build:prerelease": "node ../../scripts/prerelease.js && cpy '../../README.md' .", "build:postrelease": "node ../../scripts/postrelease.js && rm -rf README.md", - "release:build": "pnpm build", "clean": "rm -rf dist", "check:types": "tsc --noEmit", "check:circular-deps": "madge --circular $(find ./src -name '*.ts' -o -name '*.tsx')", diff --git a/packages/widget-provider-tron/package.json b/packages/widget-provider-tron/package.json index 4e9f7c861..4a31d1470 100644 --- a/packages/widget-provider-tron/package.json +++ b/packages/widget-provider-tron/package.json @@ -11,7 +11,6 @@ "build": "pnpm clean && tsdown", "build:prerelease": "node ../../scripts/prerelease.js && cpy '../../README.md' .", "build:postrelease": "node ../../scripts/postrelease.js && rm -rf README.md", - "release:build": "pnpm build", "clean": "rm -rf dist", "check:types": "tsc --noEmit", "check:circular-deps": "madge --circular $(find ./src -name '*.ts' -o -name '*.tsx')", diff --git a/packages/widget-provider/package.json b/packages/widget-provider/package.json index 2de20ccaa..3a0d0351b 100644 --- a/packages/widget-provider/package.json +++ b/packages/widget-provider/package.json @@ -11,7 +11,6 @@ "build": "pnpm clean && tsdown", "build:prerelease": "node ../../scripts/prerelease.js && cpy '../../README.md' .", "build:postrelease": "node ../../scripts/postrelease.js && rm -rf README.md", - "release:build": "pnpm build", "clean": "rm -rf dist", "check:types": "tsc --noEmit", "check:circular-deps": "madge --circular $(find ./src -name '*.ts' -o -name '*.tsx')", diff --git a/packages/widget/package.json b/packages/widget/package.json index 085b67e0a..f3e4899cd 100644 --- a/packages/widget/package.json +++ b/packages/widget/package.json @@ -12,7 +12,6 @@ "build:prerelease": "node ../../scripts/prerelease.js && cpy '../../README.md' .", "build:postrelease": "node ../../scripts/postrelease.js && rm -rf README.md", "build:version": "node ../../scripts/version.js", - "release:build": "pnpm build", "clean": "rm -rf dist", "check:types": "tsc --noEmit", "check:circular-deps": "madge --circular $(find ./src -name '*.ts' -o -name '*.tsx')", From a60c594e3a8fe4c17e57607c2d36056e9161bddc Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Fri, 29 May 2026 15:46:49 +0200 Subject: [PATCH 35/36] docs(ci): tighten release-workflow comments and action descriptions Trim verbose prose added during the migration (no logic change): - canary trust-boundary comment block in publish.yaml: ~19 -> ~11 lines, keeping the Triage+/same-repo/isolated/throwaway rationale and the 'NEVER pull_request_target' warning. - canary-publish action description: drop step re-narration + the OIDC line (the OIDC-binding rationale stays at the publish.yaml call site); pre-mode comment 3 -> 2. - pnpm-install cache input description trimmed to 2 lines. - CLAUDE.md canary guardrails: drop the 'mirroring the old tag flow' clause. - sdk linear-meta: trim filler + fix a stale CLAUDE.md cross-ref; explorer deploy-prod gating comment 5 -> 2 lines. --- .github/actions/canary-publish/action.yml | 12 ++++-------- .github/actions/pnpm-install/action.yaml | 5 ++--- .github/workflows/publish.yaml | 20 ++++++-------------- CLAUDE.md | 3 +-- 4 files changed, 13 insertions(+), 27 deletions(-) diff --git a/.github/actions/canary-publish/action.yml b/.github/actions/canary-publish/action.yml index cfc55e6e8..94108651d 100644 --- a/.github/actions/canary-publish/action.yml +++ b/.github/actions/canary-publish/action.yml @@ -1,17 +1,13 @@ name: Canary publish description: >- - Snapshot-publish the changed workspace packages to the npm `canary` dist-tag as - 0.0.0-canary- versions, then comment the exact install command(s) on - the PR and remove the `release-canary` label. Runs as a composite action inside - the calling job, so the npm OIDC trusted-publisher identity stays bound to the - caller workflow (publish.yaml). Expects pnpm + deps already installed. + Snapshot-publish changed workspace packages to the npm `canary` dist-tag, + comment the install command on the PR, and remove the `release-canary` label. runs: using: composite steps: - # Snapshots are disallowed in Changesets pre mode. If this repo is in pre mode - # (committed .changeset/pre.json), exit it in THIS throwaway checkout only — - # never committed or pushed. Stable-line repos have no pre.json and skip this. + # Snapshots are disallowed in Changesets pre mode — exit it in THIS throwaway + # checkout only (never committed/pushed). Stable-line repos have no pre.json. - name: Exit pre mode if active (ephemeral) shell: bash run: | diff --git a/.github/actions/pnpm-install/action.yaml b/.github/actions/pnpm-install/action.yaml index 82f1cf103..e04995fc4 100644 --- a/.github/actions/pnpm-install/action.yaml +++ b/.github/actions/pnpm-install/action.yaml @@ -4,9 +4,8 @@ description: 'Run pnpm install (pnpm store cache on by default)' inputs: cache: description: >- - Use the pnpm store cache. Set to "false" in privileged jobs - (publish / version PR / canary) so a poisoned cache can't be restored - into a context that holds publish (id-token) or write permissions. + Use the pnpm store cache. Set "false" in privileged jobs (publish / version + PR / canary) so a poisoned cache can't reach a context with publish/write perms. default: 'true' runs: diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index dd6c80e4f..931f4c19c 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -207,21 +207,13 @@ jobs: # Canary preview release (opt-in, per PR). # # Add the `release-canary` label to a PR to publish a throwaway - # 0.0.0-canary- build of the changed packages to npm under the - # `canary` dist-tag, so the branch can be shared for testing (internally or - # with external integrators). One-shot: the label is removed after a publish; - # re-add it to cut another canary. + # 0.0.0-canary- build to the npm `canary` dist-tag for testing. + # One-shot: the label is removed after a publish; re-add to cut another. # - # Trust boundary — gated by GitHub's native label permissions, no in-workflow - # role check needed: - # * applying a label requires Triage+ on the repo, so external people and - # fork-PR authors cannot trigger this (GitHub has no per-label permission; - # the trigger population is "collaborators with Triage+", matching — and - # slightly broader than — the old `v*-beta.N` tag-push flow that needed Write). - # * same-repo branches only (forks excluded) → the published code was pushed - # to the repo, which requires Write access. - # * isolated job: only id-token/contents/PR perms; no deploy/Linear secrets. - # * versions are throwaway 0.0.0-canary — they can never become `latest`/`beta`. + # Trust boundary (no in-workflow role check): applying a label requires Triage+, + # and the same-repo guard means the code was pushed with Write access — so + # forks/externals can't trigger it. The job is isolated (no deploy/Linear + # secrets), and 0.0.0-canary can never become `latest`/`beta`. # NEVER convert this to pull_request_target. canary: name: Canary release (PR preview) diff --git a/CLAUDE.md b/CLAUDE.md index e46fac590..872acb777 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -161,8 +161,7 @@ removed after a successful publish (one-shot — re-add it to cut another canary - Guardrails: applying a label requires Triage+ on the repo, so external people / fork-PR authors can't trigger it; the same-repo guard means the published code was pushed by someone with Write access (forks excluded); and the job is isolated (no deploy/Linear - secrets). This is GitHub's native label-permission gate — no in-workflow role check — - mirroring (slightly broader than) the old `pnpm release:beta` + `v*-beta.N` tag flow. + secrets). This is GitHub's native label-permission gate — no in-workflow role check. ### Root scripts From 01bb552bf6533e36adbc95d5a41bdc2cf9031828 Mon Sep 17 00:00:00 2001 From: Eugene Chybisov Date: Fri, 29 May 2026 17:48:00 +0200 Subject: [PATCH 36/36] ci: drop custom changeset-check gate in favor of changeset-bot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace the bespoke changeset-check.yaml with the canonical changeset-bot GitHub App (comments a changeset reminder on PRs). Hard CI enforcement was never the real gate — nothing publishes until the maintainer-reviewed 'version packages' PR merges. CLAUDE.md + the changeset skill are updated to describe the bot (a reminder, not a block). --- .claude/skills/changeset/SKILL.md | 5 +- .github/workflows/changeset-check.yaml | 84 -------------------------- CLAUDE.md | 2 +- 3 files changed, 4 insertions(+), 87 deletions(-) delete mode 100644 .github/workflows/changeset-check.yaml diff --git a/.claude/skills/changeset/SKILL.md b/.claude/skills/changeset/SKILL.md index d6b2f17eb..ac543f16c 100644 --- a/.claude/skills/changeset/SKILL.md +++ b/.claude/skills/changeset/SKILL.md @@ -16,8 +16,9 @@ description: >- This repo releases with **Changesets**: every PR that changes a publishable package carries a small `.changeset/*.md` file declaring which packages bump and by how much. `changeset version` later consumes those files into per-package `CHANGELOG.md`s and -version bumps. No changeset → no release for that change, and CI (`changeset-check.yaml`) -fails the PR. Your job here is to write a correct changeset for the work in progress. +version bumps. No changeset → no release for that change; `changeset-bot` comments a +reminder on the PR (a nudge, not a hard block — the maintainer-reviewed Version PR is the +real gate). Your job here is to write a correct changeset for the work in progress. ## Steps diff --git a/.github/workflows/changeset-check.yaml b/.github/workflows/changeset-check.yaml deleted file mode 100644 index f68d57183..000000000 --- a/.github/workflows/changeset-check.yaml +++ /dev/null @@ -1,84 +0,0 @@ -name: Changeset Check - -# Fail-closed PR gate: if a pull request modifies a PUBLISHABLE package but -# adds no changeset, the build fails. Docs-only changes and private/ignored -# packages (widget-embedded, widget-playground*) are exempt. -on: - pull_request: - branches: [main] - -permissions: - contents: read - -concurrency: - group: changeset-check-${{ github.event.pull_request.number }} - cancel-in-progress: true - -jobs: - changeset-check: - name: Changeset present - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - # Need history back to the merge base for the diff + changeset status. - fetch-depth: 0 - - - name: Install dependencies - uses: ./.github/actions/pnpm-install - - # Layer 1 — Changesets' own view: errors if publishable packages changed - # since the base branch but no changeset is present. - - name: changeset status - run: pnpm changeset status --since=origin/${{ github.base_ref }} - - # Layer 2 — Independent fail-closed guard. Even if `changeset status` - # heuristics miss something, fail when publishable package source changed - # and no new .changeset/*.md was added in this PR. - - name: Guard — publishable change requires a changeset - env: - BASE: origin/${{ github.base_ref }} - run: | - set -euo pipefail - - # Publishable package directories (private packages are intentionally excluded: - # widget-embedded, widget-playground, widget-playground-next, widget-playground-vite). - # Trailing slash = directory pathspec; git matches everything beneath it without - # needing the (glob) magic prefix that `**` would require. - PUBLISHABLE=( - 'packages/widget/' - 'packages/wallet-management/' - 'packages/widget-light/' - 'packages/widget-provider/' - 'packages/widget-provider-bitcoin/' - 'packages/widget-provider-ethereum/' - 'packages/widget-provider-solana/' - 'packages/widget-provider-sui/' - 'packages/widget-provider-tron/' - ) - - # Changed files under publishable packages, excluding docs-only files - # (*.md) which don't warrant a release. - CHANGED=$(git diff --name-only "$BASE"...HEAD -- "${PUBLISHABLE[@]}" \ - | grep -v -E '\.md$' || true) - - # New changeset markdown files added in this PR (README.md is not a changeset). - ADDED_CHANGESETS=$(git diff --name-only --diff-filter=A "$BASE"...HEAD -- '.changeset/*.md' \ - | grep -v -E '\.changeset/README\.md$' || true) - - if [ -n "$CHANGED" ] && [ -z "$ADDED_CHANGESETS" ]; then - echo "::error::A publishable package changed but no changeset was added." - echo "Changed publishable files:" - echo "$CHANGED" | sed 's/^/ - /' - echo "" - echo "Add one with: pnpm changeset" - echo "(feat -> minor, fix -> patch, breaking -> major; skip cascade-only dependents)" - exit 1 - fi - - echo "Changeset check passed." - if [ -z "$CHANGED" ]; then - echo "No publishable package source changed (docs/private-only or no package change)." - else - echo "Publishable changes are accompanied by a changeset." - fi diff --git a/CLAUDE.md b/CLAUDE.md index 872acb777..51b984914 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -130,7 +130,7 @@ pnpm changeset # interactive: pick packages + bump type, write a summary - Do **not** author changesets for cascade-only dependents — Changesets bumps internal dependents automatically (`updateInternalDependencies: minor`). - Publishable packages: `@lifi/widget`, `@lifi/wallet-management`, `@lifi/widget-light`, `@lifi/widget-provider`, `@lifi/widget-provider-{bitcoin,ethereum,solana,sui,tron}`. - Private/ignored (never need a changeset): `@lifi/widget-embedded`, `@lifi/widget-playground`, `@lifi/widget-playground-next`, `@lifi/widget-playground-vite`, examples, e2e. -- CI enforces this: `.github/workflows/changeset-check.yaml` fails any PR that edits a publishable package without adding a changeset. +- `changeset-bot` comments a reminder on any PR that edits a publishable package without a changeset (a nudge, not a hard block — the maintainer-reviewed Version PR is the real gate). ### PRE-MODE — currently in `beta` (DO NOT EXIT)