Skip to content

chore: sync alpha from beta after 3.6.0 promotion - #763

Merged
ankurdotb merged 43 commits into
alphafrom
sync/beta-into-alpha
Sep 14, 2026
Merged

ankurdotb merged 43 commits into
alphafrom
sync/beta-into-alpha

Conversation

@eitjuh

@eitjuh eitjuh commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Syncs alpha from beta after the 3.6.0 promotion (main → beta → alpha) — step 5 of the release process. Brings the stable 3.6.0 release state, the encrypt web-worker offload, the structured permit/signing event work, and the accumulated dependency and docs updates.

beta already contains all of main (including 6fd9352), so merging beta carries main's changes into alpha too — and conflicts less than merging main directly (16 files vs 20, because main's docs are retargeted to main/stable while alpha shares the beta docs space).

Alpha keeps its protocol pin

@fhevm/sdk stays at 0.14.1-1 (beta is on 0.13.2), now resolved against beta's newer viem 2.56.0 / zod 4.5.4. Git merges that line without a conflict, so it was easy to lose silently — worth confirming in review, since it's the reason alpha exists. pnpm-lock.yaml was regenerated from the merged manifests rather than hand-resolved.

Conflicts and how they were resolved

16 files conflicted. Most were mechanical; one needed real judgement.

packages/sdk/src/credentials/credential-service.ts — the only interesting one. Both sides rewrote the same permit methods for unrelated reasons, so they were combined rather than one chosen:

alpha's V2 logic now runs inside beta's plumbing, so every permit failure emits once while credential/vault resolution stays off the onEvent stream. One judgement call worth a look: beta dropped the early instanceof ZamaError return, which would have let the unified-permit probe re-read already-typed errors — so the probe is now applied only to unclassified errors, preserving alpha's original ordering.

Additive, both sides kept — errors/base.ts, errors/match.ts, index.ts, relayer/types.ts (alpha's Unified* codes, beta's UnshieldAlreadyFinalized and dispose?()).

Picked a side — namespaces/permits.ts (beta's "authorizing" spelling, the repo convention, plus alpha's wildcard note); test/test-nextjs (next ^16.3.3, beta's security bump from #745); both package.json versions (3.6.0); errors.md (beta's table plus alpha's wildcard-delegate row); CHANGELOG.md (both histories interleaved newest-first).

Regenerated, not hand-merged — pnpm-lock.yaml, packages/sdk/etc/*.api.md, llms.txt, llms-full.txt, docs/llm/corpus-manifest.json.

Verification

typecheck, lint, format, 2115 tests across 176 files, api-report:check, llm:check, docs:check-target alpha, docs:check-links all pass. Both sides' test suites coexist in credential-service.test.ts and pass together.

docs:retarget alpha was a no-op — the URLs already self-target alpha.

⚠️ Merging this

This must land as a merge commit, not squash or rebase. Either linear option drops beta's commits from alpha's ancestry, which leaves the merge base pinned at 367f1926 and makes every future sync re-conflict on content that is already identical. Squash additionally collapses the release signal semantic-release reads.

Ruleset 13450741 currently enforces required_linear_history on alpha with no bypass actors, so the merge-commit option may be blocked — that likely needs the branch-protection override described in the release process doc. Worth considering whether that rule should apply to beta/alpha at all, given the documented workflow requires merge commits between exactly these branches.

Known gap, pre-existing

alpha's docs/gitbook/src/reference/sdk/errors.md never documented UnifiedPermitNotSupportedError / UnifiedDecryptionUnsupportedError. Left alone to keep this merge clean — worth a separate follow-up.

🤖 Generated with Claude Code

dependabot Bot and others added 30 commits August 27, 2026 15:50
…ct-viem (#678)

Bumps [typescript](https://github.com/microsoft/TypeScript) from 6.0.3
to 7.0.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 7.0.2</h2>
<p><a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/">https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/</a></p>
<p>This tag was originally released at: <a
href="https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2">https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/TypeScript/commit/1e4744d68260a7cb91b62b12edc3f6a2187faaf1"><code>1e4744d</code></a>
Merge branch 'main' into ts7-release</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/a5a219c3b5da0db4fa0ecf6c0b1f588c9af9c669"><code>a5a219c</code></a><code>microsoft/typescript-go#4558</code></li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ecfe30dce91368d52c9a49b6095bb0b673a238f8"><code>ecfe30d</code></a>
Update status localization</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/5de25b5f8fec2ca35eadaed041f1f06d2e214895"><code>5de25b5</code></a>
Hide executable name in TypeScript status</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/d7ce74a75da2b80e8201506a1599c06549432b93"><code>d7ce74a</code></a>
Show bundled TypeScript version for packaged servers</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/29be66a607707f90d7a53103a4469bb3015a4d54"><code>29be66a</code></a>
Correct TS 7 release version to 7.0.2</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ed2bd1bfa4aac5211ce4bc58fcd1313c7eddc8ff"><code>ed2bd1b</code></a>
Merge branch 'main' into ts7-release</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/887307575c58ea640dbeba3b4e8fdb6347cd3044"><code>8873075</code></a>
Bump the github-actions group across 1 directory with 3 updates
(microsoft/ty...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/9427131ae2d4e230a90ee8a09daac4e75da3e311"><code>9427131</code></a>
Set up stable / nightly extension split, other prep
(microsoft/typescript-go#...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/d4eaca5460a1f5f02a829e62706794b0a6fb903e"><code>d4eaca5</code></a><code>microsoft/typescript-go#4549</code></li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/TypeScript/compare/v6.0.3...v7.0.2">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~microsoft1es">microsoft1es</a>, a new
releaser for typescript since your current version.</p>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ct-turnkey-wallet (#676)

Bumps [typescript](https://github.com/microsoft/TypeScript) from 6.0.3
to 7.0.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 7.0.2</h2>
<p><a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/">https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/</a></p>
<p>This tag was originally released at: <a
href="https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2">https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/TypeScript/commit/1e4744d68260a7cb91b62b12edc3f6a2187faaf1"><code>1e4744d</code></a>
Merge branch 'main' into ts7-release</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/a5a219c3b5da0db4fa0ecf6c0b1f588c9af9c669"><code>a5a219c</code></a><code>microsoft/typescript-go#4558</code></li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ecfe30dce91368d52c9a49b6095bb0b673a238f8"><code>ecfe30d</code></a>
Update status localization</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/5de25b5f8fec2ca35eadaed041f1f06d2e214895"><code>5de25b5</code></a>
Hide executable name in TypeScript status</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/d7ce74a75da2b80e8201506a1599c06549432b93"><code>d7ce74a</code></a>
Show bundled TypeScript version for packaged servers</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/29be66a607707f90d7a53103a4469bb3015a4d54"><code>29be66a</code></a>
Correct TS 7 release version to 7.0.2</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ed2bd1bfa4aac5211ce4bc58fcd1313c7eddc8ff"><code>ed2bd1b</code></a>
Merge branch 'main' into ts7-release</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/887307575c58ea640dbeba3b4e8fdb6347cd3044"><code>8873075</code></a>
Bump the github-actions group across 1 directory with 3 updates
(microsoft/ty...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/9427131ae2d4e230a90ee8a09daac4e75da3e311"><code>9427131</code></a>
Set up stable / nightly extension split, other prep
(microsoft/typescript-go#...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/d4eaca5460a1f5f02a829e62706794b0a6fb903e"><code>d4eaca5</code></a><code>microsoft/typescript-go#4549</code></li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/TypeScript/compare/v6.0.3...v7.0.2">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~microsoft1es">microsoft1es</a>, a new
releaser for typescript since your current version.</p>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ct-ethers (#675)

Bumps [typescript](https://github.com/microsoft/TypeScript) from 6.0.3
to 7.0.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 7.0.2</h2>
<p><a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/">https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/</a></p>
<p>This tag was originally released at: <a
href="https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2">https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/TypeScript/commit/1e4744d68260a7cb91b62b12edc3f6a2187faaf1"><code>1e4744d</code></a>
Merge branch 'main' into ts7-release</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/a5a219c3b5da0db4fa0ecf6c0b1f588c9af9c669"><code>a5a219c</code></a><code>microsoft/typescript-go#4558</code></li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ecfe30dce91368d52c9a49b6095bb0b673a238f8"><code>ecfe30d</code></a>
Update status localization</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/5de25b5f8fec2ca35eadaed041f1f06d2e214895"><code>5de25b5</code></a>
Hide executable name in TypeScript status</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/d7ce74a75da2b80e8201506a1599c06549432b93"><code>d7ce74a</code></a>
Show bundled TypeScript version for packaged servers</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/29be66a607707f90d7a53103a4469bb3015a4d54"><code>29be66a</code></a>
Correct TS 7 release version to 7.0.2</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ed2bd1bfa4aac5211ce4bc58fcd1313c7eddc8ff"><code>ed2bd1b</code></a>
Merge branch 'main' into ts7-release</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/887307575c58ea640dbeba3b4e8fdb6347cd3044"><code>8873075</code></a>
Bump the github-actions group across 1 directory with 3 updates
(microsoft/ty...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/9427131ae2d4e230a90ee8a09daac4e75da3e311"><code>9427131</code></a>
Set up stable / nightly extension split, other prep
(microsoft/typescript-go#...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/d4eaca5460a1f5f02a829e62706794b0a6fb903e"><code>d4eaca5</code></a><code>microsoft/typescript-go#4549</code></li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/TypeScript/compare/v6.0.3...v7.0.2">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~microsoft1es">microsoft1es</a>, a new
releaser for typescript since your current version.</p>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…e-viem (#673)

Bumps [typescript](https://github.com/microsoft/TypeScript) from 6.0.3
to 7.0.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 7.0.2</h2>
<p><a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/">https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/</a></p>
<p>This tag was originally released at: <a
href="https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2">https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/TypeScript/commit/1e4744d68260a7cb91b62b12edc3f6a2187faaf1"><code>1e4744d</code></a>
Merge branch 'main' into ts7-release</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/a5a219c3b5da0db4fa0ecf6c0b1f588c9af9c669"><code>a5a219c</code></a><code>microsoft/typescript-go#4558</code></li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ecfe30dce91368d52c9a49b6095bb0b673a238f8"><code>ecfe30d</code></a>
Update status localization</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/5de25b5f8fec2ca35eadaed041f1f06d2e214895"><code>5de25b5</code></a>
Hide executable name in TypeScript status</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/d7ce74a75da2b80e8201506a1599c06549432b93"><code>d7ce74a</code></a>
Show bundled TypeScript version for packaged servers</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/29be66a607707f90d7a53103a4469bb3015a4d54"><code>29be66a</code></a>
Correct TS 7 release version to 7.0.2</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ed2bd1bfa4aac5211ce4bc58fcd1313c7eddc8ff"><code>ed2bd1b</code></a>
Merge branch 'main' into ts7-release</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/887307575c58ea640dbeba3b4e8fdb6347cd3044"><code>8873075</code></a>
Bump the github-actions group across 1 directory with 3 updates
(microsoft/ty...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/9427131ae2d4e230a90ee8a09daac4e75da3e311"><code>9427131</code></a>
Set up stable / nightly extension split, other prep
(microsoft/typescript-go#...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/d4eaca5460a1f5f02a829e62706794b0a6fb903e"><code>d4eaca5</code></a><code>microsoft/typescript-go#4549</code></li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/TypeScript/compare/v6.0.3...v7.0.2">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~microsoft1es">microsoft1es</a>, a new
releaser for typescript since your current version.</p>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…e-ethers (#671)

Bumps [typescript](https://github.com/microsoft/TypeScript) from 6.0.3
to 7.0.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 7.0.2</h2>
<p><a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/">https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/</a></p>
<p>This tag was originally released at: <a
href="https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2">https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/TypeScript/commit/1e4744d68260a7cb91b62b12edc3f6a2187faaf1"><code>1e4744d</code></a>
Merge branch 'main' into ts7-release</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/a5a219c3b5da0db4fa0ecf6c0b1f588c9af9c669"><code>a5a219c</code></a><code>microsoft/typescript-go#4558</code></li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ecfe30dce91368d52c9a49b6095bb0b673a238f8"><code>ecfe30d</code></a>
Update status localization</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/5de25b5f8fec2ca35eadaed041f1f06d2e214895"><code>5de25b5</code></a>
Hide executable name in TypeScript status</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/d7ce74a75da2b80e8201506a1599c06549432b93"><code>d7ce74a</code></a>
Show bundled TypeScript version for packaged servers</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/29be66a607707f90d7a53103a4469bb3015a4d54"><code>29be66a</code></a>
Correct TS 7 release version to 7.0.2</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ed2bd1bfa4aac5211ce4bc58fcd1313c7eddc8ff"><code>ed2bd1b</code></a>
Merge branch 'main' into ts7-release</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/887307575c58ea640dbeba3b4e8fdb6347cd3044"><code>8873075</code></a>
Bump the github-actions group across 1 directory with 3 updates
(microsoft/ty...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/9427131ae2d4e230a90ee8a09daac4e75da3e311"><code>9427131</code></a>
Set up stable / nightly extension split, other prep
(microsoft/typescript-go#...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/d4eaca5460a1f5f02a829e62706794b0a6fb903e"><code>d4eaca5</code></a><code>microsoft/typescript-go#4549</code></li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/TypeScript/compare/v6.0.3...v7.0.2">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~microsoft1es">microsoft1es</a>, a new
releaser for typescript since your current version.</p>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…mple-ingen (#669)

[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [typescript](https://github.com/microsoft/TypeScript) from 6.0.3
to 7.0.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 7.0.2</h2>
<p><a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/">https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/</a></p>
<p>This tag was originally released at: <a
href="https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2">https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/TypeScript/commit/1e4744d68260a7cb91b62b12edc3f6a2187faaf1"><code>1e4744d</code></a>
Merge branch 'main' into ts7-release</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/a5a219c3b5da0db4fa0ecf6c0b1f588c9af9c669"><code>a5a219c</code></a><code>microsoft/typescript-go#4558</code></li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ecfe30dce91368d52c9a49b6095bb0b673a238f8"><code>ecfe30d</code></a>
Update status localization</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/5de25b5f8fec2ca35eadaed041f1f06d2e214895"><code>5de25b5</code></a>
Hide executable name in TypeScript status</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/d7ce74a75da2b80e8201506a1599c06549432b93"><code>d7ce74a</code></a>
Show bundled TypeScript version for packaged servers</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/29be66a607707f90d7a53103a4469bb3015a4d54"><code>29be66a</code></a>
Correct TS 7 release version to 7.0.2</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ed2bd1bfa4aac5211ce4bc58fcd1313c7eddc8ff"><code>ed2bd1b</code></a>
Merge branch 'main' into ts7-release</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/887307575c58ea640dbeba3b4e8fdb6347cd3044"><code>8873075</code></a>
Bump the github-actions group across 1 directory with 3 updates
(microsoft/ty...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/9427131ae2d4e230a90ee8a09daac4e75da3e311"><code>9427131</code></a>
Set up stable / nightly extension split, other prep
(microsoft/typescript-go#...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/d4eaca5460a1f5f02a829e62706794b0a6fb903e"><code>d4eaca5</code></a><code>microsoft/typescript-go#4549</code></li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/TypeScript/compare/v6.0.3...v7.0.2">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~microsoft1es">microsoft1es</a>, a new
releaser for typescript since your current version.</p>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…mple-hoodi (#666)

[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [typescript](https://github.com/microsoft/TypeScript) from 6.0.3
to 7.0.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 7.0.2</h2>
<p><a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/">https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/</a></p>
<p>This tag was originally released at: <a
href="https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2">https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/TypeScript/commit/1e4744d68260a7cb91b62b12edc3f6a2187faaf1"><code>1e4744d</code></a>
Merge branch 'main' into ts7-release</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/a5a219c3b5da0db4fa0ecf6c0b1f588c9af9c669"><code>a5a219c</code></a><code>microsoft/typescript-go#4558</code></li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ecfe30dce91368d52c9a49b6095bb0b673a238f8"><code>ecfe30d</code></a>
Update status localization</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/5de25b5f8fec2ca35eadaed041f1f06d2e214895"><code>5de25b5</code></a>
Hide executable name in TypeScript status</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/d7ce74a75da2b80e8201506a1599c06549432b93"><code>d7ce74a</code></a>
Show bundled TypeScript version for packaged servers</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/29be66a607707f90d7a53103a4469bb3015a4d54"><code>29be66a</code></a>
Correct TS 7 release version to 7.0.2</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ed2bd1bfa4aac5211ce4bc58fcd1313c7eddc8ff"><code>ed2bd1b</code></a>
Merge branch 'main' into ts7-release</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/887307575c58ea640dbeba3b4e8fdb6347cd3044"><code>8873075</code></a>
Bump the github-actions group across 1 directory with 3 updates
(microsoft/ty...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/9427131ae2d4e230a90ee8a09daac4e75da3e311"><code>9427131</code></a>
Set up stable / nightly extension split, other prep
(microsoft/typescript-go#...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/d4eaca5460a1f5f02a829e62706794b0a6fb903e"><code>d4eaca5</code></a><code>microsoft/typescript-go#4549</code></li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/TypeScript/compare/v6.0.3...v7.0.2">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~microsoft1es">microsoft1es</a>, a new
releaser for typescript since your current version.</p>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…mple-bnb (#665)

[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [typescript](https://github.com/microsoft/TypeScript) from 6.0.3
to 7.0.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 7.0.2</h2>
<p><a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/">https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/</a></p>
<p>This tag was originally released at: <a
href="https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2">https://github.com/microsoft/typescript-go/releases/tag/typescript%2Fv7.0.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/TypeScript/commit/1e4744d68260a7cb91b62b12edc3f6a2187faaf1"><code>1e4744d</code></a>
Merge branch 'main' into ts7-release</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/a5a219c3b5da0db4fa0ecf6c0b1f588c9af9c669"><code>a5a219c</code></a><code>microsoft/typescript-go#4558</code></li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ecfe30dce91368d52c9a49b6095bb0b673a238f8"><code>ecfe30d</code></a>
Update status localization</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/5de25b5f8fec2ca35eadaed041f1f06d2e214895"><code>5de25b5</code></a>
Hide executable name in TypeScript status</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/d7ce74a75da2b80e8201506a1599c06549432b93"><code>d7ce74a</code></a>
Show bundled TypeScript version for packaged servers</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/29be66a607707f90d7a53103a4469bb3015a4d54"><code>29be66a</code></a>
Correct TS 7 release version to 7.0.2</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ed2bd1bfa4aac5211ce4bc58fcd1313c7eddc8ff"><code>ed2bd1b</code></a>
Merge branch 'main' into ts7-release</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/887307575c58ea640dbeba3b4e8fdb6347cd3044"><code>8873075</code></a>
Bump the github-actions group across 1 directory with 3 updates
(microsoft/ty...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/9427131ae2d4e230a90ee8a09daac4e75da3e311"><code>9427131</code></a>
Set up stable / nightly extension split, other prep
(microsoft/typescript-go#...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/d4eaca5460a1f5f02a829e62706794b0a6fb903e"><code>d4eaca5</code></a><code>microsoft/typescript-go#4549</code></li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/TypeScript/compare/v6.0.3...v7.0.2">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~microsoft1es">microsoft1es</a>, a new
releaser for typescript since your current version.</p>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…updates (#663)

Bumps the example-apps group with 3 updates in the /examples/example-bnb
directory:
[@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query),
[@zama-fhe/react-sdk](https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk)
and
[@zama-fhe/sdk](https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk).
Bumps the example-apps group with 3 updates in the
/examples/example-hoodi directory:
[@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query),
[@zama-fhe/react-sdk](https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk)
and
[@zama-fhe/sdk](https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk).
Bumps the example-apps group with 3 updates in the
/examples/example-ingen directory:
[@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query),
[@zama-fhe/react-sdk](https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk)
and
[@zama-fhe/sdk](https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk).
Bumps the example-apps group with 1 update in the /examples/node-ethers
directory:
[@zama-fhe/sdk](https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk).
Bumps the example-apps group with 1 update in the /examples/node-viem
directory:
[@zama-fhe/sdk](https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk).
Bumps the example-apps group with 3 updates in the
/examples/react-ethers directory:
[@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query),
[@zama-fhe/react-sdk](https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk)
and
[@zama-fhe/sdk](https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk).
Bumps the example-apps group with 3 updates in the
/examples/react-turnkey-wallet directory:
[@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query),
[@zama-fhe/react-sdk](https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk)
and
[@zama-fhe/sdk](https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk).
Bumps the example-apps group with 3 updates in the /examples/react-viem
directory:
[@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query),
[@zama-fhe/react-sdk](https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk)
and
[@zama-fhe/sdk](https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk).
Bumps the example-apps group with 3 updates in the /examples/react-wagmi
directory:
[@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query),
[@zama-fhe/react-sdk](https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk)
and
[@zama-fhe/sdk](https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk).

Updates `@tanstack/react-query` from 5.101.0 to 5.102.2
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md">@​tanstack/react-query's
changelog</a>.</em></p>
<blockquote>
<h2>5.102.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies [<a
href="https://github.com/TanStack/query/commit/80fbf73e77892d702c107e14a84c219a8ed825dc"><code>80fbf73</code></a>]:
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.2</li>
</ul>
</li>
</ul>
<h2>5.102.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies [<a
href="https://github.com/TanStack/query/commit/134890dbdc60e4fb0313e44b512d29284ca82f96"><code>134890d</code></a>]:
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.1</li>
</ul>
</li>
</ul>
<h2>5.102.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/TanStack/query/pull/10668">#10668</a>
<a
href="https://github.com/TanStack/query/commit/e6748265c86294704f6c872e6f435d9ec5a92b28"><code>e674826</code></a>
- react-query: update usePrefetchQuery and usePrefetchInfiniteQuery to
use queryClient.query and queryClient.infiniteQuery</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11245">#11245</a>
<a
href="https://github.com/TanStack/query/commit/37127dbe479a4892dbbe28ac8ceabf8832b5f1a3"><code>37127db</code></a>
- revert: remove NoInfer from useQuery return types</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/10373">#10373</a>
<a
href="https://github.com/TanStack/query/commit/6e3d521fe54f78624e53c1c6f9cadd678504bee8"><code>6e3d521</code></a>
- fix(types): propagate generic type parameters to
<code>useMutationState</code> select callback</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11224">#11224</a>
<a
href="https://github.com/TanStack/query/commit/294d4e62c4f7d674574a4903eef2a1bc3dd1413b"><code>294d4e6</code></a>
- Fix <code>queryOptions</code> and <code>infiniteQueryOptions</code>
return types so exported inferred options can be emitted in declaration
files without leaking internal data tag symbols.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11147">#11147</a>
<a
href="https://github.com/TanStack/query/commit/cb6c9d3725db0fed94fb5133820e41b7c326d2ef"><code>cb6c9d3</code></a>
- Default <code>TData</code> of <code>UseInfiniteQueryOptions</code> and
<code>UseSuspenseInfiniteQueryOptions</code> to
<code>InfiniteData&lt;TQueryFnData&gt;</code> so it matches the hook
generics.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/8737">#8737</a> <a
href="https://github.com/TanStack/query/commit/2215bb031139cdc8a84751b37a485c38ca9d2b6e"><code>2215bb0</code></a>
- fix: make mutation variables optional when <code>undefined extends
TVariables</code></p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11221">#11221</a>
<a
href="https://github.com/TanStack/query/commit/1ef42087c9a266c2137d2ef645cbcc662f60ac93"><code>1ef4208</code></a>
- Remove experimental render-time prefetching and the
<code>promise</code> property from query results.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11228">#11228</a>
<a
href="https://github.com/TanStack/query/commit/fb6c3fabda4cb6b291cccc6651ed88a7db901915"><code>fb6c3fa</code></a>
- Avoid emitting a runtime import for React Query's type-only
exports.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11130">#11130</a>
<a
href="https://github.com/TanStack/query/commit/88342670eca6e4949416aab832b1f81cc7b881f8"><code>8834267</code></a>
- fix(react-query): don't show optimistic fetching for unsubscribed
useQueries</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11233">#11233</a>
<a
href="https://github.com/TanStack/query/commit/b866a95adde7e8465462526df5870ebc12340b36"><code>b866a95</code></a>
- remove unused experimental_beforeQuery and experimental_afterQuery
hooks</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11144">#11144</a>
<a
href="https://github.com/TanStack/query/commit/e546d03bef116c66a05dbf42ccfd70b6d8600a8f"><code>e546d03</code></a>
- fix: remove placeholderData from suspense infinite query</p>
</li>
<li>
<p>Updated dependencies [<a
href="https://github.com/TanStack/query/commit/34f7ceed09c10e4a3aa2df31a106ddf02ec4e787"><code>34f7cee</code></a>,
<a
href="https://github.com/TanStack/query/commit/b4368c43792349f6c29d1fb41f7ee1ef3a8bdd2c"><code>b4368c4</code></a>,
<a
href="https://github.com/TanStack/query/commit/5bb089d153d33933983b7ea80f8d69b51d423698"><code>5bb089d</code></a>,
<a
href="https://github.com/TanStack/query/commit/ba4650c05e61e33c609e051b948c9f7d31ce70d1"><code>ba4650c</code></a>,
<a
href="https://github.com/TanStack/query/commit/294d4e62c4f7d674574a4903eef2a1bc3dd1413b"><code>294d4e6</code></a>,
<a
href="https://github.com/TanStack/query/commit/1f631b3604aab6567fb3f6c90646a5a304641546"><code>1f631b3</code></a>,
<a
href="https://github.com/TanStack/query/commit/01a02bfad32f9efbc17796be31d6399f1197a655"><code>01a02bf</code></a>,
<a
href="https://github.com/TanStack/query/commit/18c1c1ef94883e781ad36d36f9ea4a043ce4260b"><code>18c1c1e</code></a>,
<a
href="https://github.com/TanStack/query/commit/5448063f828d2270dccd41ae375e1afde35e91f2"><code>5448063</code></a>,
<a
href="https://github.com/TanStack/query/commit/2215bb031139cdc8a84751b37a485c38ca9d2b6e"><code>2215bb0</code></a>,
<a
href="https://github.com/TanStack/query/commit/1ef42087c9a266c2137d2ef645cbcc662f60ac93"><code>1ef4208</code></a>,
<a
href="https://github.com/TanStack/query/commit/5981771abec9330b344a2617543eb05ba7c99e24"><code>5981771</code></a>,
<a
href="https://github.com/TanStack/query/commit/4a9bef6cf19b1cd6b014032d696129f12a848185"><code>4a9bef6</code></a>,
<a
href="https://github.com/TanStack/query/commit/bef4bc780ce7cca32b7e3dea85f77d92f82a62a2"><code>bef4bc7</code></a>,
<a
href="https://github.com/TanStack/query/commit/9656dc4e5fef5f8c502579b52459f9e8c72e787c"><code>9656dc4</code></a>,
<a
href="https://github.com/TanStack/query/commit/326aaf1333e5d9cbc46569c53f218d31684162d2"><code>326aaf1</code></a>,
<a
href="https://github.com/TanStack/query/commit/3e836010032c2586e9f1c66a271fa9114a6401f9"><code>3e83601</code></a>,
<a
href="https://github.com/TanStack/query/commit/c6fc17cfad6e452261c585fabfb8c210e60531ed"><code>c6fc17c</code></a>]:</p>
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.0</li>
</ul>
</li>
</ul>
<h2>5.101.4</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies []:</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/TanStack/query/commit/388bbaf181c4e7b7017b5dbb5cbf2a57eb22e267"><code>388bbaf</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11265">#11265</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/bc423b37ef7fa2a34cfc7286945fd640d74b4071"><code>bc423b3</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11261">#11261</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/be1352b848cf2a9a43eb8828ad023e0a9f74ad36"><code>be1352b</code></a>
test(*): add adapter-level type coverage for optional undefinable mutate
vari...</li>
<li><a
href="https://github.com/TanStack/query/commit/574346846239b8d00d8d8dec4188c572c7cce205"><code>5743468</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11206">#11206</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/2215bb031139cdc8a84751b37a485c38ca9d2b6e"><code>2215bb0</code></a>
fix(query-core): make <code>MutateFunction</code> optional
undefinable-variables (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/8737">#8737</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/d156adcc1561bbaf60a1771bd5743631535a41b4"><code>d156adc</code></a>
test: transition tests (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11246">#11246</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/37127dbe479a4892dbbe28ac8ceabf8832b5f1a3"><code>37127db</code></a>
fix/11018 (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11245">#11245</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/e6748265c86294704f6c872e6f435d9ec5a92b28"><code>e674826</code></a>
React: update usePrefetchQuery to use new methods, plus react adaptor
tests a...</li>
<li><a
href="https://github.com/TanStack/query/commit/88342670eca6e4949416aab832b1f81cc7b881f8"><code>8834267</code></a>
fix(react-query): keep unsubscribed useQueries idle (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11130">#11130</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/1ef42087c9a266c2137d2ef645cbcc662f60ac93"><code>1ef4208</code></a>
ref: remove experimental_prefetchInRender (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11221">#11221</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/TanStack/query/commits/@tanstack/react-query@5.102.2/packages/react-query">compare
view</a></li>
</ul>
</details>
<br />

Updates `@zama-fhe/react-sdk` from 3.4.0-alpha.10 to 3.5.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/zama-ai/sdk/releases">@​zama-fhe/react-sdk's
releases</a>.</em></p>
<blockquote>
<h2>v3.5.1</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0...v3.5.1">3.5.1</a>
(2026-08-27)</h2>
<h3>Build System</h3>
<ul>
<li>trigger Build (<a
href="https://redirect.github.com/zama-ai/sdk/issues/651">#651</a>) (<a
href="">34a4240</a>)</li>
</ul>
<h2>v3.5.1-alpha.1</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0...v3.5.1-alpha.1">3.5.1-alpha.1</a>
(2026-08-26)</h2>
<h3>Build System</h3>
<ul>
<li>trigger Build (<a
href="https://redirect.github.com/zama-ai/sdk/issues/651">#651</a>) (<a
href="">34a4240</a>)</li>
</ul>
<h2>v3.5.0</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.4.0...v3.5.0">3.5.0</a>
(2026-08-26)</h2>
<h3>Features</h3>
<ul>
<li>add polygon support (<a
href="https://redirect.github.com/zama-ai/sdk/issues/638">#638</a>) (<a
href="">f97f9f6</a>)</li>
<li><strong>credentials:</strong> optional derivationSecret wrapping for
at-rest private key protection [SDK-135] (<a
href="https://redirect.github.com/zama-ai/sdk/issues/547">#547</a>) (<a
href="">65a60eb</a>)</li>
<li><strong>examples:</strong> add example-polygon-amoy app (<a
href="https://redirect.github.com/zama-ai/sdk/issues/603">#603</a>) (<a
href="">be7fbac</a>)</li>
<li>offline permit flow (<a
href="https://redirect.github.com/zama-ai/sdk/issues/634">#634</a>) (<a
href="">bbfae74</a>)</li>
<li>revoked kms context recovery (<a
href="https://redirect.github.com/zama-ai/sdk/issues/633">#633</a>) (<a
href="">8f1e9d1</a>)</li>
<li><strong>sdk:</strong> add Polygon Amoy (80002) chain preset (<a
href="https://redirect.github.com/zama-ai/sdk/issues/602">#602</a>) (<a
href="">bf6157b</a>)</li>
<li><strong>sdk:</strong> offline signing <code>prepare</code> for
out-of-process custody (SDK-75) (<a
href="https://redirect.github.com/zama-ai/sdk/issues/345">#345</a>) (<a
href="">66b8b40</a>), closes <a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/7">#7</a></li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>add browser compatibility lint (<a
href="https://redirect.github.com/zama-ai/sdk/issues/625">#625</a>) (<a
href="">cb27545</a>)</li>
<li><strong>examples:</strong> derive relayer proxy URL from window
origin (<a
href="https://redirect.github.com/zama-ai/sdk/issues/635">#635</a>) (<a
href="">e676154</a>)</li>
<li><strong>examples:</strong> switch Sepolia/Hoodi explorer links to
BlockScout [SDK-297] (<a
href="https://redirect.github.com/zama-ai/sdk/issues/636">#636</a>) (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/6540368">6540368</a>)</li>
<li><strong>examples:</strong> use bare relayer host in proxy default
(<a href="https://redirect.github.com/zama-ai/sdk/issues/601">#601</a>)
(<a href="">081bb9c</a>)</li>
<li><strong>sdk:</strong> bind confidentialTransferFrom input proof to
the tx sender (<a
href="https://redirect.github.com/zama-ai/sdk/issues/611">#611</a>) (<a
href="">d51c627</a>)</li>
<li><strong>sdk:</strong> guard ACL revert lookup against
prototype-chain error names (<a
href="https://redirect.github.com/zama-ai/sdk/issues/624">#624</a>) (<a
href="">f871a2c</a>), closes <a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/130">#130</a>
<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/130">#130</a></li>
</ul>
<h2>v3.5.0-alpha.12</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.11...v3.5.0-alpha.12">3.5.0-alpha.12</a>
(2026-08-25)</h2>
<h3>Features</h3>
<ul>
<li>add polygon support (<a
href="https://redirect.github.com/zama-ai/sdk/issues/638">#638</a>) (<a
href="">f97f9f6</a>)</li>
</ul>
<h2>v3.5.0-alpha.11</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.10...v3.5.0-alpha.11">3.5.0-alpha.11</a>
(2026-08-25)</h2>
<h3>Features</h3>
<ul>
<li>revoked kms context recovery (<a
href="https://redirect.github.com/zama-ai/sdk/issues/633">#633</a>) (<a
href="">8f1e9d1</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/zama-ai/sdk/blob/main/CHANGELOG.md">@​zama-fhe/react-sdk's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0...v3.5.1">3.5.1</a>
(2026-08-27)</h2>
<h3>Build System</h3>
<ul>
<li>trigger Build (<a
href="https://redirect.github.com/zama-ai/sdk/issues/651">#651</a>) (<a
href="">34a4240</a>)</li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0...v3.5.1-alpha.1">3.5.1-alpha.1</a>
(2026-08-26)</h2>
<h3>Build System</h3>
<ul>
<li>trigger Build (<a
href="https://redirect.github.com/zama-ai/sdk/issues/651">#651</a>) (<a
href="">34a4240</a>)</li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.4.0...v3.5.0">3.5.0</a>
(2026-08-26)</h2>
<h3>Features</h3>
<ul>
<li>add polygon support (<a
href="https://redirect.github.com/zama-ai/sdk/issues/638">#638</a>) (<a
href="">f97f9f6</a>)</li>
<li><strong>credentials:</strong> optional derivationSecret wrapping for
at-rest private key protection [SDK-135] (<a
href="https://redirect.github.com/zama-ai/sdk/issues/547">#547</a>) (<a
href="">65a60eb</a>)</li>
<li><strong>examples:</strong> add example-polygon-amoy app (<a
href="https://redirect.github.com/zama-ai/sdk/issues/603">#603</a>) (<a
href="">be7fbac</a>)</li>
<li>offline permit flow (<a
href="https://redirect.github.com/zama-ai/sdk/issues/634">#634</a>) (<a
href="">bbfae74</a>)</li>
<li>revoked kms context recovery (<a
href="https://redirect.github.com/zama-ai/sdk/issues/633">#633</a>) (<a
href="">8f1e9d1</a>)</li>
<li><strong>sdk:</strong> add Polygon Amoy (80002) chain preset (<a
href="https://redirect.github.com/zama-ai/sdk/issues/602">#602</a>) (<a
href="">bf6157b</a>)</li>
<li><strong>sdk:</strong> offline signing <code>prepare</code> for
out-of-process custody (SDK-75) (<a
href="https://redirect.github.com/zama-ai/sdk/issues/345">#345</a>) (<a
href="">66b8b40</a>), closes <a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/7">#7</a></li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>add browser compatibility lint (<a
href="https://redirect.github.com/zama-ai/sdk/issues/625">#625</a>) (<a
href="">cb27545</a>)</li>
<li><strong>examples:</strong> derive relayer proxy URL from window
origin (<a
href="https://redirect.github.com/zama-ai/sdk/issues/635">#635</a>) (<a
href="">e676154</a>)</li>
<li><strong>examples:</strong> switch Sepolia/Hoodi explorer links to
BlockScout [SDK-297] (<a
href="https://redirect.github.com/zama-ai/sdk/issues/636">#636</a>) (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/6540368">6540368</a>)</li>
<li><strong>examples:</strong> use bare relayer host in proxy default
(<a href="https://redirect.github.com/zama-ai/sdk/issues/601">#601</a>)
(<a href="">081bb9c</a>)</li>
<li><strong>sdk:</strong> bind confidentialTransferFrom input proof to
the tx sender (<a
href="https://redirect.github.com/zama-ai/sdk/issues/611">#611</a>) (<a
href="">d51c627</a>)</li>
<li><strong>sdk:</strong> guard ACL revert lookup against
prototype-chain error names (<a
href="https://redirect.github.com/zama-ai/sdk/issues/624">#624</a>) (<a
href="">f871a2c</a>), closes <a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/130">#130</a>
<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/130">#130</a></li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.11...v3.5.0-alpha.12">3.5.0-alpha.12</a>
(2026-08-25)</h2>
<h3>Features</h3>
<ul>
<li>add polygon support (<a
href="https://redirect.github.com/zama-ai/sdk/issues/638">#638</a>) (<a
href="">f97f9f6</a>)</li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.10...v3.5.0-alpha.11">3.5.0-alpha.11</a>
(2026-08-25)</h2>
<h3>Features</h3>
<ul>
<li>revoked kms context recovery (<a
href="https://redirect.github.com/zama-ai/sdk/issues/633">#633</a>) (<a
href="">8f1e9d1</a>)</li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.9...v3.5.0-alpha.10">3.5.0-alpha.10</a>
(2026-08-24)</h2>
<h3>Features</h3>
<ul>
<li>offline permit flow (<a
href="https://redirect.github.com/zama-ai/sdk/issues/634">#634</a>) (<a
href="">bbfae74</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/zama-ai/sdk/commit/40b9ef8549c8bcc12a90b17de66e1ba2cc742a70"><code>40b9ef8</code></a>
chore(release): 3.5.1 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/5c28028a4493fc8414604eb6f2a36fcc15cb289e"><code>5c28028</code></a>
chore(release): 3.5.1-alpha.1 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/5c66761f23d711f06d68176bd31c4968ba5051c7"><code>5c66761</code></a>
chore(release): 3.5.0 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/72e3b92e4eb4e966dc2f0c8e37acc811a0cc99a9"><code>72e3b92</code></a>
chore(release): 3.5.0-alpha.12 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/5b1520d4bd46ddbbdb632615b7c1d6b1b75f1af3"><code>5b1520d</code></a>
chore(release): 3.5.0-alpha.11 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/30a104c1296b314f0dadebf78eb145a0e0bcebc2"><code>30a104c</code></a>
chore(release): 3.5.0-alpha.10 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/bbfae7477e36bb311a81e8b230ae1268d2c6f65a"><code>bbfae74</code></a>
feat: offline permit flow (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/634">#634</a>)</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/8278ebb62ea5d25ef5edfeecb2450d769e6b5456"><code>8278ebb</code></a>
chore(release): 3.5.0-alpha.9 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/07b29d5606f20fd2da0628778c43d9024d4da873"><code>07b29d5</code></a>
chore(release): 3.5.0-alpha.8 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/3bc8978a1a0530c74c621454a6329d002f589117"><code>3bc8978</code></a>
chore(release): 3.5.0-alpha.7 [skip ci]</li>
<li>Additional commits viewable in <a
href="https://github.com/zama-ai/sdk/commits/v3.5.1/packages/react-sdk">compare
view</a></li>
</ul>
</details>
<br />

Updates `@zama-fhe/sdk` from 3.4.0-alpha.10 to 3.5.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/zama-ai/sdk/releases">@​zama-fhe/sdk's
releases</a>.</em></p>
<blockquote>
<h2>v3.5.1</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0...v3.5.1">3.5.1</a>
(2026-08-27)</h2>
<h3>Build System</h3>
<ul>
<li>trigger Build (<a
href="https://redirect.github.com/zama-ai/sdk/issues/651">#651</a>) (<a
href="">34a4240</a>)</li>
</ul>
<h2>v3.5.1-alpha.1</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0...v3.5.1-alpha.1">3.5.1-alpha.1</a>
(2026-08-26)</h2>
<h3>Build System</h3>
<ul>
<li>trigger Build (<a
href="https://redirect.github.com/zama-ai/sdk/issues/651">#651</a>) (<a
href="">34a4240</a>)</li>
</ul>
<h2>v3.5.0</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.4.0...v3.5.0">3.5.0</a>
(2026-08-26)</h2>
<h3>Features</h3>
<ul>
<li>add polygon support (<a
href="https://redirect.github.com/zama-ai/sdk/issues/638">#638</a>) (<a
href="">f97f9f6</a>)</li>
<li><strong>credentials:</strong> optional derivationSecret wrapping for
at-rest private key protection [SDK-135] (<a
href="https://redirect.github.com/zama-ai/sdk/issues/547">#547</a>) (<a
href="">65a60eb</a>)</li>
<li><strong>examples:</strong> add example-polygon-amoy app (<a
href="https://redirect.github.com/zama-ai/sdk/issues/603">#603</a>) (<a
href="">be7fbac</a>)</li>
<li>offline permit flow (<a
href="https://redirect.github.com/zama-ai/sdk/issues/634">#634</a>) (<a
href="">bbfae74</a>)</li>
<li>revoked kms context recovery (<a
href="https://redirect.github.com/zama-ai/sdk/issues/633">#633</a>) (<a
href="">8f1e9d1</a>)</li>
<li><strong>sdk:</strong> add Polygon Amoy (80002) chain preset (<a
href="https://redirect.github.com/zama-ai/sdk/issues/602">#602</a>) (<a
href="">bf6157b</a>)</li>
<li><strong>sdk:</strong> offline signing <code>prepare</code> for
out-of-process custody (SDK-75) (<a
href="https://redirect.github.com/zama-ai/sdk/issues/345">#345</a>) (<a
href="">66b8b40</a>), closes <a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/7">#7</a></li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>add browser compatibility lint (<a
href="https://redirect.github.com/zama-ai/sdk/issues/625">#625</a>) (<a
href="">cb27545</a>)</li>
<li><strong>examples:</strong> derive relayer proxy URL from window
origin (<a
href="https://redirect.github.com/zama-ai/sdk/issues/635">#635</a>) (<a
href="">e676154</a>)</li>
<li><strong>examples:</strong> switch Sepolia/Hoodi explorer links to
BlockScout [SDK-297] (<a
href="https://redirect.github.com/zama-ai/sdk/issues/636">#636</a>) (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/6540368">6540368</a>)</li>
<li><strong>examples:</strong> use bare relayer host in proxy default
(<a href="https://redirect.github.com/zama-ai/sdk/issues/601">#601</a>)
(<a href="">081bb9c</a>)</li>
<li><strong>sdk:</strong> bind confidentialTransferFrom input proof to
the tx sender (<a
href="https://redirect.github.com/zama-ai/sdk/issues/611">#611</a>) (<a
href="">d51c627</a>)</li>
<li><strong>sdk:</strong> guard ACL revert lookup against
prototype-chain error names (<a
href="https://redirect.github.com/zama-ai/sdk/issues/624">#624</a>) (<a
href="">f871a2c</a>), closes <a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/130">#130</a>
<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/130">#130</a></li>
</ul>
<h2>v3.5.0-alpha.12</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.11...v3.5.0-alpha.12">3.5.0-alpha.12</a>
(2026-08-25)</h2>
<h3>Features</h3>
<ul>
<li>add polygon support (<a
href="https://redirect.github.com/zama-ai/sdk/issues/638">#638</a>) (<a
href="">f97f9f6</a>)</li>
</ul>
<h2>v3.5.0-alpha.11</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.10...v3.5.0-alpha.11">3.5.0-alpha.11</a>
(2026-08-25)</h2>
<h3>Features</h3>
<ul>
<li>revoked kms context recovery (<a
href="https://redirect.github.com/zama-ai/sdk/issues/633">#633</a>) (<a
href="">8f1e9d1</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/zama-ai/sdk/blob/main/CHANGELOG.md">@​zama-fhe/sdk's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0...v3.5.1">3.5.1</a>
(2026-08-27)</h2>
<h3>Build System</h3>
<ul>
<li>trigger Build (<a
href="https://redirect.github.com/zama-ai/sdk/issues/651">#651</a>) (<a
href="">34a4240</a>)</li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0...v3.5.1-alpha.1">3.5.1-alpha.1</a>
(2026-08-26)</h2>
<h3>Build System</h3>
<ul>
<li>trigger Build (<a
href="https://redirect.github.com/zama-ai/sdk/issues/651">#651</a>) (<a
href="">34a4240</a>)</li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.4.0...v3.5.0">3.5.0</a>
(2026-08-26)</h2>
<h3>Features</h3>
<ul>
<li>add polygon support (<a
href="https://redirect.github.com/zama-ai/sdk/issues/638">#638</a>) (<a
href="">f97f9f6</a>)</li>
<li><strong>credentials:</strong> optional derivationSecret wrapping for
at-rest private key protection [SDK-135] (<a
href="https://redirect.github.com/zama-ai/sdk/issues/547">#547</a>) (<a
href="">65a60eb</a>)</li>
<li><strong>examples:</strong> add example-polygon-amoy app (<a
href="https://redirect.github.com/zama-ai/sdk/issues/603">#603</a>) (<a
href="">be7fbac</a>)</li>
<li>offline permit flow (<a
href="https://redirect.github.com/zama-ai/sdk/issues/634">#634</a>) (<a
href="">bbfae74</a>)</li>
<li>revoked kms context recovery (<a
href="https://redirect.github.com/zama-ai/sdk/issues/633">#633</a>) (<a
href="">8f1e9d1</a>)</li>
<li><strong>sdk:</strong> add Polygon Amoy (80002) chain preset (<a
href="https://redirect.github.com/zama-ai/sdk/issues/602">#602</a>) (<a
href="">bf6157b</a>)</li>
<li><strong>sdk:</strong> offline signing <code>prepare</code> for
out-of-process custody (SDK-75) (<a
href="https://redirect.github.com/zama-ai/sdk/issues/345">#345</a>) (<a
href="">66b8b40</a>), closes <a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/7">#7</a></li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>add browser compatibility lint (<a
href="https://redirect.github.com/zama-ai/sdk/issues/625">#625</a>) (<a
href="">cb27545</a>)</li>
<li><strong>examples:</strong> derive relayer proxy URL from window
origin (<a
href="https://redirect.github.com/zama-ai/sdk/issues/635">#635</a>) (<a
href="">e676154</a>)</li>
<li><strong>examples:</strong> switch Sepolia/Hoodi explorer links to
BlockScout [SDK-297] (<a
href="https://redirect.github.com/zama-ai/sdk/issues/636">#636</a>) (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/6540368">6540368</a>)</li>
<li><strong>examples:</strong> use bare relayer host in proxy default
(<a href="https://redirect.github.com/zama-ai/sdk/issues/601">#601</a>)
(<a href="">081bb9c</a>)</li>
<li><strong>sdk:</strong> bind confidentialTransferFrom input proof to
the tx sender (<a
href="https://redirect.github.com/zama-ai/sdk/issues/611">#611</a>) (<a
href="">d51c627</a>)</li>
<li><strong>sdk:</strong> guard ACL revert lookup against
prototype-chain error names (<a
href="https://redirect.github.com/zama-ai/sdk/issues/624">#624</a>) (<a
href="">f871a2c</a>), closes <a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/130">#130</a>
<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/130">#130</a></li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.11...v3.5.0-alpha.12">3.5.0-alpha.12</a>
(2026-08-25)</h2>
<h3>Features</h3>
<ul>
<li>add polygon support (<a
href="https://redirect.github.com/zama-ai/sdk/issues/638">#638</a>) (<a
href="">f97f9f6</a>)</li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.10...v3.5.0-alpha.11">3.5.0-alpha.11</a>
(2026-08-25)</h2>
<h3>Features</h3>
<ul>
<li>revoked kms context recovery (<a
href="https://redirect.github.com/zama-ai/sdk/issues/633">#633</a>) (<a
href="">8f1e9d1</a>)</li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.9...v3.5.0-alpha.10">3.5.0-alpha.10</a>
(2026-08-24)</h2>
<h3>Features</h3>
<ul>
<li>offline permit flow (<a
href="https://redirect.github.com/zama-ai/sdk/issues/634">#634</a>) (<a
href="">bbfae74</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/zama-ai/sdk/commit/40b9ef8549c8bcc12a90b17de66e1ba2cc742a70"><code>40b9ef8</code></a>
chore(release): 3.5.1 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/5c28028a4493fc8414604eb6f2a36fcc15cb289e"><code>5c28028</code></a>
chore(release): 3.5.1-alpha.1 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/77ef2d9a33caf38f87b66d0c1b6168777ec8f292"><code>77ef2d9</code></a>
chore: revert upgrade fhevm sdk (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/644">#644</a>)
(<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/650">#650</a>)</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/5c66761f23d711f06d68176bd31c4968ba5051c7"><code>5c66761</code></a>
chore(release): 3.5.0 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/72e3b92e4eb4e966dc2f0c8e37acc811a0cc99a9"><code>72e3b92</code></a>
chore(release): 3.5.0-alpha.12 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/f97f9f61dd085d83643d9c1c4294355a11fcd9c4"><code>f97f9f6</code></a>
feat: add polygon support (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/638">#638</a>)</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/db2e7c7e5ae0b8402ab45709ce9bd1f47af333e2"><code>db2e7c7</code></a>
chore: upgrade fhevm sdk (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/644">#644</a>)</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/5b1520d4bd46ddbbdb632615b7c1d6b1b75f1af3"><code>5b1520d</code></a>
chore(release): 3.5.0-alpha.11 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/8f1e9d1612d0d68b5b6a91e4fa4ead7956b1c8c0"><code>8f1e9d1</code></a>
feat: revoked kms context recovery (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/633">#633</a>)</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/30a104c1296b314f0dadebf78eb145a0e0bcebc2"><code>30a104c</code></a>
chore(release): 3.5.0-alpha.10 [skip ci]</li>
<li>Additional commits viewable in <a
href="https://github.com/zama-ai/sdk/commits/v3.5.1/packages/sdk">compare
view</a></li>
</ul>
</details>
<br />

Updates `@tanstack/react-query` from 5.101.0 to 5.102.2
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md">@​tanstack/react-query's
changelog</a>.</em></p>
<blockquote>
<h2>5.102.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies [<a
href="https://github.com/TanStack/query/commit/80fbf73e77892d702c107e14a84c219a8ed825dc"><code>80fbf73</code></a>]:
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.2</li>
</ul>
</li>
</ul>
<h2>5.102.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies [<a
href="https://github.com/TanStack/query/commit/134890dbdc60e4fb0313e44b512d29284ca82f96"><code>134890d</code></a>]:
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.1</li>
</ul>
</li>
</ul>
<h2>5.102.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/TanStack/query/pull/10668">#10668</a>
<a
href="https://github.com/TanStack/query/commit/e6748265c86294704f6c872e6f435d9ec5a92b28"><code>e674826</code></a>
- react-query: update usePrefetchQuery and usePrefetchInfiniteQuery to
use queryClient.query and queryClient.infiniteQuery</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11245">#11245</a>
<a
href="https://github.com/TanStack/query/commit/37127dbe479a4892dbbe28ac8ceabf8832b5f1a3"><code>37127db</code></a>
- revert: remove NoInfer from useQuery return types</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/10373">#10373</a>
<a
href="https://github.com/TanStack/query/commit/6e3d521fe54f78624e53c1c6f9cadd678504bee8"><code>6e3d521</code></a>
- fix(types): propagate generic type parameters to
<code>useMutationState</code> select callback</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11224">#11224</a>
<a
href="https://github.com/TanStack/query/commit/294d4e62c4f7d674574a4903eef2a1bc3dd1413b"><code>294d4e6</code></a>
- Fix <code>queryOptions</code> and <code>infiniteQueryOptions</code>
return types so exported inferred options can be emitted in declaration
files without leaking internal data tag symbols.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11147">#11147</a>
<a
href="https://github.com/TanStack/query/commit/cb6c9d3725db0fed94fb5133820e41b7c326d2ef"><code>cb6c9d3</code></a>
- Default <code>TData</code> of <code>UseInfiniteQueryOptions</code> and
<code>UseSuspenseInfiniteQueryOptions</code> to
<code>InfiniteData&lt;TQueryFnData&gt;</code> so it matches the hook
generics.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/8737">#8737</a> <a
href="https://github.com/TanStack/query/commit/2215bb031139cdc8a84751b37a485c38ca9d2b6e"><code>2215bb0</code></a>
- fix: make mutation variables optional when <code>undefined extends
TVariables</code></p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11221">#11221</a>
<a
href="https://github.com/TanStack/query/commit/1ef42087c9a266c2137d2ef645cbcc662f60ac93"><code>1ef4208</code></a>
- Remove experimental render-time prefetching and the
<code>promise</code> property from query results.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11228">#11228</a>
<a
href="https://github.com/TanStack/query/commit/fb6c3fabda4cb6b291cccc6651ed88a7db901915"><code>fb6c3fa</code></a>
- Avoid emitting a runtime import for React Query's type-only
exports.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11130">#11130</a>
<a
href="https://github.com/TanStack/query/commit/88342670eca6e4949416aab832b1f81cc7b881f8"><code>8834267</code></a>
- fix(react-query): don't show optimistic fetching for unsubscribed
useQueries</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11233">#11233</a>
<a
href="https://github.com/TanStack/query/commit/b866a95adde7e8465462526df5870ebc12340b36"><code>b866a95</code></a>
- remove unused experimental_beforeQuery and experimental_afterQuery
hooks</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11144">#11144</a>
<a
href="https://github.com/TanStack/query/commit/e546d03bef116c66a05dbf42ccfd70b6d8600a8f"><code>e546d03</code></a>
- fix: remove placeholderData from suspense infinite query</p>
</li>
<li>
<p>Updated dependencies [<a
href="https://github.com/TanStack/query/commit/34f7ceed09c10e4a3aa2df31a106ddf02ec4e787"><code>34f7cee</code></a>,
<a
href="https://github.com/TanStack/query/commit/b4368c43792349f6c29d1fb41f7ee1ef3a8bdd2c"><code>b4368c4</code></a>,
<a
href="https://github.com/TanStack/query/commit/5bb089d153d33933983b7ea80f8d69b51d423698"><code>5bb089d</code></a>,
<a
href="https://github.com/TanStack/query/commit/ba4650c05e61e33c609e051b948c9f7d31ce70d1"><code>ba4650c</code></a>,
<a
href="https://github.com/TanStack/query/commit/294d4e62c4f7d674574a4903eef2a1bc3dd1413b"><code>294d4e6</code></a>,
<a
href="https://github.com/TanStack/query/commit/1f631b3604aab6567fb3f6c90646a5a304641546"><code>1f631b3</code></a>,
<a
href="https://github.com/TanStack/query/commit/01a02bfad32f9efbc17796be31d6399f1197a655"><code>01a02bf</code></a>,
<a
href="https://github.com/TanStack/query/commit/18c1c1ef94883e781ad36d36f9ea4a043ce4260b"><code>18c1c1e</code></a>,
<a
href="https://github.com/TanStack/query/commit/5448063f828d2270dccd41ae375e1afde35e91f2"><code>5448063</code></a>,
<a
href="https://github.com/TanStack/query/commit/2215bb031139cdc8a84751b37a485c38ca9d2b6e"><code>2215bb0</code></a>,
<a
href="https://github.com/TanStack/query/commit/1ef42087c9a266c2137d2ef645cbcc662f60ac93"><code>1ef4208</code></a>,
<a
href="https://github.com/TanStack/query/commit/5981771abec9330b344a2617543eb05ba7c99e24"><code>5981771</code></a>,
<a
href="https://github.com/TanStack/query/commit/4a9bef6cf19b1cd6b014032d696129f12a848185"><code>4a9bef6</code></a>,
<a
href="https://github.com/TanStack/query/commit/bef4bc780ce7cca32b7e3dea85f77d92f82a62a2"><code>bef4bc7</code></a>,
<a
href="https://github.com/TanStack/query/commit/9656dc4e5fef5f8c502579b52459f9e8c72e787c"><code>9656dc4</code></a>,
<a
href="https://github.com/TanStack/query/commit/326aaf1333e5d9cbc46569c53f218d31684162d2"><code>326aaf1</code></a>,
<a
href="https://github.com/TanStack/query/commit/3e836010032c2586e9f1c66a271fa9114a6401f9"><code>3e83601</code></a>,
<a
href="https://github.com/TanStack/query/commit/c6fc17cfad6e452261c585fabfb8c210e60531ed"><code>c6fc17c</code></a>]:</p>
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.0</li>
</ul>
</li>
</ul>
<h2>5.101.4</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies []:</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/TanStack/query/commit/388bbaf181c4e7b7017b5dbb5cbf2a57eb22e267"><code>388bbaf</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11265">#11265</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/bc423b37ef7fa2a34cfc7286945fd640d74b4071"><code>bc423b3</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11261">#11261</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/be1352b848cf2a9a43eb8828ad023e0a9f74ad36"><code>be1352b</code></a>
test(*): add adapter-level type coverage for optional undefinable mutate
vari...</li>
<li><a
href="https://github.com/TanStack/query/commit/574346846239b8d00d8d8dec4188c572c7cce205"><code>5743468</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11206">#11206</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/2215bb031139cdc8a84751b37a485c38ca9d2b6e"><code>2215bb0</code></a>
fix(query-core): make <code>MutateFunction</code> optional
undefinable-variables (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/8737">#8737</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/d156adcc1561bbaf60a1771bd5743631535a41b4"><code>d156adc</code></a>
test: transition tests (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11246">#11246</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/37127dbe479a4892dbbe28ac8ceabf8832b5f1a3"><code>37127db</code></a>
fix/11018 (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11245">#11245</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/e6748265c86294704f6c872e6f435d9ec5a92b28"><code>e674826</code></a>
React: update usePrefetchQuery to use new methods, plus react adaptor
tests a...</li>
<li><a
href="https://github.com/TanStack/query/commit/88342670eca6e4949416aab832b1f81cc7b881f8"><code>8834267</code></a>
fix(react-query): keep unsubscribed useQueries idle (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11130">#11130</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/1ef42087c9a266c2137d2ef645cbcc662f60ac93"><code>1ef4208</code></a>
ref: remove experimental_prefetchInRender (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11221">#11221</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/TanStack/query/commits/@tanstack/react-query@5.102.2/packages/react-query">compare
view</a></li>
</ul>
</details>
<br />

Updates `@zama-fhe/react-sdk` from 3.4.0-alpha.10 to 3.5.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/zama-ai/sdk/releases">@​zama-fhe/react-sdk's
releases</a>.</em></p>
<blockquote>
<h2>v3.5.1</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0...v3.5.1">3.5.1</a>
(2026-08-27)</h2>
<h3>Build System</h3>
<ul>
<li>trigger Build (<a
href="https://redirect.github.com/zama-ai/sdk/issues/651">#651</a>) (<a
href="">34a4240</a>)</li>
</ul>
<h2>v3.5.1-alpha.1</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0...v3.5.1-alpha.1">3.5.1-alpha.1</a>
(2026-08-26)</h2>
<h3>Build System</h3>
<ul>
<li>trigger Build (<a
href="https://redirect.github.com/zama-ai/sdk/issues/651">#651</a>) (<a
href="">34a4240</a>)</li>
</ul>
<h2>v3.5.0</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.4.0...v3.5.0">3.5.0</a>
(2026-08-26)</h2>
<h3>Features</h3>
<ul>
<li>add polygon support (<a
href="https://redirect.github.com/zama-ai/sdk/issues/638">#638</a>) (<a
href="">f97f9f6</a>)</li>
<li><strong>credentials:</strong> optional derivationSecret wrapping for
at-rest private key protection [SDK-135] (<a
href="https://redirect.github.com/zama-ai/sdk/issues/547">#547</a>) (<a
href="">65a60eb</a>)</li>
<li><strong>examples:</strong> add example-polygon-amoy app (<a
href="https://redirect.github.com/zama-ai/sdk/issues/603">#603</a>) (<a
href="">be7fbac</a>)</li>
<li>offline permit flow (<a
href="https://redirect.github.com/zama-ai/sdk/issues/634">#634</a>) (<a
href="">bbfae74</a>)</li>
<li>revoked kms context recovery (<a
href="https://redirect.github.com/zama-ai/sdk/issues/633">#633</a>) (<a
href="">8f1e9d1</a>)</li>
<li><strong>sdk:</strong> add Polygon Amoy (80002) chain preset (<a
href="https://redirect.github.com/zama-ai/sdk/issues/602">#602</a>) (<a
href="">bf6157b</a>)</li>
<li><strong>sdk:</strong> offline signing <code>prepare</code> for
out-of-process custody (SDK-75) (<a
href="https://redirect.github.com/zama-ai/sdk/issues/345">#345</a>) (<a
href="">66b8b40</a>), closes <a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/7">#7</a></li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>add browser compatibility lint (<a
href="https://redirect.github.com/zama-ai/sdk/issues/625">#625</a>) (<a
href="">cb27545</a>)</li>
<li><strong>examples:</strong> derive relayer proxy URL from window
origin (<a
href="https://redirect.github.com/zama-ai/sdk/issues/635">#635</a>) (<a
href="">e676154</a>)</li>
<li><strong>examples:</strong> switch Sepolia/Hoodi explorer links to
BlockScout [SDK-297] (<a
href="https://redirect.github.com/zama-ai/sdk/issues/636">#636</a>) (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/6540368">6540368</a>)</li>
<li><strong>examples:</strong> use bare relayer host in proxy default
(<a href="https://redirect.github.com/zama-ai/sdk/issues/601">#601</a>)
(<a href="">081bb9c</a>)</li>
<li><strong>sdk:</strong> bind confidentialTransferFrom input proof to
the tx sender (<a
href="https://redirect.github.com/zama-ai/sdk/issues/611">#611</a>) (<a
href="">d51c627</a>)</li>
<li><strong>sdk:</strong> guard ACL revert lookup against
prototype-chain error names (<a
href="https://redirect.github.com/zama-ai/sdk/issues/624">#624</a>) (<a
href="">f871a2c</a>), closes <a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/130">#130</a>
<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/130">#130</a></li>
</ul>
<h2>v3.5.0-alpha.12</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.11...v3.5.0-alpha.12">3.5.0-alpha.12</a>
(2026-08-25)</h2>
<h3>Features</h3>
<ul>
<li>add polygon support (<a
href="https://redirect.github.com/zama-ai/sdk/issues/638">#638</a>) (<a
href="">f97f9f6</a>)</li>
</ul>
<h2>v3.5.0-alpha.11</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.10...v3.5.0-alpha.11">3.5.0-alpha.11</a>
(2026-08-25)</h2>
<h3>Features</h3>
<ul>
<li>revoked kms context recovery (<a
href="https://redirect.github.com/zama-ai/sdk/issues/633">#633</a>) (<a
href="">8f1e9d1</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/zama-ai/sdk/blob/main/CHANGELOG.md">@​zama-fhe/react-sdk's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0...v3.5.1">3.5.1</a>
(2026-08-27)</h2>
<h3>Build System</h3>
<ul>
<li>trigger Build (<a
href="https://redirect.github.com/zama-ai/sdk/issues/651">#651</a>) (<a
href="">34a4240</a>)</li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0...v3.5.1-alpha.1">3.5.1-alpha.1</a>
(2026-08-26)</h2>
<h3>Build System</h3>
<ul>
<li>trigger Build (<a
href="https://redirect.github.com/zama-ai/sdk/issues/651">#651</a>) (<a
href="">34a4240</a>)</li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.4.0...v3.5.0">3.5.0</a>
(2026-08-26)</h2>
<h3>Features</h3>
<ul>
<li>add polygon support (<a
href="https://redirect.github.com/zama-ai/sdk/issues/638">#638</a>) (<a
href="">f97f9f6</a>)</li>
<li><strong>credentials:</strong> optional derivationSecret wrapping for
at-rest private key protection [SDK-135] (<a
href="https://redirect.github.com/zama-ai/sdk/issues/547">#547</a>) (<a
href="">65a60eb</a>)</li>
<li><strong>examples:</strong> add example-polygon-amoy app (<a
href="https://redirect.github.com/zama-ai/sdk/issues/603">#603</a>) (<a
href="">be7fbac</a>)</li>
<li>offline permit flow (<a
href="https://redirect.github.com/zama-ai/sdk/issues/634">#634</a>) (<a
href="">bbfae74</a>)</li>
<li>revoked kms context recovery (<a
href="https://redirect.github.com/zama-ai/sdk/issues/633">#633</a>) (<a
href="">8f1e9d1</a>)</li>
<li><strong>sdk:</strong> add Polygon Amoy (80002) chain preset (<a
href="https://redirect.github.com/zama-ai/sdk/issues/602">#602</a>) (<a
href="">bf6157b</a>)</li>
<li><strong>sdk:</strong> offline signing <code>prepare</code> for
out-of-process custody (SDK-75) (<a
href="https://redirect.github.com/zama-ai/sdk/issues/345">#345</a>) (<a
href="">66b8b40</a>), closes <a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/7">#7</a></li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>add browser compatibility lint (<a
href="https://redirect.github.com/zama-ai/sdk/issues/625">#625</a>) (<a
href="">cb27545</a>)</li>
<li><strong>examples:</strong> derive relayer proxy URL from window
origin (<a
href="https://redirect.github.com/zama-ai/sdk/issues/635">#635</a>) (<a
href="">e676154</a>)</li>
<li><strong>examples:</strong> switch Sepolia/Hoodi explorer links to
BlockScout [SDK-297] (<a
href="https://redirect.github.com/zama-ai/sdk/issues/636">#636</a>) (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/6540368">6540368</a>)</li>
<li><strong>examples:</strong> use bare relayer host in proxy default
(<a href="https://redirect.github.com/zama-ai/sdk/issues/601">#601</a>)
(<a href="">081bb9c</a>)</li>
<li><strong>sdk:</strong> bind confidentialTransferFrom input proof to
the tx sender (<a
href="https://redirect.github.com/zama-ai/sdk/issues/611">#611</a>) (<a
href="">d51c627</a>)</li>
<li><strong>sdk:</strong> guard ACL revert lookup against
prototype-chain error names (<a
href="https://redirect.github.com/zama-ai/sdk/issues/624">#624</a>) (<a
href="">f871a2c</a>), closes <a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/130">#130</a>
<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/130">#130</a></li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.11...v3.5.0-alpha.12">3.5.0-alpha.12</a>
(2026-08-25)</h2>
<h3>Features</h3>
<ul>
<li>add polygon support (<a
href="https://redirect.github.com/zama-ai/sdk/issues/638">#638</a>) (<a
href="">f97f9f6</a>)</li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.10...v3.5.0-alpha.11">3.5.0-alpha.11</a>
(2026-08-25)</h2>
<h3>Features</h3>
<ul>
<li>revoked kms context recovery (<a
href="https://redirect.github.com/zama-ai/sdk/issues/633">#633</a>) (<a
href="">8f1e9d1</a>)</li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.9...v3.5.0-alpha.10">3.5.0-alpha.10</a>
(2026-08-24)</h2>
<h3>Features</h3>
<ul>
<li>offline permit flow (<a
href="https://redirect.github.com/zama-ai/sdk/issues/634">#634</a>) (<a
href="">bbfae74</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/zama-ai/sdk/commit/40b9ef8549c8bcc12a90b17de66e1ba2cc742a70"><code>40b9ef8</code></a>
chore(release): 3.5.1 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/5c28028a4493fc8414604eb6f2a36fcc15cb289e"><code>5c28028</code></a>
chore(release): 3.5.1-alpha.1 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/5c66761f23d711f06d68176bd31c4968ba5051c7"><code>5c66761</code></a>
chore(release): 3.5.0 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/72e3b92e4eb4e966dc2f0c8e37acc811a0cc99a9"><code>72e3b92</code></a>
chore(release): 3.5.0-alpha.12 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/5b1520d4bd46ddbbdb632615b7c1d6b1b75f1af3"><code>5b1520d</code></a>
chore(release): 3.5.0-alpha.11 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/30a104c1296b314f0dadebf78eb145a0e0bcebc2"><code>30a104c</code></a>
chore(release): 3.5.0-alpha.10 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/bbfae7477e36bb311a81e8b230ae1268d2c6f65a"><code>bbfae74</code></a>
feat: offline permit flow (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/react-sdk/issues/634">#634</a>)</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/8278ebb62ea5d25ef5edfeecb2450d769e6b5456"><code>8278ebb</code></a>
chore(release): 3.5.0-alpha.9 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/07b29d5606f20fd2da0628778c43d9024d4da873"><code>07b29d5</code></a>
chore(release): 3.5.0-alpha.8 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/3bc8978a1a0530c74c621454a6329d002f589117"><code>3bc8978</code></a>
chore(release): 3.5.0-alpha.7 [skip ci]</li>
<li>Additional commits viewable in <a
href="https://github.com/zama-ai/sdk/commits/v3.5.1/packages/react-sdk">compare
view</a></li>
</ul>
</details>
<br />

Updates `@zama-fhe/sdk` from 3.4.0-alpha.10 to 3.5.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/zama-ai/sdk/releases">@​zama-fhe/sdk's
releases</a>.</em></p>
<blockquote>
<h2>v3.5.1</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0...v3.5.1">3.5.1</a>
(2026-08-27)</h2>
<h3>Build System</h3>
<ul>
<li>trigger Build (<a
href="https://redirect.github.com/zama-ai/sdk/issues/651">#651</a>) (<a
href="">34a4240</a>)</li>
</ul>
<h2>v3.5.1-alpha.1</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0...v3.5.1-alpha.1">3.5.1-alpha.1</a>
(2026-08-26)</h2>
<h3>Build System</h3>
<ul>
<li>trigger Build (<a
href="https://redirect.github.com/zama-ai/sdk/issues/651">#651</a>) (<a
href="">34a4240</a>)</li>
</ul>
<h2>v3.5.0</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.4.0...v3.5.0">3.5.0</a>
(2026-08-26)</h2>
<h3>Features</h3>
<ul>
<li>add polygon support (<a
href="https://redirect.github.com/zama-ai/sdk/issues/638">#638</a>) (<a
href="">f97f9f6</a>)</li>
<li><strong>credentials:</strong> optional derivationSecret wrapping for
at-rest private key protection [SDK-135] (<a
href="https://redirect.github.com/zama-ai/sdk/issues/547">#547</a>) (<a
href="">65a60eb</a>)</li>
<li><strong>examples:</strong> add example-polygon-amoy app (<a
href="https://redirect.github.com/zama-ai/sdk/issues/603">#603</a>) (<a
href="">be7fbac</a>)</li>
<li>offline permit flow (<a
href="https://redirect.github.com/zama-ai/sdk/issues/634">#634</a>) (<a
href="">bbfae74</a>)</li>
<li>revoked kms context recovery (<a
href="https://redirect.github.com/zama-ai/sdk/issues/633">#633</a>) (<a
href="">8f1e9d1</a>)</li>
<li><strong>sdk:</strong> add Polygon Amoy (80002) chain preset (<a
href="https://redirect.github.com/zama-ai/sdk/issues/602">#602</a>) (<a
href="">bf6157b</a>)</li>
<li><strong>sdk:</strong> offline signing <code>prepare</code> for
out-of-process custody (SDK-75) (<a
href="https://redirect.github.com/zama-ai/sdk/issues/345">#345</a>) (<a
href="">66b8b40</a>), closes <a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/7">#7</a></li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>add browser compatibility lint (<a
href="https://redirect.github.com/zama-ai/sdk/issues/625">#625</a>) (<a
href="">cb27545</a>)</li>
<li><strong>examples:</strong> derive relayer proxy URL from window
origin (<a
href="https://redirect.github.com/zama-ai/sdk/issues/635">#635</a>) (<a
href="">e676154</a>)</li>
<li><strong>examples:</strong> switch Sepolia/Hoodi explorer links to
BlockScout [SDK-297] (<a
href="https://redirect.github.com/zama-ai/sdk/issues/636">#636</a>) (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/6540368">6540368</a>)</li>
<li><strong>examples:</strong> use bare relayer host in proxy default
(<a href="https://redirect.github.com/zama-ai/sdk/issues/601">#601</a>)
(<a href="">081bb9c</a>)</li>
<li><strong>sdk:</strong> bind confidentialTransferFrom input proof to
the tx sender (<a
href="https://redirect.github.com/zama-ai/sdk/issues/611">#611</a>) (<a
href="">d51c627</a>)</li>
<li><strong>sdk:</strong> guard ACL revert lookup against
prototype-chain error names (<a
href="https://redirect.github.com/zama-ai/sdk/issues/624">#624</a>) (<a
href="">f871a2c</a>), closes <a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/130">#130</a>
<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/130">#130</a></li>
</ul>
<h2>v3.5.0-alpha.12</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.11...v3.5.0-alpha.12">3.5.0-alpha.12</a>
(2026-08-25)</h2>
<h3>Features</h3>
<ul>
<li>add polygon support (<a
href="https://redirect.github.com/zama-ai/sdk/issues/638">#638</a>) (<a
href="">f97f9f6</a>)</li>
</ul>
<h2>v3.5.0-alpha.11</h2>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.10...v3.5.0-alpha.11">3.5.0-alpha.11</a>
(2026-08-25)</h2>
<h3>Features</h3>
<ul>
<li>revoked kms context recovery (<a
href="https://redirect.github.com/zama-ai/sdk/issues/633">#633</a>) (<a
href="">8f1e9d1</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/zama-ai/sdk/blob/main/CHANGELOG.md">@​zama-fhe/sdk's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0...v3.5.1">3.5.1</a>
(2026-08-27)</h2>
<h3>Build System</h3>
<ul>
<li>trigger Build (<a
href="https://redirect.github.com/zama-ai/sdk/issues/651">#651</a>) (<a
href="">34a4240</a>)</li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0...v3.5.1-alpha.1">3.5.1-alpha.1</a>
(2026-08-26)</h2>
<h3>Build System</h3>
<ul>
<li>trigger Build (<a
href="https://redirect.github.com/zama-ai/sdk/issues/651">#651</a>) (<a
href="">34a4240</a>)</li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.4.0...v3.5.0">3.5.0</a>
(2026-08-26)</h2>
<h3>Features</h3>
<ul>
<li>add polygon support (<a
href="https://redirect.github.com/zama-ai/sdk/issues/638">#638</a>) (<a
href="">f97f9f6</a>)</li>
<li><strong>credentials:</strong> optional derivationSecret wrapping for
at-rest private key protection [SDK-135] (<a
href="https://redirect.github.com/zama-ai/sdk/issues/547">#547</a>) (<a
href="">65a60eb</a>)</li>
<li><strong>examples:</strong> add example-polygon-amoy app (<a
href="https://redirect.github.com/zama-ai/sdk/issues/603">#603</a>) (<a
href="">be7fbac</a>)</li>
<li>offline permit flow (<a
href="https://redirect.github.com/zama-ai/sdk/issues/634">#634</a>) (<a
href="">bbfae74</a>)</li>
<li>revoked kms context recovery (<a
href="https://redirect.github.com/zama-ai/sdk/issues/633">#633</a>) (<a
href="">8f1e9d1</a>)</li>
<li><strong>sdk:</strong> add Polygon Amoy (80002) chain preset (<a
href="https://redirect.github.com/zama-ai/sdk/issues/602">#602</a>) (<a
href="">bf6157b</a>)</li>
<li><strong>sdk:</strong> offline signing <code>prepare</code> for
out-of-process custody (SDK-75) (<a
href="https://redirect.github.com/zama-ai/sdk/issues/345">#345</a>) (<a
href="">66b8b40</a>), closes <a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/7">#7</a></li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>add browser compatibility lint (<a
href="https://redirect.github.com/zama-ai/sdk/issues/625">#625</a>) (<a
href="">cb27545</a>)</li>
<li><strong>examples:</strong> derive relayer proxy URL from window
origin (<a
href="https://redirect.github.com/zama-ai/sdk/issues/635">#635</a>) (<a
href="">e676154</a>)</li>
<li><strong>examples:</strong> switch Sepolia/Hoodi explorer links to
BlockScout [SDK-297] (<a
href="https://redirect.github.com/zama-ai/sdk/issues/636">#636</a>) (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/6540368">6540368</a>)</li>
<li><strong>examples:</strong> use bare relayer host in proxy default
(<a href="https://redirect.github.com/zama-ai/sdk/issues/601">#601</a>)
(<a href="">081bb9c</a>)</li>
<li><strong>sdk:</strong> bind confidentialTransferFrom input proof to
the tx sender (<a
href="https://redirect.github.com/zama-ai/sdk/issues/611">#611</a>) (<a
href="">d51c627</a>)</li>
<li><strong>sdk:</strong> guard ACL revert lookup against
prototype-chain error names (<a
href="https://redirect.github.com/zama-ai/sdk/issues/624">#624</a>) (<a
href="">f871a2c</a>), closes <a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/130">#130</a>
<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/130">#130</a></li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.11...v3.5.0-alpha.12">3.5.0-alpha.12</a>
(2026-08-25)</h2>
<h3>Features</h3>
<ul>
<li>add polygon support (<a
href="https://redirect.github.com/zama-ai/sdk/issues/638">#638</a>) (<a
href="">f97f9f6</a>)</li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.10...v3.5.0-alpha.11">3.5.0-alpha.11</a>
(2026-08-25)</h2>
<h3>Features</h3>
<ul>
<li>revoked kms context recovery (<a
href="https://redirect.github.com/zama-ai/sdk/issues/633">#633</a>) (<a
href="">8f1e9d1</a>)</li>
</ul>
<h2><a
href="https://github.com/zama-ai/sdk/compare/v3.5.0-alpha.9...v3.5.0-alpha.10">3.5.0-alpha.10</a>
(2026-08-24)</h2>
<h3>Features</h3>
<ul>
<li>offline permit flow (<a
href="https://redirect.github.com/zama-ai/sdk/issues/634">#634</a>) (<a
href="">bbfae74</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/zama-ai/sdk/commit/40b9ef8549c8bcc12a90b17de66e1ba2cc742a70"><code>40b9ef8</code></a>
chore(release): 3.5.1 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/5c28028a4493fc8414604eb6f2a36fcc15cb289e"><code>5c28028</code></a>
chore(release): 3.5.1-alpha.1 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/77ef2d9a33caf38f87b66d0c1b6168777ec8f292"><code>77ef2d9</code></a>
chore: revert upgrade fhevm sdk (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/644">#644</a>)
(<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/650">#650</a>)</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/5c66761f23d711f06d68176bd31c4968ba5051c7"><code>5c66761</code></a>
chore(release): 3.5.0 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/72e3b92e4eb4e966dc2f0c8e37acc811a0cc99a9"><code>72e3b92</code></a>
chore(release): 3.5.0-alpha.12 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/f97f9f61dd085d83643d9c1c4294355a11fcd9c4"><code>f97f9f6</code></a>
feat: add polygon support (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/638">#638</a>)</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/db2e7c7e5ae0b8402ab45709ce9bd1f47af333e2"><code>db2e7c7</code></a>
chore: upgrade fhevm sdk (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/644">#644</a>)</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/5b1520d4bd46ddbbdb632615b7c1d6b1b75f1af3"><code>5b1520d</code></a>
chore(release): 3.5.0-alpha.11 [skip ci]</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/8f1e9d1612d0d68b5b6a91e4fa4ead7956b1c8c0"><code>8f1e9d1</code></a>
feat: revoked kms context recovery (<a
href="https://github.com/zama-ai/sdk/tree/HEAD/packages/sdk/issues/633">#633</a>)</li>
<li><a
href="https://github.com/zama-ai/sdk/commit/30a104c1296b314f0dadebf78eb145a0e0bcebc2"><code>30a104c</code></a>
chore(release): 3.5.0-alpha.10 [skip ci]</li>
<li>Additional commits viewable in <a
href="https://github.com/zama-ai/sdk/commits/v3.5.1/packages/sdk">compare
view</a></li>
</ul>
</details>
<br />

Updates `@tanstack/react-query` from 5.101.0 to 5.102.2
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md">@​tanstack/react-query's
changelog</a>.</em></p>
<blockquote>
<h2>5.102.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies [<a
href="https://github.com/TanStack/query/commit/80fbf73e77892d702c107e14a84c219a8ed825dc"><code>80fbf73</code></a>]:
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.2</li>
</ul>
</li>
</ul>
<h2>5.102.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies [<a
href="https://github.com/TanStack/query/commit/134890dbdc60e4fb0313e44b512d29284ca82f96"><code>134890d</code></a>]:
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.1</li>
</ul>
</li>
</ul>
<h2>5.102.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/TanStack/query/pull/10668">#10668</a>
<a
href="https://github.com/TanStack/query/commit/e6748265c86294704f6c872e6f435d9ec5a92b28"><code>e674826</code></a>
- react-query: update usePrefetchQuery and usePrefetchInfiniteQuery to
use queryClient.query and queryClient.infiniteQuery</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11245">#11245</a>
<a
href="https://github.com/TanStack/query/commit/37127dbe479a4892dbbe28ac8ceabf8832b5f1a3"><code>37127db</code></a>
- …
Bumps the sdk group with 4 updates in the / directory:
[@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query),
[oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt),
[oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) and
[@tanstack/query-core](https://github.com/TanStack/query/tree/HEAD/packages/query-core).

Updates `@tanstack/react-query` from 5.101.2 to 5.102.2
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md">@​tanstack/react-query's
changelog</a>.</em></p>
<blockquote>
<h2>5.102.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies [<a
href="https://github.com/TanStack/query/commit/80fbf73e77892d702c107e14a84c219a8ed825dc"><code>80fbf73</code></a>]:
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.2</li>
</ul>
</li>
</ul>
<h2>5.102.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies [<a
href="https://github.com/TanStack/query/commit/134890dbdc60e4fb0313e44b512d29284ca82f96"><code>134890d</code></a>]:
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.1</li>
</ul>
</li>
</ul>
<h2>5.102.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/TanStack/query/pull/10668">#10668</a>
<a
href="https://github.com/TanStack/query/commit/e6748265c86294704f6c872e6f435d9ec5a92b28"><code>e674826</code></a>
- react-query: update usePrefetchQuery and usePrefetchInfiniteQuery to
use queryClient.query and queryClient.infiniteQuery</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11245">#11245</a>
<a
href="https://github.com/TanStack/query/commit/37127dbe479a4892dbbe28ac8ceabf8832b5f1a3"><code>37127db</code></a>
- revert: remove NoInfer from useQuery return types</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/10373">#10373</a>
<a
href="https://github.com/TanStack/query/commit/6e3d521fe54f78624e53c1c6f9cadd678504bee8"><code>6e3d521</code></a>
- fix(types): propagate generic type parameters to
<code>useMutationState</code> select callback</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11224">#11224</a>
<a
href="https://github.com/TanStack/query/commit/294d4e62c4f7d674574a4903eef2a1bc3dd1413b"><code>294d4e6</code></a>
- Fix <code>queryOptions</code> and <code>infiniteQueryOptions</code>
return types so exported inferred options can be emitted in declaration
files without leaking internal data tag symbols.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11147">#11147</a>
<a
href="https://github.com/TanStack/query/commit/cb6c9d3725db0fed94fb5133820e41b7c326d2ef"><code>cb6c9d3</code></a>
- Default <code>TData</code> of <code>UseInfiniteQueryOptions</code> and
<code>UseSuspenseInfiniteQueryOptions</code> to
<code>InfiniteData&lt;TQueryFnData&gt;</code> so it matches the hook
generics.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/8737">#8737</a> <a
href="https://github.com/TanStack/query/commit/2215bb031139cdc8a84751b37a485c38ca9d2b6e"><code>2215bb0</code></a>
- fix: make mutation variables optional when <code>undefined extends
TVariables</code></p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11221">#11221</a>
<a
href="https://github.com/TanStack/query/commit/1ef42087c9a266c2137d2ef645cbcc662f60ac93"><code>1ef4208</code></a>
- Remove experimental render-time prefetching and the
<code>promise</code> property from query results.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11228">#11228</a>
<a
href="https://github.com/TanStack/query/commit/fb6c3fabda4cb6b291cccc6651ed88a7db901915"><code>fb6c3fa</code></a>
- Avoid emitting a runtime import for React Query's type-only
exports.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11130">#11130</a>
<a
href="https://github.com/TanStack/query/commit/88342670eca6e4949416aab832b1f81cc7b881f8"><code>8834267</code></a>
- fix(react-query): don't show optimistic fetching for unsubscribed
useQueries</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11233">#11233</a>
<a
href="https://github.com/TanStack/query/commit/b866a95adde7e8465462526df5870ebc12340b36"><code>b866a95</code></a>
- remove unused experimental_beforeQuery and experimental_afterQuery
hooks</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11144">#11144</a>
<a
href="https://github.com/TanStack/query/commit/e546d03bef116c66a05dbf42ccfd70b6d8600a8f"><code>e546d03</code></a>
- fix: remove placeholderData from suspense infinite query</p>
</li>
<li>
<p>Updated dependencies [<a
href="https://github.com/TanStack/query/commit/34f7ceed09c10e4a3aa2df31a106ddf02ec4e787"><code>34f7cee</code></a>,
<a
href="https://github.com/TanStack/query/commit/b4368c43792349f6c29d1fb41f7ee1ef3a8bdd2c"><code>b4368c4</code></a>,
<a
href="https://github.com/TanStack/query/commit/5bb089d153d33933983b7ea80f8d69b51d423698"><code>5bb089d</code></a>,
<a
href="https://github.com/TanStack/query/commit/ba4650c05e61e33c609e051b948c9f7d31ce70d1"><code>ba4650c</code></a>,
<a
href="https://github.com/TanStack/query/commit/294d4e62c4f7d674574a4903eef2a1bc3dd1413b"><code>294d4e6</code></a>,
<a
href="https://github.com/TanStack/query/commit/1f631b3604aab6567fb3f6c90646a5a304641546"><code>1f631b3</code></a>,
<a
href="https://github.com/TanStack/query/commit/01a02bfad32f9efbc17796be31d6399f1197a655"><code>01a02bf</code></a>,
<a
href="https://github.com/TanStack/query/commit/18c1c1ef94883e781ad36d36f9ea4a043ce4260b"><code>18c1c1e</code></a>,
<a
href="https://github.com/TanStack/query/commit/5448063f828d2270dccd41ae375e1afde35e91f2"><code>5448063</code></a>,
<a
href="https://github.com/TanStack/query/commit/2215bb031139cdc8a84751b37a485c38ca9d2b6e"><code>2215bb0</code></a>,
<a
href="https://github.com/TanStack/query/commit/1ef42087c9a266c2137d2ef645cbcc662f60ac93"><code>1ef4208</code></a>,
<a
href="https://github.com/TanStack/query/commit/5981771abec9330b344a2617543eb05ba7c99e24"><code>5981771</code></a>,
<a
href="https://github.com/TanStack/query/commit/4a9bef6cf19b1cd6b014032d696129f12a848185"><code>4a9bef6</code></a>,
<a
href="https://github.com/TanStack/query/commit/bef4bc780ce7cca32b7e3dea85f77d92f82a62a2"><code>bef4bc7</code></a>,
<a
href="https://github.com/TanStack/query/commit/9656dc4e5fef5f8c502579b52459f9e8c72e787c"><code>9656dc4</code></a>,
<a
href="https://github.com/TanStack/query/commit/326aaf1333e5d9cbc46569c53f218d31684162d2"><code>326aaf1</code></a>,
<a
href="https://github.com/TanStack/query/commit/3e836010032c2586e9f1c66a271fa9114a6401f9"><code>3e83601</code></a>,
<a
href="https://github.com/TanStack/query/commit/c6fc17cfad6e452261c585fabfb8c210e60531ed"><code>c6fc17c</code></a>]:</p>
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.0</li>
</ul>
</li>
</ul>
<h2>5.101.4</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies []:</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/TanStack/query/commit/388bbaf181c4e7b7017b5dbb5cbf2a57eb22e267"><code>388bbaf</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11265">#11265</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/bc423b37ef7fa2a34cfc7286945fd640d74b4071"><code>bc423b3</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11261">#11261</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/be1352b848cf2a9a43eb8828ad023e0a9f74ad36"><code>be1352b</code></a>
test(*): add adapter-level type coverage for optional undefinable mutate
vari...</li>
<li><a
href="https://github.com/TanStack/query/commit/574346846239b8d00d8d8dec4188c572c7cce205"><code>5743468</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11206">#11206</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/2215bb031139cdc8a84751b37a485c38ca9d2b6e"><code>2215bb0</code></a>
fix(query-core): make <code>MutateFunction</code> optional
undefinable-variables (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/8737">#8737</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/d156adcc1561bbaf60a1771bd5743631535a41b4"><code>d156adc</code></a>
test: transition tests (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11246">#11246</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/37127dbe479a4892dbbe28ac8ceabf8832b5f1a3"><code>37127db</code></a>
fix/11018 (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11245">#11245</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/e6748265c86294704f6c872e6f435d9ec5a92b28"><code>e674826</code></a>
React: update usePrefetchQuery to use new methods, plus react adaptor
tests a...</li>
<li><a
href="https://github.com/TanStack/query/commit/88342670eca6e4949416aab832b1f81cc7b881f8"><code>8834267</code></a>
fix(react-query): keep unsubscribed useQueries idle (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11130">#11130</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/1ef42087c9a266c2137d2ef645cbcc662f60ac93"><code>1ef4208</code></a>
ref: remove experimental_prefetchInRender (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11221">#11221</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/TanStack/query/commits/@tanstack/react-query@5.102.2/packages/react-query">compare
view</a></li>
</ul>
</details>
<br />

Updates `oxfmt` from 0.64.0 to 0.65.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md">oxfmt's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>All notable changes to this package will be documented in this
file.</p>
<p>The format is based on <a
href="https://keepachangelog.com/en/1.0.0">Keep a Changelog</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/oxc-project/oxc/commit/97e99b85483776a72928d675cc05b1cfc1130ba0"><code>97e99b8</code></a>
release(apps): oxlint v1.80.0 &amp;&amp; oxfmt v0.65.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/26045">#26045</a>)</li>
<li>See full diff in <a
href="https://github.com/oxc-project/oxc/commits/oxfmt_v0.65.0/npm/oxfmt">compare
view</a></li>
</ul>
</details>
<br />

Updates `oxlint` from 1.79.0 to 1.80.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/oxc-project/oxc/releases">oxlint's
releases</a>.</em></p>
<blockquote>
<h2>oxlint v1.80.0 &amp; oxfmt v0.65.0</h2>
<h2>Table of Contents</h2>
<ul>
<li><a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/blob/HEAD/#oxlint-v1.80.0">Oxlint
v1.80.0</a></li>
<li><a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/blob/HEAD/#oxfmt-v0.65.0">Oxfmt
v0.65.0</a></li>
</ul>
<h2>Oxlint v1.80.0</h2>
<h3>🚀 Features</h3>
<ul>
<li>70c3e35 linter/typescript/no-confusing-non-null-assertion: Implement
suggestion (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26012">#26012</a>)
(Mikhail Baev)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>17ae11c linter/oxc/double-comparisons: Handle grouped logical
expressions (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26044">#26044</a>)
(camc314)</li>
<li>8a353a7 linter/eslint/no-control-regex: Refine help message text (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25996">#25996</a>)
(Rahul Mishra)</li>
<li>8a9bdbd estree: Include decorators in <code>FormalParameterRest
</code> spans (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26021">#26021</a>)
(camc314)</li>
<li>8d94cd1 linter/eslint/no-useless-rename: Preserve type modifiers (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26020">#26020</a>)
(Cameron)</li>
<li>2cde1f6 rust: Address nightly deprecations (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25998">#25998</a>)
(Boshen)</li>
<li>51d36d7 linter/vue: Resolve <code>vue</code> imports via shared
import helpers (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25903">#25903</a>)
(Connor Shea)</li>
<li>83a68d2 linter/react/no-react-children: Resolve <code>react</code>
imports by symbol (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25901">#25901</a>)
(Connor Shea)</li>
<li>124e196 linter: Resolve globals by reference, not by name (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25905">#25905</a>)
(Connor Shea)</li>
<li>a701bcc linter: Remove invalid React compiler doc links (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25900">#25900</a>)
(Boshen)</li>
</ul>
<h3>📚 Documentation</h3>
<ul>
<li>9b7e153 linter: Set <code>version</code> to 1.79.0 for rules shipped
in 1.79.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25902">#25902</a>)
(connorshea)</li>
</ul>
<h2>Oxfmt v0.65.0</h2>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>bf37dd5 formatter: Preserve class decorators before export when the
statement is suppressed (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26034">#26034</a>)
(leaysgur)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md">oxlint's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>All notable changes to this package will be documented in this
file.</p>
<p>The format is based on <a
href="https://keepachangelog.com/en/1.0.0">Keep a Changelog</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/oxc-project/oxc/commit/97e99b85483776a72928d675cc05b1cfc1130ba0"><code>97e99b8</code></a>
release(apps): oxlint v1.80.0 &amp;&amp; oxfmt v0.65.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26045">#26045</a>)</li>
<li>See full diff in <a
href="https://github.com/oxc-project/oxc/commits/oxlint_v1.80.0/npm/oxlint">compare
view</a></li>
</ul>
</details>
<br />

Updates `@tanstack/query-core` from 5.101.2 to 5.102.2
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/TanStack/query/blob/main/packages/query-core/CHANGELOG.md">@​tanstack/query-core's
changelog</a>.</em></p>
<blockquote>
<h2>5.102.2</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/TanStack/query/pull/11263">#11263</a>
<a
href="https://github.com/TanStack/query/commit/80fbf73e77892d702c107e14a84c219a8ed825dc"><code>80fbf73</code></a>
- Export MutationCacheConfig and QueryCacheConfig.</li>
</ul>
<h2>5.102.1</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/TanStack/query/pull/11260">#11260</a>
<a
href="https://github.com/TanStack/query/commit/134890dbdc60e4fb0313e44b512d29284ca82f96"><code>134890d</code></a>
- Type hydration input as a partial dehydrated state so omitted mutation
and query collections are supported.</li>
</ul>
<h2>5.102.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/TanStack/query/pull/10658">#10658</a>
<a
href="https://github.com/TanStack/query/commit/c6fc17cfad6e452261c585fabfb8c210e60531ed"><code>c6fc17c</code></a>
- add query and infiniteQuery methods, deprecate old imperative
methods</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11161">#11161</a>
<a
href="https://github.com/TanStack/query/commit/34f7ceed09c10e4a3aa2df31a106ddf02ec4e787"><code>34f7cee</code></a>
- fix(query-core): clear a stale <code>select</code> error when the
observer switches to a query without data, and reset
<code>isPlaceholderData</code> on select-error results to match the
declared result types, so a previous query's select error no longer
leaks into the new result</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11253">#11253</a>
<a
href="https://github.com/TanStack/query/commit/b4368c43792349f6c29d1fb41f7ee1ef3a8bdd2c"><code>b4368c4</code></a>
- Improve hydration performance by skipping no-op data transforms and
default error-redaction callbacks.
Export dehydrateQuery.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11214">#11214</a>
<a
href="https://github.com/TanStack/query/commit/5bb089d153d33933983b7ea80f8d69b51d423698"><code>5bb089d</code></a>
- Reduce observer churn overhead by removing observers in place instead
of copying the observer list for every unsubscribe.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11011">#11011</a>
<a
href="https://github.com/TanStack/query/commit/ba4650c05e61e33c609e051b948c9f7d31ce70d1"><code>ba4650c</code></a>
- fix(query-core): reset <code>isPlaceholderData</code> when
<code>select</code> throws on placeholder data</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11224">#11224</a>
<a
href="https://github.com/TanStack/query/commit/294d4e62c4f7d674574a4903eef2a1bc3dd1413b"><code>294d4e6</code></a>
- Fix <code>queryOptions</code> and <code>infiniteQueryOptions</code>
return types so exported inferred options can be emitted in declaration
files without leaking internal data tag symbols.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11225">#11225</a>
<a
href="https://github.com/TanStack/query/commit/1f631b3604aab6567fb3f6c90646a5a304641546"><code>1f631b3</code></a>
- Skip unused result tracking when notifying <code>useQueries</code>
listeners without a <code>combine</code> function.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11215">#11215</a>
<a
href="https://github.com/TanStack/query/commit/01a02bfad32f9efbc17796be31d6399f1197a655"><code>01a02bf</code></a>
- Avoid repeatedly synchronizing the same tracked property across all
observers in <code>useQueries</code>.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11172">#11172</a>
<a
href="https://github.com/TanStack/query/commit/18c1c1ef94883e781ad36d36f9ea4a043ce4260b"><code>18c1c1e</code></a>
- Reattach <code>MutationObserver</code> to its current mutation when a
listener subscribes again, so a <code>useMutation</code> result no
longer stays <code>pending</code> after React tears down and
re-establishes the subscription mid-mutation.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11128">#11128</a>
<a
href="https://github.com/TanStack/query/commit/5448063f828d2270dccd41ae375e1afde35e91f2"><code>5448063</code></a>
- Ignore a retained <code>pendingThenable</code> settlement callback
invoked after the thenable has settled. Holding a reference to
<code>resolve</code>/<code>reject</code> and calling it later used to
overwrite <code>status</code> and <code>reason</code> even though the
underlying promise had already settled, leaving the thenable advertising
a state that disagreed with its value.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/8737">#8737</a> <a
href="https://github.com/TanStack/query/commit/2215bb031139cdc8a84751b37a485c38ca9d2b6e"><code>2215bb0</code></a>
- fix: make mutation variables optional when <code>undefined extends
TVariables</code></p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11221">#11221</a>
<a
href="https://github.com/TanStack/query/commit/1ef42087c9a266c2137d2ef645cbcc662f60ac93"><code>1ef4208</code></a>
- Remove experimental render-time prefetching and the
<code>promise</code> property from query results.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11218">#11218</a>
<a
href="https://github.com/TanStack/query/commit/5981771abec9330b344a2617543eb05ba7c99e24"><code>5981771</code></a>
- Release a mutation's retryer once its execution settles, so the
settled promise no longer keeps that mutation's result, variables and
context in memory for as long as the mutation cache retains it.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11163">#11163</a>
<a
href="https://github.com/TanStack/query/commit/4a9bef6cf19b1cd6b014032d696129f12a848185"><code>4a9bef6</code></a>
- Release a query's retryer once its fetch settles, so the settled
promise no longer keeps that fetch's raw result in memory alongside the
structurally shared <code>state.data</code> (or after the query is reset
or removed).</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11036">#11036</a>
<a
href="https://github.com/TanStack/query/commit/bef4bc780ce7cca32b7e3dea85f77d92f82a62a2"><code>bef4bc7</code></a>
- Resolve suspense when query data is set programmatically via
setQueryData or streamedQuery. Previously, fetchOptimistic returned only
the fetch promise, which left the Suspense boundary stuck until the
queryFn completed — even when data already existed in the cache. The fix
uses Promise.race with a cache subscriber to release suspense as soon as
data becomes available.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11234">#11234</a>
<a
href="https://github.com/TanStack/query/commit/9656dc4e5fef5f8c502579b52459f9e8c72e787c"><code>9656dc4</code></a>
- Notify every query observer when another observer unsubscribes
synchronously during the same query update.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/TanStack/query/commit/388bbaf181c4e7b7017b5dbb5cbf2a57eb22e267"><code>388bbaf</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/query-core/issues/11265">#11265</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/80fbf73e77892d702c107e14a84c219a8ed825dc"><code>80fbf73</code></a>
feat(query-core): export cache config types (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/query-core/issues/11263">#11263</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/bc423b37ef7fa2a34cfc7286945fd640d74b4071"><code>bc423b3</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/query-core/issues/11261">#11261</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/134890dbdc60e4fb0313e44b512d29284ca82f96"><code>134890d</code></a>
fix(query-core): accept partial dehydrated state (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/query-core/issues/11260">#11260</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/0fe34b4be31430b039c4650b64bb5a13ac706049"><code>0fe34b4</code></a>
test(query-core): align mutation test filenames with 'mutation.ts' by
renamin...</li>
<li><a
href="https://github.com/TanStack/query/commit/574346846239b8d00d8d8dec4188c572c7cce205"><code>5743468</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/query-core/issues/11206">#11206</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/2215bb031139cdc8a84751b37a485c38ca9d2b6e"><code>2215bb0</code></a>
fix(query-core): make <code>MutateFunction</code> optional
undefinable-variables (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/query-core/issues/8737">#8737</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/b4368c43792349f6c29d1fb41f7ee1ef3a8bdd2c"><code>b4368c4</code></a>
perf(query-core): skip no-op hydration callbacks and export
dehydrateQuery (#...</li>
<li><a
href="https://github.com/TanStack/query/commit/3e836010032c2586e9f1c66a271fa9114a6401f9"><code>3e83601</code></a>
fix(query-core): memoize falsy combine results in QueriesObserver (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/query-core/issues/11065">#11065</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/1ef42087c9a266c2137d2ef645cbcc662f60ac93"><code>1ef4208</code></a>
ref: remove experimental_prefetchInRender (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/query-core/issues/11221">#11221</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/TanStack/query/commits/@tanstack/query-core@5.102.2/packages/query-core">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ankur Banerjee <ankurdotb@users.noreply.github.com>
## [3.5.2-beta.1](v3.5.1...v3.5.2-beta.1) (2026-08-28)

### Bug Fixes

- self-heal stale pending-unshield pointer ([#645](#645)) ([6bc356d]())
## [3.6.0-beta.1](v3.5.2-beta.1...v3.6.0-beta.1) (2026-09-02)

### Features

- **sdk:** offload encryption to a web worker in the web() transport ([#683](#683)) ([981d351]())
Bumps the sdk group with 4 updates in the / directory:
[happy-dom](https://github.com/capricorn86/happy-dom),
[lint-staged](https://github.com/lint-staged/lint-staged),
[viem](https://github.com/wevm/viem) and
[zod](https://github.com/colinhacks/zod).

Updates `happy-dom` from 20.11.1 to 20.12.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/capricorn86/happy-dom/releases">happy-dom's
releases</a>.</em></p>
<blockquote>
<h2>v20.12.0</h2>
<h3>:art: Features</h3>
<ul>
<li>Adds support for <code>Animation</code>,
<code>AnimationTimeline</code>, <code>DocumentTimeline</code> and
<code>KeyframeEffect</code> - By <strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong></li>
<li>Adds support for <code>Element.animate()</code> - By <strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong></li>
</ul>
<h2>v20.11.15</h2>
<h3>:construction_worker_man: Patch fixes</h3>
<ul>
<li>Fixes issue with upgrading custom element caused by previous release
- By <strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2331">#2331</a></li>
</ul>
<h2>v20.11.14</h2>
<h3>:construction_worker_man: Patch fixes</h3>
<ul>
<li>Change prototype of element to the custom element when upgraded to
keep the reference - By <strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2331">#2331</a>
<ul>
<li>The previous solution replaced the element with the custom element
and copied it's properties, but this made any reference to the original
element invalid</li>
</ul>
</li>
</ul>
<h2>v20.11.13</h2>
<h3>:construction_worker_man: Patch fixes</h3>
<ul>
<li>Copy event listeners when upgrading a custom element - By <strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2329">#2329</a></li>
</ul>
<h2>v20.11.12</h2>
<h3>:construction_worker_man: Patch fixes</h3>
<ul>
<li>Add check for if the node is still a parent during disconnect - By
<strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2322">#2322</a></li>
</ul>
<h2>v20.11.11</h2>
<h3>:construction_worker_man: Patch fixes</h3>
<ul>
<li>Use proxy as parent node in Node.connectedToNode - By <strong><a
href="https://github.com/diegohaz"><code>@​diegohaz</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2253">#2253</a></li>
</ul>
<h2>v20.11.10</h2>
<h3>:construction_worker_man: Patch fixes</h3>
<ul>
<li>Return default validationMessage for built-in constraint violations
- By <strong><a
href="https://github.com/mixelburg"><code>@​mixelburg</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2187">#2187</a></li>
</ul>
<h2>v20.11.9</h2>
<h3>:construction_worker_man: Patch fixes</h3>
<ul>
<li>Make sure that the element has been upgraded before invoking
reaction callback in custom elements - By <strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2317">#2317</a></li>
</ul>
<h2>v20.11.8</h2>
<h3>:construction_worker_man: Patch fixes</h3>
<ul>
<li>Values pushed or assigned to the <code>adoptedStyleSheet</code>
array should be validated - By <strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2315">#2315</a></li>
</ul>
<h2>v20.11.7</h2>
<h3>:construction_worker_man: Patch fixes</h3>
<ul>
<li>The properties <code>Document.adoptedStyleSheets</code> and
<code>ShadowRoot.adoptedStyleSheets</code> should validate it's value -
By <strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2313">#2313</a></li>
</ul>
<h2>v20.11.6</h2>
<h3>:construction_worker_man: Patch fixes</h3>
<ul>
<li>Updates docs for the global-registrator package - By <strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2300">#2300</a></li>
</ul>
<h2>v20.11.5</h2>
<h3>:construction_worker_man: Patch fixes</h3>
<ul>
<li>Allow explicit element types for querySelector (e.g.
<code>querySelector&lt;HTMLInputElement&gt;(&quot;.my-input&quot;)</code>)
- By <strong><a
href="https://github.com/cyphercodes"><code>@​cyphercodes</code></a></strong></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/capricorn86/happy-dom/commit/4b0af0ce51268e897bf129c43d29644555b7bb48"><code>4b0af0c</code></a>
feat: Adds support for Element.animate (<a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2335">#2335</a>)</li>
<li><a
href="https://github.com/capricorn86/happy-dom/commit/e1a8af5cb664bf76d72404b86c499e739a4e4ed2"><code>e1a8af5</code></a>
fix: <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2331">#2331</a>
Fixes issue with upgrading custom element caused by previous rel...</li>
<li><a
href="https://github.com/capricorn86/happy-dom/commit/096317b80d642c919f6641b23e4154a143e3c9cf"><code>096317b</code></a>
fix: <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2331">#2331</a>
Change prototype of element to the custom element when upgraded ...</li>
<li><a
href="https://github.com/capricorn86/happy-dom/commit/9ff4b4752c2c00b5bb03b309d40fa82f05c15de7"><code>9ff4b47</code></a>
fix: <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2329">#2329</a>
Copy event listeners when upgrading a custom element (<a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2330">#2330</a>)</li>
<li><a
href="https://github.com/capricorn86/happy-dom/commit/3d282e5ba993b33649d2afe9d3367b0a10cbff5b"><code>3d282e5</code></a>
fix: <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2322">#2322</a>
Add check for if the node is still a parent during disconnect (#...</li>
<li><a
href="https://github.com/capricorn86/happy-dom/commit/64e2c774cadbb8eda5416c1e2bcca5006d1b5df9"><code>64e2c77</code></a>
fix: <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2253">#2253</a>
Use proxy as parent node in Node.connectedToNode() (<a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2254">#2254</a>)</li>
<li><a
href="https://github.com/capricorn86/happy-dom/commit/a00ec699ffcaaabdb6e6b7707df1ce832e39d00f"><code>a00ec69</code></a>
fix: <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2319">#2319</a>
Removing a child incorrectly calls flow for connecting node (<a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2321">#2321</a>)</li>
<li><a
href="https://github.com/capricorn86/happy-dom/commit/152b5d8a9e2690ba2039867f42e3e2a8e9b7c274"><code>152b5d8</code></a>
fix: <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2319">#2319</a>
Removing a child incorrectly calls flow for connecting node (<a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2320">#2320</a>)</li>
<li><a
href="https://github.com/capricorn86/happy-dom/commit/1100b9c30182b63121dfa826b2a7fc7a8c76dd6e"><code>1100b9c</code></a>
fix: <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2187">#2187</a>
Return default validationMessage for built-in constraint violati...</li>
<li><a
href="https://github.com/capricorn86/happy-dom/commit/189379545b74351a2f00c88a37c4732a3e185e41"><code>1893795</code></a>
fix: <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2317">#2317</a>
Make sure that the element has been upgraded before invoking rea...</li>
<li>Additional commits viewable in <a
href="https://github.com/capricorn86/happy-dom/compare/v20.11.1...v20.12.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `lint-staged` from 17.3.0 to 17.4.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/lint-staged/lint-staged/releases">lint-staged's
releases</a>.</em></p>
<blockquote>
<h2>v17.4.1</h2>
<h2>17.4.1</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1840">#1840</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/efe5b63cc4961c80b6363fe40bac3c145e3ddbb2"><code>efe5b63</code></a>
- This is a version-bump-only release because the previous version
<code>17.4.0</code> was not published to npmjs.com due to problems with
GitHub Actions and Changesets.</li>
</ul>
<h2>17.4.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1836">#1836</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/90ec28245085343f56661ebc004e7b89304762dd"><code>90ec282</code></a>
- Added a new <code>defineConfig</code> helper for type-checking the
<em>lint-staged</em> configuration:</p>
<pre lang="ts"><code>// lint-staged.config.ts
<p>import { defineConfig } from 'lint-staged/config'</p>
<p>export default defineConfig({
'*.js': ['prettier --check', 'eslint'],
})
</code></pre></p>
</li>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1832">#1832</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/510a27cac303990d71755aec203caed605b53caa"><code>510a27c</code></a>
- Added a new flag <code>--all</code> to make <em>lint-staged</em>
include all files tracked by Git, instead of only staged.</p>
<p>By default <em>lint-staged</em> only runs tasks on files that include
staged changes (hence the name). Use this flag to include all files
tracked in Git version control (standard exclusions apply). Using this
flag implies the <code>--no-stash</code> flag, disabling the automatic
backup, and the <code>--allow-empty</code> flag so that
<em>lint-staged</em> doesn't fail when there are no changes after
running. This makes it easier to run <code>npx lint-staged --all</code>
on a clean state, for example in CI.</p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1838">#1838</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/69bec9930a73901bf908e3d0c0cdcafe5abf74b1"><code>69bec99</code></a>
- The behavior of the automatic backup stash has been improved when
running <em>lint-staged</em> in multiple worktrees in parallel. You
should still avoid running multiple instances of <em>lint-staged</em> in
parallel in the same tree, because some of the Git operations are
locking and might lead to data loss.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1839">#1839</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/5e5bdd29645063300256109bbbceb9dabcb014e4"><code>5e5bdd2</code></a>
- Parsing of <em>lint-staged</em> CLI flags and Node.js API options has
been rewritten to avoid inconsistent behavior between the two.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md">lint-staged's
changelog</a>.</em></p>
<blockquote>
<h2>17.4.1</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1840">#1840</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/efe5b63cc4961c80b6363fe40bac3c145e3ddbb2"><code>efe5b63</code></a>
- This is a version-bump-only release because the previous version
<code>17.4.0</code> was not published to npmjs.com due to problems with
GitHub Actions and Changesets.</li>
</ul>
<h2>17.4.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1836">#1836</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/90ec28245085343f56661ebc004e7b89304762dd"><code>90ec282</code></a>
- Added a new <code>defineConfig</code> helper for type-checking the
<em>lint-staged</em> configuration:</p>
<pre lang="ts"><code>// lint-staged.config.ts
<p>import { defineConfig } from 'lint-staged/config'</p>
<p>export default defineConfig({
'*.js': ['prettier --check', 'eslint'],
})
</code></pre></p>
</li>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1832">#1832</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/510a27cac303990d71755aec203caed605b53caa"><code>510a27c</code></a>
- Added a new flag <code>--all</code> to make <em>lint-staged</em>
include all files tracked by Git, instead of only staged.</p>
<p>By default <em>lint-staged</em> only runs tasks on files that include
staged changes (hence the name). Use this flag to include all files
tracked in Git version control (standard exclusions apply). Using this
flag implies the <code>--no-stash</code> flag, disabling the automatic
backup, and the <code>--allow-empty</code> flag so that
<em>lint-staged</em> doesn't fail when there are no changes after
running. This makes it easier to run <code>npx lint-staged --all</code>
on a clean state, for example in CI.</p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1838">#1838</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/69bec9930a73901bf908e3d0c0cdcafe5abf74b1"><code>69bec99</code></a>
- The behavior of the automatic backup stash has been improved when
running <em>lint-staged</em> in multiple worktrees in parallel. You
should still avoid running multiple instances of <em>lint-staged</em> in
parallel in the same tree, because some of the Git operations are
locking and might lead to data loss.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1839">#1839</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/5e5bdd29645063300256109bbbceb9dabcb014e4"><code>5e5bdd2</code></a>
- Parsing of <em>lint-staged</em> CLI flags and Node.js API options has
been rewritten to avoid inconsistent behavior between the two.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/d0c1517b61f4805a319ae416f50b1d5bdf3e137f"><code>d0c1517</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1841">#1841</a>
from lint-staged/changeset-release/main</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/f06133573350dd650bd8fed42af06502d018b830"><code>f061335</code></a>
chore(changeset): release</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/d2721af6d378c8c878005b01b557c95070449b11"><code>d2721af</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1840">#1840</a>
from lint-staged/updates</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/efe5b63cc4961c80b6363fe40bac3c145e3ddbb2"><code>efe5b63</code></a>
ci: update Changesets action because it failed to publish</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/cd76ce36648b794a477b60dc1852dc96641c03c3"><code>cd76ce3</code></a>
build: update dependencies</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/ea195e1f17bb507ef6809a44d7f814fab1810270"><code>ea195e1</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1837">#1837</a>
from lint-staged/changeset-release/main</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/a6a0d616b6eadb4ed464239001bf9afb826d13f2"><code>a6a0d61</code></a>
chore(changeset): release</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/0a090981ef52a11fa4e4d90b6247f2310b5abc4f"><code>0a09098</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1832">#1832</a>
from lint-staged/add-all-flag</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/7fd685b6de614335a432a81e383a73af4d431b3a"><code>7fd685b</code></a>
fix: further fix parsing options logic</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/510a27cac303990d71755aec203caed605b53caa"><code>510a27c</code></a>
feat: add <code>--all</code> flag for including all files tracked by Git
instead of just...</li>
<li>Additional commits viewable in <a
href="https://github.com/lint-staged/lint-staged/compare/v17.3.0...v17.4.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `viem` from 2.55.0 to 2.56.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/wevm/viem/releases">viem's
releases</a>.</em></p>
<blockquote>
<h2>viem@2.56.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Renamed
<code>Abis.abis</code> to <code>Abis.all</code> and expanded the
aggregate with Earn and Zone ABIs.</p>
<pre lang="diff"><code>-const abis = Abis.abis
+const abis = Abis.all
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Moved Zone exports
from <code>viem/tempo/zones</code> into <code>viem/tempo</code>.</p>
<pre lang="diff"><code>-import { Abis, Addresses, http, zoneModerato }
from 'viem/tempo/zones'
+import { Abis, Addresses, http, Zone } from 'viem/tempo'
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced curried
Zone network factories with built-in Zone definitions and
<code>Zone.from</code> for custom chains.</p>
<pre lang="diff"><code>-const zone = zoneModerato(6)
+const zone = Zone.a
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced
chain-specific Zone portal registries with deterministic
<code>Addresses.zonePortal(id)</code> resolution for Zone IDs and chain
IDs.</p>
<pre lang="diff"><code>-import { getPortalAddress } from
'viem/tempo/zones'
+import { Addresses, Zone } from 'viem/tempo'
<p>-const portal = getPortalAddress(42_431, 7)<br />
+const portal = Addresses.zonePortal(Zone.b.id)<br />
</code></pre></p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
Added selector maps for Zone portal, outbox, messenger, and verifier
ABIs.</p>
<pre lang="ts"><code>import { Selectors } from &quot;viem/tempo&quot;;
<p>const selector = Selectors.zonePortal.admin;<br />
</code></pre></p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5039">#5039</a>
<a
href="https://github.com/wevm/viem/commit/e802c6b16e03c83d61c144d0b6388a21a8391a22"><code>e802c6b16e03c83d61c144d0b6388a21a8391a22</code></a>
Thanks <a href="https://github.com/struong"><code>@​struong</code></a>!
- Replaced <code>tempo.earn.bindErc4626Engine</code> with the
engine-agnostic <code>tempo.earn.bindEngine</code> action and added
optional final ownership transfer.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5034">#5034</a>
<a
href="https://github.com/wevm/viem/commit/b8707d998ab8c7d4ee95c9a70989cd6fbd145356"><code>b8707d998ab8c7d4ee95c9a70989cd6fbd145356</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
Added <code>zone.getPortalInfo</code> to read Zone Portal
administration, sequencer, and token metadata.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5030">#5030</a>
<a
href="https://github.com/wevm/viem/commit/901bf2f09b057e03f34067fdee6c3f6a2dae7bd3"><code>901bf2f09b057e03f34067fdee6c3f6a2dae7bd3</code></a>
Thanks <a href="https://github.com/decofe"><code>@​decofe</code></a>! -
Added Zone protocol addresses, ZoneFactory registry reads, and
ZonePortal administration operations to Tempo exports.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/wevm/viem/commit/063faa52a247233c32445c5eda735ade21ca5801"><code>063faa5</code></a>
ci: pin tempo tag</li>
<li><a
href="https://github.com/wevm/viem/commit/8af29b52ff6b581da268fd367e6d467c2c2ef4b2"><code>8af29b5</code></a>
chore: version package (<a
href="https://redirect.github.com/wevm/viem/issues/5032">#5032</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/a165a236e95037e33f3f71cd099ccd2b92ead659"><code>a165a23</code></a>
fix(tempo): preserve t10 encryption key reads (<a
href="https://redirect.github.com/wevm/viem/issues/5047">#5047</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/56a54cc3c80c5c774963be4f02d68c4b43e261d4"><code>56a54cc</code></a>
fix(tempo): include Zone encryption key address (<a
href="https://redirect.github.com/wevm/viem/issues/5044">#5044</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/e802c6b16e03c83d61c144d0b6388a21a8391a22"><code>e802c6b</code></a>
feat(tempo): generalize Earn engine binding (<a
href="https://redirect.github.com/wevm/viem/issues/5039">#5039</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/68954cf5721c90fae6a0b2a696a6130721412377"><code>68954cf</code></a>
test(tempo): update entrypoint export snapshot</li>
<li><a
href="https://github.com/wevm/viem/commit/ffbf342ba3f5b312433ec927332f817b754fdafb"><code>ffbf342</code></a>
feat: 🎸 Updated Berachain Bepolia Block Explorer (<a
href="https://redirect.github.com/wevm/viem/issues/5028">#5028</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282b</code></a>
refactor(tempo): consolidate zone exports (<a
href="https://redirect.github.com/wevm/viem/issues/5040">#5040</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/0912a29d5c7abbea5238d6f7c3d750f07d479ace"><code>0912a29</code></a>
refactor(tempo): consolidate abi generation (<a
href="https://redirect.github.com/wevm/viem/issues/5037">#5037</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/b8707d998ab8c7d4ee95c9a70989cd6fbd145356"><code>b8707d9</code></a>
feat(tempo): add portal info action (<a
href="https://redirect.github.com/wevm/viem/issues/5034">#5034</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/wevm/viem/compare/viem@2.55.0...viem@2.56.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `zod` from 4.4.3 to 4.5.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/colinhacks/zod/releases">zod's
releases</a>.</em></p>
<blockquote>
<h2>v4.5.4</h2>
<h2>Commits:</h2>
<ul>
<li>84e416fbf4740527bbc8f319634f4e1b065bb42c fix(v4): stop the cycle
walk from firing a default factory (<a
href="https://redirect.github.com/colinhacks/zod/issues/6500">#6500</a>)</li>
<li>e8e206fa33ac5fe7ce20a2beb12d57b1cb3df653 4.5.4</li>
</ul>
<h2>v4.5.3</h2>
<h2>Commits:</h2>
<ul>
<li>e6b6ab347675cd2bd54b1bdbed16f98c59be82a9 docs(blog): widen the
z.compile example to a 20-property schema</li>
<li>87d6464418582bb96fc665a01f852ca6da324ad0 fix(docs): drop the OG
description when the title wraps past two lines</li>
<li>99fce394a026823e602b9c30d8d5d9f5f1932ce7 bench(v4): z.compile()
against zod-compiler (<a
href="https://redirect.github.com/colinhacks/zod/issues/6499">#6499</a>)</li>
<li>e3a695b6bf3f0d591ea682816e3cdaea04b0f967 docs(v4): record the email
regex and container output-shape findings under Open</li>
<li>7e24a24288183ce02554f1ded7775d0650a7b7e6 docs(blog): drop the
reading time and put a GitHub link in the navbar</li>
<li>eab51ff3592b2d11d863f4ee4d5452f31a3de1b6 fix(v4): emit record
numeric keys as strings in toJSONSchema (<a
href="https://redirect.github.com/colinhacks/zod/issues/6497">#6497</a>)</li>
</ul>
<h2>v4.5.2</h2>
<h2>Commits:</h2>
<ul>
<li>a354314ac04fdd5484aa62dd5c3a4b553211a0e4 fix(docs): keep blog posts
out of the docs collection (<a
href="https://redirect.github.com/colinhacks/zod/issues/6484">#6484</a>)</li>
<li>d378c42aff6869f0929058a7923cd775880f5c4c ci: drop canary publishing
from the release workflow (<a
href="https://redirect.github.com/colinhacks/zod/issues/6487">#6487</a>)</li>
<li>212b941791e7faae078e17645eb612824fd8f79a fix(v4): let a prototype
method getter answer a bare call so vi.spyOn works (<a
href="https://redirect.github.com/colinhacks/zod/issues/6488">#6488</a>)</li>
<li>e7576f542a7bc7ef3cc5eeec237714fd0e6b6e98 docs(blog): let the page
show through the navbar in dark mode (<a
href="https://redirect.github.com/colinhacks/zod/issues/6489">#6489</a>)</li>
<li>fedb06fafe33a66ce0b5c236ad2557e0a5a170fe fix(docs): match the blog
TOC hover bar to the 2px active indicator</li>
<li>6c932fcb2eea6eb671710ea058ca9fdc382ada89 chore: bump devcontainer
image to Node 24 (<a
href="https://redirect.github.com/colinhacks/zod/issues/6470">#6470</a>)</li>
<li>6635d9dd367a664109de83c021995821f48efa29 docs(blog): soften the
&quot;method memoization&quot; attribution</li>
<li>019ae299cc75daa132bf1acf59086a520abf6b85 fix(docs): drop ISR on the
docs route so the home page hydrates</li>
<li>652bb438aa4c626c1cd7948c6849c4691239fca7 chore(docs): drop the
scroll log from the route-change scroller</li>
<li>571c8e8a3d73b4305f4abfdd6977773cc12f2bf5 fix(docs): render blog tabs
with the stock fumadocs tab card</li>
<li>9a193aa24b4efa3b315b91d4c56c8bc385b8513f 4.5.2</li>
</ul>
<h2>v4.5.1</h2>
<h2>Commits:</h2>
<ul>
<li>2e862dbf89da2835e5206a8fd3d3be61afe3cf7f ci: gate the GitHub release
and JSR publish on the version being live on npm</li>
<li>8e03380510db36fa6fda979fc78a375fdea8021c 4.5.1</li>
</ul>
<h2>v4.5.0</h2>
<p>Zod 4.5 is now available.</p>
<pre lang="sh"><code>npm install zod@latest
</code></pre>
<p>At a glance:</p>
<ul>
<li><a
href="https://github.com/colinhacks/zod/blob/HEAD%5Bhttps://github.com/colinhacks/zod/blob/HEAD%60https://github.com/colinhacks/zod/blob/HEADzhttps://github.com/colinhacks/zod/blob/HEAD.https://github.com/colinhacks/zod/blob/HEADchttps://github.com/colinhacks/zod/blob/HEADohttps://github.com/colinhacks/zod/blob/HEADmhttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADlhttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD%60https://github.com/colinhacks/zod/blob/HEAD%5Dhttps://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD#https://github.com/colinhacks/zod/blob/HEADzhttps://github.com/colinhacks/zod/blob/HEADchttps://github.com/colinhacks/zod/blob/HEADohttps://github.com/colinhacks/zod/blob/HEADmhttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADlhttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD">https://github.com/colinhacks/zod/blob/HEAD[https://github.com/colinhacks/zod/blob/HEAD`https://github.com/colinhacks/zod/blob/HEADzhttps://github.com/colinhacks/zod/blob/HEAD.https://github.com/colinhacks/zod/blob/HEADchttps://github.com/colinhacks/zod/blob/HEADohttps://github.com/colinhacks/zod/blob/HEADmhttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADlhttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD`https://github.com/colinhacks/zod/blob/HEAD]https://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD#https://github.com/colinhacks/zod/blob/HEADzhttps://github.com/colinhacks/zod/blob/HEADchttps://github.com/colinhacks/zod/blob/HEADohttps://github.com/colinhacks/zod/blob/HEADmhttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADlhttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD</a>
— the flagship feature of Zod 4.5</li>
<li><a
href="https://github.com/colinhacks/zod/blob/HEAD%5Bhttps://github.com/colinhacks/zod/blob/HEAD%60https://github.com/colinhacks/zod/blob/HEADzhttps://github.com/colinhacks/zod/blob/HEAD.https://github.com/colinhacks/zod/blob/HEADchttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADdhttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADChttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADdhttps://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD%60https://github.com/colinhacks/zod/blob/HEAD%5Dhttps://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD#https://github.com/colinhacks/zod/blob/HEADzhttps://github.com/colinhacks/zod/blob/HEADchttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADdhttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADchttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADdhttps://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD">https://github.com/colinhacks/zod/blob/HEAD[https://github.com/colinhacks/zod/blob/HEAD`https://github.com/colinhacks/zod/blob/HEADzhttps://github.com/colinhacks/zod/blob/HEAD.https://github.com/colinhacks/zod/blob/HEADchttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADdhttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADChttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADdhttps://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD`https://github.com/colinhacks/zod/blob/HEAD]https://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD#https://github.com/colinhacks/zod/blob/HEADzhttps://github.com/colinhacks/zod/blob/HEADchttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADdhttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADchttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADdhttps://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD</a>
— 12–19 digits plus Luhn checksum</li>
<li><a
href="https://github.com/colinhacks/zod/blob/HEAD%5Bhttps://github.com/colinhacks/zod/blob/HEAD%60https://github.com/colinhacks/zod/blob/HEADzhttps://github.com/colinhacks/zod/blob/HEAD.https://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADohttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADshttps://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD%60https://github.com/colinhacks/zod/blob/HEAD%5Dhttps://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD#https://github.com/colinhacks/zod/blob/HEADzhttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADohttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADshttps://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD">https://github.com/colinhacks/zod/blob/HEAD[https://github.com/colinhacks/zod/blob/HEAD`https://github.com/colinhacks/zod/blob/HEADzhttps://github.com/colinhacks/zod/blob/HEAD.https://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADohttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADshttps://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD`https://github.com/colinhacks/zod/blob/HEAD]https://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD#https://github.com/colinhacks/zod/blob/HEADzhttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADohttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADshttps://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD</a>
— the multi-property counterpart to <code>z.property()</code></li>
<li><a
href="https://github.com/colinhacks/zod/blob/HEAD%5Bhttps://github.com/colinhacks/zod/blob/HEAD%60https://github.com/colinhacks/zod/blob/HEADzhttps://github.com/colinhacks/zod/blob/HEAD.https://github.com/colinhacks/zod/blob/HEADdhttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADPhttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADlhttps://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD%60https://github.com/colinhacks/zod/blob/HEAD%5Dhttps://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD#https://github.com/colinhacks/zod/blob/HEADzhttps://github.com/colinhacks/zod/blob/HEADdhttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADlhttps://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD/https://github.com/colinhacks/zod/blob/HEAD%5Bhttps://github.com/colinhacks/zod/blob/HEAD%60https://github.com/colinhacks/zod/blob/HEAD.https://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADxhttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADchttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADPhttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADlhttps://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD%60https://github.com/colinhacks/zod/blob/HEAD%5Dhttps://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD#https://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADxhttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADchttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADlhttps://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD">https://github.com/colinhacks/zod/blob/HEAD[https://github.com/colinhacks/zod/blob/HEAD`https://github.com/colinhacks/zod/blob/HEADzhttps://github.com/colinhacks/zod/blob/HEAD.https://github.com/colinhacks/zod/blob/HEADdhttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADPhttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADlhttps://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD`https://github.com/colinhacks/zod/blob/HEAD]https://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD#https://github.com/colinhacks/zod/blob/HEADzhttps://github.com/colinhacks/zod/blob/HEADdhttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADlhttps://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD/https://github.com/colinhacks/zod/blob/HEAD[https://github.com/colinhacks/zod/blob/HEAD`https://github.com/colinhacks/zod/blob/HEAD.https://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADxhttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADchttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADPhttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADlhttps://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD`https://github.com/colinhacks/zod/blob/HEAD]https://github.com/colinhacks/zod/blob/HEAD(https://github.com/colinhacks/zod/blob/HEAD#https://github.com/colinhacks/zod/blob/HEADehttps://github.com/colinhacks/zod/blob/HEADxhttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADchttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADphttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADrhttps://github.com/colinhacks/zod/blob/HEADthttps://github.com/colinhacks/zod/blob/HEADihttps://github.com/colinhacks/zod/blob/HEADahttps://github.com/colinhacks/zod/blob/HEADlhttps://github.com/colinhacks/zod/blob/HEAD)https://github.com/colinhacks/zod/blob/HEAD</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/colinhacks/zod/commit/e8e206fa33ac5fe7ce20a2beb12d57b1cb3df653"><code>e8e206f</code></a>
4.5.4</li>
<li><a
href="https://github.com/colinhacks/zod/commit/84e416fbf4740527bbc8f319634f4e1b065bb42c"><code>84e416f</code></a>
fix(v4): stop the cycle walk from firing a default factory (<a
href="https://redirect.github.com/colinhacks/zod/issues/6500">#6500</a>)</li>
<li><a
href="https://github.com/colinhacks/zod/commit/1a16102a494b03ce1df7b80b663ae2df465f419e"><code>1a16102</code></a>
4.5.3</li>
<li><a
href="https://github.com/colinhacks/zod/commit/eab51ff3592b2d11d863f4ee4d5452f31a3de1b6"><code>eab51ff</code></a>
fix(v4): emit record numeric keys as strings in toJSONSchema (<a
href="https://redirect.github.com/colinhacks/zod/issues/6497">#6497</a>)</li>
<li><a
href="https://github.com/colinhacks/zod/commit/7e24a24288183ce02554f1ded7775d0650a7b7e6"><code>7e24a24</code></a>
docs(blog): drop the reading time and put a GitHub link in the
navbar</li>
<li><a
href="https://github.com/colinhacks/zod/commit/e3a695b6bf3f0d591ea682816e3cdaea04b0f967"><code>e3a695b</code></a>
docs(v4): record the email regex and container output-shape findings
under Open</li>
<li><a
href="https://github.com/colinhacks/zod/commit/99fce394a026823e602b9c30d8d5d9f5f1932ce7"><code>99fce39</code></a>
bench(v4): z.compile() against zod-compiler (<a
href="https://redirect.github.com/colinhacks/zod/issues/6499">#6499</a>)</li>
<li><a
href="https://github.com/colinhacks/zod/commit/87d6464418582bb96fc665a01f852ca6da324ad0"><code>87d6464</code></a>
fix(docs): drop the OG description when the title wraps past two
lines</li>
<li><a
href="https://github.com/colinhacks/zod/commit/e6b6ab347675cd2bd54b1bdbed16f98c59be82a9"><code>e6b6ab3</code></a>
docs(blog): widen the z.compile example to a 20-property schema</li>
<li><a
href="https://github.com/colinhacks/zod/commit/9a193aa24b4efa3b315b91d4c56c8bc385b8513f"><code>9a193aa</code></a>
4.5.2</li>
<li>Additional commits viewable in <a
href="https://github.com/colinhacks/zod/compare/v4.4.3...v4.5.4">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ankur Banerjee <ankurdotb@users.noreply.github.com>
…update (#690)

Bumps the example-apps group with 1 update in the /examples/example-bnb
directory: [viem](https://github.com/wevm/viem).
Bumps the example-apps group with 1 update in the
/examples/example-hoodi directory: [viem](https://github.com/wevm/viem).
Bumps the example-apps group with 1 update in the
/examples/example-ingen directory: [viem](https://github.com/wevm/viem).
Bumps the example-apps group with 1 update in the /examples/node-viem
directory: [viem](https://github.com/wevm/viem).
Bumps the example-apps group with 1 update in the
/examples/react-turnkey-wallet directory:
[viem](https://github.com/wevm/viem).
Bumps the example-apps group with 1 update in the /examples/react-viem
directory: [viem](https://github.com/wevm/viem).
Bumps the example-apps group with 1 update in the /examples/react-wagmi
directory: [viem](https://github.com/wevm/viem).

Updates `viem` from 2.55.2 to 2.56.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/wevm/viem/releases">viem's
releases</a>.</em></p>
<blockquote>
<h2>viem@2.56.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Renamed
<code>Abis.abis</code> to <code>Abis.all</code> and expanded the
aggregate with Earn and Zone ABIs.</p>
<pre lang="diff"><code>-const abis = Abis.abis
+const abis = Abis.all
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Moved Zone exports
from <code>viem/tempo/zones</code> into <code>viem/tempo</code>.</p>
<pre lang="diff"><code>-import { Abis, Addresses, http, zoneModerato }
from 'viem/tempo/zones'
+import { Abis, Addresses, http, Zone } from 'viem/tempo'
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced curried
Zone network factories with built-in Zone definitions and
<code>Zone.from</code> for custom chains.</p>
<pre lang="diff"><code>-const zone = zoneModerato(6)
+const zone = Zone.a
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced
chain-specific Zone portal registries with deterministic
<code>Addresses.zonePortal(id)</code> resolution for Zone IDs and chain
IDs.</p>
<pre lang="diff"><code>-import { getPortalAddress } from
'viem/tempo/zones'
+import { Addresses, Zone } from 'viem/tempo'
<p>-const portal = getPortalAddress(42_431, 7)<br />
+const portal = Addresses.zonePortal(Zone.b.id)<br />
</code></pre></p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
Added selector maps for Zone portal, outbox, messenger, and verifier
ABIs.</p>
<pre lang="ts"><code>import { Selectors } from &quot;viem/tempo&quot;;
<p>const selector = Selectors.zonePortal.admin;<br />
</code></pre></p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5039">#5039</a>
<a
href="https://github.com/wevm/viem/commit/e802c6b16e03c83d61c144d0b6388a21a8391a22"><code>e802c6b16e03c83d61c144d0b6388a21a8391a22</code></a>
Thanks <a href="https://github.com/struong"><code>@​struong</code></a>!
- Replaced <code>tempo.earn.bindErc4626Engine</code> with the
engine-agnostic <code>tempo.earn.bindEngine</code> action and added
optional final ownership transfer.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5034">#5034</a>
<a
href="https://github.com/wevm/viem/commit/b8707d998ab8c7d4ee95c9a70989cd6fbd145356"><code>b8707d998ab8c7d4ee95c9a70989cd6fbd145356</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
Added <code>zone.getPortalInfo</code> to read Zone Portal
administration, sequencer, and token metadata.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5030">#5030</a>
<a
href="https://github.com/wevm/viem/commit/901bf2f09b057e03f34067fdee6c3f6a2dae7bd3"><code>901bf2f09b057e03f34067fdee6c3f6a2dae7bd3</code></a>
Thanks <a href="https://github.com/decofe"><code>@​decofe</code></a>! -
Added Zone protocol addresses, ZoneFactory registry reads, and
ZonePortal administration operations to Tempo exports.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/wevm/viem/commit/063faa52a247233c32445c5eda735ade21ca5801"><code>063faa5</code></a>
ci: pin tempo tag</li>
<li><a
href="https://github.com/wevm/viem/commit/8af29b52ff6b581da268fd367e6d467c2c2ef4b2"><code>8af29b5</code></a>
chore: version package (<a
href="https://redirect.github.com/wevm/viem/issues/5032">#5032</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/a165a236e95037e33f3f71cd099ccd2b92ead659"><code>a165a23</code></a>
fix(tempo): preserve t10 encryption key reads (<a
href="https://redirect.github.com/wevm/viem/issues/5047">#5047</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/56a54cc3c80c5c774963be4f02d68c4b43e261d4"><code>56a54cc</code></a>
fix(tempo): include Zone encryption key address (<a
href="https://redirect.github.com/wevm/viem/issues/5044">#5044</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/e802c6b16e03c83d61c144d0b6388a21a8391a22"><code>e802c6b</code></a>
feat(tempo): generalize Earn engine binding (<a
href="https://redirect.github.com/wevm/viem/issues/5039">#5039</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/68954cf5721c90fae6a0b2a696a6130721412377"><code>68954cf</code></a>
test(tempo): update entrypoint export snapshot</li>
<li><a
href="https://github.com/wevm/viem/commit/ffbf342ba3f5b312433ec927332f817b754fdafb"><code>ffbf342</code></a>
feat: 🎸 Updated Berachain Bepolia Block Explorer (<a
href="https://redirect.github.com/wevm/viem/issues/5028">#5028</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282b</code></a>
refactor(tempo): consolidate zone exports (<a
href="https://redirect.github.com/wevm/viem/issues/5040">#5040</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/0912a29d5c7abbea5238d6f7c3d750f07d479ace"><code>0912a29</code></a>
refactor(tempo): consolidate abi generation (<a
href="https://redirect.github.com/wevm/viem/issues/5037">#5037</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/b8707d998ab8c7d4ee95c9a70989cd6fbd145356"><code>b8707d9</code></a>
feat(tempo): add portal info action (<a
href="https://redirect.github.com/wevm/viem/issues/5034">#5034</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/wevm/viem/compare/viem@2.55.2...viem@2.56.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `viem` from 2.55.2 to 2.56.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/wevm/viem/releases">viem's
releases</a>.</em></p>
<blockquote>
<h2>viem@2.56.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Renamed
<code>Abis.abis</code> to <code>Abis.all</code> and expanded the
aggregate with Earn and Zone ABIs.</p>
<pre lang="diff"><code>-const abis = Abis.abis
+const abis = Abis.all
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Moved Zone exports
from <code>viem/tempo/zones</code> into <code>viem/tempo</code>.</p>
<pre lang="diff"><code>-import { Abis, Addresses, http, zoneModerato }
from 'viem/tempo/zones'
+import { Abis, Addresses, http, Zone } from 'viem/tempo'
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced curried
Zone network factories with built-in Zone definitions and
<code>Zone.from</code> for custom chains.</p>
<pre lang="diff"><code>-const zone = zoneModerato(6)
+const zone = Zone.a
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced
chain-specific Zone portal registries with deterministic
<code>Addresses.zonePortal(id)</code> resolution for Zone IDs and chain
IDs.</p>
<pre lang="diff"><code>-import { getPortalAddress } from
'viem/tempo/zones'
+import { Addresses, Zone } from 'viem/tempo'
<p>-const portal = getPortalAddress(42_431, 7)<br />
+const portal = Addresses.zonePortal(Zone.b.id)<br />
</code></pre></p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
Added selector maps for Zone portal, outbox, messenger, and verifier
ABIs.</p>
<pre lang="ts"><code>import { Selectors } from &quot;viem/tempo&quot;;
<p>const selector = Selectors.zonePortal.admin;<br />
</code></pre></p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5039">#5039</a>
<a
href="https://github.com/wevm/viem/commit/e802c6b16e03c83d61c144d0b6388a21a8391a22"><code>e802c6b16e03c83d61c144d0b6388a21a8391a22</code></a>
Thanks <a href="https://github.com/struong"><code>@​struong</code></a>!
- Replaced <code>tempo.earn.bindErc4626Engine</code> with the
engine-agnostic <code>tempo.earn.bindEngine</code> action and added
optional final ownership transfer.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5034">#5034</a>
<a
href="https://github.com/wevm/viem/commit/b8707d998ab8c7d4ee95c9a70989cd6fbd145356"><code>b8707d998ab8c7d4ee95c9a70989cd6fbd145356</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
Added <code>zone.getPortalInfo</code> to read Zone Portal
administration, sequencer, and token metadata.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5030">#5030</a>
<a
href="https://github.com/wevm/viem/commit/901bf2f09b057e03f34067fdee6c3f6a2dae7bd3"><code>901bf2f09b057e03f34067fdee6c3f6a2dae7bd3</code></a>
Thanks <a href="https://github.com/decofe"><code>@​decofe</code></a>! -
Added Zone protocol addresses, ZoneFactory registry reads, and
ZonePortal administration operations to Tempo exports.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/wevm/viem/commit/063faa52a247233c32445c5eda735ade21ca5801"><code>063faa5</code></a>
ci: pin tempo tag</li>
<li><a
href="https://github.com/wevm/viem/commit/8af29b52ff6b581da268fd367e6d467c2c2ef4b2"><code>8af29b5</code></a>
chore: version package (<a
href="https://redirect.github.com/wevm/viem/issues/5032">#5032</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/a165a236e95037e33f3f71cd099ccd2b92ead659"><code>a165a23</code></a>
fix(tempo): preserve t10 encryption key reads (<a
href="https://redirect.github.com/wevm/viem/issues/5047">#5047</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/56a54cc3c80c5c774963be4f02d68c4b43e261d4"><code>56a54cc</code></a>
fix(tempo): include Zone encryption key address (<a
href="https://redirect.github.com/wevm/viem/issues/5044">#5044</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/e802c6b16e03c83d61c144d0b6388a21a8391a22"><code>e802c6b</code></a>
feat(tempo): generalize Earn engine binding (<a
href="https://redirect.github.com/wevm/viem/issues/5039">#5039</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/68954cf5721c90fae6a0b2a696a6130721412377"><code>68954cf</code></a>
test(tempo): update entrypoint export snapshot</li>
<li><a
href="https://github.com/wevm/viem/commit/ffbf342ba3f5b312433ec927332f817b754fdafb"><code>ffbf342</code></a>
feat: 🎸 Updated Berachain Bepolia Block Explorer (<a
href="https://redirect.github.com/wevm/viem/issues/5028">#5028</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282b</code></a>
refactor(tempo): consolidate zone exports (<a
href="https://redirect.github.com/wevm/viem/issues/5040">#5040</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/0912a29d5c7abbea5238d6f7c3d750f07d479ace"><code>0912a29</code></a>
refactor(tempo): consolidate abi generation (<a
href="https://redirect.github.com/wevm/viem/issues/5037">#5037</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/b8707d998ab8c7d4ee95c9a70989cd6fbd145356"><code>b8707d9</code></a>
feat(tempo): add portal info action (<a
href="https://redirect.github.com/wevm/viem/issues/5034">#5034</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/wevm/viem/compare/viem@2.55.2...viem@2.56.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `viem` from 2.55.2 to 2.56.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/wevm/viem/releases">viem's
releases</a>.</em></p>
<blockquote>
<h2>viem@2.56.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Renamed
<code>Abis.abis</code> to <code>Abis.all</code> and expanded the
aggregate with Earn and Zone ABIs.</p>
<pre lang="diff"><code>-const abis = Abis.abis
+const abis = Abis.all
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Moved Zone exports
from <code>viem/tempo/zones</code> into <code>viem/tempo</code>.</p>
<pre lang="diff"><code>-import { Abis, Addresses, http, zoneModerato }
from 'viem/tempo/zones'
+import { Abis, Addresses, http, Zone } from 'viem/tempo'
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced curried
Zone network factories with built-in Zone definitions and
<code>Zone.from</code> for custom chains.</p>
<pre lang="diff"><code>-const zone = zoneModerato(6)
+const zone = Zone.a
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced
chain-specific Zone portal registries with deterministic
<code>Addresses.zonePortal(id)</code> resolution for Zone IDs and chain
IDs.</p>
<pre lang="diff"><code>-import { getPortalAddress } from
'viem/tempo/zones'
+import { Addresses, Zone } from 'viem/tempo'
<p>-const portal = getPortalAddress(42_431, 7)<br />
+const portal = Addresses.zonePortal(Zone.b.id)<br />
</code></pre></p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
Added selector maps for Zone portal, outbox, messenger, and verifier
ABIs.</p>
<pre lang="ts"><code>import { Selectors } from &quot;viem/tempo&quot;;
<p>const selector = Selectors.zonePortal.admin;<br />
</code></pre></p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5039">#5039</a>
<a
href="https://github.com/wevm/viem/commit/e802c6b16e03c83d61c144d0b6388a21a8391a22"><code>e802c6b16e03c83d61c144d0b6388a21a8391a22</code></a>
Thanks <a href="https://github.com/struong"><code>@​struong</code></a>!
- Replaced <code>tempo.earn.bindErc4626Engine</code> with the
engine-agnostic <code>tempo.earn.bindEngine</code> action and added
optional final ownership transfer.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5034">#5034</a>
<a
href="https://github.com/wevm/viem/commit/b8707d998ab8c7d4ee95c9a70989cd6fbd145356"><code>b8707d998ab8c7d4ee95c9a70989cd6fbd145356</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
Added <code>zone.getPortalInfo</code> to read Zone Portal
administration, sequencer, and token metadata.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5030">#5030</a>
<a
href="https://github.com/wevm/viem/commit/901bf2f09b057e03f34067fdee6c3f6a2dae7bd3"><code>901bf2f09b057e03f34067fdee6c3f6a2dae7bd3</code></a>
Thanks <a href="https://github.com/decofe"><code>@​decofe</code></a>! -
Added Zone protocol addresses, ZoneFactory registry reads, and
ZonePortal administration operations to Tempo exports.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/wevm/viem/commit/063faa52a247233c32445c5eda735ade21ca5801"><code>063faa5</code></a>
ci: pin tempo tag</li>
<li><a
href="https://github.com/wevm/viem/commit/8af29b52ff6b581da268fd367e6d467c2c2ef4b2"><code>8af29b5</code></a>
chore: version package (<a
href="https://redirect.github.com/wevm/viem/issues/5032">#5032</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/a165a236e95037e33f3f71cd099ccd2b92ead659"><code>a165a23</code></a>
fix(tempo): preserve t10 encryption key reads (<a
href="https://redirect.github.com/wevm/viem/issues/5047">#5047</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/56a54cc3c80c5c774963be4f02d68c4b43e261d4"><code>56a54cc</code></a>
fix(tempo): include Zone encryption key address (<a
href="https://redirect.github.com/wevm/viem/issues/5044">#5044</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/e802c6b16e03c83d61c144d0b6388a21a8391a22"><code>e802c6b</code></a>
feat(tempo): generalize Earn engine binding (<a
href="https://redirect.github.com/wevm/viem/issues/5039">#5039</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/68954cf5721c90fae6a0b2a696a6130721412377"><code>68954cf</code></a>
test(tempo): update entrypoint export snapshot</li>
<li><a
href="https://github.com/wevm/viem/commit/ffbf342ba3f5b312433ec927332f817b754fdafb"><code>ffbf342</code></a>
feat: 🎸 Updated Berachain Bepolia Block Explorer (<a
href="https://redirect.github.com/wevm/viem/issues/5028">#5028</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282b</code></a>
refactor(tempo): consolidate zone exports (<a
href="https://redirect.github.com/wevm/viem/issues/5040">#5040</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/0912a29d5c7abbea5238d6f7c3d750f07d479ace"><code>0912a29</code></a>
refactor(tempo): consolidate abi generation (<a
href="https://redirect.github.com/wevm/viem/issues/5037">#5037</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/b8707d998ab8c7d4ee95c9a70989cd6fbd145356"><code>b8707d9</code></a>
feat(tempo): add portal info action (<a
href="https://redirect.github.com/wevm/viem/issues/5034">#5034</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/wevm/viem/compare/viem@2.55.2...viem@2.56.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `viem` from 2.55.2 to 2.56.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/wevm/viem/releases">viem's
releases</a>.</em></p>
<blockquote>
<h2>viem@2.56.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Renamed
<code>Abis.abis</code> to <code>Abis.all</code> and expanded the
aggregate with Earn and Zone ABIs.</p>
<pre lang="diff"><code>-const abis = Abis.abis
+const abis = Abis.all
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Moved Zone exports
from <code>viem/tempo/zones</code> into <code>viem/tempo</code>.</p>
<pre lang="diff"><code>-import { Abis, Addresses, http, zoneModerato }
from 'viem/tempo/zones'
+import { Abis, Addresses, http, Zone } from 'viem/tempo'
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced curried
Zone network factories with built-in Zone definitions and
<code>Zone.from</code> for custom chains.</p>
<pre lang="diff"><code>-const zone = zoneModerato(6)
+const zone = Zone.a
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced
chain-specific Zone portal registries with deterministic
<code>Addresses.zonePortal(id)</code> resolution for Zone IDs and chain
IDs.</p>
<pre lang="diff"><code>-import { getPortalAddress } from
'viem/tempo/zones'
+import { Addresses, Zone } from 'viem/tempo'
<p>-const portal = getPortalAddress(42_431, 7)<br />
+const portal = Addresses.zonePortal(Zone.b.id)<br />
</code></pre></p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
Added selector maps for Zone portal, outbox, messenger, and verifier
ABIs.</p>
<pre lang="ts"><code>import { Selectors } from &quot;viem/tempo&quot;;
<p>const selector = Selectors.zonePortal.admin;<br />
</code></pre></p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5039">#5039</a>
<a
href="https://github.com/wevm/viem/commit/e802c6b16e03c83d61c144d0b6388a21a8391a22"><code>e802c6b16e03c83d61c144d0b6388a21a8391a22</code></a>
Thanks <a href="https://github.com/struong"><code>@​struong</code></a>!
- Replaced <code>tempo.earn.bindErc4626Engine</code> with the
engine-agnostic <code>tempo.earn.bindEngine</code> action and added
optional final ownership transfer.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5034">#5034</a>
<a
href="https://github.com/wevm/viem/commit/b8707d998ab8c7d4ee95c9a70989cd6fbd145356"><code>b8707d998ab8c7d4ee95c9a70989cd6fbd145356</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
Added <code>zone.getPortalInfo</code> to read Zone Portal
administration, sequencer, and token metadata.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5030">#5030</a>
<a
href="https://github.com/wevm/viem/commit/901bf2f09b057e03f34067fdee6c3f6a2dae7bd3"><code>901bf2f09b057e03f34067fdee6c3f6a2dae7bd3</code></a>
Thanks <a href="https://github.com/decofe"><code>@​decofe</code></a>! -
Added Zone protocol addresses, ZoneFactory registry reads, and
ZonePortal administration operations to Tempo exports.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/wevm/viem/commit/063faa52a247233c32445c5eda735ade21ca5801"><code>063faa5</code></a>
ci: pin tempo tag</li>
<li><a
href="https://github.com/wevm/viem/commit/8af29b52ff6b581da268fd367e6d467c2c2ef4b2"><code>8af29b5</code></a>
chore: version package (<a
href="https://redirect.github.com/wevm/viem/issues/5032">#5032</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/a165a236e95037e33f3f71cd099ccd2b92ead659"><code>a165a23</code></a>
fix(tempo): preserve t10 encryption key reads (<a
href="https://redirect.github.com/wevm/viem/issues/5047">#5047</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/56a54cc3c80c5c774963be4f02d68c4b43e261d4"><code>56a54cc</code></a>
fix(tempo): include Zone encryption key address (<a
href="https://redirect.github.com/wevm/viem/issues/5044">#5044</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/e802c6b16e03c83d61c144d0b6388a21a8391a22"><code>e802c6b</code></a>
feat(tempo): generalize Earn engine binding (<a
href="https://redirect.github.com/wevm/viem/issues/5039">#5039</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/68954cf5721c90fae6a0b2a696a6130721412377"><code>68954cf</code></a>
test(tempo): update entrypoint export snapshot</li>
<li><a
href="https://github.com/wevm/viem/commit/ffbf342ba3f5b312433ec927332f817b754fdafb"><code>ffbf342</code></a>
feat: 🎸 Updated Berachain Bepolia Block Explorer (<a
href="https://redirect.github.com/wevm/viem/issues/5028">#5028</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282b</code></a>
refactor(tempo): consolidate zone exports (<a
href="https://redirect.github.com/wevm/viem/issues/5040">#5040</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/0912a29d5c7abbea5238d6f7c3d750f07d479ace"><code>0912a29</code></a>
refactor(tempo): consolidate abi generation (<a
href="https://redirect.github.com/wevm/viem/issues/5037">#5037</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/b8707d998ab8c7d4ee95c9a70989cd6fbd145356"><code>b8707d9</code></a>
feat(tempo): add portal info action (<a
href="https://redirect.github.com/wevm/viem/issues/5034">#5034</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/wevm/viem/compare/viem@2.55.2...viem@2.56.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `viem` from 2.55.1 to 2.56.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/wevm/viem/releases">viem's
releases</a>.</em></p>
<blockquote>
<h2>viem@2.56.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Renamed
<code>Abis.abis</code> to <code>Abis.all</code> and expanded the
aggregate with Earn and Zone ABIs.</p>
<pre lang="diff"><code>-const abis = Abis.abis
+const abis = Abis.all
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Moved Zone exports
from <code>viem/tempo/zones</code> into <code>viem/tempo</code>.</p>
<pre lang="diff"><code>-import { Abis, Addresses, http, zoneModerato }
from 'viem/tempo/zones'
+import { Abis, Addresses, http, Zone } from 'viem/tempo'
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced curried
Zone network factories with built-in Zone definitions and
<code>Zone.from</code> for custom chains.</p>
<pre lang="diff"><code>-const zone = zoneModerato(6)
+const zone = Zone.a
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced
chain-specific Zone portal registries with deterministic
<code>Addresses.zonePortal(id)</code> resolution for Zone IDs and chain
IDs.</p>
<pre lang="diff"><code>-import { getPortalAddress } from
'viem/tempo/zones'
+import { Addresses, Zone } from 'viem/tempo'
<p>-const portal = getPortalAddress(42_431, 7)<br />
+const portal = Addresses.zonePortal(Zone.b.id)<br />
</code></pre></p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
Added selector maps for Zone portal, outbox, messenger, and verifier
ABIs.</p>
<pre lang="ts"><code>import { Selectors } from &quot;viem/tempo&quot;;
<p>const selector = Selectors.zonePortal.admin;<br />
</code></pre></p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5039">#5039</a>
<a
href="https://github.com/wevm/viem/commit/e802c6b16e03c83d61c144d0b6388a21a8391a22"><code>e802c6b16e03c83d61c144d0b6388a21a8391a22</code></a>
Thanks <a href="https://github.com/struong"><code>@​struong</code></a>!
- Replaced <code>tempo.earn.bindErc4626Engine</code> with the
engine-agnostic <code>tempo.earn.bindEngine</code> action and added
optional final ownership transfer.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5034">#5034</a>
<a
href="https://github.com/wevm/viem/commit/b8707d998ab8c7d4ee95c9a70989cd6fbd145356"><code>b8707d998ab8c7d4ee95c9a70989cd6fbd145356</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
Added <code>zone.getPortalInfo</code> to read Zone Portal
administration, sequencer, and token metadata.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5030">#5030</a>
<a
href="https://github.com/wevm/viem/commit/901bf2f09b057e03f34067fdee6c3f6a2dae7bd3"><code>901bf2f09b057e03f34067fdee6c3f6a2dae7bd3</code></a>
Thanks <a href="https://github.com/decofe"><code>@​decofe</code></a>! -
Added Zone protocol addresses, ZoneFactory registry reads, and
ZonePortal administration operations to Tempo exports.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/wevm/viem/commit/063faa52a247233c32445c5eda735ade21ca5801"><code>063faa5</code></a>
ci: pin tempo tag</li>
<li><a
href="https://github.com/wevm/viem/commit/8af29b52ff6b581da268fd367e6d467c2c2ef4b2"><code>8af29b5</code></a>
chore: version package (<a
href="https://redirect.github.com/wevm/viem/issues/5032">#5032</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/a165a236e95037e33f3f71cd099ccd2b92ead659"><code>a165a23</code></a>
fix(tempo): preserve t10 encryption key reads (<a
href="https://redirect.github.com/wevm/viem/issues/5047">#5047</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/56a54cc3c80c5c774963be4f02d68c4b43e261d4"><code>56a54cc</code></a>
fix(tempo): include Zone encryption key address (<a
href="https://redirect.github.com/wevm/viem/issues/5044">#5044</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/e802c6b16e03c83d61c144d0b6388a21a8391a22"><code>e802c6b</code></a>
feat(tempo): generalize Earn engine binding (<a
href="https://redirect.github.com/wevm/viem/issues/5039">#5039</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/68954cf5721c90fae6a0b2a696a6130721412377"><code>68954cf</code></a>
test(tempo): update entrypoint export snapshot</li>
<li><a
href="https://github.com/wevm/viem/commit/ffbf342ba3f5b312433ec927332f817b754fdafb"><code>ffbf342</code></a>
feat: 🎸 Updated Berachain Bepolia Block Explorer (<a
href="https://redirect.github.com/wevm/viem/issues/5028">#5028</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282b</code></a>
refactor(tempo): consolidate zone exports (<a
href="https://redirect.github.com/wevm/viem/issues/5040">#5040</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/0912a29d5c7abbea5238d6f7c3d750f07d479ace"><code>0912a29</code></a>
refactor(tempo): consolidate abi generation (<a
href="https://redirect.github.com/wevm/viem/issues/5037">#5037</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/b8707d998ab8c7d4ee95c9a70989cd6fbd145356"><code>b8707d9</code></a>
feat(tempo): add portal info action (<a
href="https://redirect.github.com/wevm/viem/issues/5034">#5034</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/wevm/viem/compare/viem@2.55.2...viem@2.56.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `viem` from 2.55.1 to 2.56.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/wevm/viem/releases">viem's
releases</a>.</em></p>
<blockquote>
<h2>viem@2.56.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Renamed
<code>Abis.abis</code> to <code>Abis.all</code> and expanded the
aggregate with Earn and Zone ABIs.</p>
<pre lang="diff"><code>-const abis = Abis.abis
+const abis = Abis.all
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Moved Zone exports
from <code>viem/tempo/zones</code> into <code>viem/tempo</code>.</p>
<pre lang="diff"><code>-import { Abis, Addresses, http, zoneModerato }
from 'viem/tempo/zones'
+import { Abis, Addresses, http, Zone } from 'viem/tempo'
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced curried
Zone network factories with built-in Zone definitions and
<code>Zone.from</code> for custom chains.</p>
<pre lang="diff"><code>-const zone = zoneModerato(6)
+const zone = Zone.a
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced
chain-specific Zone portal registries with deterministic
<code>Addresses.zonePortal(id)</code> resolution for Zone IDs and chain
IDs.</p>
<pre lang="diff"><code>-import { getPortalAddress } from
'viem/tempo/zones'
+import { Addresses, Zone } from 'viem/tempo'
<p>-const portal = getPortalAddress(42_431, 7)<br />
+const portal = Addresses.zonePortal(Zone.b.id)<br />
</code></pre></p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
Added selector maps for Zone portal, outbox, messenger, and verifier
ABIs.</p>
<pre lang="ts"><code>import { Selectors } from &quot;viem/tempo&quot;;
<p>const selector = Selectors.zonePortal.admin;<br />
</code></pre></p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5039">#5039</a>
<a
href="https://github.com/wevm/viem/commit/e802c6b16e03c83d61c144d0b6388a21a8391a22"><code>e802c6b16e03c83d61c144d0b6388a21a8391a22</code></a>
Thanks <a href="https://github.com/struong"><code>@​struong</code></a>!
- Replaced <code>tempo.earn.bindErc4626Engine</code> with the
engine-agnostic <code>tempo.earn.bindEngine</code> action and added
optional final ownership transfer.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5034">#5034</a>
<a
href="https://github.com/wevm/viem/commit/b8707d998ab8c7d4ee95c9a70989cd6fbd145356"><code>b8707d998ab8c7d4ee95c9a70989cd6fbd145356</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
Added <code>zone.getPortalInfo</code> to read Zone Portal
administration, sequencer, and token metadata.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5030">#5030</a>
<a
href="https://github.com/wevm/viem/commit/901bf2f09b057e03f34067fdee6c3f6a2dae7bd3"><code>901bf2f09b057e03f34067fdee6c3f6a2dae7bd3</code></a>
Thanks <a href="https://github.com/decofe"><code>@​decofe</code></a>! -
Added Zone protocol addresses, ZoneFactory registry reads, and
ZonePortal administration operations to Tempo exports.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/wevm/viem/commit/063faa52a247233c32445c5eda735ade21ca5801"><code>063faa5</code></a>
ci: pin tempo tag</li>
<li><a
href="https://github.com/wevm/viem/commit/8af29b52ff6b581da268fd367e6d467c2c2ef4b2"><code>8af29b5</code></a>
chore: version package (<a
href="https://redirect.github.com/wevm/viem/issues/5032">#5032</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/a165a236e95037e33f3f71cd099ccd2b92ead659"><code>a165a23</code></a>
fix(tempo): preserve t10 encryption key reads (<a
href="https://redirect.github.com/wevm/viem/issues/5047">#5047</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/56a54cc3c80c5c774963be4f02d68c4b43e261d4"><code>56a54cc</code></a>
fix(tempo): include Zone encryption key address (<a
href="https://redirect.github.com/wevm/viem/issues/5044">#5044</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/e802c6b16e03c83d61c144d0b6388a21a8391a22"><code>e802c6b</code></a>
feat(tempo): generalize Earn engine binding (<a
href="https://redirect.github.com/wevm/viem/issues/5039">#5039</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/68954cf5721c90fae6a0b2a696a6130721412377"><code>68954cf</code></a>
test(tempo): update entrypoint export snapshot</li>
<li><a
href="https://github.com/wevm/viem/commit/ffbf342ba3f5b312433ec927332f817b754fdafb"><code>ffbf342</code></a>
feat: 🎸 Updated Berachain Bepolia Block Explorer (<a
href="https://redirect.github.com/wevm/viem/issues/5028">#5028</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282b</code></a>
refactor(tempo): consolidate zone exports (<a
href="https://redirect.github.com/wevm/viem/issues/5040">#5040</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/0912a29d5c7abbea5238d6f7c3d750f07d479ace"><code>0912a29</code></a>
refactor(tempo): consolidate abi generation (<a
href="https://redirect.github.com/wevm/viem/issues/5037">#5037</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/b8707d998ab8c7d4ee95c9a70989cd6fbd145356"><code>b8707d9</code></a>
feat(tempo): add portal info action (<a
href="https://redirect.github.com/wevm/viem/issues/5034">#5034</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/wevm/viem/compare/viem@2.55.2...viem@2.56.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `viem` from 2.55.1 to 2.56.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/wevm/viem/releases">viem's
releases</a>.</em></p>
<blockquote>
<h2>viem@2.56.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Renamed
<code>Abis.abis</code> to <code>Abis.all</code> and expanded the
aggregate with Earn and Zone ABIs.</p>
<pre lang="diff"><code>-const abis = Abis.abis
+const abis = Abis.all
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Moved Zone exports
from <code>viem/tempo/zones</code> into <code>viem/tempo</code>.</p>
<pre lang="diff"><code>-import { Abis, Addresses, http, zoneModerato }
from 'viem/tempo/zones'
+import { Abis, Addresses, http, Zone } from 'viem/tempo'
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced curried
Zone network factories with built-in Zone definitions and
<code>Zone.from</code> for custom chains.</p>
<pre lang="diff"><code>-const zone = zoneModerato(6)
+const zone = Zone.a
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced
chain-specific Zone portal registries with deterministic
<code>Addresses.zonePortal(id)</code> resolution for Zone IDs and chain
IDs.</p>
<pre lang="diff"><code>-import { getPortalAddress } from
'viem/tempo/zones'
+import { Addresses, Zone } from 'viem/tempo'
<p>-const portal = getPortalAddress(42_431, 7)<br />
+const portal = Addresses.zonePortal(Zone.b.id)<br />
</code></pre></p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
Added selector maps for Zone portal, outbox, messenger, and verifier
ABIs.</p>
<pre lang="ts"><code>import { Selectors } from &quot;viem/tempo&quot;;
<p>const selector = Selectors.zonePortal.admin;<br />
</code></pre></p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5039">#5039</a>
<a
href="https://github.com/wevm/viem/commit/e802c6b16e03c83d61c144d0b6388a21a8391a22"><code>e802c6b16e03c83d61c144d0b6388a21a8391a22</code></a>
Thanks <a href="https://github.com/struong"><code>@​struong</code></a>!
- Replaced <code>tempo.earn.bindErc4626Engine</code> with the
engine-agnostic <code>tempo.earn.bindEngine</code> action and added
optional final ownership transfer.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5034">#5034</a>
<a
href="https://github.com/wevm/viem/commit/b8707d998ab8c7d4ee95c9a70989cd6fbd145356"><code>b8707d998ab8c7d4ee95c9a70989cd6fbd145356</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
Added <code>zone.getPortalInfo</code> to read Zone Portal
administration, sequencer, and token metadata.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5030">#5030</a>
<a
href="https://github.com/wevm/viem/commit/901bf2f09b057e03f34067fdee6c3f6a2dae7bd3"><code>901bf2f09b057e03f34067fdee6c3f6a2dae7bd3</code></a>
Thanks <a href="https://github.com/decofe"><code>@​decofe</code></a>! -
Added Zone protocol addresses, ZoneFactory registry reads, and
ZonePortal administration operations to Tempo exports.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/wevm/viem/commit/063faa52a247233c32445c5eda735ade21ca5801"><code>063faa5</code></a>
ci: pin tempo tag</li>
<li><a
href="https://github.com/wevm/viem/commit/8af29b52ff6b581da268fd367e6d467c2c2ef4b2"><code>8af29b5</code></a>
chore: version package (<a
href="https://redirect.github.com/wevm/viem/issues/5032">#5032</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/a165a236e95037e33f3f71cd099ccd2b92ead659"><code>a165a23</code></a>
fix(tempo): preserve t10 encryption key reads (<a
href="https://redirect.github.com/wevm/viem/issues/5047">#5047</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/56a54cc3c80c5c774963be4f02d68c4b43e261d4"><code>56a54cc</code></a>
fix(tempo): include Zone encryption key address (<a
href="https://redirect.github.com/wevm/viem/issues/5044">#5044</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/e802c6b16e03c83d61c144d0b6388a21a8391a22"><code>e802c6b</code></a>
feat(tempo): generalize Earn engine binding (<a
href="https://redirect.github.com/wevm/viem/issues/5039">#5039</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/68954cf5721c90fae6a0b2a696a6130721412377"><code>68954cf</code></a>
test(tempo): update entrypoint export snapshot</li>
<li><a
href="https://github.com/wevm/viem/commit/ffbf342ba3f5b312433ec927332f817b754fdafb"><code>ffbf342</code></a>
feat: 🎸 Updated Berachain Bepolia Block Explorer (<a
href="https://redirect.github.com/wevm/viem/issues/5028">#5028</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282b</code></a>
refactor(tempo): consolidate zone exports (<a
href="https://redirect.github.com/wevm/viem/issues/5040">#5040</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/0912a29d5c7abbea5238d6f7c3d750f07d479ace"><code>0912a29</code></a>
refactor(tempo): consolidate abi generation (<a
href="https://redirect.github.com/wevm/viem/issues/5037">#5037</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/b8707d998ab8c7d4ee95c9a70989cd6fbd145356"><code>b8707d9</code></a>
feat(tempo): add portal info action (<a
href="https://redirect.github.com/wevm/viem/issues/5034">#5034</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/wevm/viem/compare/viem@2.55.2...viem@2.56.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ankur Banerjee <ankurdotb@users.noreply.github.com>
## [3.6.0-beta.2](v3.6.0-beta.1...v3.6.0-beta.2) (2026-09-03)

### Bug Fixes

- **sdk:** structured events + metadata for wallet signing/permit fai… ([#701](#701)) ([ca21b77]())
## Summary
- Adds `docs/gitbook/src/changelog/README.md`, a landing page for the
Changelog nav section explaining what the three npm dist-tags/branches
(`main`/stable, `beta`, `alpha`) each track, and why `alpha` isn't just
"a more bleeding-edge beta."
- Wires it in as the first entry under `## Changelog` in `SUMMARY.md` —
purely additive, no nav restructuring.
- Notes in `docs/agents/changelog.md` that this page is
static/hand-maintained, unlike the rest of `changelog/` which is
scaffolded by `docs:changelog`/`sdk-changelog`.
- Regenerates the LLM corpus (`llms.txt`, `llms-full.txt`,
`docs/llm/corpus-manifest.json`) to include the new page.

Motivated by a real incident: a user hit an issue while debugging and
tried installing `@zama-fhe/sdk@alpha` without understanding it tracks
upcoming, not-yet-deployed protocol changes rather than being a
more-bleeding-edge prerelease.

## Test plan
- [x] `pnpm exec oxfmt` on touched files
- [x] `pnpm docs:check-links` — 112 pages, all links/anchors resolve
- [x] `pnpm llm:build` — corpus regenerated, `llm:check` verify-clean
matches after commit
- [x] `turbo run typecheck` (via pre-commit hook)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…ference (#725)

## Summary

Prompted by a review of `configuration.md`: the "Tune the FHE runtime"
step covered only 2 of `createConfig`'s 6 `runtime` fields, showed no
defaults, and never mentioned that `runtime` is a process-global
singleton set once by the first `createConfig` call. The API reference
was thinner still — `runtime`, `transportKeyPairScope`,
`transportKeyPairDerivationSecret`, and `logger` were never documented
as `createConfig`/constructor options at all in `ZamaSDK.md`, and
`web()`/`node()`/`cleartext()`'s per-client options (`batchRpcCalls`,
`fheEncryptionKey`, `moduleVersions`, `timeout`, `debug`) each got one
sentence with no types or defaults. The `3.4.0` changelog page had the
fullest writeup of any of this, which is backwards for a changelog page.

- **`guides/configuration.md`** (step 8, retitled "Tune FHE runtime
performance and behavior"): expanded to all 6 `runtime` fields with a
defaults table, the `wasmAssetLoadMode` mode table, the
process-singleton warning, and the `runtime.auth` (`{ type }`) vs. chain
`auth` (`{ __type }`) discriminator mismatch. Step 2 now links to the
transport reference pages for the full per-client option list. (Not
renumbering the guide's steps — `permit-model.md`, `security-model.md`,
and three frozen historical changelog pages already deep-link specific
step anchors, and renumbering would break those.)
- **`reference/sdk/ZamaSDK.md`**: added `### runtime`, `###
transportKeyPairScope`, `### logger` to "createConfig options", and a
new "Constructor options" section documenting
`transportKeyPairDerivationSecret` (the `ZamaSDK` constructor's second
argument) — none of these were documented here before.
- **`reference/sdk/RelayerWeb.md` / `RelayerNode.md` /
`RelayerCleartext.md`**: each "Parameters" section expanded from one
sentence into a full table (`batchRpcCalls`, `fheEncryptionKey`,
`moduleVersions`, `timeout`, `debug`) with defaults. Each page carries
its own copy rather than cross-linking, since Node/Cleartext readers
shouldn't need to read the browser-transport page to learn their own
transport's options.

All defaults were verified against the actual `@fhevm/sdk`
implementation (not just its `.d.ts` files or the changelog's prose) —
e.g. `numberOfThreads` defaults to the *requested*
`navigator.hardwareConcurrency` but degrades to single-threaded when
`navigator`, `SharedArrayBuffer`, or a spawnable worker isn't available,
and `fheEncryptionKey`'s type is the structured `FheEncryptionKeyBytes`
object `fetchFheEncryptionKeyBytes()` returns, not a raw `Uint8Array`.

The 3.4.0 changelog page is left untouched — it's the historical record
of what shipped, and now that the guide and reference carry the verified
numbers, the changelog's own (correct) copy is harmless duplication, not
drift.

## Also included: UK → US spelling normalization (repo-wide)

Folded in from a separate PR at request, since both touch the generated
LLM corpus files. The repo's established convention is US English
(confirmed by usage: 517 `color` vs. 0 `colour`, 33 `initializ...` vs. 0
`initialis...`, 3 `optimiz...` vs. 1 `optimis...`). A repo-wide sweep
found 27 files with stray UK spellings — `behaviour`, `optimisation`,
`flavoured`, `centres`, `initialises`, `modelling`/`modelled`,
`cancelling`, `recognised`, `serialised`/`serialisation`, `authorising`,
`decentralised`, `memoised`, `normalises`, `parallelise` — spread across
GitBook docs, example app READMEs/walkthroughs, source and test
comments, and two agent-instruction files (root `AGENTS.md`,
`packages/react-sdk/AGENTS.md`).

Two renamed test titles (`encrypt-worker-client.dispose.test.ts`,
`wagmi-provider.test.ts`) — checked both have no external Vitest
snapshots keyed on the test name.

**Left untouched:** `CHANGELOG.md` (auto-generated, never hand-edited),
the vendored `contracts/lib/fhevm` git submodule, and `"burnt"` in
`onchain-events.ts`/`ethers.test.ts` (the intentional
`burnAmount`/`burntAmount` domain term, not a spelling variant).

## Test plan
- [x] `pnpm exec oxfmt` on touched files
- [x] `pnpm lint` (`oxlint` + `ast-grep scan`) — clean
- [x] `pnpm exec vitest run` on the two files with renamed test titles
plus their neighbors — 58/58 passing
- [x] `pnpm docs:check-links` — 112 pages, all links/anchors resolve
- [x] `pnpm llm:build` — corpus regenerated
- [x] `turbo run typecheck` (via pre-commit hook)
- [x] Every documented `runtime`/transport default cross-checked against
`@fhevm/sdk@0.13.2`'s actual implementation, not just its type
declarations

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…0 to 2.13.0 (#708)

Bumps
[davelosert/vitest-coverage-report-action](https://github.com/davelosert/vitest-coverage-report-action)
from 2.12.0 to 2.13.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/davelosert/vitest-coverage-report-action/releases">davelosert/vitest-coverage-report-action's
releases</a>.</em></p>
<blockquote>
<h2>v2.13.0</h2>
<h1><a
href="https://github.com/davelosert/vitest-coverage-report-action/compare/v2.12.2...v2.13.0">2.13.0</a>
(2026-08-31)</h1>
<h3>Features</h3>
<ul>
<li>adds custom comment markers (<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/647">#647</a>)
(<a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/c0c7081e8a81ee5a84356df9aa28c015918fb4c7">c0c7081</a>),
closes <a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/646">#646</a></li>
</ul>
<h2>v2.12.2</h2>
<h2><a
href="https://github.com/davelosert/vitest-coverage-report-action/compare/v2.12.1...v2.12.2">2.12.2</a>
(2026-07-14)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>color status icon by vitest threshold pass/fail when threshold-icons
is unset (<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/648">#648</a>)
(<a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/2500e23ff806017d1d466d0f0131dc84dad709c4">2500e23</a>),
closes <a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/557">#557</a>
<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/580">#580</a></li>
<li><strong>deps-dev:</strong> bump <code>@​biomejs/biome</code> from
2.5.0 to 2.5.1 (<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/642">#642</a>)
(<a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/3712652891824a36a5d360ee39864bb84b82f0da">3712652</a>)</li>
<li><strong>deps-dev:</strong> bump <code>@​types/node</code> in the
build-deps group (<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/640">#640</a>)
(<a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/63041930ebecb3c8568b634adb6335c8945857c9">6304193</a>)</li>
<li><strong>deps-dev:</strong> bump the build-deps group with 2 updates
(<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/641">#641</a>)
(<a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/a9fb06299e4b9498bc1ef1ccf5a637170522a22b">a9fb062</a>)</li>
</ul>
<h2>v2.12.1</h2>
<h2><a
href="https://github.com/davelosert/vitest-coverage-report-action/compare/v2.12.0...v2.12.1">2.12.1</a>
(2026-06-17)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps-dev:</strong> bump <code>@​biomejs/biome</code> from
2.4.16 to 2.5.0 (<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/637">#637</a>)
(<a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/07d2ea2bc12fec0cb8481ac04d3226747628e9c0">07d2ea2</a>)</li>
<li><strong>deps-dev:</strong> bump esbuild from 0.28.0 to 0.28.1 to fix
low severity alert (<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/634">#634</a>)
(<a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/3f1517d5d79de0e617876bda3efe7a5c51092b18">3f1517d</a>)</li>
<li><strong>deps-dev:</strong> bump js-yaml from 4.1.1 to 4.2.0 (<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/638">#638</a>)
(<a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/b6953a3d4b06b6bd23670cd2e9f72a795f63e65a">b6953a3</a>)</li>
<li><strong>deps-dev:</strong> bump semantic-release in the
semantic-release group (<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/636">#636</a>)
(<a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/71f8544a38ddae7e0405d94c889044c343b77162">71f8544</a>)</li>
<li><strong>deps-dev:</strong> bump the build-deps group with 3 updates
(<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/635">#635</a>)
(<a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/71729ecead29291c17c380615fcc4dce73952e4a">71729ec</a>)</li>
<li><strong>deps:</strong> bump tar and npm to resolve moderate
vulnerability (<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/639">#639</a>)
(<a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/a345167a98205250106902ce2d5c32623ceb79d9">a345167</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/c4bbc33a89b7ace0e63d35f1f7d4bcee31155a73"><code>c4bbc33</code></a>
chore(release): 2.13.0 [skip ci]</li>
<li><a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/c0c7081e8a81ee5a84356df9aa28c015918fb4c7"><code>c0c7081</code></a>
feat: adds custom comment markers (<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/647">#647</a>)</li>
<li><a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/809a2d00b22c74aeeacf2902612eaede1247c5f8"><code>809a2d0</code></a>
chore(deps-dev): bump the build-deps group with 3 updates (<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/669">#669</a>)</li>
<li><a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/d31fe58ab8edcb2c65c01dcdd27b851611441187"><code>d31fe58</code></a>
chore(deps-dev): bump <code>@​biomejs/biome</code> from 2.5.8 to 2.5.9
(<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/670">#670</a>)</li>
<li><a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/775d44afafe47c28d8ac61016ad191044efc7b37"><code>775d44a</code></a>
chore(deps-dev): bump esbuild in the build-deps group (<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/667">#667</a>)</li>
<li><a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/bc506decc1cf17c2ae48dacfeccbbeee8b18fca7"><code>bc506de</code></a>
chore(deps-dev): bump <code>@​biomejs/biome</code> from 2.5.7 to 2.5.8
(<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/668">#668</a>)</li>
<li><a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/dda983aacdd4a25f098e903d81861c632a3bdb5a"><code>dda983a</code></a>
chore(deps-dev): bump the build-deps group across 1 directory with 2
updates ...</li>
<li><a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/d254bcfe7065206fbe1030ecc69b2d039a1a0d66"><code>d254bcf</code></a>
chore(deps-dev): bump <code>@​biomejs/biome</code> from 2.5.3 to 2.5.7
(<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/666">#666</a>)</li>
<li><a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/2e7b37b32d42842dd1538c5fece830de661bd59d"><code>2e7b37b</code></a>
chore(deps-dev): bump the semantic-release group across 1 directory with
2 up...</li>
<li><a
href="https://github.com/davelosert/vitest-coverage-report-action/commit/8c52444848060e16d98bdf55cedb591475210993"><code>8c52444</code></a>
chore(deps-dev): bump js-yaml from 4.2.0 to 4.3.1 (<a
href="https://redirect.github.com/davelosert/vitest-coverage-report-action/issues/664">#664</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/davelosert/vitest-coverage-report-action/compare/02f3c2e641286b7fa308cd3e430783103ce6103b...c4bbc33a89b7ace0e63d35f1f7d4bcee31155a73">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=davelosert/vitest-coverage-report-action&package-manager=github_actions&previous-version=2.12.0&new-version=2.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…/react-turnkey-wallet (#707)

Bumps [browserslist](https://github.com/browserslist/browserslist) from
4.28.4 to 4.28.8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/browserslist/browserslist/releases">browserslist's
releases</a>.</em></p>
<blockquote>
<h2>4.28.8</h2>
<ul>
<li>Fixed <code>including kaios</code> in baseline queries (by <a
href="https://github.com/Jaybhade"><code>@​Jaybhade</code></a>).</li>
</ul>
<h2>4.28.7</h2>
<ul>
<li>Improved parsing performance.</li>
<li>Fixed unbounded memory growth (by <a
href="https://github.com/alanturing881"><code>@​alanturing881</code></a>).</li>
<li>Fixed prototype write issue (by <a
href="https://github.com/alanturing881"><code>@​alanturing881</code></a>).</li>
</ul>
<h2>4.28.6</h2>
<ul>
<li>Fixed Electron version queries (by <a
href="https://github.com/spokodev"><code>@​spokodev</code></a>).</li>
</ul>
<h2>4.28.5</h2>
<ul>
<li>Fixed <code>&gt;</code> and <code>&gt;=</code> queries (by <a
href="https://github.com/spokodev"><code>@​spokodev</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md">browserslist's
changelog</a>.</em></p>
<blockquote>
<h2>4.28.8</h2>
<ul>
<li>Fixed <code>including kaios</code> in baseline queries (by <a
href="https://github.com/Jaybhade"><code>@​Jaybhade</code></a>).</li>
</ul>
<h2>4.28.7</h2>
<ul>
<li>Improved parsing performance.</li>
<li>Fixed unbounded memory growth (by <a
href="https://github.com/alanturing881"><code>@​alanturing881</code></a>).</li>
<li>Fixed prototype write issue (by <a
href="https://github.com/alanturing881"><code>@​alanturing881</code></a>).</li>
</ul>
<h2>4.28.6</h2>
<ul>
<li>Fixed Electron version queries (by <a
href="https://github.com/spokodev"><code>@​spokodev</code></a>).</li>
</ul>
<h2>4.28.5</h2>
<ul>
<li>Fixed <code>&gt;</code> and <code>&gt;=</code> queries (by <a
href="https://github.com/spokodev"><code>@​spokodev</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/browserslist/browserslist/commit/f2f2e6cfb01bb4942941d328737546f4e2ae41ad"><code>f2f2e6c</code></a>
Release 4.28.8 version</li>
<li><a
href="https://github.com/browserslist/browserslist/commit/d0787c88fa29ba895fea51cfe921232c7b5d1377"><code>d0787c8</code></a>
Update dependencies</li>
<li><a
href="https://github.com/browserslist/browserslist/commit/fcf8fa9857b30ccdf801a548f5d09d3c4ff0d43f"><code>fcf8fa9</code></a>
Merge pull request <a
href="https://redirect.github.com/browserslist/browserslist/issues/939">#939</a>
from Jaybhade/fix/baseline-kaios-without-downstream</li>
<li><a
href="https://github.com/browserslist/browserslist/commit/57ecd64454e9252afdd6a7e76926e13dda48a38c"><code>57ecd64</code></a>
fix: support &quot;including kaios&quot; without downstream</li>
<li><a
href="https://github.com/browserslist/browserslist/commit/093a0f67bb0becda55235d767b134df3197c54a1"><code>093a0f6</code></a>
Update EM banner</li>
<li><a
href="https://github.com/browserslist/browserslist/commit/b637868045806d2fba4c24eb0060e4cc8b1db276"><code>b637868</code></a>
Release 4.28.7 version</li>
<li><a
href="https://github.com/browserslist/browserslist/commit/313f4659b9f985ade89d1d6a54a860371c41cc46"><code>313f465</code></a>
Update dependencies</li>
<li><a
href="https://github.com/browserslist/browserslist/commit/c935c5a206f8b13db8846818bc03643e147dcbdf"><code>c935c5a</code></a>
Fix regexp performance</li>
<li><a
href="https://github.com/browserslist/browserslist/commit/d7e9e653cb53399065943f59f0b3063987b0a008"><code>d7e9e65</code></a>
Rewrite structure parsing to make it always fast</li>
<li><a
href="https://github.com/browserslist/browserslist/commit/ec4a55efd76bdfa506ec7ce4fea1691559e9ca8f"><code>ec4a55e</code></a>
Fix import order</li>
<li>Additional commits viewable in <a
href="https://github.com/browserslist/browserslist/compare/4.28.4...4.28.8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=browserslist&package-manager=npm_and_yarn&previous-version=4.28.4&new-version=4.28.8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts page](https://github.com/zama-ai/sdk/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ankur Banerjee <ankurdotb@users.noreply.github.com>
## Summary
- Adds an `ignore` rule for `@fhevm/sdk` in the SDK-core Dependabot
block.
- `@fhevm/sdk` tracks the FHEVM protocol version, not general dependency
hygiene — per the [Zama SDK Release
Process](https://app.notion.com/p/3ab5a7358d5e8196845afb4b3ee983f9),
bumps go through `alpha` (the protocol-breaking-change testing channel)
and are only promoted to `beta`/`main` once mainnet and testnet are both
fully on the new protocol version. Compatibility only runs one
direction, so a routine Dependabot bump on `beta` risks shipping an SDK
built for a protocol version the live networks aren't on yet.
- Prompted by PR #709, which bundled a `@fhevm/sdk` 0.13.2→0.14.1 bump
alongside unrelated tooling updates; that bump was reverted separately
on #709 itself.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
…ples/example-hoodi (#717)

Bumps [@playwright/test](https://github.com/microsoft/playwright) from
1.62.0 to 1.63.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/playwright/releases">@​playwright/test's
releases</a>.</em></p>
<blockquote>
<h2>v1.63.0</h2>
<h2>🔒 Test locks</h2>
<p>Tests that access a shared resource — an external service, a global
account setting — can now declare a named <code>lock</code>.
Tests that share a lock name never run concurrently, across files,
workers and <a
href="https://playwright.dev/docs/test-projects">projects</a>, while
everything else keeps running in parallel:</p>
<pre lang="js"><code>test('update user settings', { lock:
'user-settings' }, async ({ page }) =&gt; {
  // never runs at the same time as other tests holding 'user-settings'
});
</code></pre>
<p>A test can hold multiple locks, and <a
href="https://playwright.dev/docs/api/class-test#test-describe">test.describe()</a>
accepts a <code>lock</code> for the whole group.
Learn more about <a
href="https://playwright.dev/docs/test-parallel#test-locks">test
locks</a>.</p>
<h2>🪟 Locate across frames</h2>
<p><a
href="https://playwright.dev/docs/api/class-page#page-frame-locator">page.frameLocator()</a>
and <a
href="https://playwright.dev/docs/api/class-frame#frame-frame-locator">frame.frameLocator()</a>
called without a selector search in any frame of the
subtree, so you no longer need to locate the iframe first:</p>
<pre lang="js"><code>// Finds the button in any frame on the page.
await page.frameLocator().getByRole('button').click();
</code></pre>
<p>The rest of the locator resolves inside a single frame, just like a
regular locator, and an error is thrown when it
matches elements in several frames.</p>
<h2>👁️ Visible-only locators</h2>
<p>New <a
href="https://playwright.dev/docs/api/class-locator#locator-visible">locator.visible()</a>
returns a locator that matches only visible elements. It is the
recommended
replacement for the <code>:visible</code> CSS pseudo-class:</p>
<pre lang="js"><code>await page.locator('button').visible().click();
</code></pre>
<h2>🧾 Step params and subtitles</h2>
<p>Steps now carry structured data for reporters. Playwright API steps
report the target locator and call arguments,
and <a
href="https://playwright.dev/docs/api/class-test#test-step">test.step()</a>
accepts <code>subtitle</code> and <code>params</code> options for your
own steps:</p>
<pre lang="js"><code>await test.step('Login', async () =&gt; {
  // ...
}, { subtitle: 'as admin', params: { user: 'admin' } });
</code></pre>
<p>Reporters receive them via <a
href="https://playwright.dev/docs/api/class-teststep#test-step-subtitle">testStep.subtitle</a>
and <a
href="https://playwright.dev/docs/api/class-teststep#test-step-params">testStep.params</a>.
For Playwright API</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/playwright/commit/1b025d7e20a026371cd5f98ba0cdce48892737c8"><code>1b025d7</code></a>
chore: mark v1.63.0 (<a
href="https://redirect.github.com/microsoft/playwright/issues/42569">#42569</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/0b9956d2247ce88399c3c46a22c1cc0526acb340"><code>0b9956d</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42568">#42568</a>):
docs(test): mark test.step subtitle option as since v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/13dbf102b88305ed96b7791a7843246cd75d4dae"><code>13dbf10</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42552">#42552</a>):
docs: release notes for v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/e93b64ed6f9cf6ac2cc8cb13ad01514b406a7142"><code>e93b64e</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42566">#42566</a>):
feat(test): add subtitle option to test.step (<a
href="https://redirect.github.com/microsoft/playwright/issues/42567">#42567</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/2b7a5f2ea1cea04b549c5378498c1b16b6bc6a6f"><code>2b7a5f2</code></a>
test: response.body() for content-encoding:identity (<a
href="https://redirect.github.com/microsoft/playwright/issues/42537">#42537</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/648a67c7c1261eefe4113cba2d586417d5e3f2f2"><code>648a67c</code></a>
fix(mcp): create parent directories for explicitly named files (<a
href="https://redirect.github.com/microsoft/playwright/issues/42540">#42540</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/7894f5653e7f253c17aa1638c19f63e0d54d5e0e"><code>7894f56</code></a>
docs(mcp): clarify how tool file names are resolved (<a
href="https://redirect.github.com/microsoft/playwright/issues/42538">#42538</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/52900a1b99ca51011526afcaf8981970cc1a521a"><code>52900a1</code></a>
devops: restore npm publishing from GitHub Actions (<a
href="https://redirect.github.com/microsoft/playwright/issues/42550">#42550</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/8c47f596edebd2460895a5953f2ea67f8b884001"><code>8c47f59</code></a>
docs(csharp): fix nonexistent method names in guide examples (<a
href="https://redirect.github.com/microsoft/playwright/issues/42507">#42507</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/bd6e552a63f8cf9b0da0216f392b8e63a08bf1d2"><code>bd6e552</code></a>
chore(video): emit frames with real timestamps, drop frame number
quantizatio...</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/playwright/compare/v1.62.0...v1.63.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@playwright/test&package-manager=npm_and_yarn&previous-version=1.62.0&new-version=1.63.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ples/example-bnb (#715)

Bumps [@playwright/test](https://github.com/microsoft/playwright) from
1.62.0 to 1.63.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/playwright/releases">@​playwright/test's
releases</a>.</em></p>
<blockquote>
<h2>v1.63.0</h2>
<h2>🔒 Test locks</h2>
<p>Tests that access a shared resource — an external service, a global
account setting — can now declare a named <code>lock</code>.
Tests that share a lock name never run concurrently, across files,
workers and <a
href="https://playwright.dev/docs/test-projects">projects</a>, while
everything else keeps running in parallel:</p>
<pre lang="js"><code>test('update user settings', { lock:
'user-settings' }, async ({ page }) =&gt; {
  // never runs at the same time as other tests holding 'user-settings'
});
</code></pre>
<p>A test can hold multiple locks, and <a
href="https://playwright.dev/docs/api/class-test#test-describe">test.describe()</a>
accepts a <code>lock</code> for the whole group.
Learn more about <a
href="https://playwright.dev/docs/test-parallel#test-locks">test
locks</a>.</p>
<h2>🪟 Locate across frames</h2>
<p><a
href="https://playwright.dev/docs/api/class-page#page-frame-locator">page.frameLocator()</a>
and <a
href="https://playwright.dev/docs/api/class-frame#frame-frame-locator">frame.frameLocator()</a>
called without a selector search in any frame of the
subtree, so you no longer need to locate the iframe first:</p>
<pre lang="js"><code>// Finds the button in any frame on the page.
await page.frameLocator().getByRole('button').click();
</code></pre>
<p>The rest of the locator resolves inside a single frame, just like a
regular locator, and an error is thrown when it
matches elements in several frames.</p>
<h2>👁️ Visible-only locators</h2>
<p>New <a
href="https://playwright.dev/docs/api/class-locator#locator-visible">locator.visible()</a>
returns a locator that matches only visible elements. It is the
recommended
replacement for the <code>:visible</code> CSS pseudo-class:</p>
<pre lang="js"><code>await page.locator('button').visible().click();
</code></pre>
<h2>🧾 Step params and subtitles</h2>
<p>Steps now carry structured data for reporters. Playwright API steps
report the target locator and call arguments,
and <a
href="https://playwright.dev/docs/api/class-test#test-step">test.step()</a>
accepts <code>subtitle</code> and <code>params</code> options for your
own steps:</p>
<pre lang="js"><code>await test.step('Login', async () =&gt; {
  // ...
}, { subtitle: 'as admin', params: { user: 'admin' } });
</code></pre>
<p>Reporters receive them via <a
href="https://playwright.dev/docs/api/class-teststep#test-step-subtitle">testStep.subtitle</a>
and <a
href="https://playwright.dev/docs/api/class-teststep#test-step-params">testStep.params</a>.
For Playwright API</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/playwright/commit/1b025d7e20a026371cd5f98ba0cdce48892737c8"><code>1b025d7</code></a>
chore: mark v1.63.0 (<a
href="https://redirect.github.com/microsoft/playwright/issues/42569">#42569</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/0b9956d2247ce88399c3c46a22c1cc0526acb340"><code>0b9956d</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42568">#42568</a>):
docs(test): mark test.step subtitle option as since v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/13dbf102b88305ed96b7791a7843246cd75d4dae"><code>13dbf10</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42552">#42552</a>):
docs: release notes for v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/e93b64ed6f9cf6ac2cc8cb13ad01514b406a7142"><code>e93b64e</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42566">#42566</a>):
feat(test): add subtitle option to test.step (<a
href="https://redirect.github.com/microsoft/playwright/issues/42567">#42567</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/2b7a5f2ea1cea04b549c5378498c1b16b6bc6a6f"><code>2b7a5f2</code></a>
test: response.body() for content-encoding:identity (<a
href="https://redirect.github.com/microsoft/playwright/issues/42537">#42537</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/648a67c7c1261eefe4113cba2d586417d5e3f2f2"><code>648a67c</code></a>
fix(mcp): create parent directories for explicitly named files (<a
href="https://redirect.github.com/microsoft/playwright/issues/42540">#42540</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/7894f5653e7f253c17aa1638c19f63e0d54d5e0e"><code>7894f56</code></a>
docs(mcp): clarify how tool file names are resolved (<a
href="https://redirect.github.com/microsoft/playwright/issues/42538">#42538</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/52900a1b99ca51011526afcaf8981970cc1a521a"><code>52900a1</code></a>
devops: restore npm publishing from GitHub Actions (<a
href="https://redirect.github.com/microsoft/playwright/issues/42550">#42550</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/8c47f596edebd2460895a5953f2ea67f8b884001"><code>8c47f59</code></a>
docs(csharp): fix nonexistent method names in guide examples (<a
href="https://redirect.github.com/microsoft/playwright/issues/42507">#42507</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/bd6e552a63f8cf9b0da0216f392b8e63a08bf1d2"><code>bd6e552</code></a>
chore(video): emit frames with real timestamps, drop frame number
quantizatio...</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/playwright/compare/v1.62.0...v1.63.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@playwright/test&package-manager=npm_and_yarn&previous-version=1.62.0&new-version=1.63.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@playwright/test](https://github.com/microsoft/playwright) from
1.62.0 to 1.63.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/playwright/releases">@​playwright/test's
releases</a>.</em></p>
<blockquote>
<h2>v1.63.0</h2>
<h2>🔒 Test locks</h2>
<p>Tests that access a shared resource — an external service, a global
account setting — can now declare a named <code>lock</code>.
Tests that share a lock name never run concurrently, across files,
workers and <a
href="https://playwright.dev/docs/test-projects">projects</a>, while
everything else keeps running in parallel:</p>
<pre lang="js"><code>test('update user settings', { lock:
'user-settings' }, async ({ page }) =&gt; {
  // never runs at the same time as other tests holding 'user-settings'
});
</code></pre>
<p>A test can hold multiple locks, and <a
href="https://playwright.dev/docs/api/class-test#test-describe">test.describe()</a>
accepts a <code>lock</code> for the whole group.
Learn more about <a
href="https://playwright.dev/docs/test-parallel#test-locks">test
locks</a>.</p>
<h2>🪟 Locate across frames</h2>
<p><a
href="https://playwright.dev/docs/api/class-page#page-frame-locator">page.frameLocator()</a>
and <a
href="https://playwright.dev/docs/api/class-frame#frame-frame-locator">frame.frameLocator()</a>
called without a selector search in any frame of the
subtree, so you no longer need to locate the iframe first:</p>
<pre lang="js"><code>// Finds the button in any frame on the page.
await page.frameLocator().getByRole('button').click();
</code></pre>
<p>The rest of the locator resolves inside a single frame, just like a
regular locator, and an error is thrown when it
matches elements in several frames.</p>
<h2>👁️ Visible-only locators</h2>
<p>New <a
href="https://playwright.dev/docs/api/class-locator#locator-visible">locator.visible()</a>
returns a locator that matches only visible elements. It is the
recommended
replacement for the <code>:visible</code> CSS pseudo-class:</p>
<pre lang="js"><code>await page.locator('button').visible().click();
</code></pre>
<h2>🧾 Step params and subtitles</h2>
<p>Steps now carry structured data for reporters. Playwright API steps
report the target locator and call arguments,
and <a
href="https://playwright.dev/docs/api/class-test#test-step">test.step()</a>
accepts <code>subtitle</code> and <code>params</code> options for your
own steps:</p>
<pre lang="js"><code>await test.step('Login', async () =&gt; {
  // ...
}, { subtitle: 'as admin', params: { user: 'admin' } });
</code></pre>
<p>Reporters receive them via <a
href="https://playwright.dev/docs/api/class-teststep#test-step-subtitle">testStep.subtitle</a>
and <a
href="https://playwright.dev/docs/api/class-teststep#test-step-params">testStep.params</a>.
For Playwright API</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/playwright/commit/1b025d7e20a026371cd5f98ba0cdce48892737c8"><code>1b025d7</code></a>
chore: mark v1.63.0 (<a
href="https://redirect.github.com/microsoft/playwright/issues/42569">#42569</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/0b9956d2247ce88399c3c46a22c1cc0526acb340"><code>0b9956d</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42568">#42568</a>):
docs(test): mark test.step subtitle option as since v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/13dbf102b88305ed96b7791a7843246cd75d4dae"><code>13dbf10</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42552">#42552</a>):
docs: release notes for v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/e93b64ed6f9cf6ac2cc8cb13ad01514b406a7142"><code>e93b64e</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42566">#42566</a>):
feat(test): add subtitle option to test.step (<a
href="https://redirect.github.com/microsoft/playwright/issues/42567">#42567</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/2b7a5f2ea1cea04b549c5378498c1b16b6bc6a6f"><code>2b7a5f2</code></a>
test: response.body() for content-encoding:identity (<a
href="https://redirect.github.com/microsoft/playwright/issues/42537">#42537</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/648a67c7c1261eefe4113cba2d586417d5e3f2f2"><code>648a67c</code></a>
fix(mcp): create parent directories for explicitly named files (<a
href="https://redirect.github.com/microsoft/playwright/issues/42540">#42540</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/7894f5653e7f253c17aa1638c19f63e0d54d5e0e"><code>7894f56</code></a>
docs(mcp): clarify how tool file names are resolved (<a
href="https://redirect.github.com/microsoft/playwright/issues/42538">#42538</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/52900a1b99ca51011526afcaf8981970cc1a521a"><code>52900a1</code></a>
devops: restore npm publishing from GitHub Actions (<a
href="https://redirect.github.com/microsoft/playwright/issues/42550">#42550</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/8c47f596edebd2460895a5953f2ea67f8b884001"><code>8c47f59</code></a>
docs(csharp): fix nonexistent method names in guide examples (<a
href="https://redirect.github.com/microsoft/playwright/issues/42507">#42507</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/bd6e552a63f8cf9b0da0216f392b8e63a08bf1d2"><code>bd6e552</code></a>
chore(video): emit frames with real timestamps, drop frame number
quantizatio...</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/playwright/compare/v1.62.0...v1.63.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@playwright/test&package-manager=npm_and_yarn&previous-version=1.62.0&new-version=1.63.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ankur Banerjee <ankurdotb@users.noreply.github.com>
…h 3 updates (#729)

Bumps the example-apps group with 2 updates in the
/examples/react-ethers directory:
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
and [@playwright/test](https://github.com/microsoft/playwright).
Bumps the example-apps group with 1 update in the
/examples/react-turnkey-wallet directory:
[eslint](https://github.com/eslint/eslint).
Bumps the example-apps group with 2 updates in the /examples/react-viem
directory:
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
and [@playwright/test](https://github.com/microsoft/playwright).
Bumps the example-apps group with 2 updates in the /examples/react-wagmi
directory:
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
and [@playwright/test](https://github.com/microsoft/playwright).

Updates `@types/node` from 22.7.5 to 22.20.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@playwright/test` from 1.62.0 to 1.63.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/playwright/releases">@​playwright/test's
releases</a>.</em></p>
<blockquote>
<h2>v1.63.0</h2>
<h2>🔒 Test locks</h2>
<p>Tests that access a shared resource — an external service, a global
account setting — can now declare a named <code>lock</code>.
Tests that share a lock name never run concurrently, across files,
workers and <a
href="https://playwright.dev/docs/test-projects">projects</a>, while
everything else keeps running in parallel:</p>
<pre lang="js"><code>test('update user settings', { lock:
'user-settings' }, async ({ page }) =&gt; {
  // never runs at the same time as other tests holding 'user-settings'
});
</code></pre>
<p>A test can hold multiple locks, and <a
href="https://playwright.dev/docs/api/class-test#test-describe">test.describe()</a>
accepts a <code>lock</code> for the whole group.
Learn more about <a
href="https://playwright.dev/docs/test-parallel#test-locks">test
locks</a>.</p>
<h2>🪟 Locate across frames</h2>
<p><a
href="https://playwright.dev/docs/api/class-page#page-frame-locator">page.frameLocator()</a>
and <a
href="https://playwright.dev/docs/api/class-frame#frame-frame-locator">frame.frameLocator()</a>
called without a selector search in any frame of the
subtree, so you no longer need to locate the iframe first:</p>
<pre lang="js"><code>// Finds the button in any frame on the page.
await page.frameLocator().getByRole('button').click();
</code></pre>
<p>The rest of the locator resolves inside a single frame, just like a
regular locator, and an error is thrown when it
matches elements in several frames.</p>
<h2>👁️ Visible-only locators</h2>
<p>New <a
href="https://playwright.dev/docs/api/class-locator#locator-visible">locator.visible()</a>
returns a locator that matches only visible elements. It is the
recommended
replacement for the <code>:visible</code> CSS pseudo-class:</p>
<pre lang="js"><code>await page.locator('button').visible().click();
</code></pre>
<h2>🧾 Step params and subtitles</h2>
<p>Steps now carry structured data for reporters. Playwright API steps
report the target locator and call arguments,
and <a
href="https://playwright.dev/docs/api/class-test#test-step">test.step()</a>
accepts <code>subtitle</code> and <code>params</code> options for your
own steps:</p>
<pre lang="js"><code>await test.step('Login', async () =&gt; {
  // ...
}, { subtitle: 'as admin', params: { user: 'admin' } });
</code></pre>
<p>Reporters receive them via <a
href="https://playwright.dev/docs/api/class-teststep#test-step-subtitle">testStep.subtitle</a>
and <a
href="https://playwright.dev/docs/api/class-teststep#test-step-params">testStep.params</a>.
For Playwright API</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/playwright/commit/1b025d7e20a026371cd5f98ba0cdce48892737c8"><code>1b025d7</code></a>
chore: mark v1.63.0 (<a
href="https://redirect.github.com/microsoft/playwright/issues/42569">#42569</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/0b9956d2247ce88399c3c46a22c1cc0526acb340"><code>0b9956d</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42568">#42568</a>):
docs(test): mark test.step subtitle option as since v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/13dbf102b88305ed96b7791a7843246cd75d4dae"><code>13dbf10</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42552">#42552</a>):
docs: release notes for v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/e93b64ed6f9cf6ac2cc8cb13ad01514b406a7142"><code>e93b64e</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42566">#42566</a>):
feat(test): add subtitle option to test.step (<a
href="https://redirect.github.com/microsoft/playwright/issues/42567">#42567</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/2b7a5f2ea1cea04b549c5378498c1b16b6bc6a6f"><code>2b7a5f2</code></a>
test: response.body() for content-encoding:identity (<a
href="https://redirect.github.com/microsoft/playwright/issues/42537">#42537</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/648a67c7c1261eefe4113cba2d586417d5e3f2f2"><code>648a67c</code></a>
fix(mcp): create parent directories for explicitly named files (<a
href="https://redirect.github.com/microsoft/playwright/issues/42540">#42540</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/7894f5653e7f253c17aa1638c19f63e0d54d5e0e"><code>7894f56</code></a>
docs(mcp): clarify how tool file names are resolved (<a
href="https://redirect.github.com/microsoft/playwright/issues/42538">#42538</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/52900a1b99ca51011526afcaf8981970cc1a521a"><code>52900a1</code></a>
devops: restore npm publishing from GitHub Actions (<a
href="https://redirect.github.com/microsoft/playwright/issues/42550">#42550</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/8c47f596edebd2460895a5953f2ea67f8b884001"><code>8c47f59</code></a>
docs(csharp): fix nonexistent method names in guide examples (<a
href="https://redirect.github.com/microsoft/playwright/issues/42507">#42507</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/bd6e552a63f8cf9b0da0216f392b8e63a08bf1d2"><code>bd6e552</code></a>
chore(video): emit frames with real timestamps, drop frame number
quantizatio...</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/playwright/compare/v1.62.0...v1.63.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 22.7.5 to 22.20.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 22.7.5 to 22.20.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@playwright/test` from 1.62.0 to 1.63.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/playwright/releases">@​playwright/test's
releases</a>.</em></p>
<blockquote>
<h2>v1.63.0</h2>
<h2>🔒 Test locks</h2>
<p>Tests that access a shared resource — an external service, a global
account setting — can now declare a named <code>lock</code>.
Tests that share a lock name never run concurrently, across files,
workers and <a
href="https://playwright.dev/docs/test-projects">projects</a>, while
everything else keeps running in parallel:</p>
<pre lang="js"><code>test('update user settings', { lock:
'user-settings' }, async ({ page }) =&gt; {
  // never runs at the same time as other tests holding 'user-settings'
});
</code></pre>
<p>A test can hold multiple locks, and <a
href="https://playwright.dev/docs/api/class-test#test-describe">test.describe()</a>
accepts a <code>lock</code> for the whole group.
Learn more about <a
href="https://playwright.dev/docs/test-parallel#test-locks">test
locks</a>.</p>
<h2>🪟 Locate across frames</h2>
<p><a
href="https://playwright.dev/docs/api/class-page#page-frame-locator">page.frameLocator()</a>
and <a
href="https://playwright.dev/docs/api/class-frame#frame-frame-locator">frame.frameLocator()</a>
called without a selector search in any frame of the
subtree, so you no longer need to locate the iframe first:</p>
<pre lang="js"><code>// Finds the button in any frame on the page.
await page.frameLocator().getByRole('button').click();
</code></pre>
<p>The rest of the locator resolves inside a single frame, just like a
regular locator, and an error is thrown when it
matches elements in several frames.</p>
<h2>👁️ Visible-only locators</h2>
<p>New <a
href="https://playwright.dev/docs/api/class-locator#locator-visible">locator.visible()</a>
returns a locator that matches only visible elements. It is the
recommended
replacement for the <code>:visible</code> CSS pseudo-class:</p>
<pre lang="js"><code>await page.locator('button').visible().click();
</code></pre>
<h2>🧾 Step params and subtitles</h2>
<p>Steps now carry structured data for reporters. Playwright API steps
report the target locator and call arguments,
and <a
href="https://playwright.dev/docs/api/class-test#test-step">test.step()</a>
accepts <code>subtitle</code> and <code>params</code> options for your
own steps:</p>
<pre lang="js"><code>await test.step('Login', async () =&gt; {
  // ...
}, { subtitle: 'as admin', params: { user: 'admin' } });
</code></pre>
<p>Reporters receive them via <a
href="https://playwright.dev/docs/api/class-teststep#test-step-subtitle">testStep.subtitle</a>
and <a
href="https://playwright.dev/docs/api/class-teststep#test-step-params">testStep.params</a>.
For Playwright API</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/playwright/commit/1b025d7e20a026371cd5f98ba0cdce48892737c8"><code>1b025d7</code></a>
chore: mark v1.63.0 (<a
href="https://redirect.github.com/microsoft/playwright/issues/42569">#42569</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/0b9956d2247ce88399c3c46a22c1cc0526acb340"><code>0b9956d</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42568">#42568</a>):
docs(test): mark test.step subtitle option as since v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/13dbf102b88305ed96b7791a7843246cd75d4dae"><code>13dbf10</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42552">#42552</a>):
docs: release notes for v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/e93b64ed6f9cf6ac2cc8cb13ad01514b406a7142"><code>e93b64e</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42566">#42566</a>):
feat(test): add subtitle option to test.step (<a
href="https://redirect.github.com/microsoft/playwright/issues/42567">#42567</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/2b7a5f2ea1cea04b549c5378498c1b16b6bc6a6f"><code>2b7a5f2</code></a>
test: response.body() for content-encoding:identity (<a
href="https://redirect.github.com/microsoft/playwright/issues/42537">#42537</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/648a67c7c1261eefe4113cba2d586417d5e3f2f2"><code>648a67c</code></a>
fix(mcp): create parent directories for explicitly named files (<a
href="https://redirect.github.com/microsoft/playwright/issues/42540">#42540</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/7894f5653e7f253c17aa1638c19f63e0d54d5e0e"><code>7894f56</code></a>
docs(mcp): clarify how tool file names are resolved (<a
href="https://redirect.github.com/microsoft/playwright/issues/42538">#42538</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/52900a1b99ca51011526afcaf8981970cc1a521a"><code>52900a1</code></a>
devops: restore npm publishing from GitHub Actions (<a
href="https://redirect.github.com/microsoft/playwright/issues/42550">#42550</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/8c47f596edebd2460895a5953f2ea67f8b884001"><code>8c47f59</code></a>
docs(csharp): fix nonexistent method names in guide examples (<a
href="https://redirect.github.com/microsoft/playwright/issues/42507">#42507</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/bd6e552a63f8cf9b0da0216f392b8e63a08bf1d2"><code>bd6e552</code></a>
chore(video): emit frames with real timestamps, drop frame number
quantizatio...</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/playwright/compare/v1.62.0...v1.63.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 22.7.5 to 22.20.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@playwright/test` from 1.62.0 to 1.63.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/playwright/releases">@​playwright/test's
releases</a>.</em></p>
<blockquote>
<h2>v1.63.0</h2>
<h2>🔒 Test locks</h2>
<p>Tests that access a shared resource — an external service, a global
account setting — can now declare a named <code>lock</code>.
Tests that share a lock name never run concurrently, across files,
workers and <a
href="https://playwright.dev/docs/test-projects">projects</a>, while
everything else keeps running in parallel:</p>
<pre lang="js"><code>test('update user settings', { lock:
'user-settings' }, async ({ page }) =&gt; {
  // never runs at the same time as other tests holding 'user-settings'
});
</code></pre>
<p>A test can hold multiple locks, and <a
href="https://playwright.dev/docs/api/class-test#test-describe">test.describe()</a>
accepts a <code>lock</code> for the whole group.
Learn more about <a
href="https://playwright.dev/docs/test-parallel#test-locks">test
locks</a>.</p>
<h2>🪟 Locate across frames</h2>
<p><a
href="https://playwright.dev/docs/api/class-page#page-frame-locator">page.frameLocator()</a>
and <a
href="https://playwright.dev/docs/api/class-frame#frame-frame-locator">frame.frameLocator()</a>
called without a selector search in any frame of the
subtree, so you no longer need to locate the iframe first:</p>
<pre lang="js"><code>// Finds the button in any frame on the page.
await page.frameLocator().getByRole('button').click();
</code></pre>
<p>The rest of the locator resolves inside a single frame, just like a
regular locator, and an error is thrown when it
matches elements in several frames.</p>
<h2>👁️ Visible-only locators</h2>
<p>New <a
href="https://playwright.dev/docs/api/class-locator#locator-visible">locator.visible()</a>
returns a locator that matches only visible elements. It is the
recommended
replacement for the <code>:visible</code> CSS pseudo-class:</p>
<pre lang="js"><code>await page.locator('button').visible().click();
</code></pre>
<h2>🧾 Step params and subtitles</h2>
<p>Steps now carry structured data for reporters. Playwright API steps
report the target locator and call arguments,
and <a
href="https://playwright.dev/docs/api/class-test#test-step">test.step()</a>
accepts <code>subtitle</code> and <code>params</code> options for your
own steps:</p>
<pre lang="js"><code>await test.step('Login', async () =&gt; {
  // ...
}, { subtitle: 'as admin', params: { user: 'admin' } });
</code></pre>
<p>Reporters receive them via <a
href="https://playwright.dev/docs/api/class-teststep#test-step-subtitle">testStep.subtitle</a>
and <a
href="https://playwright.dev/docs/api/class-teststep#test-step-params">testStep.params</a>.
For Playwright API</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/playwright/commit/1b025d7e20a026371cd5f98ba0cdce48892737c8"><code>1b025d7</code></a>
chore: mark v1.63.0 (<a
href="https://redirect.github.com/microsoft/playwright/issues/42569">#42569</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/0b9956d2247ce88399c3c46a22c1cc0526acb340"><code>0b9956d</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42568">#42568</a>):
docs(test): mark test.step subtitle option as since v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/13dbf102b88305ed96b7791a7843246cd75d4dae"><code>13dbf10</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42552">#42552</a>):
docs: release notes for v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/e93b64ed6f9cf6ac2cc8cb13ad01514b406a7142"><code>e93b64e</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42566">#42566</a>):
feat(test): add subtitle option to test.step (<a
href="https://redirect.github.com/microsoft/playwright/issues/42567">#42567</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/2b7a5f2ea1cea04b549c5378498c1b16b6bc6a6f"><code>2b7a5f2</code></a>
test: response.body() for content-encoding:identity (<a
href="https://redirect.github.com/microsoft/playwright/issues/42537">#42537</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/648a67c7c1261eefe4113cba2d586417d5e3f2f2"><code>648a67c</code></a>
fix(mcp): create parent directories for explicitly named files (<a
href="https://redirect.github.com/microsoft/playwright/issues/42540">#42540</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/7894f5653e7f253c17aa1638c19f63e0d54d5e0e"><code>7894f56</code></a>
docs(mcp): clarify how tool file names are resolved (<a
href="https://redirect.github.com/microsoft/playwright/issues/42538">#42538</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/52900a1b99ca51011526afcaf8981970cc1a521a"><code>52900a1</code></a>
devops: restore npm publishing from GitHub Actions (<a
href="https://redirect.github.com/microsoft/playwright/issues/42550">#42550</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/8c47f596edebd2460895a5953f2ea67f8b884001"><code>8c47f59</code></a>
docs(csharp): fix nonexistent method names in guide examples (<a
href="https://redirect.github.com/microsoft/playwright/issues/42507">#42507</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/bd6e552a63f8cf9b0da0216f392b8e63a08bf1d2"><code>bd6e552</code></a>
chore(video): emit frames with real timestamps, drop frame number
quantizatio...</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/playwright/compare/v1.62.0...v1.63.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 22.7.5 to 22.20.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `eslint` from 10.9.0 to 10.10.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/eslint/eslint/releases">eslint's
releases</a>.</em></p>
<blockquote>
<h2>v10.10.0</h2>
<h2>Features</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/264b4346d1963701df0c398b4aeb2f6e8b2af93e"><code>264b434</code></a>
feat: add <code>d</code> and <code>v</code> flags to
<code>no-unexpected-multiline</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21305">#21305</a>)
(Gihyeon Jeong / 정기현)</li>
<li><a
href="https://github.com/eslint/eslint/commit/c6cc6c592f30901345d94ef75e0d42c1894fae6c"><code>c6cc6c5</code></a>
feat: check <code>Object.prototype</code> property names in
<code>new-cap</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21269">#21269</a>)
(crimsonjay0)</li>
<li><a
href="https://github.com/eslint/eslint/commit/5661fa65fde9fd4c14f0b730e3cee6a42fc657c1"><code>5661fa6</code></a>
feat: no-extra-bind false negatives with class fields and static blocks
(<a
href="https://redirect.github.com/eslint/eslint/issues/21260">#21260</a>)
(synthex-byte)</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/bb47dc6da2399a8f76c0c0c3273e6bc314c480e5"><code>bb47dc6</code></a>
fix: update dependency file-entry-cache to v11 (<a
href="https://redirect.github.com/eslint/eslint/issues/20801">#20801</a>)
(Milos Djermanovic)</li>
<li><a
href="https://github.com/eslint/eslint/commit/427ac0a014066c36aa57fa8fa9af20fd9fb591e1"><code>427ac0a</code></a>
fix: use format strings in debug calls (<a
href="https://redirect.github.com/eslint/eslint/issues/21247">#21247</a>)
(Francesco Trotta)</li>
<li><a
href="https://github.com/eslint/eslint/commit/9d8153223dbf47b9aecdc1474202aaee4845f146"><code>9d81532</code></a>
fix: support <code>__proto__</code> in <code>/* exported */</code>
comments (<a
href="https://redirect.github.com/eslint/eslint/issues/21261">#21261</a>)
(sethamus)</li>
<li><a
href="https://github.com/eslint/eslint/commit/87e0a082438264ad90b87fd74165ab4fd90f63ef"><code>87e0a08</code></a>
fix: prefer-object-has-own autofix breaks when Object is shadowed (<a
href="https://redirect.github.com/eslint/eslint/issues/21282">#21282</a>)
(김채영)</li>
<li><a
href="https://github.com/eslint/eslint/commit/8e2cb142217f2efee1d10dcc02bfb75145ae775d"><code>8e2cb14</code></a>
fix: <code>new-cap</code> false positive for <code>UTC</code> calls with
<code>properties: false</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21275">#21275</a>)
(Pixel)</li>
<li><a
href="https://github.com/eslint/eslint/commit/9f4a364ab0ade048dfce1f37792b1d461d866e55"><code>9f4a364</code></a>
fix: Ignore static imports in no-unreachable (<a
href="https://redirect.github.com/eslint/eslint/issues/21276">#21276</a>)
(Taha Kotil)</li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/2417cad57d7d1bc4cf3ecf0f0575cfb10ff2011c"><code>2417cad</code></a>
docs: Update README (GitHub Actions Bot)</li>
<li><a
href="https://github.com/eslint/eslint/commit/9cecb8a0a2348070abf72321965d41919c7cc626"><code>9cecb8a</code></a>
docs: document <code>\c</code> control letter escapes in
no-control-regex (<a
href="https://redirect.github.com/eslint/eslint/issues/21286">#21286</a>)
(한국)</li>
<li><a
href="https://github.com/eslint/eslint/commit/8724829f69f8ed80c876e3a5a017da199ce78739"><code>8724829</code></a>
docs: update compat table links (<a
href="https://redirect.github.com/eslint/eslint/issues/21263">#21263</a>)
(fnx)</li>
<li><a
href="https://github.com/eslint/eslint/commit/5634542be580750ffb1a5766470f9e9c72719696"><code>5634542</code></a>
docs: Clarify eqeqeq suggestion behavior (<a
href="https://redirect.github.com/eslint/eslint/issues/21256">#21256</a>)
(Müslüm Yılmaz)</li>
</ul>
<h2>Chores</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/b3d876b46083d67899eb1d9613118c1c583632a2"><code>b3d876b</code></a>
chore: disable npm audit in ecosystem tests (<a
href="https://redirect.github.com/eslint/eslint/issues/21306">#21306</a>)
(Francesco Trotta)</li>
<li><a
href="https://github.com/eslint/eslint/commit/1696682791661c13167eb905da2f38d1b8f4a3bf"><code>1696682</code></a>
ci: restore EMFILE test on Node.js 26 (<a
href="https://redirect.github.com/eslint/eslint/issues/21297">#21297</a>)
(Marry (Subin Yang))</li>
<li><a
href="https://github.com/eslint/eslint/commit/2c7f5d6f47a92e8c0847af103e40fdb2f4dc61ef"><code>2c7f5d6</code></a>
chore: update github/codeql-action action to v4.37.9 (<a
href="https://redirect.github.com/eslint/eslint/issues/21296">#21296</a>)
(renovate[bot])</li>
<li><a
href="https://github.com/eslint/eslint/commit/3c753f18b461bfbf36d41a79a7863c093ef48489"><code>3c753f1</code></a>
chore: update eslint (<a
href="https://redirect.github.com/eslint/eslint/issues/21289">#21289</a>)
(renovate[bot])</li>
<li><a
href="https://github.com/eslint/eslint/commit/1c734690bf6f4f9c542bec428d5a1a5c6cc4a19b"><code>1c73469</code></a>
chore: update ecosystem plugins (<a
href="https://redirect.github.com/eslint/eslint/issues/21280">#21280</a>)
(ESLint Bot)</li>
<li><a
href="https://github.com/eslint/eslint/commit/08a02be429e21fc93d86c8dd16cec6dc945ea2c1"><code>08a02be</code></a>
test: add error locations to <code>no-extra-boolean-cast</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21266">#21266</a>)
(lumir)</li>
<li><a
href="https://github.com/eslint/eslint/commit/77bb1db8e730b7da2347c647d60f215706aa349a"><code>77bb1db</code></a>
chore: update github/codeql-action action to v4.37.8 (<a
href="https://redirect.github.com/eslint/eslint/issues/21270">#21270</a>)
(renovate[bot])</li>
<li><a
href="https://github.com/eslint/eslint/commit/007e81ac0ad66bd0be4887d88a276df292ae0bed"><code>007e81a</code></a>
ci: skip EMFILE test on Node.js 26 (<a
href="https://redirect.github.com/eslint/eslint/issues/21265">#21265</a>)
(lumir)</li>
<li><a
href="https://github.com/eslint/eslint/commit/0430280e7cca9dc0fdbf0bc50464e98e84285c49"><code>0430280</code></a>
chore: improve ecosystem tests compatibility on Windows (<a
href="https://redirect.github.com/eslint/eslint/issues/21178">#21178</a>)
(crimsonjay0)</li>
</ul>
<h2>v10.9.1</h2>
<h2>Bug Fixes</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/1e641c919fc1421493bf913feb607896982451a3"><code>1e641c9</code></a>
fix: no-loss-of-precision false positive with trailing decimal point (<a
href="https://redirect.github.com/eslint/eslint/issues/21251">#21251</a>)
(Aleksandr Shoronov)</li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/ad74a8dada2aaa17bfd0b8cc7b4119ff7a8ac04b"><code>ad74a8d</code></a>
docs: add deprecation steps for EOL package versions (<a
href="https://redirect.github.com/eslint/eslint/issues/21248">#21248</a>)
(Francesco Trotta)</li>
</ul>
<h2>Chores</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/3c3ae53a43721162f0db76c69665ebd9d752ea52"><code>3c3ae53</code></a>
chore: update ecosystem plugins (<a
href="https://redirect.github.com/eslint/eslint/issues/21249">#21249</a>)
(ESLint Bot)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/3f20a57c6293371b6193d3fb6746c2b7b2ac2689"><code>3f20a57</code></a>
10.10.0</li>
<li><a
href="https://github.com/eslint/eslint/commit/f4e5284803854423c4c2536696888c28ce4a151f"><code>f4e5284</code></a>
Build: changelog update for 10.10.0</li>
<li><a
href="https://github.com/eslint/eslint/commit/bb47dc6da2399a8f76c0c0c3273e6bc314c480e5"><code>bb47dc6</code></a>
fix: update dependency file-entry-cache to v11 (<a
href="https://redirect.github.com/eslint/eslint/issues/20801">#20801</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/427ac0a014066c36aa57fa8fa9af20fd9fb591e1"><code>427ac0a</code></a>
fix: use format strings in debug calls (<a
href="https://redirect.github.com/eslint/eslint/issues/21247">#21247</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/b3d876b46083d67899eb1d9613118c1c583632a2"><code>b3d876b</code></a>
chore: disable npm audit in ecosystem tests (<a
href="https://redirect.github.com/eslint/eslint/issues/21306">#21306</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/9d8153223dbf47b9aecdc1474202aaee4845f146"><code>9d81532</code></a>
fix: support <code>__proto__</code> in <code>/* exported */</code>
comments (<a
href="https://redirect.github.com/eslint/eslint/issues/21261">#21261</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/264b4346d1963701df0c398b4aeb2f6e8b2af93e"><code>264b434</code></a>
feat: add <code>d</code> and <code>v</code> flags to
<code>no-unexpected-multiline</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/21305">#21305</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/1696682791661c13167eb905da2f38d1b8f4a3bf"><code>1696682</code></a>
ci: restore EMFILE test on Node.js 26 (<a
href="https://redirect.github.com/eslint/eslint/issues/21297">#21297</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/2c7f5d6f47a92e8c0847af103e40fdb2f4dc61ef"><code>2c7f5d6</code></a>
chore: update github/codeql-action action to v4.37.9 (<a
href="https://redirect.github.com/eslint/eslint/issues/21296">#21296</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/87e0a082438264ad90b87fd74165ab4fd90f63ef"><code>87e0a08</code></a>
fix: prefer-object-has-own autofix breaks when Object is shadowed (<a
href="https://redirect.github.com/eslint/eslint/issues/21282">#21282</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/eslint/eslint/compare/v10.9.0...v10.10.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 22.7.5 to 22.20.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@playwright/test` from 1.62.0 to 1.63.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/playwright/releases">@​playwright/test's
releases</a>.</em></p>
<blockquote>
<h2>v1.63.0</h2>
<h2>🔒 Test locks</h2>
<p>Tests that access a shared resource — an external service, a global
account setting — can now declare a named <code>lock</code>.
Tests that share a lock name never run concurrently, across files,
workers and <a
href="https://playwright.dev/docs/test-projects">projects</a>, while
everything else keeps running in parallel:</p>
<pre lang="js"><code>test('update user settings', { lock:
'user-settings' }, async ({ page }) =&gt; {
  // never runs at the same time as other tests holding 'user-settings'
});
</code></pre>
<p>A test can hold multiple locks, and <a
href="https://playwright.dev/docs/api/class-test#test-describe">test.describe()</a>
accepts a <code>lock</code> for the whole group.
Learn more about <a
href="https://playwright.dev/docs/test-parallel#test-locks">test
locks</a>.</p>
<h2>🪟 Locate across frames</h2>
<p><a
href="https://playwright.dev/docs/api/class-page#page-frame-locator">page.frameLocator()</a>
and <a
href="https://playwright.dev/docs/api/class-frame#frame-frame-locator">frame.frameLocator()</a>
called without a selector search in any frame of the
subtree, so you no longer need to locate the iframe first:</p>
<pre lang="js"><code>// Finds the button in any frame on the page.
await page.frameLocator().getByRole('button').click();
</code></pre>
<p>The rest of the locator resolves inside a single frame, just like a
regular locator, and an error is thrown when it
matches elements in several frames.</p>
<h2>👁️ Visible-only locators</h2>
<p>New <a
href="https://playwright.dev/docs/api/class-locator#locator-visible">locator.visible()</a>
returns a locator that matches only visible elements. It is the
recommended
replacement for the <code>:visible</code> CSS pseudo-class:</p>
<pre lang="js"><code>await page.locator('button').visible().click();
</code></pre>
<h2>🧾 Step params and subtitles</h2>
<p>Steps now carry structured data for reporters. Playwright API steps
report the target locator and call arguments,
and <a
href="https://playwright.dev/docs/api/class-test#test-step">test.step()</a>
accepts <code>subtitle</code> and <code>params</code> options for your
own steps:</p>
<pre lang="js"><code>await test.step('Login', async () =&gt; {
  // ...
}, { subtitle: 'as admin', params: { user: 'admin' } });
</code></pre>
<p>Reporters receive them via <a
href="https://playwright.dev/docs/api/class-teststep#test-step-subtitle">testStep.subtitle</a>
and <a
href="https://playwright.dev/docs/api/class-teststep#test-step-params">testStep.params</a>.
For Playwright API</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/playwright/commit/1b025d7e20a026371cd5f98ba0cdce48892737c8"><code>1b025d7</code></a>
chore: mark v1.63.0 (<a
href="https://redirect.github.com/microsoft/playwright/issues/42569">#42569</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/0b9956d2247ce88399c3c46a22c1cc0526acb340"><code>0b9956d</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42568">#42568</a>):
docs(test): mark test.step subtitle option as since v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/13dbf102b88305ed96b7791a7843246cd75d4dae"><code>13dbf10</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42552">#42552</a>):
docs: release notes for v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/e93b64ed6f9cf6ac2cc8cb13ad01514b406a7142"><code>e93b64e</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42566">#42566</a>):
feat(test): add subtitle option to test.step (<a
href="https://redirect.github.com/microsoft/playwright/issues/42567">#42567</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/2b7a5f2ea1cea04b549c5378498c1b16b6bc6a6f"><code>2b7a5f2</code></a>
test: response.body() for content-encoding:identity (<a
href="https://redirect.github.com/microsoft/playwright/issues/42537">#42537</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/648a67c7c1261eefe4113cba2d586417d5e3f2f2"><code>648a67c</code></a>
fix(mcp): create parent directories for explicitly named files (<a
href="https://redirect.github.com/microsoft/playwright/issues/42540">#42540</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/7894f5653e7f253c17aa1638c19f63e0d54d5e0e"><code>7894f56</code></a>
docs(mcp): clarify how tool file names are resolved (<a
href="https://redirect.github.com/microsoft/playwright/issues/42538">#42538</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/52900a1b99ca51011526afcaf8981970cc1a521a"><code>52900a1</code></a>
devops: restore npm publishing from GitHub Actions (<a
href="https://redirect.github.com/microsoft/playwright/issues/42550">#42550</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/8c47f596edebd2460895a5953f2ea67f8b884001"><code>8c47f59</code></a>
docs(csharp): fix nonexistent method names in guide examples (<a
href="https://redirect.github.com/microsoft/playwright/issues/42507">#42507</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/bd6e552a63f8cf9b0da0216f392b8e63a08bf1d2"><code>bd6e552</code></a>
chore(video): emit frames with real timestamps, drop frame number
quantizatio...</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/playwright/compare/v1.62.0...v1.63.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 22.7.5 to 22.20.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 22.7.5 to 22.20.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@playwright/test` from 1.62.0 to 1.63.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/playwright/releases">@​playwright/test's
releases</a>.</em></p>
<blockquote>
<h2>v1.63.0</h2>
<h2>🔒 Test locks</h2>
<p>Tests that access a shared resource — an external service, a global
account setting — can now declare a named <code>lock</code>.
Tests that share a lock name never run concurrently, across files,
workers and <a
href="https://playwright.dev/docs/test-projects">projects</a>, while
everything else keeps running in parallel:</p>
<pre lang="js"><code>test('update user settings', { lock:
'user-settings' }, async ({ page }) =&gt; {
  // never runs at the same time as other tests holding 'user-settings'
});
</code></pre>
<p>A test can hold multiple locks, and <a
href="https://playwright.dev/docs/api/class-test#test-describe">test.describe()</a>
accepts a <code>lock</code> for the whole group.
Learn more about <a
href="https://playwright.dev/docs/test-parallel#test-locks">test
locks</a>.</p>
<h2>🪟 Locate across frames</h2>
<p><a
href="https://playwright.dev/docs/api/class-page#page-frame-locator">page.frameLocator()</a>
and <a
href="https://playwright.dev/docs/api/class-frame#frame-frame-locator">frame.frameLocator()</a>
called without a selector search in any frame of the
subtree, so you no longer need to locate the iframe first:</p>
<pre lang="js"><code>// Finds the button in any frame on the page.
await page.frameLocator().getByRole('button').click();
</code></pre>
<p>The rest of the locator resolves inside a single frame, just like a
regular locator, and an error is thrown when it
matches elements in several frames.</p>
<h2>👁️ Visible-only locators</h2>
<p>New <a
href="https://playwright.dev/docs/api/class-locator#locator-visible">locator.visible()</a>
returns a locator that matches only visible elements. It is the
recommended
replacement for the <code>:visible</code> CSS pseudo-class:</p>
<pre lang="js"><code>await page.locator('button').visible().click();
</code></pre>
<h2>🧾 Step params and subtitles</h2>
<p>Steps now carry structured data for reporters. Playwright API steps
report the target locator and call arguments,
and <a
href="https://playwright.dev/docs/api/class-test#test-step">test.step()</a>
accepts <code>subtitle</code> and <code>params</code> options for your
own steps:</p>
<pre lang="js"><code>await test.step('Login', async () =&gt; {
  // ...
}, { subtitle: 'as admin', params: { user: 'admin' } });
</code></pre>
<p>Reporters receive them via <a
href="https://playwright.dev/docs/api/class-teststep#test-step-subtitle">testStep.subtitle</a>
and <a
href="https://playwright.dev/docs/api/class-teststep#test-step-params">testStep.params</a>.
For Playwright API</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/playwright/commit/1b025d7e20a026371cd5f98ba0cdce48892737c8"><code>1b025d7</code></a>
chore: mark v1.63.0 (<a
href="https://redirect.github.com/microsoft/playwright/issues/42569">#42569</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/0b9956d2247ce88399c3c46a22c1cc0526acb340"><code>0b9956d</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42568">#42568</a>):
docs(test): mark test.step subtitle option as since v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/13dbf102b88305ed96b7791a7843246cd75d4dae"><code>13dbf10</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42552">#42552</a>):
docs: release notes for v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/e93b64ed6f9cf6ac2cc8cb13ad01514b406a7142"><code>e93b64e</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42566">#42566</a>):
feat(test): add subtitle option to test.step (<a
href="https://redirect.github.com/microsoft/playwright/issues/42567">#42567</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/2b7a5f2ea1cea04b549c5378498c1b16b6bc6a6f"><code>2b7a5f2</code></a>
test: response.body() for content-encoding:identity (<a
href="https://redirect.github.com/microsoft/playwright/issues/42537">#42537</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/648a67c7c1261eefe4113cba2d586417d5e3f2f2"><code>648a67c</code></a>
fix(mcp): create parent directories for explicitly named files (<a
href="https://redirect.github.com/microsoft/playwright/issues/42540">#42540</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/7894f5653e7f253c17aa1638c19f63e0d54d5e0e"><code>7894f56</code></a>
docs(mcp): clarify how tool file names are resolved (<a
href="https://redirect.github.com/microsoft/playwright/issues/42538">#42538</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/52900a1b99ca51011526afcaf8981970cc1a521a"><code>52900a1</code></a>
devops: restore npm publishing from GitHub Actions (<a
href="https://redirect.github.com/microsoft/playwright/issues/42550">#42550</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/8c47f596edebd2460895a5953f2ea67f8b884001"><code>8c47f59</code></a>
docs(csharp): fix nonexistent method names in guide examples (<a
href="https://redirect.github.com/microsoft/playwright/issues/42507">#42507</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/bd6e552a63f8cf9b0da0216f392b8e63a08bf1d2"><code>bd6e552</code></a>
chore(video): emit frames with real timestamps, drop frame number
quantizatio...</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/playwright/compare/v1.62.0...v1.63.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 22.7.5 to 22.20.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@playwright/test` from 1.62.0 to 1.63.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/playwright/releases">@​playwright/test's
releases</a>.</em></p>
<blockquote>
<h2>v1.63.0</h2>
<h2>🔒 Test locks</h2>
<p>Tests that access a shared resource — an external service, a global
account setting — can now declare a named <code>lock</code>.
Tests that share a lock name never run concurrently, across files,
workers and <a
href="https://playwright.dev/docs/test-projects">projects</a>, while
everything else keeps running in parallel:</p>
<pre lang="js"><code>test('update user settings', { lock:
'user-settings' }, async ({ page }) =&gt; {
  // never runs at the same time as other tests holding 'user-settings'
});
</code></pre>
<p>A test can hold multiple locks, and <a
href="https://playwright.dev/docs/api/class-test#test-describe">test.describe()</a>
accepts a <code>lock</code> for the whole group.
Learn more about <a
href="https://playwright.dev/docs/test-parallel#test-locks">test
locks</a>.</p>
<h2>🪟 Locate across frames</h2>
<p><a
href="https://playwright.dev/docs/api/class-page#page-frame-locator">page.frameLocator()</a>
and <a
href="https://playwright.dev/docs/api/class-frame#frame-frame-locator">frame.frameLocator()</a>
called without a selector search in any frame of the
subtree, so you no longer need to locate the iframe first:</p>
<pre lang="js"><code>// Finds the button in any frame on the page.
await page.frameLocator().getByRole('button').click();
</code></pre>
<p>The rest of the locator resolves inside a single frame, just like a
regular locator, and an error is thrown when it
matches elements in several frames.</p>
<h2>👁️ Visible-only locators</h2>
<p>New <a
href="https://playwright.dev/docs/api/class-locator#locator-visible">locator.visible()</a>
returns a locator that matches only visible elements. It is the
recommended
replacement for the <code>:visible</code> CSS pseudo-class:</p>
<pre lang="js"><code>await page.locator('button').visible().click();
</code></pre>
<h2>🧾 Step params and subtitles</h2>
<p>Steps now carry structured data for reporters. Playwright API steps
report the target locator and call arguments,
and <a
href="https://playwright.dev/docs/api/class-test#test-step">test.step()</a>
accepts <code>subtitle</code> and <code>params</code> options for your
own steps:</p>
<pre lang="js"><code>await test.step('Login', async () =&gt; {
  // ...
}, { subtitle: 'as admin', params: { user: 'admin' } });
</code></pre>
<p>Reporters receive them via <a
href="https://playwright.dev/docs/api/class-teststep#test-step-subtitle">testStep.subtitle</a>
and <a
href="https://playwright.dev/docs/api/class-teststep#test-step-params">testStep.params</a>.
For Playwright API</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/playwright/commit/1b025d7e20a026371cd5f98ba0cdce48892737c8"><code>1b025d7</code></a>
chore: mark v1.63.0 (<a
href="https://redirect.github.com/microsoft/playwright/issues/42569">#42569</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/0b9956d2247ce88399c3c46a22c1cc0526acb340"><code>0b9956d</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42568">#42568</a>):
docs(test): mark test.step subtitle option as since v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/13dbf102b88305ed96b7791a7843246cd75d4dae"><code>13dbf10</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42552">#42552</a>):
docs: release notes for v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/e93b64ed6f9cf6ac2cc8cb13ad01514b406a7142"><code>e93b64e</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42566">#42566</a>):
feat(test): add subtitle option to test.step (<a
href="https://redirect.github.com/microsoft/playwright/issues/42567">#42567</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/2b7a5f2ea1cea04b549c5378498c1b16b6bc6a6f"><code>2b7a5f2</code></a>
test: response.body() for content-encoding:identity (<a
href="https://redirect.github.com/microsoft/playwright/issues/42537">#42537</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/648a67c7c1261eefe4113cba2d586417d5e3f2f2"><code>648a67c</code></a>
fix(mcp): create parent directories for explicitly named files (<a
href="https://redirect.github.com/microsoft/playwright/issues/42540">#42540</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/7894f5653e7f253c17aa1638c19f63e0d54d5e0e"><code>7894f56</code></a>
docs(mcp): clarify how tool file names are resolved (<a
href="https://redirect.github.com/microsoft/playwright/issues/42538">#42538</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/52900a1b99ca51011526afcaf8981970cc1a521a"><code>52900a1</code></a>
devops: restore npm publishing from GitHub Actions (<a
href="https://redirect.github.com/microsoft/playwright/issues/42550">#42550</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/8c47f596edebd2460895a5953f2ea67f8b884001"><code>8c47f59</code></a>
docs(csharp): fix nonexistent method names in guide examples (<a
href="https://redirect.github.com/microsoft/playwright/issues/42507">#42507</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/bd6e552a63f8cf9b0da0216f392b8e63a08bf1d2"><code>bd6e552</code></a>
chore(video): emit frames with real timestamps, drop frame number
quantizatio...</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/playwright/compare/v1.62.0...v1.63.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 22.7.5 to 22.20.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 22.7.5 to 22.20.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@playwright/test` from 1.62.0 to 1.63.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/playwright/releases">@​playwright/test's
releases</a>.</em></p>
<blockquote>
<h2>v1.63.0</h2>
<h2>🔒 Test locks</h2>
<p>Tests that access a shared resource — an external service, a global
account setting — can now declare a named <code>lock</code>.
Tests that share a lock name never run concurrently, across files,
workers and <a
href="https://playwright.dev/docs/test-projects">projects</a>, while
everything else keeps running in parallel:</p>
<pre lang="js"><code>test('update user settings', { lock:
'user-settings' }, async ({ page }) =&gt; {
  // never runs at the same time as other tests holding 'user-settings'
});
</code></pre>
<p>A test can hold multiple locks, and <a
href="https://playwright.dev/docs/api/class-test#test-describe">test.describe()</a>
accepts a <code>lock</code> for the whole group.
Learn more about <a
href="https://playwright.dev/docs/test-parallel#test-locks">test
locks</a>.</p>
<h2>🪟 Locate across frames</h2>
<p><a
href="https://playwright.dev/docs/api/class-page#page-frame-locator">page.frameLocator()</a>
and <a
href="https://playwright.dev/docs/api/class-frame#frame-frame-locator">frame.frameLocator()</a>
called without a selector search in any frame of the
subtree, so you no longer need to locate the iframe first:</p>
<pre lang="js"><code>// Finds the button in any frame on the page.
await page.frameLocator().getByRole('button').click();
</code></pre>
<p>The rest of the locator resolves inside a single frame, just like a
regular locator, and an error is thrown when it
matches elements in several frames.</p>
<h2>👁️ Visible-only locators</h2>
<p>New <a
href="https://playwright.dev/docs/api/class-locator#locator-visible">locator.visible()</a>
returns a locator that matches only visible elements. It is the
recommended
replacement for the <code>:visible</code> CSS pseudo-class:</p>
<pre lang="js"><code>await page.locator('button').visible().click();
</code></pre>
<h2>🧾 Step params and subtitles</h2>
<p>Steps now carry structured data for reporters. Playwright API steps
report the target locator and call arguments,
and <a
href="https://playwright.dev/docs/api/class-test#test-step">test.step()</a>
accepts <code>subtitle</code> and <code>params</code> options for your
own steps:</p>
<pre lang="js"><code>await test.step('Login', async () =&gt; {
  // ...
}, { subtitle: 'as admin', params: { user: 'admin' } });
</code></pre>
<p>Reporters receive them via <a
href="https://playwright.dev/docs/api/class-teststep#test-step-subtitle">testStep.subtitle</a>
and <a
href="https://playwright.dev/docs/api/class-teststep#test-step-params">testStep.params</a>.
For Playwright API</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/playwright/commit/1b025d7e20a026371cd5f98ba0cdce48892737c8"><code>1b025d7</code></a>
chore: mark v1.63.0 (<a
href="https://redirect.github.com/microsoft/playwright/issues/42569">#42569</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/0b9956d2247ce88399c3c46a22c1cc0526acb340"><code>0b9956d</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42568">#42568</a>):
docs(test): mark test.step subtitle option as since v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/13dbf102b88305ed96b7791a7843246cd75d4dae"><code>13dbf10</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42552">#42552</a>):
docs: release notes for v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/e93b64ed6f9cf6ac2cc8cb13ad01514b406a7142"><code>e93b64e</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42566">#42566</a>):
feat(test): add subtitle option to test.step (<a
href="https://redirect.github.com/microsoft/playwright/issues/42567">#42567</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/2b7a5f2ea1cea04b549c5378498c1b16b6bc6a6f"><code>2b7a5f2</code></a>
test: response.body() for content-encoding:identity (<a
href="https://redirect.github.com/microsoft/playwright/issues/42537">#42537</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/648a67c7c1261eefe4113cba2d586417d5e3f2f2"><code>648a67c</code></a>
fix(mcp): create parent directories for explicitly named files (<a
href="https://redirect.github.com/microsoft/playwright/issues/42540">#42540</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/7894f5653e7f253c17aa1638c19f63e0d54d5e0e"><code>7894f56</code></a>
docs(mcp): clarify how tool file names are resolved (<a
href="https://redirect.github.com/microsoft/playwright/issues/42538">#42538</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/52900a1b99ca51011526afcaf8981970cc1a521a"><code>52900a1</code></a>
devops: restore npm publishing from GitHub Actions (<a
href="https://redirect.github.com/microsoft/playwright/issues/42550">#42550</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/8c47f596edebd2460895a5953f2ea67f8b884001"><code>8c47f59</code></a>
docs(csharp): fix nonexistent method names in guide examples (<a
href="https://redirect.github.com/microsoft/playwright/issues/42507">#42507</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/bd6e552a63f8cf9b0da0216f392b8e63a08bf1d2"><code>bd6e552</code></a>
chore(video): emit frames with real timestamps, drop frame number
quantizatio...</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/playwright/compare/v1.62.0...v1.63.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 22.7.5 to 22.20.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 22.7.5 to 22.20.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@playwright/test` from 1.62.0 to 1.63.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/playwright/releases">@​playwright/test's
releases</a>.</em></p>
<blockquote>
<h2>v1.63.0</h2>
<h2>🔒 Test locks</h2>
<p>Tests that access a shared resource — an external service, a global
account setting — can now declare a named <code>lock</code>.
Tests that share a lock name never run concurrently, across files,
workers and <a
href="https://playwright.dev/docs/test-projects">projects</a>, while
everything else keeps running in parallel:</p>
<pre lang="js"><code>test('update user settings', { lock:
'user-settings' }, async ({ page }) =&gt; {
  // never runs at the same time as other tests holding 'user-settings'
});
</code></pre>
<p>A test can hold multiple locks, and <a
href="https://playwright.dev/docs/api/class-test#test-describe">test.describe()</a>
accepts a <code>lock</code> for the whole group.
Learn more about <a
href="https://playwright.dev/docs/test-parallel#test-locks">test
locks</a>.</p>
<h2>🪟 Locate across frames</h2>
<p><a
href="https://playwright.dev/docs/api/class-page#page-frame-locator">page.frameLocator()</a>
and <a
href="https://playwright.dev/docs/api/class-frame#frame-frame-locator">frame.frameLocator()</a>
called without a selector search in any frame of the
subtree, so you no longer need to locate the iframe first:</p>
<pre lang="js"><code>// Finds the button in any frame on the page.
await page.frameLocator().getByRole('button').click();
</code></pre>
<p>The rest of the locator resolves inside a single frame, just like a
regular locator, and an error is thrown when it
matches elements in several frames.</p>
<h2>👁️ Visible-only locators</h2>
<p>New <a
href="https://playwright.dev/docs/api/class-locator#locator-visible">locator.visible()</a>
returns a locator that matches only visible elements. It is the
recommended
replacement for the <code>:visible</code> CSS pseudo-class:</p>
<pre lang="js"><code>await page.locator('button').visible().click();
</code></pre>
<h2>🧾 Step params and subtitles</h2>
<p>Steps now carry structured data for reporters. Playwright API steps
report the target locator and call arguments,
and <a
href="https://playwright.dev/docs/api/class-test#test-step">test.step()</a>
accepts <code>subtitle</code> and <code>params</code> options for your
own steps:</p>
<pre lang="js"><code>await test.step('Login', async () =&gt; {
  // ...
}, { subtitle: 'as admin', params: { user: 'admin' } });
</code></pre>
<p>Reporters receive them via <a
href="https://playwright.dev/docs/api/class-teststep#test-step-subtitle">testStep.subtitle</a>
and <a
href="https://playwright.dev/docs/api/class-teststep#test-step-params">testStep.params</a>.
For Playwright API</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/playwright/commit/1b025d7e20a026371cd5f98ba0cdce48892737c8"><code>1b025d7</code></a>
chore: mark v1.63.0 (<a
href="https://redirect.github.com/microsoft/playwright/issues/42569">#42569</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/0b9956d2247ce88399c3c46a22c1cc0526acb340"><code>0b9956d</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42568">#42568</a>):
docs(test): mark test.step subtitle option as since v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/13dbf102b88305ed96b7791a7843246cd75d4dae"><code>13dbf10</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42552">#42552</a>):
docs: release notes for v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/e93b64ed6f9cf6ac2cc8cb13ad01514b406a7142"><code>e93b64e</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42566">#42566</a>):
feat(test): add subtitle option to test.step (<a
href="https://redirect.github.com/microsoft/playwright/issues/42567">#42567</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/2b7a5f2ea1cea04b549c5378498c1b16b6bc6a6f"><code>2b7a5f2</code></a>
test: response.body() for content-encoding:identity (<a
href="https://redirect.github.com/microsoft/playwright/issues/42537">#42537</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/648a67c7c1261eefe4113cba2d586417d5e3f2f2"><code>648a67c</code></a>
fix(mcp): create parent directories for explicitly named files (<a
href="https://redirect.github.com/microsoft/playwright/issues/42540">#42540</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/7894f5653e7f253c17aa1638c19f63e0d54d5e0e"><code>7894f56</code></a>
docs(mcp): clarify how tool file names are resolved (<a
href="https://redirect.github.com/microsoft/playwright/issues/42538">#42538</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/52900a1b99ca51011526afcaf8981970cc1a521a"><code>52900a1</code></a>
devops: restore npm publishing from GitHub Actions (<a
href="https://redirect.github.com/microsoft/playwright/issues/42550">#42550</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/8c47f596edebd2460895a5953f2ea67f8b884001"><code>8c47f59</code></a>
docs(csharp): fix nonexistent method names in guide examples (<a
href="https://redirect.github.com/microsoft/playwright/issues/42507">#42507</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/bd6e552a63f8cf9b0da0216f392b8e63a08bf1d2"><code>bd6e552</code></a>
chore(video): emit frames with real timestamps, drop frame number
quantizatio...</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/playwright/compare/v1.62.0...v1.63.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 22.7.5 to 22.20.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@playwright/test` from 1.62.0 to 1.63.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/playwright/releases">@​playwright/test's
releases</a>.</em></p>
<blockquote>
<h2>v1.63.0</h2>
<h2>🔒 Test locks</h2>
<p>Tests that access a shared resource — an external service, a global
account setting — can now declare a named <code>lock</code>.
Tests that share a lock name never run concurrently, across files,
workers and <a
href="https://playwright.dev/docs/test-projects">projects</a>, while
everything else keeps running in parallel:</p>
<pre lang="js"><code>test('update user settings', { lock:
'user-settings' }, async ({ page }) =&gt; {
  // never runs at the same time as other tests holding 'user-settings'
});
</code></pre>
<p>A test can hold multiple locks, and <a
href="https://playwright.dev/docs/api/class-test#test-describe">test.describe()</a>
accepts a <code>lock</code> for the whole group.
Learn more about <a
href="https://playwright.dev/docs/test-parallel#test-locks">test
locks</a>.</p>
<h2>🪟 Locate across frames</h2>
<p><a
href="https://playwright.dev/docs/api/class-page#page-frame-locator">page.frameLocator()</a>
and <a
href="https://playwright.dev/docs/api/class-frame#frame-frame-locator">frame.frameLocator()</a>
called without a selector search in any frame of the
subtree, so you no longer need to locate the iframe first:</p>
<pre lang="js"><code>// Finds the button in any frame on the page.
await page.frameLocator().getByRole('button').click();
</code></pre>
<p>The rest of the locator resolves inside a single frame, just like a
regular locator, and an error is thrown when it
matches elements in several frames.</p>
<h2>👁️ Visible-only locators</h2>
<p>New <a
href="https://playwright.dev/docs/api/class-locator#locator-visible">locator.visible()</a>
returns a locator that matches only visible elements. It is the
recommended
replacement for the <code>:visible</code> CSS pseudo-class:</p>
<pre lang="js"><code>await page.locator('button').visible().click();
</code></pre>
<h2>🧾 Step params and subtitles</h2>
<p>Steps now carry structured data for reporters. Playwright API steps
report the target locator and call arguments,
and <a
href="https://playwright.dev/docs/api/class-test#test-step">test.step()</a>
accepts <code>subtitle</code> and <code>params</code> options for your
own steps:</p>
<pre lang="js"><code>await test.step('Login', async () =&gt; {
  // ...
}, { subtitle: 'as admin', params: { user: 'admin' } });
</code></pre>
<p>Reporters receive them via <a
href="https://playwright.dev/docs/api/class-teststep#test-step-subtitle">testStep.subtitle</a>
and <a
href="https://playwright.dev/docs/api/class-teststep#test-step-params">testStep.params</a>.
For Playwright API</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/playwright/commit/1b025d7e20a026371cd5f98ba0cdce48892737c8"><code>1b025d7</code></a>
chore: mark v1.63.0 (<a
href="https://redirect.github.com/microsoft/playwright/issues/42569">#42569</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/0b9956d2247ce88399c3c46a22c1cc0526acb340"><code>0b9956d</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42568">#42568</a>):
docs(test): mark test.step subtitle option as since v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/13dbf102b88305ed96b7791a7843246cd75d4dae"><code>13dbf10</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42552">#42552</a>):
docs: release notes for v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/e93b64ed6f9cf6ac2cc8cb13ad01514b406a7142"><code>e93b64e</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42566">#42566</a>):
feat(test): add subtitle option to test.step (<a
href="https://redirect.github.com/microsoft/playwright/issues/42567">#42567</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/2b7a5f2ea1cea04b549c5378498c1b16b6bc6a6f"><code>2b7a5f2</code></a>
test: response.body() for content-encoding:identity (<a
href="https://redirect.github.com/microsoft/playwright/issues/42537">#42537</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/648a67c7c1261eefe4113cba2d586417d5e3f2f2"><code>648a67c</code></a>
fix(mcp): create parent directories for explicitly named files (<a
href="https://redirect.github.com/microsoft/playwright/issues/42540">#42540</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/7894f5653e7f253c17aa1638c19f63e0d54d5e0e"><code>7894f56</code></a>
docs(mcp): clarify how tool file names are resolved (<a
href="https://redirect.github.com/microsoft/playwright/issues/42538">#42538</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/52900a1b99ca51011526afcaf8981970cc1a521a"><code>52900a1</code></a>
devops: restore npm publishing from GitHub Actions (<a
href="https://redirect.github.com/microsoft/playwright/issues/42550">#42…
…709)

> **Note:** the original `@fhevm/sdk` bump (0.13.2→0.14.1) was removed
from this PR — it tracks the FHEVM protocol version and is bumped via
`alpha` per the SDK Release Process, not through routine Dependabot
bumps on `beta`. See #728 for the corresponding `dependabot.yml` ignore
rule.

Bumps the sdk group with 4 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [codemod](https://github.com/codemod/codemod) | `1.15.2` | `1.17.3` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.12.0` |
`20.14.0` |
| [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) |
`0.65.0` | `0.66.0` |
| [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) |
`1.80.0` | `1.81.0` |

Updates `codemod` from 1.15.2 to 1.17.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/codemod/codemod/releases">codemod's
releases</a>.</em></p>
<blockquote>
<h2>codemod-cli@1.17.3</h2>
<h1>Changelog</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<h2>[codemod-cli@1.17.3] - 2026-09-02</h2>
<h3>🐛 Bug Fixes</h3>
<ul>
<li><em>(jssg)</em> Align selector extraction with runtime (<a
href="https://redirect.github.com/codemod/codemod/issues/2407">#2407</a>)</li>
</ul>
<h3>⚙️ Miscellaneous Tasks</h3>
<ul>
<li><em>(bump)</em> Bump codemod crates version to v1.17.3 (<a
href="https://redirect.github.com/codemod/codemod/issues/2408">#2408</a>)</li>
</ul>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<ul>
<li>fix(jssg): align selector extraction with runtime by <a
href="https://github.com/sahilmob"><code>@​sahilmob</code></a> in <a
href="https://redirect.github.com/codemod/codemod/pull/2407">codemod/codemod#2407</a></li>
<li>chore(bump): Bump codemod crates version to v1.17.3 by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot]
in <a
href="https://redirect.github.com/codemod/codemod/pull/2408">codemod/codemod#2408</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/codemod/codemod/compare/codemod-cli@1.16.3...codemod-cli@1.17.3">https://github.com/codemod/codemod/compare/codemod-cli@1.16.3...codemod-cli@1.17.3</a></p>
<h2>codemod-cli@1.16.3</h2>
<h1>Changelog</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<h2>[codemod-cli@1.16.3] - 2026-08-31</h2>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>Make nested JSSG execution cancellable (<a
href="https://redirect.github.com/codemod/codemod/issues/2402">#2402</a>)</li>
</ul>
<h3>⚙️ Miscellaneous Tasks</h3>
<ul>
<li><em>(bump)</em> Bump codemod crates version to v1.16.3 (<a
href="https://redirect.github.com/codemod/codemod/issues/2405">#2405</a>)</li>
</ul>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<ul>
<li>fix: make nested JSSG execution cancellable by <a
href="https://github.com/sahilmob"><code>@​sahilmob</code></a> in <a
href="https://redirect.github.com/codemod/codemod/pull/2402">codemod/codemod#2402</a></li>
<li>chore(bump): Bump codemod crates version to v1.16.3 by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot]
in <a
href="https://redirect.github.com/codemod/codemod/pull/2405">codemod/codemod#2405</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/codemod/codemod/compare/codemod-cli@1.15.3...codemod-cli@1.16.3">https://github.com/codemod/codemod/compare/codemod-cli@1.15.3...codemod-cli@1.16.3</a></p>
<h2>codemod-cli@1.15.3</h2>
<h1>Changelog</h1>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/codemod/codemod/blob/main/CHANGELOG.md">codemod's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>All notable changes to this project will be documented in this
file.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/codemod/codemod/commit/2c505cdc322e0cc4182a2e5610c986adf375b24a"><code>2c505cd</code></a>
chore(bump): Bump codemod crates version to v1.17.3 (<a
href="https://redirect.github.com/codemod/codemod/issues/2408">#2408</a>)</li>
<li><a
href="https://github.com/codemod/codemod/commit/058af70d77702f43dca323e189153401bdd95e44"><code>058af70</code></a>
fix(jssg): align selector extraction with runtime (<a
href="https://redirect.github.com/codemod/codemod/issues/2407">#2407</a>)</li>
<li><a
href="https://github.com/codemod/codemod/commit/ecad63ba648a1eb689aa253c4384e8260d41a73a"><code>ecad63b</code></a>
chore(bump): Bump codemod crates version to v1.16.3 (<a
href="https://redirect.github.com/codemod/codemod/issues/2405">#2405</a>)</li>
<li><a
href="https://github.com/codemod/codemod/commit/f74c128b4c950e1606e1b1dd741e3dc562ab586d"><code>f74c128</code></a>
fix: make nested JSSG execution cancellable (<a
href="https://redirect.github.com/codemod/codemod/issues/2402">#2402</a>)</li>
<li><a
href="https://github.com/codemod/codemod/commit/7a0ebd95a5aac40118593a6eb13a99927efcd1dc"><code>7a0ebd9</code></a>
chore(bump): Bump codemod crates version to v1.15.3 (<a
href="https://redirect.github.com/codemod/codemod/issues/2397">#2397</a>)</li>
<li><a
href="https://github.com/codemod/codemod/commit/3f110eeb115619cc4dbca3e3886e9bbd6ad26109"><code>3f110ee</code></a>
fix(sandbox): expose runtime module in memory (<a
href="https://redirect.github.com/codemod/codemod/issues/2400">#2400</a>)</li>
<li><a
href="https://github.com/codemod/codemod/commit/f0537c0dc7fee918669a56c54d4af8a2e8faf130"><code>f0537c0</code></a>
ci: run TUI perf workflow only on relevant path changes (<a
href="https://redirect.github.com/codemod/codemod/issues/2399">#2399</a>)</li>
<li><a
href="https://github.com/codemod/codemod/commit/808f87682d594166141e7d8c5f058c24af5c9d25"><code>808f876</code></a>
docs: document package dashboard templates for JSSG publishes (<a
href="https://redirect.github.com/codemod/codemod/issues/2398">#2398</a>)</li>
<li><a
href="https://github.com/codemod/codemod/commit/7c1e9a6370c06628f969636376baa08937071d3d"><code>7c1e9a6</code></a>
chore(changelog): Update changelog for codemod-cli@1.15.2 (<a
href="https://redirect.github.com/codemod/codemod/issues/2395">#2395</a>)</li>
<li><a
href="https://github.com/codemod/codemod/commit/7e9527d269fff8516a9f8de0712dda2e05158c02"><code>7e9527d</code></a>
chore(changelog): Update changelog for codemod-cli@1.15.1 (<a
href="https://redirect.github.com/codemod/codemod/issues/2392">#2392</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/codemod/codemod/compare/codemod-cli@1.15.2...codemod-cli@1.17.3">compare
view</a></li>
</ul>
</details>
<br />

Updates `happy-dom` from 20.12.0 to 20.14.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/capricorn86/happy-dom/releases">happy-dom's
releases</a>.</em></p>
<blockquote>
<h2>v20.14.0</h2>
<h3>:art: Features</h3>
<ul>
<li>Improves computed style cache - By <strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2357">#2357</a></li>
</ul>
<h2>v20.13.2</h2>
<h3>:construction_worker_man: Patch fixes</h3>
<ul>
<li>Fix problem with getComputedStyle with :host and :host-context
selectors - By <strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2349">#2349</a></li>
</ul>
<h2>v20.13.1</h2>
<h3>:construction_worker_man: Patch fixes</h3>
<ul>
<li>GetComputedStyle should return inherited value when it is set to
inherit - By <strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2347">#2347</a></li>
</ul>
<h2>v20.13.0</h2>
<h3>:art: Features</h3>
<ul>
<li>Adds support for :host psuedo query selector - By <strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2345">#2345</a></li>
</ul>
<h2>v20.12.2</h2>
<h3>:construction_worker_man: Patch fixes</h3>
<ul>
<li>Custom elements should be upgraded when connected to DOM - By
<strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2342">#2342</a></li>
</ul>
<h2>v20.12.1</h2>
<h3>:art: Features</h3>
<ul>
<li>Adds support for kebab-case properties on
<code>CSSStyleDeclaration</code> - By <strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2256">#2256</a></li>
<li>Adds support for all Chromium CSS properties to
<code>CSSStyleDeclaration</code> - By <strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2256">#2256</a>
<ul>
<li>Downloads a list from the Chromium project when compiling</li>
</ul>
</li>
</ul>
<h3>:construction_worker_man: Patch fixes</h3>
<ul>
<li>Fixes issue with parsing CSS fallback variables - By <strong><a
href="https://github.com/capricorn86"><code>@​capricorn86</code></a></strong>
in task <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2256">#2256</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/capricorn86/happy-dom/commit/eac5a38026b0569f2d52b609b2bb4cbaa94d9644"><code>eac5a38</code></a>
feat: <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2357">#2357</a>
Improves computed style cache (<a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2358">#2358</a>)</li>
<li><a
href="https://github.com/capricorn86/happy-dom/commit/5b3559bc6d6df04c10bd4237575d5b2bd886e1a5"><code>5b3559b</code></a>
fix: <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2349">#2349</a>
Fix problem with getComputedStyle with :host and :host-context s...</li>
<li><a
href="https://github.com/capricorn86/happy-dom/commit/f33da73f14f85427c36ccfbae242133d9fcbfac8"><code>f33da73</code></a>
fix: <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2347">#2347</a>
getComputedStyle should return inherited value when it is set to...</li>
<li><a
href="https://github.com/capricorn86/happy-dom/commit/68b98068af0adb9ed58838feb6fe5733c669d626"><code>68b9806</code></a>
feat: <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2345">#2345</a>
Adds support for :host psuedo query selector (<a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2346">#2346</a>)</li>
<li><a
href="https://github.com/capricorn86/happy-dom/commit/9300a9f96cfbff5e8092266c95152b6607d0ed07"><code>9300a9f</code></a>
fix: <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2342">#2342</a>
Custom elements should be upgraded when connected to DOM (<a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2343">#2343</a>)</li>
<li><a
href="https://github.com/capricorn86/happy-dom/commit/103ccdea3175a255aabcf5552e0f5d729f701456"><code>103ccde</code></a>
fix: <a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2256">#2256</a>
Fixes issue when parsing CSS fallback variables (<a
href="https://redirect.github.com/capricorn86/happy-dom/issues/2341">#2341</a>)</li>
<li>See full diff in <a
href="https://github.com/capricorn86/happy-dom/compare/v20.12.0...v20.14.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `oxfmt` from 0.65.0 to 0.66.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/oxc-project/oxc/commit/0b4e2e67f4193e7ebfcc64982275eb583ae82c83"><code>0b4e2e6</code></a>
release(apps): oxlint v1.81.0 &amp;&amp; oxfmt v0.66.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/26199">#26199</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/5ff57f83c049e338db8b2435dd92f660bfe19ed4"><code>5ff57f8</code></a>
fix(formatter/sort-imports): handle custom side effect groups (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/26217">#26217</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/63bc313934bf1fe94f8e0e6e59336f6036b8506e"><code>63bc313</code></a>
chore(npm): update funding URL (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/26066">#26066</a>)</li>
<li>See full diff in <a
href="https://github.com/oxc-project/oxc/commits/oxfmt_v0.66.0/npm/oxfmt">compare
view</a></li>
</ul>
</details>
<br />

Updates `oxlint` from 1.80.0 to 1.81.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/oxc-project/oxc/releases">oxlint's
releases</a>.</em></p>
<blockquote>
<h2>oxlint v1.81.0 &amp; oxfmt v0.66.0</h2>
<h2>Table of Contents</h2>
<ul>
<li><a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/blob/HEAD/#oxlint-v1.81.0">Oxlint
v1.81.0</a></li>
<li><a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/blob/HEAD/#oxfmt-v0.66.0">Oxfmt
v0.66.0</a></li>
</ul>
<h2>Oxlint v1.81.0</h2>
<h3>🚀 Features</h3>
<ul>
<li>60b945d linter/nextjs/no-typos: Implement suggestion (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26091">#26091</a>)
(Mikhail Baev)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>33ac4b0 linter/lsp: Prevent tsgolint from holding onto processes (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25570">#25570</a>)
(Adrian Schaedle)</li>
<li>baf4b1e linter/import/no-empty-named-blocks: Make empty value import
removal a suggestion (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26155">#26155</a>)
(camc314)</li>
<li>77cfaec linter/eslint/object-shorthand: Preserve
<code>__proto__</code> semantics (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26154">#26154</a>)
(camc314)</li>
<li>fa3c082 linter/unicorn/prefer-set-size: Ignore shadowed
<code>Set</code> constructors (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26153">#26153</a>)
(camc314)</li>
<li>e412cf2 linter: Clamp invalid JS plugin locations (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26144">#26144</a>)
(camc314)</li>
<li>d86c113 linter: Normalize reversed JS plugin locations (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26138">#26138</a>)
(camc314)</li>
<li>73c09b2 linter/eslint/no-use-before-define: Run on JS, JSX files (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26114">#26114</a>)
(camc314)</li>
<li>03ef0f2 linter/unicorn/no-useless-spread: Treat typed arrays as a
distinct value hint (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26067">#26067</a>)
(Aadharsh Pannirselvam)</li>
<li>bd15905 linter/react/no-unstable-nested-components: Check nested
component object property names (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26101">#26101</a>)
(camc314)</li>
<li>3910e2b linter/eslint/no-unassigned-vars: Skip Svelte and Vue files
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26042">#26042</a>)
(Hamody We)</li>
<li>047f7ca linter/plugins: Fix interaction between JS plugins and Vue
rules (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26080">#26080</a>)
(overlookmotel)</li>
<li>8531b9b linter/plugins: Alter method for obtaining mutable
<code>Program</code> when sending AST to JS plugins (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26077">#26077</a>)
(overlookmotel)</li>
<li>dc464ff linter/unicorn/prefer-math-min-max: Avoid unsafe autofix (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26060">#26060</a>)
(camc314)</li>
</ul>
<h3>📚 Documentation</h3>
<ul>
<li>464ddd1 linter: Support a shared short description for jest/vitest
rules (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26186">#26186</a>)
(connorshea)</li>
<li>9db5ad3 linter: Add short description to
<code>vue/no-dupe-keys</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26183">#26183</a>)
(connorshea)</li>
<li>db66f58 linter: Correct export/import mismatch in bar and foo
example (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25927">#25927</a>)
(billychannnnnn)</li>
<li>d5be037 linter/typescript/switch-exhaustiveness-check: Clarify
default case comment pattern (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26100">#26100</a>)
(camc314)</li>
</ul>
<h2>Oxfmt v0.66.0</h2>
<h3>🚀 Features</h3>
<ul>
<li>1fb37b6 formatter/css: Format declaration-shaped raw-prelude rules
(postcss nested config blocks) (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26194">#26194</a>)
(leaysgur)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>9f81002 formatter: Re-add suppressed statement terminators per
options.semi (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26220">#26220</a>)
(leaysgur)</li>
<li>769ffd5 formatter: Print suppressed typecast parens (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26218">#26218</a>)
(leaysgur)</li>
<li>5ff57f8 formatter/sort-imports: Handle custom side effect groups (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26217">#26217</a>)
(leaysgur)</li>
<li>2f4d759 formatter: Do not skip cast comment lookup (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26216">#26216</a>)
(leaysgur)</li>
<li>1213e12 formatter: Preserve comment for statement terminators and
binary casts (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26213">#26213</a>)
(leaysgur)</li>
<li>57e8e22 formatter_css: Space a folded sign after a call in Less
operations (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26134">#26134</a>)
(leaysgur)</li>
<li>e4298fb formatter/jsdoc: Follow CommonMark for interrupting lists
and guard wrapping from creating them (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26098">#26098</a>)
(leaysgur)</li>
<li>a1e21c2 formatter: Apply head body policy everywhere (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26074">#26074</a>)
(leaysgur)</li>
<li>676b7e1 formatter: Keep comments in their for-head slot, before an
empty-statement body and do-while (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26073">#26073</a>)
(leaysgur)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md">oxlint's
changelog</a>.</em></p>
<blockquote>
<h2>[1.81.0] - 2026-08-31</h2>
<h3>📚 Documentation</h3>
<ul>
<li>d5be037 linter/typescript/switch-exhaustiveness-check: Clarify
default case comment pattern (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26100">#26100</a>)
(camc314)</li>
</ul>
<h2>[1.79.0] - 2026-08-18</h2>
<h3>💥 BREAKING CHANGES</h3>
<ul>
<li>8c4552d linter: [<strong>BREAKING</strong>] Split
react/react-compiler into per-category rules (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25500">#25500</a>)
(Boshen)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>228e8e0 linter: Resolve inactive React compiler rules (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25830">#25830</a>)
(Boshen)</li>
<li>aa49d86 linter: Allow spread rule options in config types (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25675">#25675</a>)
(ch3rry)</li>
<li>36f8451 linter/eslint/no-eval: Align indirect default with ESLint
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25656">#25656</a>)
(camc314)</li>
<li>beb724d linter/eslint/no-unused-vars: Report bare underscore
parameters (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25663">#25663</a>)
(camc314)</li>
<li>4004c10 linter/eslint/no-irregular-whitespace: Check comments by
default (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25660">#25660</a>)
(camc314)</li>
<li>285820e linter/no-large-snapshots: Precompile and document allowed
snapshot matchers (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25611">#25611</a>)
(Mikhail Baev)</li>
<li>4df5835 linter: Allow capitalized built-in calls (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25516">#25516</a>)
(Boshen)</li>
</ul>
<h2>[1.78.0] - 2026-08-10</h2>
<h3>🚀 Features</h3>
<ul>
<li>ccb8fe8 linter/jsdoc: Implement <code>no-blank-blocks</code> rule
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25207">#25207</a>)
(Mikhail Baev)</li>
<li>d4a897c linter/eslint: Implement <code>one-var</code> rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/24470">#24470</a>)
(Cole Ellison)</li>
<li>5ab9340 linter/jsx-a11y/anchor-has-content: Add options to match
eslint (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/24571">#24571</a>)
(Cole Ellison)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>9573937 linter/typescript: Validate <code>ban-ts-comment</code>
description_format (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25320">#25320</a>)
(Mikhail Baev)</li>
</ul>
<h2>[1.77.0] - 2026-08-03</h2>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>5c0fa61 linter/eslint/no-warning-comments: Unify config structs and
remove manual options docs (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25151">#25151</a>)
(Mikhail Baev)</li>
</ul>
<h3>📚 Documentation</h3>
<ul>
<li>9dc7756 linter/typescript/no-unnecessary-condition: Clarify options
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25110">#25110</a>)
(camc314)</li>
</ul>
<h2>[1.76.0] - 2026-07-27</h2>
<h3>🚀 Features</h3>
<ul>
<li>8d31dfa linter: Verify eslint/no-restricted-globals config schema
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/24598">#24598</a>)
(vigneshwar)</li>
<li>7069621 linter: Verify jest/vitest prefer-lowercase-title config
schema (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/24724">#24724</a>)
(Bartok)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/oxc-project/oxc/commit/0b4e2e67f4193e7ebfcc64982275eb583ae82c83"><code>0b4e2e6</code></a>
release(apps): oxlint v1.81.0 &amp;&amp; oxfmt v0.66.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26199">#26199</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/d5be0375e6303202fcd6d34fa520103eceea0238"><code>d5be037</code></a>
docs(linter/typescript/switch-exhaustiveness-check): clarify default
case com...</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/63bc313934bf1fe94f8e0e6e59336f6036b8506e"><code>63bc313</code></a>
chore(npm): update funding URL (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26066">#26066</a>)</li>
<li>See full diff in <a
href="https://github.com/oxc-project/oxc/commits/oxlint_v1.81.0/npm/oxlint">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ankur Banerjee <ankurdotb@users.noreply.github.com>
…ross example apps (#745)

## Summary

Consolidates fixes for open Dependabot security alerts that the
individual `main`-targeted PRs (#731, #736, #737, #739, #740, #741,
#742, #743) don't fully cover — most of them each fix one directory, but
the underlying alerts span 8-9 directories per package. Targets `beta`
so it can be promoted to `main` in one shot, closing out the alerts that
merging only the individual main PRs would leave open elsewhere.

- **`next` 16.3.0 → 16.3.3** (critical — two RCE advisories:
Windows-hosted servers, Image Optimization/AVIF handling) across all 8
example apps (`example-bnb`, `example-hoodi`, `example-ingen`,
`example-polygon-amoy`, `react-ethers`, `react-turnkey-wallet`,
`react-viem`, `react-wagmi`) and `test/test-nextjs` + root
`pnpm-lock.yaml`
- **`sharp` 0.35.3 → 0.35.4** (high) across the same 8 example apps +
root `pnpm-lock.yaml` — transitive-only, no `package.json` changes
- **`baseline-browser-mapping` → 2.11.22** (medium) in the 6 example
apps still below the patched floor (`example-bnb`, `example-hoodi`,
`example-ingen`, `react-ethers`, `react-viem`, `react-wagmi`); root and
`react-turnkey-wallet` were already patched

Also adds `examples/example-polygon-amoy` to `dependabot.yml`'s
example-apps directory list — it was missing entirely, so it could never
receive an automated security PR for these or future alerts.

## Verification

- `pnpm build` / `typecheck` / `lint` / `test:run` (2029 tests) all pass
- `pnpm build:test-nextjs` and `pnpm build:test-vite` both pass — no
`WagmiProviderNotFoundError` / TanStack query-core duplication
regression
- Confirmed single resolved version of `next`, `sharp`, and
`@tanstack/query-core` in `pnpm-lock.yaml` after `pnpm dedupe`
- `npm audit` reports 0 vulnerabilities in all 8 example directories
after the bump

## Next steps

Once merged into `beta`, promote to `main` to close out the remaining
open alerts. The individual per-directory security PRs (#731, #736,
#737, #739, #740, #741, #742, #743) become redundant at that point and
can be closed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
## What

Replaces the 10 explicitly-listed directories in the "Example apps"
Dependabot
block with a single `/examples/*` glob.

## Why

New example apps currently require a manual addition to
`.github/dependabot.yml`
or they silently get no dependency updates. A glob keeps the list in
sync with
`examples/` automatically.

## Why `*` and not `**`

`*` matches one path segment (exactly today's `examples/<app>` layout).
`**` would recurse into subdirectories too — today that's harmless since
nested build artifacts like `.next/dev/package.json` are gitignored, but
`*`
is the correct match for the intended one-app-per-directory structure
and
won't pick up a future nested manifest (e.g. a `contracts/` subpackage
inside
an example app) as an unintended separate update target.

## Verification

- `directories:` (plural, glob-capable) was already in use in this block
- The 10 removed entries are an exact match for everything currently
under
  `examples/` — no behavioral change today
- YAML parses cleanly (`ruby -ryaml`)
- `pnpm oxfmt --check .github/dependabot.yml` passes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
zmalatrax and others added 13 commits September 11, 2026 16:56
Closes SDK-336

---------

Co-authored-by: eitjuh <1449065+eitjuh@users.noreply.github.com>
## [3.6.0-beta.3](v3.6.0-beta.2...v3.6.0-beta.3) (2026-09-11)

### Bug Fixes

- relayers chains validation ([#730](#730)) ([e6fa940]())
Promote beta into main for release: main was fully contained in beta (no
divergence since the 3.5.1 promotion); --no-ff keeps the explicit merge commit
consistent with prior promotions. Brings in ~39 commits: orphaned-relayer-entry
handling (#730), Web Worker encryption offload (#683), interrupted-unshield
resume fix (#645), structured wallet-signing/permit-failure events (#701), plus
CI and dependency updates. No conflicts.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Flip the branch/space URLs to the main publish target (raw…/sdk/main,
docs.zama.org default/stable space) and regenerate the LLM corpus. Run via
`pnpm docs:retarget main`.

Changelog promotion (Beta -> versioned page) does not fire yet: it derives
the version from CHANGELOG.md's newest mainline entry, still 3.5.1 until
semantic-release commits the stable release on push (the "already promoted"
no-op warning below is expected, not a bug):

  No changelog promotion (already promoted).
  ⚠ Beta page has unreleased content but the newest mainline entry (3.5.1)
  is already promoted — CHANGELOG.md may be stale; did you pull the release
  commit before running docs:retarget main?

Once pushed and CI mints the chore(release) commit, pull it and re-run
`pnpm docs:retarget main` to promote the Beta changelog (4 topics from #645,
#683, #701, #730) into the version page.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
## [3.6.0](v3.5.1...v3.6.0) (2026-09-11)

### Features

- **sdk:** offload encryption to a web worker in the web() transport ([#683](#683)) ([981d351]())

### Bug Fixes

- relayers chains validation ([#730](#730)) ([e6fa940]())
- **sdk:** structured events + metadata for wallet signing/permit fai… ([#701](#701)) ([ca21b77]())
- self-heal stale pending-unshield pointer ([#645](#645)) ([6bc356d]())
Run pnpm docs:retarget main now that chore(release): 3.6.0 [skip ci] is on
main. Promotion folds the drafted Beta content into a new ## 3.6.0 section on
a new v3-6.md page (first release on this minor line), resets Beta to its
empty template, and wires the 3.6.x nav entry under 3.x.

3.6.0 covers: orphaned relayer entries warn instead of failing createConfig
(#730), Web Worker encryption offload (#683), a fix for interrupted-unshield
resume prompts (#645), and structured wallet-signing/permit-failure events
(#701) — all drafted on the Beta page before promotion (three inline via the
sdk-changelog skill, one by the #730 author directly).

Also gave the v3.md index bullet a descriptive summary to match the 3.1-3.5
entries, and dropped the internal `pnpm docs:changelog` instruction from the
Beta page's empty-reset placeholder (emptyBetaTemplate/BETA_EMPTY_PLACEHOLDER
in changelog.mjs) — that's a maintainer command, not something a reader of the
published docs site should see or act on.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Forward-merge the 3.6.0 stable release into beta: the release changelog and
version bumps, the promoted 3.6.x changelog page, the reset Beta page, and the
fix dropping the internal pnpm docs:changelog instruction from the Beta
page's empty-reset placeholder. Doc URLs land here targeting main/stable and
are flipped to beta in the following commit.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Flip the branch/space URLs to the beta publish target (raw.../sdk/beta,
docs.zama.org beta space) and regenerate the LLM corpus, after forward-merging
the 3.6.0 release from main. No changelog promotion on beta - the Beta page
is the empty post-release template.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from
6.0.3 to 6.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pnpm/action-setup/releases">pnpm/action-setup's
releases</a>.</em></p>
<blockquote>
<h2>v6.1.0</h2>
<h2>What's Changed</h2>
<ul>
<li>feat: support pnpm v12 by <a
href="https://github.com/zkochan"><code>@​zkochan</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/288">pnpm/action-setup#288</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pnpm/action-setup/compare/v6.0.10...v6.1.0">https://github.com/pnpm/action-setup/compare/v6.0.10...v6.1.0</a></p>
<h2>v6.0.10</h2>
<h2>What's Changed</h2>
<ul>
<li>docs(README): point users to the successor pnpm/setup action by <a
href="https://github.com/BlackHole1"><code>@​BlackHole1</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/282">pnpm/action-setup#282</a></li>
<li>refactor: introduce restore keys for cache by <a
href="https://github.com/SukkaW"><code>@​SukkaW</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/280">pnpm/action-setup#280</a></li>
<li>ci: use pnpm 11 for <code>pr-check</code> by <a
href="https://github.com/jamietanna"><code>@​jamietanna</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/284">pnpm/action-setup#284</a></li>
<li>fix: update pnpm to v11.19.0 by <a
href="https://github.com/jamietanna"><code>@​jamietanna</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/283">pnpm/action-setup#283</a></li>
<li>docs: update README to include devEngines.packageManager by <a
href="https://github.com/nemchik"><code>@​nemchik</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/273">pnpm/action-setup#273</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/jamietanna"><code>@​jamietanna</code></a> made
their first contribution in <a
href="https://redirect.github.com/pnpm/action-setup/pull/284">pnpm/action-setup#284</a></li>
<li><a href="https://github.com/nemchik"><code>@​nemchik</code></a> made
their first contribution in <a
href="https://redirect.github.com/pnpm/action-setup/pull/273">pnpm/action-setup#273</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pnpm/action-setup/compare/v6...v6.0.10">https://github.com/pnpm/action-setup/compare/v6...v6.0.10</a></p>
<h2>v6.0.9</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: update pnpm to v11.7.0 by <a
href="https://github.com/zkochan"><code>@​zkochan</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/267">pnpm/action-setup#267</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pnpm/action-setup/compare/v6...v6.0.9">https://github.com/pnpm/action-setup/compare/v6...v6.0.9</a></p>
<h2>v6.0.8</h2>
<h2>What's Changed</h2>
<ul>
<li>docs(README): fix <code>cache_dependency_path</code> type by <a
href="https://github.com/haines"><code>@​haines</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/257">pnpm/action-setup#257</a></li>
<li>fix: drop patchPnpmEnv so standalone+self-update works on Windows by
<a href="https://github.com/zkochan"><code>@​zkochan</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/258">pnpm/action-setup#258</a></li>
<li>fix: update pnpm to 11.1.1 by <a
href="https://github.com/mungodewar"><code>@​mungodewar</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/248">pnpm/action-setup#248</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/mungodewar"><code>@​mungodewar</code></a> made
their first contribution in <a
href="https://redirect.github.com/pnpm/action-setup/pull/248">pnpm/action-setup#248</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pnpm/action-setup/compare/v6.0.7...v6.0.8">https://github.com/pnpm/action-setup/compare/v6.0.7...v6.0.8</a></p>
<h2>v6.0.7</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: honor devEngines.packageManager.onFail=error (<a
href="https://redirect.github.com/pnpm/action-setup/issues/252">#252</a>)
by <a href="https://github.com/zkochan"><code>@​zkochan</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/254">pnpm/action-setup#254</a></li>
<li>fix: restore inputs from state in post by <a
href="https://github.com/haines"><code>@​haines</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/255">pnpm/action-setup#255</a></li>
<li>fix: self-update bootstrap to packageManager-pinned version (<a
href="https://redirect.github.com/pnpm/action-setup/issues/233">#233</a>)
by <a href="https://github.com/zkochan"><code>@​zkochan</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/256">pnpm/action-setup#256</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/haines"><code>@​haines</code></a> made
their first contribution in <a
href="https://redirect.github.com/pnpm/action-setup/pull/255">pnpm/action-setup#255</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pnpm/action-setup/compare/v6.0.6...v6.0.7">https://github.com/pnpm/action-setup/compare/v6.0.6...v6.0.7</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pnpm/action-setup/commit/ea17c68df8912ef543352723c149a84f56e3d413"><code>ea17c68</code></a>
feat: support pnpm v12 (<a
href="https://redirect.github.com/pnpm/action-setup/issues/288">#288</a>)</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/0977fd99725f1db4007ccb2928dbb4e90d06cc86"><code>0977fd9</code></a>
docs: Update README to include devEngines.packageManager (<a
href="https://redirect.github.com/pnpm/action-setup/issues/273">#273</a>)</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/48261aca053e825d84804e8ce05524d558249ac9"><code>48261ac</code></a>
fix: update pnpm to v11.19.0 (<a
href="https://redirect.github.com/pnpm/action-setup/issues/283">#283</a>)</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/75677f717d48404e86ae8ee4891543f40de175aa"><code>75677f7</code></a>
ci: use pnpm 11 for <code>pr-check</code> (<a
href="https://redirect.github.com/pnpm/action-setup/issues/284">#284</a>)</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/769ae71fb33e6e448a5dc92ad5da997c268eecec"><code>769ae71</code></a>
refactor: introduce restore keys for cache (<a
href="https://redirect.github.com/pnpm/action-setup/issues/280">#280</a>)</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/6fed91f804570c1144bfe1911c348642cb986bd4"><code>6fed91f</code></a>
docs(README): point users to the successor pnpm/setup action (<a
href="https://redirect.github.com/pnpm/action-setup/issues/282">#282</a>)</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/0ebf47130e4866e96fce0953f49152a61190b271"><code>0ebf471</code></a>
fix: update pnpm to v11.7.0 (<a
href="https://redirect.github.com/pnpm/action-setup/issues/267">#267</a>)</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/0e279bb959325dab635dd2c09392533439d90093"><code>0e279bb</code></a>
fix: update pnpm to 11.1.1 (<a
href="https://redirect.github.com/pnpm/action-setup/issues/248">#248</a>)</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/3e835812ef01165f4f8ae08ade56da44427ed4e0"><code>3e83581</code></a>
fix: drop patchPnpmEnv so standalone+self-update works on Windows (<a
href="https://redirect.github.com/pnpm/action-setup/issues/258">#258</a>)</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/551b42e879e37e74d986effdd2a1647d2b02d464"><code>551b42e</code></a>
docs(README): fix <code>cache_dependency_path</code> type (<a
href="https://redirect.github.com/pnpm/action-setup/issues/257">#257</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pnpm/action-setup/compare/903f9c1a6ebcba6cf41d87230be49611ac97822e...ea17c68df8912ef543352723c149a84f56e3d413">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pnpm/action-setup&package-manager=github_actions&previous-version=6.0.3&new-version=6.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.19.43 to 22.20.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

<details>
<summary>Most Recent Ignore Conditions Applied to This Pull
Request</summary>

| Dependency Name | Ignore Conditions |
| --- | --- |
| @types/node | [>= 26.a, < 27] |
| @types/node | [>= 25.a, < 26] |
| @types/node | [>= 24.a, < 25] |
</details>


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.19.43&new-version=22.20.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…dates (#752)

Bumps the example-apps group with 3 updates in the
/examples/example-polygon-amoy directory:
[@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query),
[viem](https://github.com/wevm/viem) and
[@playwright/test](https://github.com/microsoft/playwright).

Updates `@tanstack/react-query` from 5.101.4 to 5.102.8
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/TanStack/query/releases">@​tanstack/react-query's
releases</a>.</em></p>
<blockquote>
<h2><code>@​tanstack/react-query-devtools</code><a
href="https://github.com/5"><code>@​5</code></a>.102.8</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies []:
<ul>
<li><code>@​tanstack/query-devtools</code><a
href="https://github.com/5"><code>@​5</code></a>.102.8</li>
<li><code>@​tanstack/react-query</code><a
href="https://github.com/5"><code>@​5</code></a>.102.8</li>
</ul>
</li>
</ul>
<h2><code>@​tanstack/react-query-next-experimental</code><a
href="https://github.com/5"><code>@​5</code></a>.102.8</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies []:
<ul>
<li><code>@​tanstack/react-query</code><a
href="https://github.com/5"><code>@​5</code></a>.102.8</li>
</ul>
</li>
</ul>
<h2><code>@​tanstack/react-query-persist-client</code><a
href="https://github.com/5"><code>@​5</code></a>.102.8</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies []:
<ul>
<li><code>@​tanstack/query-persist-client-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.8</li>
<li><code>@​tanstack/react-query</code><a
href="https://github.com/5"><code>@​5</code></a>.102.8</li>
</ul>
</li>
</ul>
<h2><code>@​tanstack/react-query</code><a
href="https://github.com/5"><code>@​5</code></a>.102.8</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies []:
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.8</li>
</ul>
</li>
</ul>
<h2><code>@​tanstack/react-query-devtools</code><a
href="https://github.com/5"><code>@​5</code></a>.102.7</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies []:
<ul>
<li><code>@​tanstack/query-devtools</code><a
href="https://github.com/5"><code>@​5</code></a>.102.7</li>
<li><code>@​tanstack/react-query</code><a
href="https://github.com/5"><code>@​5</code></a>.102.7</li>
</ul>
</li>
</ul>
<h2><code>@​tanstack/react-query-next-experimental</code><a
href="https://github.com/5"><code>@​5</code></a>.102.7</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies []:
<ul>
<li><code>@​tanstack/react-query</code><a
href="https://github.com/5"><code>@​5</code></a>.102.7</li>
</ul>
</li>
</ul>
<h2><code>@​tanstack/react-query-persist-client</code><a
href="https://github.com/5"><code>@​5</code></a>.102.7</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies []:
<ul>
<li><code>@​tanstack/query-persist-client-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.7</li>
<li><code>@​tanstack/react-query</code><a
href="https://github.com/5"><code>@​5</code></a>.102.7</li>
</ul>
</li>
</ul>
<h2><code>@​tanstack/react-query</code><a
href="https://github.com/5"><code>@​5</code></a>.102.7</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies []:</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md">@​tanstack/react-query's
changelog</a>.</em></p>
<blockquote>
<h2>5.102.8</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies []:
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.8</li>
</ul>
</li>
</ul>
<h2>5.102.7</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies []:
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.7</li>
</ul>
</li>
</ul>
<h2>5.102.6</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/TanStack/query/pull/11305">#11305</a>
<a
href="https://github.com/TanStack/query/commit/ac2b61230ea35b90b177ba35dc030598bac9c9a6"><code>ac2b612</code></a>
- fix(react-query): throw falsy errors from <code>useQueries</code> and
<code>useSuspenseQueries</code> to the error boundary</p>
</li>
<li>
<p>Updated dependencies []:</p>
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.6</li>
</ul>
</li>
</ul>
<h2>5.102.5</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies [<a
href="https://github.com/TanStack/query/commit/578e5c26e8ebd0d7351b4b8e2bafba695e672b8d"><code>578e5c2</code></a>]:
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.5</li>
</ul>
</li>
</ul>
<h2>5.102.4</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies [<a
href="https://github.com/TanStack/query/commit/a05df6aefb0e2489ec2c879ae16e2ee7cb3123ec"><code>a05df6a</code></a>]:
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.4</li>
</ul>
</li>
</ul>
<h2>5.102.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies []:
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.3</li>
</ul>
</li>
</ul>
<h2>5.102.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies [<a
href="https://github.com/TanStack/query/commit/80fbf73e77892d702c107e14a84c219a8ed825dc"><code>80fbf73</code></a>]:
<ul>
<li><code>@​tanstack/query-core</code><a
href="https://github.com/5"><code>@​5</code></a>.102.2</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/TanStack/query/commit/2969edf32f7e0c48e2a108d84712d6e01edfde21"><code>2969edf</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11316">#11316</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/2eb3c7c76f4dd175b2c8b6b91d5062595fff8b84"><code>2eb3c7c</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11313">#11313</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/714df67ab11c6e16666e4282dfec8654175591f7"><code>714df67</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11306">#11306</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/ac2b61230ea35b90b177ba35dc030598bac9c9a6"><code>ac2b612</code></a>
fix(react-query): propagate falsy errors to the error boundary (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11305">#11305</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/1836e61b8ccc42a79399fc98047bb324d20de8e2"><code>1836e61</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11303">#11303</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/51f12db9199477d653347319d3b38ad5e9564824"><code>51f12db</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11294">#11294</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/730b3aa06c49337068e1b84a5025bca75887348b"><code>730b3aa</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11276">#11276</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/388bbaf181c4e7b7017b5dbb5cbf2a57eb22e267"><code>388bbaf</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11265">#11265</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/bc423b37ef7fa2a34cfc7286945fd640d74b4071"><code>bc423b3</code></a>
ci: Version Packages (<a
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11261">#11261</a>)</li>
<li><a
href="https://github.com/TanStack/query/commit/be1352b848cf2a9a43eb8828ad023e0a9f74ad36"><code>be1352b</code></a>
test(*): add adapter-level type coverage for optional undefinable mutate
vari...</li>
<li>Additional commits viewable in <a
href="https://github.com/TanStack/query/commits/@tanstack/react-query@5.102.8/packages/react-query">compare
view</a></li>
</ul>
</details>
<br />

Updates `viem` from 2.55.10 to 2.56.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/wevm/viem/releases">viem's
releases</a>.</em></p>
<blockquote>
<h2>viem@2.56.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5059">#5059</a>
<a
href="https://github.com/wevm/viem/commit/e3de334a73bd06ee16ba6a1e30e1bb2cf94ea708"><code>e3de334a73bd06ee16ba6a1e30e1bb2cf94ea708</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! - Made
Tempo Zone return types portable across declaration-emitting
projects.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5061">#5061</a>
<a
href="https://github.com/wevm/viem/commit/1ba6aa3860bcbe2c1c51257b1a2c386d182507e7"><code>1ba6aa3860bcbe2c1c51257b1a2c386d182507e7</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<code>viem/tempo</code>: Added chain inference to
<code>Multisig.handleRequest</code> downstream request options.</p>
</li>
</ul>
<h2>viem@2.56.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5042">#5042</a>
<a
href="https://github.com/wevm/viem/commit/5df98198c47cb898ba35a1afcd2abd5d0cbcc371"><code>5df98198c47cb898ba35a1afcd2abd5d0cbcc371</code></a>
Thanks <a
href="https://github.com/Wagalidoom"><code>@​Wagalidoom</code></a>! -
Fixed <code>isHash</code> returning <code>true</code> for odd-length hex
strings. <code>size</code> rounds odd-length hex up to the next whole
byte, so a 63-character hex string reported a size of 32 and passed the
check. <code>isHash</code> now validates the length directly.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/4913">#4913</a>
<a
href="https://github.com/wevm/viem/commit/ef4be8eb45abc773587abb1df7fd8791acf30413"><code>ef4be8eb45abc773587abb1df7fd8791acf30413</code></a>
Thanks <a
href="https://github.com/Kropiunig"><code>@​Kropiunig</code></a>! -
Fixed signed <code>hexToBigInt</code> and <code>hexToNumber</code> calls
with odd-length hex values.</p>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5029">#5029</a>
<a
href="https://github.com/wevm/viem/commit/dd7d792dd84f57d1784af56058fe88d3149a44fb"><code>dd7d792dd84f57d1784af56058fe88d3149a44fb</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<code>viem/tempo</code>: Added Multisig accounts.</p>
</li>
</ul>
<h2>viem@2.56.1</h2>
<h3>Patch Changes</h3>
<ul>
<li><a href="https://redirect.github.com/wevm/viem/pull/5052">#5052</a>
<a
href="https://github.com/wevm/viem/commit/e336a1d93a39063fb1883ba0a84b5d37f313a35a"><code>e336a1d93a39063fb1883ba0a84b5d37f313a35a</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<code>viem/tempo</code>: Fixed declaration emit for inferred Tempo
chains.</li>
</ul>
<h2>viem@2.56.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Renamed
<code>Abis.abis</code> to <code>Abis.all</code> and expanded the
aggregate with Earn and Zone ABIs.</p>
<pre lang="diff"><code>-const abis = Abis.abis
+const abis = Abis.all
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Moved Zone exports
from <code>viem/tempo/zones</code> into <code>viem/tempo</code>.</p>
<pre lang="diff"><code>-import { Abis, Addresses, http, zoneModerato }
from 'viem/tempo/zones'
+import { Abis, Addresses, http, Zone } from 'viem/tempo'
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced curried
Zone network factories with built-in Zone definitions and
<code>Zone.from</code> for custom chains.</p>
<pre lang="diff"><code>-const zone = zoneModerato(6)
+const zone = Zone.a
</code></pre>
</li>
<li>
<p><a href="https://redirect.github.com/wevm/viem/pull/5040">#5040</a>
<a
href="https://github.com/wevm/viem/commit/c73282bfa7309a5017f684b8001ec5c13fda4194"><code>c73282bfa7309a5017f684b8001ec5c13fda4194</code></a>
Thanks <a href="https://github.com/jxom"><code>@​jxom</code></a>! -
<strong>Breaking (<code>viem/tempo</code>):</strong> Replaced
chain-specific Zone portal registries with deterministic
<code>Addresses.zonePortal(id)</code> resolution for Zone IDs and chain
IDs.</p>
<pre lang="diff"><code>-import { getPortalAddress } from
'viem/tempo/zones'
+import { Addresses, Zone } from 'viem/tempo'
</code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/wevm/viem/commit/3db6cdf15969e6b2ff9a2899e2ba65b6f90460f2"><code>3db6cdf</code></a>
chore: version package (<a
href="https://redirect.github.com/wevm/viem/issues/5060">#5060</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/1ba6aa3860bcbe2c1c51257b1a2c386d182507e7"><code>1ba6aa3</code></a>
feat(tempo): infer multisig request chains (<a
href="https://redirect.github.com/wevm/viem/issues/5061">#5061</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/e3de334a73bd06ee16ba6a1e30e1bb2cf94ea708"><code>e3de334</code></a>
fix(tempo): expose zone return type (<a
href="https://redirect.github.com/wevm/viem/issues/5059">#5059</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/9a6f9aa508cf560b8f5a672d4d040262bb85972b"><code>9a6f9aa</code></a>
fix: update browserslist security override</li>
<li><a
href="https://github.com/wevm/viem/commit/abfa9d1bab2d00c0ea0ab3ad18a0175ea04ce5f4"><code>abfa9d1</code></a>
chore: update esm size limit</li>
<li><a
href="https://github.com/wevm/viem/commit/31ad9fd22d8e412f2eabc44263c40fdc5702a2a1"><code>31ad9fd</code></a>
test: stabilize tempo error snapshots</li>
<li><a
href="https://github.com/wevm/viem/commit/1bf8f7411d0f24e4e6d2e4fd52248b1f464236ac"><code>1bf8f74</code></a>
chore: version package (<a
href="https://redirect.github.com/wevm/viem/issues/5054">#5054</a>)</li>
<li><a
href="https://github.com/wevm/viem/commit/32ba41feecc17a60404258de9d19df139cb68bf5"><code>32ba41f</code></a>
test(tempo): update decorator type benchmark</li>
<li><a
href="https://github.com/wevm/viem/commit/390b48f2d30b23d06ea73edfcaa71598dbdd517b"><code>390b48f</code></a>
chore: up changeset</li>
<li><a
href="https://github.com/wevm/viem/commit/e96cc4d82f79dd345ba1690fd7619b960a3f9fbd"><code>e96cc4d</code></a>
test(tempo): fix multisig CI fixtures</li>
<li>Additional commits viewable in <a
href="https://github.com/wevm/viem/compare/viem@2.55.10...viem@2.56.3">compare
view</a></li>
</ul>
</details>
<br />

Updates `@playwright/test` from 1.62.1 to 1.63.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/playwright/releases">@​playwright/test's
releases</a>.</em></p>
<blockquote>
<h2>v1.63.0</h2>
<h2>🔒 Test locks</h2>
<p>Tests that access a shared resource — an external service, a global
account setting — can now declare a named <code>lock</code>.
Tests that share a lock name never run concurrently, across files,
workers and <a
href="https://playwright.dev/docs/test-projects">projects</a>, while
everything else keeps running in parallel:</p>
<pre lang="js"><code>test('update user settings', { lock:
'user-settings' }, async ({ page }) =&gt; {
  // never runs at the same time as other tests holding 'user-settings'
});
</code></pre>
<p>A test can hold multiple locks, and <a
href="https://playwright.dev/docs/api/class-test#test-describe">test.describe()</a>
accepts a <code>lock</code> for the whole group.
Learn more about <a
href="https://playwright.dev/docs/test-parallel#test-locks">test
locks</a>.</p>
<h2>🪟 Locate across frames</h2>
<p><a
href="https://playwright.dev/docs/api/class-page#page-frame-locator">page.frameLocator()</a>
and <a
href="https://playwright.dev/docs/api/class-frame#frame-frame-locator">frame.frameLocator()</a>
called without a selector search in any frame of the
subtree, so you no longer need to locate the iframe first:</p>
<pre lang="js"><code>// Finds the button in any frame on the page.
await page.frameLocator().getByRole('button').click();
</code></pre>
<p>The rest of the locator resolves inside a single frame, just like a
regular locator, and an error is thrown when it
matches elements in several frames.</p>
<h2>👁️ Visible-only locators</h2>
<p>New <a
href="https://playwright.dev/docs/api/class-locator#locator-visible">locator.visible()</a>
returns a locator that matches only visible elements. It is the
recommended
replacement for the <code>:visible</code> CSS pseudo-class:</p>
<pre lang="js"><code>await page.locator('button').visible().click();
</code></pre>
<h2>🧾 Step params and subtitles</h2>
<p>Steps now carry structured data for reporters. Playwright API steps
report the target locator and call arguments,
and <a
href="https://playwright.dev/docs/api/class-test#test-step">test.step()</a>
accepts <code>subtitle</code> and <code>params</code> options for your
own steps:</p>
<pre lang="js"><code>await test.step('Login', async () =&gt; {
  // ...
}, { subtitle: 'as admin', params: { user: 'admin' } });
</code></pre>
<p>Reporters receive them via <a
href="https://playwright.dev/docs/api/class-teststep#test-step-subtitle">testStep.subtitle</a>
and <a
href="https://playwright.dev/docs/api/class-teststep#test-step-params">testStep.params</a>.
For Playwright API</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/playwright/commit/1b025d7e20a026371cd5f98ba0cdce48892737c8"><code>1b025d7</code></a>
chore: mark v1.63.0 (<a
href="https://redirect.github.com/microsoft/playwright/issues/42569">#42569</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/0b9956d2247ce88399c3c46a22c1cc0526acb340"><code>0b9956d</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42568">#42568</a>):
docs(test): mark test.step subtitle option as since v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/13dbf102b88305ed96b7791a7843246cd75d4dae"><code>13dbf10</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42552">#42552</a>):
docs: release notes for v1.63</li>
<li><a
href="https://github.com/microsoft/playwright/commit/e93b64ed6f9cf6ac2cc8cb13ad01514b406a7142"><code>e93b64e</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/42566">#42566</a>):
feat(test): add subtitle option to test.step (<a
href="https://redirect.github.com/microsoft/playwright/issues/42567">#42567</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/2b7a5f2ea1cea04b549c5378498c1b16b6bc6a6f"><code>2b7a5f2</code></a>
test: response.body() for content-encoding:identity (<a
href="https://redirect.github.com/microsoft/playwright/issues/42537">#42537</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/648a67c7c1261eefe4113cba2d586417d5e3f2f2"><code>648a67c</code></a>
fix(mcp): create parent directories for explicitly named files (<a
href="https://redirect.github.com/microsoft/playwright/issues/42540">#42540</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/7894f5653e7f253c17aa1638c19f63e0d54d5e0e"><code>7894f56</code></a>
docs(mcp): clarify how tool file names are resolved (<a
href="https://redirect.github.com/microsoft/playwright/issues/42538">#42538</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/52900a1b99ca51011526afcaf8981970cc1a521a"><code>52900a1</code></a>
devops: restore npm publishing from GitHub Actions (<a
href="https://redirect.github.com/microsoft/playwright/issues/42550">#42550</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/8c47f596edebd2460895a5953f2ea67f8b884001"><code>8c47f59</code></a>
docs(csharp): fix nonexistent method names in guide examples (<a
href="https://redirect.github.com/microsoft/playwright/issues/42507">#42507</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/bd6e552a63f8cf9b0da0216f392b8e63a08bf1d2"><code>bd6e552</code></a>
chore(video): emit frames with real timestamps, drop frame number
quantizatio...</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/playwright/compare/v1.62.1...v1.63.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#750)

Bumps the sdk group with 3 updates in the / directory:
[lint-staged](https://github.com/lint-staged/lint-staged),
[oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) and
[oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint).

Updates `lint-staged` from 17.4.1 to 17.5.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/lint-staged/lint-staged/releases">lint-staged's
releases</a>.</em></p>
<blockquote>
<h2>v17.5.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1847">#1847</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/f9063b7d71857cb8893ee1bb5b63da05b2819b23"><code>f9063b7</code></a>
- <em>Lint-staged</em> now refuses to run when files were staged with
<code>--intent-to-add</code>, because Git stash doesn't support them.
Previously this was an unhandled error.</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1848">#1848</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/d718ccc59cf73bf7d333135826270b5742fefec1"><code>d718ccc</code></a>
- <em>Lint-staged</em> now handles color support better in non-TTY
streams, and honors the <code>FORCE_COLOR</code> environment
variable.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1845">#1845</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/7e5ece8408097994bd1dfcfbf395aa9838782d19"><code>7e5ece8</code></a>
- Update <code>tinyexec@1.3.1</code> so that local binaries from
<code>node_modules/.bin</code> are resolved starting from the directory
of each <em>lint-staged</em> configuration file (in monorepo setups).
This behavior was broken in <code>lint-staged@16.3.0</code> where they
were only resolved from the current working directory and up.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1845">#1845</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/eb8a4e3ae1bbdf648b647ff3a17a6205870b27be"><code>eb8a4e3</code></a>
- Do not try to restore untracked files when using
<code>--hide-all</code> and there is no initial commit yet.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md">lint-staged's
changelog</a>.</em></p>
<blockquote>
<h2>17.5.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1847">#1847</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/f9063b7d71857cb8893ee1bb5b63da05b2819b23"><code>f9063b7</code></a>
- <em>Lint-staged</em> now refuses to run when files were staged with
<code>--intent-to-add</code>, because Git stash doesn't support them.
Previously this was an unhandled error.</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1848">#1848</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/d718ccc59cf73bf7d333135826270b5742fefec1"><code>d718ccc</code></a>
- <em>Lint-staged</em> now handles color support better in non-TTY
streams, and honors the <code>FORCE_COLOR</code> environment
variable.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1845">#1845</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/7e5ece8408097994bd1dfcfbf395aa9838782d19"><code>7e5ece8</code></a>
- Update <code>tinyexec@1.3.1</code> so that local binaries from
<code>node_modules/.bin</code> are resolved starting from the directory
of each <em>lint-staged</em> configuration file (in monorepo setups).
This behavior was broken in <code>lint-staged@16.3.0</code> where they
were only resolved from the current working directory and up.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/lint-staged/lint-staged/pull/1845">#1845</a>
<a
href="https://github.com/lint-staged/lint-staged/commit/eb8a4e3ae1bbdf648b647ff3a17a6205870b27be"><code>eb8a4e3</code></a>
- Do not try to restore untracked files when using
<code>--hide-all</code> and there is no initial commit yet.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/dcb59f6334275ed80b130d963c79296046ee8116"><code>dcb59f6</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1846">#1846</a>
from lint-staged/changeset-release/main</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/9c8c6dcc2af24353f6ec808cadcdd15308143cee"><code>9c8c6dc</code></a>
chore(changeset): release</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/586466fa107f743de407c680c37297c4290b2872"><code>586466f</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1849">#1849</a>
from lint-staged/improve-intent-to-add</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/45eda5fd32e27c591be8da7a3ea8a89a6b1e4049"><code>45eda5f</code></a>
refactor: improve <code>--intent-to-add</code> detection</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/26372e3a2d25cd316f90af3c3b38c0b536f60e5a"><code>26372e3</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1848">#1848</a>
from lint-staged/fix-color-detection</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/d718ccc59cf73bf7d333135826270b5742fefec1"><code>d718ccc</code></a>
fix: honor FORCE_COLOR/NO_COLOR env variables in non-TTY streams</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/be78a51a7c4ced0a9ebf8457327ec08a092ed767"><code>be78a51</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1847">#1847</a>
from lint-staged/intent-to-add</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/f9063b7d71857cb8893ee1bb5b63da05b2819b23"><code>f9063b7</code></a>
feat: refuse to run when files were staged with
<code>--intent-to-add</code></li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/a767299bd86b8e3007d6efc404e0a974be96b6b6"><code>a767299</code></a>
Merge pull request <a
href="https://redirect.github.com/lint-staged/lint-staged/issues/1845">#1845</a>
from lint-staged/updates</li>
<li><a
href="https://github.com/lint-staged/lint-staged/commit/61ffd251a860e3861921036d488f9f960bfc1330"><code>61ffd25</code></a>
style: add VS Code extension config</li>
<li>Additional commits viewable in <a
href="https://github.com/lint-staged/lint-staged/compare/v17.4.1...v17.5.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `oxfmt` from 0.66.0 to 0.67.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md">oxfmt's
changelog</a>.</em></p>
<blockquote>
<h2>[0.67.0] - 2026-09-07</h2>
<h3>🛡️ Security</h3>
<ul>
<li>9a612d5 deps: Update npm packages (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/26178">#26178</a>)
(renovate[bot])</li>
</ul>
<h2>[0.64.0] - 2026-08-18</h2>
<h3>🚀 Features</h3>
<ul>
<li>c07fe7c oxfmt: Support <code>experimentalOperatorPosition</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/25643">#25643</a>)
(leaysgur)</li>
</ul>
<h3>📚 Documentation</h3>
<ul>
<li>fed6681 oxfmt: Skip expanding overrides options (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/25572">#25572</a>)
(leaysgur)</li>
</ul>
<h2>[0.62.0] - 2026-08-03</h2>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>e6e584b oxfmt: Type jsdoc. enum options (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/25008">#25008</a>)
(leaysgur)</li>
</ul>
<h2>[0.59.0] - 2026-07-13</h2>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>415fe1e oxfmt: Error on ignorePatterns that cannot match files
outside the config directory (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/24286">#24286</a>)
(leaysgur)</li>
</ul>
<h2>[0.55.0] - 2026-06-15</h2>
<h3>🚀 Features</h3>
<ul>
<li>9a2788b linter/unicorn: Implement <code>prefer-export-from</code>
rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22935">#22935</a>)
(AliceLanniste)</li>
</ul>
<h2>[0.54.0] - 2026-06-08</h2>
<h3>📚 Documentation</h3>
<ul>
<li>dadafe3 oxlint, oxfmt: Mention migrate skills in npm READMEs (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22965">#22965</a>)
(Boshen)</li>
<li>f88961a oxfmt: Annotate each config option with supported languages
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22953">#22953</a>)
(leaysgur)</li>
</ul>
<h2>[0.52.0] - 2026-05-26</h2>
<h3>🚀 Features</h3>
<ul>
<li>16b8058 oxfmt: Support <code>vite-plus/resolveConfig</code> for
vite.config.ts (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22454">#22454</a>)
(leaysgur)</li>
</ul>
<h2>[0.50.0] - 2026-05-15</h2>
<h3>🐛 Bug Fixes</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/oxc-project/oxc/commit/b4da00b621ec2f6f67ed218f5366c45ed325331b"><code>b4da00b</code></a>
release(apps): oxlint v1.82.0 &amp;&amp; oxfmt v0.67.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/26384">#26384</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/9a612d57e5f1ad9ee6f9f0d8d67692cd430f7ecf"><code>9a612d5</code></a>
chore(deps): update npm packages (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/26178">#26178</a>)</li>
<li>See full diff in <a
href="https://github.com/oxc-project/oxc/commits/oxfmt_v0.67.0/npm/oxfmt">compare
view</a></li>
</ul>
</details>
<br />

Updates `oxlint` from 1.81.0 to 1.82.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/oxc-project/oxc/releases">oxlint's
releases</a>.</em></p>
<blockquote>
<h2>oxlint v1.82.0 &amp; oxfmt v0.67.0</h2>
<h2>Table of Contents</h2>
<ul>
<li><a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/blob/HEAD/#oxlint-v1.82.0">Oxlint
v1.82.0</a></li>
<li><a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/blob/HEAD/#oxfmt-v0.67.0">Oxfmt
v0.67.0</a></li>
</ul>
<h2>Oxlint v1.82.0</h2>
<h3>💥 BREAKING CHANGES</h3>
<ul>
<li>66744f0 parser: [<strong>BREAKING</strong>] Rename
<code>panicked</code> to <code>fatal_error</code> in
<code>ParserReturn</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26382">#26382</a>)
(overlookmotel)</li>
</ul>
<h3>🚀 Features</h3>
<ul>
<li>6a0e19c linter/eslint/no-unmodified-loop-condition: Support
<code>checkConditionalExpressions</code> option (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26249">#26249</a>)
(camc314)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>aa38ddf linter/unicorn/numeric-separators-style: Correct schema
defaults (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26393">#26393</a>)
(camc314)</li>
<li>562dd14 jsx-a11y/anchor-has-content: Allow anchors passed as custom
component props (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26360">#26360</a>)
(Mikhail Baev)</li>
<li>253cdb2 linter/eslint/id-length: Exempt TS interface/type-literal
members with never (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26310">#26310</a>)
(Pearce Ropion)</li>
<li>8c7ea76 ast_visit: Account for trimmed source offsets (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26223">#26223</a>)
(Cameron)</li>
<li>5f9cffc linter/typescript/no-explicit-any: Fix rest parameter to
<code>unknown[]</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26279">#26279</a>)
(camc314)</li>
<li>4de9fa3 linter/react/jsx-no-literals: Check nested JSX expression
literals (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26253">#26253</a>)
(camc314)</li>
<li>07851b9 parser: Fix debug assert failure when lexer error with
tokens enabled (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26229">#26229</a>)
(overlookmotel)</li>
<li>9cee146 oxlint/lsp: Don't try to parse fix message, always fallback
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26204">#26204</a>)
(Sysix)</li>
<li>a662c40 linter/eslint/no-useless-assignment: Handle destructuring
assignments (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/25925">#25925</a>)
(camc314)</li>
<li>304bd9a linter/eslint/no-array-constructor: Handle ASI hazards in
fixer (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26166">#26166</a>)
(Hamody We)</li>
<li>b41bb35 linter: Qualify rules in rules output (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26250">#26250</a>)
(camc314)</li>
<li>895c685 linter/typescript/no-extraneous-class: Avoid deleting class
expressions (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26231">#26231</a>)
(camc314)</li>
<li>4ba33c8 linter/eslint/no-unused-vars: Handle stored arrow references
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26225">#26225</a>)
(camc314)</li>
</ul>
<h3>🛡️ Security</h3>
<ul>
<li>9a612d5 deps: Update npm packages (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26178">#26178</a>)
(renovate[bot])</li>
</ul>
<h2>Oxfmt v0.67.0</h2>
<h3>💥 BREAKING CHANGES</h3>
<ul>
<li>66744f0 parser: [<strong>BREAKING</strong>] Rename
<code>panicked</code> to <code>fatal_error</code> in
<code>ParserReturn</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26382">#26382</a>)
(overlookmotel)</li>
<li>2c9a947 parser: [<strong>BREAKING</strong>] Reduce
<code>MAX_LEN</code> to 256 bytes below <code>u32::MAX</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26352">#26352</a>)
(overlookmotel)</li>
</ul>
<h3>🚀 Features</h3>
<ul>
<li>68e12ab formatter_css: Follow the oxc-css-parser's acceptance line
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26337">#26337</a>)
(leaysgur)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>f7acdc0 formatter: Treat a JSDoc cast target as opaque in chain
layouts (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26375">#26375</a>)
(leaysgur)</li>
<li>104061b formatter: Keep JSDoc cast parens with a comment inside them
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26374">#26374</a>)
(leaysgur)</li>
<li>3d00a76 formatter_css: Keep comment inside important and simple-vars
colon (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26370">#26370</a>)
(leaysgur)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md">oxlint's
changelog</a>.</em></p>
<blockquote>
<h2>[1.82.0] - 2026-09-07</h2>
<h3>🚀 Features</h3>
<ul>
<li>6a0e19c linter/eslint/no-unmodified-loop-condition: Support
<code>checkConditionalExpressions</code> option (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26249">#26249</a>)
(camc314)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/oxc-project/oxc/commit/b4da00b621ec2f6f67ed218f5366c45ed325331b"><code>b4da00b</code></a>
release(apps): oxlint v1.82.0 &amp;&amp; oxfmt v0.67.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26384">#26384</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/aa38ddfbea657a9d332f86e42e235ff8cbdcac6d"><code>aa38ddf</code></a>
fix(linter/unicorn/numeric-separators-style): correct schema defaults
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/26393">#26393</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/6a0e19cfaae35ec882de6bc8dde7668d1b0cc58e"><code>6a0e19c</code></a>
feat(linter/eslint/no-unmodified-loop-condition): support
`checkConditionalEx...</li>
<li>See full diff in <a
href="https://github.com/oxc-project/oxc/commits/oxlint_v1.82.0/npm/oxlint">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sync alpha from beta after the 3.6.0 promotion (main -> beta -> alpha), bringing
the stable 3.6.0 release state, the encrypt web-worker offload, the structured
permit/signing event work, and the accumulated dependency and docs updates.

alpha keeps its protocol-breaking pin: @fhevm/sdk stays at 0.14.1-1 (beta is on
0.13.2), now resolved against beta's newer viem 2.56.0 / zod 4.5.4. pnpm-lock.yaml
was regenerated from the merged manifests rather than hand-resolved.

Conflict resolutions of note:

- credential-service.ts: the two sides changed the same permit paths for
  different reasons, so both were combined rather than one chosen. alpha's V1/V2
  branching (#permitVersion, wildcard permits, durationSeconds, the unified-permit
  probe) now runs inside beta's #failPermit choke point, so every permit failure
  emits exactly one PermitError while credential/vault resolution stays off the
  onEvent stream. The unified-permit probe is applied only to unclassified errors,
  preserving alpha's ordering where a typed ZamaError short-circuited it.
- errors/base.ts, errors/match.ts, index.ts, relayer/types.ts: additive on both
  sides (alpha's Unified* codes, beta's UnshieldAlreadyFinalized and dispose?()),
  so both kept.
- namespaces/permits.ts: beta's "authorizing" spelling (the repo convention) with
  alpha's wildcard semantics note.
- test-nextjs: took beta's next ^16.3.3 security bump over alpha's >=16.2.11.
- CHANGELOG.md: both version histories interleaved newest-first.
- API reports and the LLM corpus were regenerated, not merged by hand;
  docs:retarget alpha was a no-op as the URLs already self-target alpha.

Verified: typecheck, lint, format, 2115 tests across 176 files, api-report:check,
llm:check, docs:check-target alpha, docs:check-links all pass.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@cla-bot cla-bot Bot added the cla-signed label Sep 14, 2026
@github-actions

Copy link
Copy Markdown

Public API Changes

sdk-ethers.api.md
--- a/sdk-ethers.api.md
+++ b/sdk-ethers.api.md
@@ -279,6 +279,16 @@
     subscribe(listener: WalletAccountListener): () => void;
 }
 
+// @public
+export interface PermitErrorEvent extends BaseEvent {
+    error: Error;
+    operation: PermitOperation;
+    type: typeof ZamaSDKEvents.PermitError;
+}
+
+// @public
+export type PermitOperation = "grantPermit" | "grantDelegationPermit" | "registerPermit";
+
 export { ProviderConnectInfo }
 
 export { ProviderMessage }
@@ -287,6 +297,7 @@
 
 // @public
 export interface RawLog {
+    readonly address?: Hex;
     readonly data: Hex;
     readonly topics: readonly Hex[];
 }
@@ -525,7 +536,7 @@
 });
 
 // @public
-export type ZamaSDKEvent = EncryptStartEvent | EncryptEndEvent | EncryptErrorEvent | DecryptStartEvent | DecryptEndEvent | DecryptErrorEvent | TransactionErrorEvent | ShieldSubmittedEvent | TransferSubmittedEvent | TransferFromSubmittedEvent | SetOperatorSubmittedEvent | ApproveUnderlyingSubmittedEvent | WrapSubmittedEvent | UnwrapSubmittedEvent | FinalizeUnwrapSubmittedEvent | DelegationSubmittedEvent | RevokeDelegationSubmittedEvent | UnshieldPhase1SubmittedEvent | UnshieldPhase2StartedEvent | UnshieldPhase2SubmittedEvent;
+export type ZamaSDKEvent = EncryptStartEvent | EncryptEndEvent | EncryptErrorEvent | DecryptStartEvent | DecryptEndEvent | DecryptErrorEvent | PermitErrorEvent | TransactionErrorEvent | ShieldSubmittedEvent | TransferSubmittedEvent | TransferFromSubmittedEvent | SetOperatorSubmittedEvent | ApproveUnderlyingSubmittedEvent | WrapSubmittedEvent | UnwrapSubmittedEvent | FinalizeUnwrapSubmittedEvent | DelegationSubmittedEvent | RevokeDelegationSubmittedEvent | UnshieldPhase1SubmittedEvent | UnshieldPhase2StartedEvent | UnshieldPhase2SubmittedEvent;
 
 // @public
 export type ZamaSDKEventListener = (event: ZamaSDKEvent) => void;
@@ -538,6 +549,7 @@
     readonly DecryptStart: "decrypt:start";
     readonly DecryptEnd: "decrypt:end";
     readonly DecryptError: "decrypt:error";
+    readonly PermitError: "permit:error";
     readonly TransactionError: "transaction:error";
     readonly ShieldSubmitted: "shield:submitted";
     readonly TransferSubmitted: "transfer:submitted";
sdk-query.api.md
--- a/sdk-query.api.md
+++ b/sdk-query.api.md
@@ -661,6 +661,16 @@
 export function pendingUnshieldQueryOptions(sdk: ZamaSDK, tokenAddress: Address, config?: PendingUnshieldQueryConfig): QueryFactoryOptions<Hex | null, Error, Hex | null, ReturnType<typeof zamaQueryKeys.pendingUnshield.token>>;
 
 // @public
+export interface PermitErrorEvent extends BaseEvent {
+    error: Error;
+    operation: PermitOperation;
+    type: typeof ZamaSDKEvents.PermitError;
+}
+
+// @public
+export type PermitOperation = "grantPermit" | "grantDelegationPermit" | "registerPermit";
+
+// @public
 export class Permits {
     clear(): Promise<void>;
     grantDelegationPermit(delegator: Address, contracts: Address[] | WildcardPermit): Promise<void>;
@@ -757,6 +767,7 @@
 
 // @public
 export interface RawLog {
+    readonly address?: Hex;
     readonly data: Hex;
     readonly topics: readonly Hex[];
 }
@@ -793,6 +804,7 @@
     chain: FheChain;
     createUnsignedLegacyDecryptionPermitEip712(parameters: CreateUnsignedLegacyDecryptionPermitEip712Parameters): Promise<CreateUnsignedLegacyDecryptionPermitEip712ReturnType>;
     createUnsignedUnifiedDecryptionPermitEip712(parameters: CreateUnsignedUnifiedDecryptionPermitEip712Parameters): Promise<CreateUnsignedUnifiedDecryptionPermitEip712ReturnType>;
+    dispose?(): void;
 }
 
 // @public
@@ -1349,6 +1361,7 @@
     readonly SigningFailed: "SIGNING_FAILED";
     readonly EncryptionFailed: "ENCRYPTION_FAILED";
     readonly DecryptionFailed: "DECRYPTION_FAILED";
+    readonly EncryptOffloadUnavailable: "ENCRYPT_OFFLOAD_UNAVAILABLE";
     readonly TransactionReverted: "TRANSACTION_REVERTED";
     readonly TransportKeyPairExpired: "KEYPAIR_EXPIRED";
     readonly InvalidTransportKeyPair: "INVALID_KEYPAIR";
@@ -1384,6 +1397,7 @@
     readonly PreparedPermitExpired: "PREPARED_PERMIT_EXPIRED";
     readonly UnifiedPermitNotSupported: "UNIFIED_PERMIT_NOT_SUPPORTED";
     readonly UnifiedDecryptionUnsupported: "UNIFIED_DECRYPTION_UNSUPPORTED";
+    readonly UnshieldAlreadyFinalized: "UNSHIELD_ALREADY_FINALIZED";
 };
 
 // @public
@@ -1604,7 +1618,7 @@
 }
 
 // @public
-export type ZamaSDKEvent = EncryptStartEvent | EncryptEndEvent | EncryptErrorEvent | DecryptStartEvent | DecryptEndEvent | DecryptErrorEvent | TransactionErrorEvent | ShieldSubmittedEvent | TransferSubmittedEvent | TransferFromSubmittedEvent | SetOperatorSubmittedEvent | ApproveUnderlyingSubmittedEvent | WrapSubmittedEvent | UnwrapSubmittedEvent | FinalizeUnwrapSubmittedEvent | DelegationSubmittedEvent | RevokeDelegationSubmittedEvent | UnshieldPhase1SubmittedEvent | UnshieldPhase2StartedEvent | UnshieldPhase2SubmittedEvent;
+export type ZamaSDKEvent = EncryptStartEvent | EncryptEndEvent | EncryptErrorEvent | DecryptStartEvent | DecryptEndEvent | DecryptErrorEvent | PermitErrorEvent | TransactionErrorEvent | ShieldSubmittedEvent | TransferSubmittedEvent | TransferFromSubmittedEvent | SetOperatorSubmittedEvent | ApproveUnderlyingSubmittedEvent | WrapSubmittedEvent | UnwrapSubmittedEvent | FinalizeUnwrapSubmittedEvent | DelegationSubmittedEvent | RevokeDelegationSubmittedEvent | UnshieldPhase1SubmittedEvent | UnshieldPhase2StartedEvent | UnshieldPhase2SubmittedEvent;
 
 // @public
 export type ZamaSDKEventListener = (event: ZamaSDKEvent) => void;
@@ -1617,6 +1631,7 @@
     readonly DecryptStart: "decrypt:start";
     readonly DecryptEnd: "decrypt:end";
     readonly DecryptError: "decrypt:error";
+    readonly PermitError: "permit:error";
     readonly TransactionError: "transaction:error";
     readonly ShieldSubmitted: "shield:submitted";
     readonly TransferSubmitted: "transfer:submitted";
sdk-viem.api.md
--- a/sdk-viem.api.md
+++ b/sdk-viem.api.md
@@ -202,7 +202,18 @@
 }
 
 // @public
+export interface PermitErrorEvent extends BaseEvent {
+    error: Error;
+    operation: PermitOperation;
+    type: typeof ZamaSDKEvents.PermitError;
+}
+
+// @public
+export type PermitOperation = "grantPermit" | "grantDelegationPermit" | "registerPermit";
+
+// @public
 export interface RawLog {
+    readonly address?: Hex;
     readonly data: Hex;
     readonly topics: readonly Hex[];
 }
@@ -483,7 +494,7 @@
 }
 
 // @public
-export type ZamaSDKEvent = EncryptStartEvent | EncryptEndEvent | EncryptErrorEvent | DecryptStartEvent | DecryptEndEvent | DecryptErrorEvent | TransactionErrorEvent | ShieldSubmittedEvent | TransferSubmittedEvent | TransferFromSubmittedEvent | SetOperatorSubmittedEvent | ApproveUnderlyingSubmittedEvent | WrapSubmittedEvent | UnwrapSubmittedEvent | FinalizeUnwrapSubmittedEvent | DelegationSubmittedEvent | RevokeDelegationSubmittedEvent | UnshieldPhase1SubmittedEvent | UnshieldPhase2StartedEvent | UnshieldPhase2SubmittedEvent;
+export type ZamaSDKEvent = EncryptStartEvent | EncryptEndEvent | EncryptErrorEvent | DecryptStartEvent | DecryptEndEvent | DecryptErrorEvent | PermitErrorEvent | TransactionErrorEvent | ShieldSubmittedEvent | TransferSubmittedEvent | TransferFromSubmittedEvent | SetOperatorSubmittedEvent | ApproveUnderlyingSubmittedEvent | WrapSubmittedEvent | UnwrapSubmittedEvent | FinalizeUnwrapSubmittedEvent | DelegationSubmittedEvent | RevokeDelegationSubmittedEvent | UnshieldPhase1SubmittedEvent | UnshieldPhase2StartedEvent | UnshieldPhase2SubmittedEvent;
 
 // @public
 export type ZamaSDKEventListener = (event: ZamaSDKEvent) => void;
@@ -496,6 +507,7 @@
     readonly DecryptStart: "decrypt:start";
     readonly DecryptEnd: "decrypt:end";
     readonly DecryptError: "decrypt:error";
+    readonly PermitError: "permit:error";
     readonly TransactionError: "transaction:error";
     readonly ShieldSubmitted: "shield:submitted";
     readonly TransferSubmitted: "transfer:submitted";
sdk-web.api.md
--- a/sdk-web.api.md
+++ b/sdk-web.api.md
@@ -8,6 +8,12 @@
 import { setFhevmRuntimeConfig } from '@fhevm/sdk/viem';
 
 // @public
+export type EncryptWorkerTimeouts = {
+    readonly spawn: number;
+    readonly init: number;
+};
+
+// @public
 export type FhevmClientOptions = NonNullable<Parameters<typeof createFhevmClient>[0]["options"]>;
 
 // @public
@@ -37,13 +43,20 @@
 }
 
 // @public
-export function web(options?: RelayerOptions): WebRelayerConfig;
+export function web(options?: WebRelayerOptions): WebRelayerConfig;
 
 // @public
 export interface WebRelayerConfig extends RelayerConfig {
     readonly type: "web";
 }
 
+// @public
+export interface WebRelayerOptions extends RelayerOptions {
+    readonly offloadEncrypt?: "auto" | boolean;
+    readonly offloadTimeouts?: Partial<EncryptWorkerTimeouts>;
+    readonly offloadWorker?: string | URL | (() => Worker);
+}
+
 // (No @packageDocumentation comment for this package)
 
 ```
sdk.api.md
--- a/sdk.api.md
+++ b/sdk.api.md
@@ -5804,6 +5804,11 @@
 }
 
 // @public
+export class EncryptOffloadUnavailableError extends ZamaError {
+    constructor(message: string, options?: ErrorOptions);
+}
+
+// @public
 export interface EncryptParams {
     contractAddress: Address;
     userAddress: Address;
@@ -5852,6 +5857,7 @@
     [ZamaErrorCode.DelegationNotFound]: DelegationNotFoundError;
     [ZamaErrorCode.DelegationNotPropagated]: DelegationNotPropagatedError;
     [ZamaErrorCode.DelegationSelfNotAllowed]: DelegationSelfNotAllowedError;
+    [ZamaErrorCode.EncryptOffloadUnavailable]: EncryptOffloadUnavailableError;
     [ZamaErrorCode.EncryptionFailed]: EncryptionFailedError;
     [ZamaErrorCode.ERC20ReadFailed]: ERC20ReadFailedError;
     [ZamaErrorCode.InsufficientAllowance]: InsufficientAllowanceError;
@@ -5874,6 +5880,7 @@
     [ZamaErrorCode.TransportKeyPairChanged]: TransportKeyPairChangedError;
     [ZamaErrorCode.UnifiedDecryptionUnsupported]: UnifiedDecryptionUnsupportedError;
     [ZamaErrorCode.UnifiedPermitNotSupported]: UnifiedPermitNotSupportedError;
+    [ZamaErrorCode.UnshieldAlreadyFinalized]: UnshieldAlreadyFinalizedError;
     [ZamaErrorCode.WalletAccountNotReady]: WalletAccountNotReadyError;
     [ZamaErrorCode.WalletNotConnected]: WalletNotConnectedError;
 }
@@ -11503,6 +11510,16 @@
 }
 
 // @public
+export interface PermitErrorEvent extends BaseEvent {
+    error: Error;
+    operation: PermitOperation;
+    type: typeof ZamaSDKEvents.PermitError;
+}
+
+// @public
+export type PermitOperation = "grantPermit" | "grantDelegationPermit" | "registerPermit";
+
+// @public
 export class Permits {
     clear(): Promise<void>;
     grantDelegationPermit(delegator: Address, contracts: Address[] | WildcardPermit): Promise<void>;
@@ -12755,6 +12772,7 @@
 
 // @public
 export interface RawLog {
+    readonly address?: Hex;
     readonly data: Hex;
     readonly topics: readonly Hex[];
 }
@@ -12804,6 +12822,7 @@
     chain: FheChain;
     createUnsignedLegacyDecryptionPermitEip712(parameters: CreateUnsignedLegacyDecryptionPermitEip712Parameters): Promise<CreateUnsignedLegacyDecryptionPermitEip712ReturnType>;
     createUnsignedUnifiedDecryptionPermitEip712(parameters: CreateUnsignedUnifiedDecryptionPermitEip712Parameters): Promise<CreateUnsignedUnifiedDecryptionPermitEip712ReturnType>;
+    dispose?(): void;
 }
 
 // @public
@@ -14283,13 +14302,26 @@
 }
 
 // @public
+export interface SigningErrorMetadata {
+    operation?: string;
+    rpcCode?: number;
+    walletErrorName?: string;
+}
+
+// @public
 export class SigningFailedError extends ZamaError {
-    constructor(message: string, options?: ErrorOptions);
+    constructor(message: string, options?: ErrorOptions & SigningErrorMetadata);
+    readonly operation: string | undefined;
+    readonly rpcCode: number | undefined;
+    readonly walletErrorName: string | undefined;
 }
 
 // @public
 export class SigningRejectedError extends ZamaError {
-    constructor(message: string, options?: ErrorOptions);
+    constructor(message: string, options?: ErrorOptions & SigningErrorMetadata);
+    readonly operation: string | undefined;
+    readonly rpcCode: number | undefined;
+    readonly walletErrorName: string | undefined;
 }
 
 // @public
@@ -16026,6 +16058,19 @@
 }
 
 // @public
+export interface UnshieldAlreadyFinalizedDetails {
+    readonly unwrapRequestId: EncryptedValue;
+    readonly unwrapTxHash: Hex;
+}
+
+// @public
+export class UnshieldAlreadyFinalizedError extends ZamaError {
+    constructor(message: string, details: UnshieldAlreadyFinalizedDetails, options?: ErrorOptions);
+    readonly unwrapRequestId: EncryptedValue;
+    readonly unwrapTxHash: Hex;
+}
+
+// @public
 export interface UnshieldCallbacks {
     onFinalizeSubmitted?: (txHash: Hex) => void;
     onFinalizing?: () => void;
@@ -18361,6 +18406,1142 @@
 }
 
 // @public
+export function unwrapRequesterContract(wrapperAddress: Address, unwrapRequestId: EncryptedValue): {
+    readonly address: `0x${string}`;
+    readonly abi: readonly [{
+        readonly type: "function";
+        readonly name: "UPGRADE_INTERFACE_VERSION";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "string";
+            readonly internalType: "string";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "acceptOwnership";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "blockUser";
+        readonly inputs: readonly [{
+            readonly name: "user";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+        readonly outputs: readonly [];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "confidentialBalanceOf";
+        readonly inputs: readonly [{
+            readonly name: "account";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "confidentialProtocolId";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "uint256";
+            readonly internalType: "uint256";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "confidentialTotalSupply";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "confidentialTransfer";
+        readonly inputs: readonly [{
+            readonly name: "to";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "encryptedAmount";
+            readonly type: "bytes32";
+            readonly internalType: "externalEuint64";
+        }, {
+            readonly name: "inputProof";
+            readonly type: "bytes";
+            readonly internalType: "bytes";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "confidentialTransfer";
+        readonly inputs: readonly [{
+            readonly name: "to";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "amount";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "confidentialTransferAndCall";
+        readonly inputs: readonly [{
+            readonly name: "to";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "amount";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }, {
+            readonly name: "data";
+            readonly type: "bytes";
+            readonly internalType: "bytes";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "transferred";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "confidentialTransferAndCall";
+        readonly inputs: readonly [{
+            readonly name: "to";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "encryptedAmount";
+            readonly type: "bytes32";
+            readonly internalType: "externalEuint64";
+        }, {
+            readonly name: "inputProof";
+            readonly type: "bytes";
+            readonly internalType: "bytes";
+        }, {
+            readonly name: "data";
+            readonly type: "bytes";
+            readonly internalType: "bytes";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "transferred";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "confidentialTransferFrom";
+        readonly inputs: readonly [{
+            readonly name: "from";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "to";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "encryptedAmount";
+            readonly type: "bytes32";
+            readonly internalType: "externalEuint64";
+        }, {
+            readonly name: "inputProof";
+            readonly type: "bytes";
+            readonly internalType: "bytes";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "transferred";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "confidentialTransferFrom";
+        readonly inputs: readonly [{
+            readonly name: "from";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "to";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "amount";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "transferred";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "confidentialTransferFromAndCall";
+        readonly inputs: readonly [{
+            readonly name: "from";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "to";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "encryptedAmount";
+            readonly type: "bytes32";
+            readonly internalType: "externalEuint64";
+        }, {
+            readonly name: "inputProof";
+            readonly type: "bytes";
+            readonly internalType: "bytes";
+        }, {
+            readonly name: "data";
+            readonly type: "bytes";
+            readonly internalType: "bytes";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "transferred";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "confidentialTransferFromAndCall";
+        readonly inputs: readonly [{
+            readonly name: "from";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "to";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "amount";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }, {
+            readonly name: "data";
+            readonly type: "bytes";
+            readonly internalType: "bytes";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "transferred";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "contractURI";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "string";
+            readonly internalType: "string";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "decimals";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "uint8";
+            readonly internalType: "uint8";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "discloseEncryptedAmount";
+        readonly inputs: readonly [{
+            readonly name: "encryptedAmount";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }, {
+            readonly name: "cleartextAmount";
+            readonly type: "uint64";
+            readonly internalType: "uint64";
+        }, {
+            readonly name: "decryptionProof";
+            readonly type: "bytes";
+            readonly internalType: "bytes";
+        }];
+        readonly outputs: readonly [];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "finalizeUnwrap";
+        readonly inputs: readonly [{
+            readonly name: "unwrapRequestId";
+            readonly type: "bytes32";
+            readonly internalType: "bytes32";
+        }, {
+            readonly name: "unwrapAmountCleartext";
+            readonly type: "uint64";
+            readonly internalType: "uint64";
+        }, {
+            readonly name: "decryptionProof";
+            readonly type: "bytes";
+            readonly internalType: "bytes";
+        }];
+        readonly outputs: readonly [];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "getUnderlyingDenyListSelector";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [{
+            readonly name: "isSet";
+            readonly type: "bool";
+            readonly internalType: "bool";
+        }, {
+            readonly name: "selector";
+            readonly type: "bytes4";
+            readonly internalType: "bytes4";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "inferredTotalSupply";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "uint256";
+            readonly internalType: "uint256";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "initialize";
+        readonly inputs: readonly [{
+            readonly name: "name_";
+            readonly type: "string";
+            readonly internalType: "string";
+        }, {
+            readonly name: "symbol_";
+            readonly type: "string";
+            readonly internalType: "string";
+        }, {
+            readonly name: "contractURI_";
+            readonly type: "string";
+            readonly internalType: "string";
+        }, {
+            readonly name: "underlying_";
+            readonly type: "address";
+            readonly internalType: "contract IERC20";
+        }, {
+            readonly name: "owner_";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+        readonly outputs: readonly [];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "isBlocked";
+        readonly inputs: readonly [{
+            readonly name: "user";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "bool";
+            readonly internalType: "bool";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "isOperator";
+        readonly inputs: readonly [{
+            readonly name: "holder";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "spender";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "bool";
+            readonly internalType: "bool";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "maxTotalSupply";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "uint256";
+            readonly internalType: "uint256";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "name";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "string";
+            readonly internalType: "string";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "onTransferReceived";
+        readonly inputs: readonly [{
+            readonly name: "operator";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "from";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "amount";
+            readonly type: "uint256";
+            readonly internalType: "uint256";
+        }, {
+            readonly name: "data";
+            readonly type: "bytes";
+            readonly internalType: "bytes";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "bytes4";
+            readonly internalType: "bytes4";
+        }];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "owner";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "pendingOwner";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "proxiableUUID";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "bytes32";
+            readonly internalType: "bytes32";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "rate";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "uint256";
+            readonly internalType: "uint256";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "reinitializeV2";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "reinitializeV3";
+        readonly inputs: readonly [{
+            readonly name: "blockedUsers";
+            readonly type: "address[]";
+            readonly internalType: "address[]";
+        }, {
+            readonly name: "underlyingDenyListSelector";
+            readonly type: "bytes4";
+            readonly internalType: "bytes4";
+        }, {
+            readonly name: "hasUnderlyingDenyListSelector_";
+            readonly type: "bool";
+            readonly internalType: "bool";
+        }];
+        readonly outputs: readonly [];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "renounceOwnership";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "requestDiscloseEncryptedAmount";
+        readonly inputs: readonly [{
+            readonly name: "encryptedAmount";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }];
+        readonly outputs: readonly [];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "setOperator";
+        readonly inputs: readonly [{
+            readonly name: "operator";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "until";
+            readonly type: "uint48";
+            readonly internalType: "uint48";
+        }];
+        readonly outputs: readonly [];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "supportsInterface";
+        readonly inputs: readonly [{
+            readonly name: "interfaceId";
+            readonly type: "bytes4";
+            readonly internalType: "bytes4";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "bool";
+            readonly internalType: "bool";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "symbol";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "string";
+            readonly internalType: "string";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "transferOwnership";
+        readonly inputs: readonly [{
+            readonly name: "newOwner";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+        readonly outputs: readonly [];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "unblockUser";
+        readonly inputs: readonly [{
+            readonly name: "user";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+        readonly outputs: readonly [];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "underlying";
+        readonly inputs: readonly [];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "unwrap";
+        readonly inputs: readonly [{
+            readonly name: "from";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "to";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "encryptedAmount";
+            readonly type: "bytes32";
+            readonly internalType: "externalEuint64";
+        }, {
+            readonly name: "inputProof";
+            readonly type: "bytes";
+            readonly internalType: "bytes";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "bytes32";
+            readonly internalType: "bytes32";
+        }];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "unwrap";
+        readonly inputs: readonly [{
+            readonly name: "from";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "to";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "amount";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "bytes32";
+            readonly internalType: "bytes32";
+        }];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "function";
+        readonly name: "unwrapAmount";
+        readonly inputs: readonly [{
+            readonly name: "unwrapRequestId";
+            readonly type: "bytes32";
+            readonly internalType: "bytes32";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "unwrapRequester";
+        readonly inputs: readonly [{
+            readonly name: "unwrapRequestId";
+            readonly type: "bytes32";
+            readonly internalType: "bytes32";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+        readonly stateMutability: "view";
+    }, {
+        readonly type: "function";
+        readonly name: "upgradeToAndCall";
+        readonly inputs: readonly [{
+            readonly name: "newImplementation";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "data";
+            readonly type: "bytes";
+            readonly internalType: "bytes";
+        }];
+        readonly outputs: readonly [];
+        readonly stateMutability: "payable";
+    }, {
+        readonly type: "function";
+        readonly name: "wrap";
+        readonly inputs: readonly [{
+            readonly name: "to";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "amount";
+            readonly type: "uint256";
+            readonly internalType: "uint256";
+        }];
+        readonly outputs: readonly [{
+            readonly name: "";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }];
+        readonly stateMutability: "nonpayable";
+    }, {
+        readonly type: "event";
+        readonly name: "AmountDiscloseRequested";
+        readonly inputs: readonly [{
+            readonly name: "encryptedAmount";
+            readonly type: "bytes32";
+            readonly indexed: true;
+            readonly internalType: "euint64";
+        }, {
+            readonly name: "requester";
+            readonly type: "address";
+            readonly indexed: true;
+            readonly internalType: "address";
+        }];
+        readonly anonymous: false;
+    }, {
+        readonly type: "event";
+        readonly name: "AmountDisclosed";
+        readonly inputs: readonly [{
+            readonly name: "encryptedAmount";
+            readonly type: "bytes32";
+            readonly indexed: true;
+            readonly internalType: "euint64";
+        }, {
+            readonly name: "amount";
+            readonly type: "uint64";
+            readonly indexed: false;
+            readonly internalType: "uint64";
+        }];
+        readonly anonymous: false;
+    }, {
+        readonly type: "event";
+        readonly name: "ConfidentialTransfer";
+        readonly inputs: readonly [{
+            readonly name: "from";
+            readonly type: "address";
+            readonly indexed: true;
+            readonly internalType: "address";
+        }, {
+            readonly name: "to";
+            readonly type: "address";
+            readonly indexed: true;
+            readonly internalType: "address";
+        }, {
+            readonly name: "amount";
+            readonly type: "bytes32";
+            readonly indexed: true;
+            readonly internalType: "euint64";
+        }];
+        readonly anonymous: false;
+    }, {
+        readonly type: "event";
+        readonly name: "Initialized";
+        readonly inputs: readonly [{
+            readonly name: "version";
+            readonly type: "uint64";
+            readonly indexed: false;
+            readonly internalType: "uint64";
+        }];
+        readonly anonymous: false;
+    }, {
+        readonly type: "event";
+        readonly name: "OperatorSet";
+        readonly inputs: readonly [{
+            readonly name: "holder";
+            readonly type: "address";
+            readonly indexed: true;
+            readonly internalType: "address";
+        }, {
+            readonly name: "operator";
+            readonly type: "address";
+            readonly indexed: true;
+            readonly internalType: "address";
+        }, {
+            readonly name: "until";
+            readonly type: "uint48";
+            readonly indexed: false;
+            readonly internalType: "uint48";
+        }];
+        readonly anonymous: false;
+    }, {
+        readonly type: "event";
+        readonly name: "OwnershipTransferStarted";
+        readonly inputs: readonly [{
+            readonly name: "previousOwner";
+            readonly type: "address";
+            readonly indexed: true;
+            readonly internalType: "address";
+        }, {
+            readonly name: "newOwner";
+            readonly type: "address";
+            readonly indexed: true;
+            readonly internalType: "address";
+        }];
+        readonly anonymous: false;
+    }, {
+        readonly type: "event";
+        readonly name: "OwnershipTransferred";
+        readonly inputs: readonly [{
+            readonly name: "previousOwner";
+            readonly type: "address";
+            readonly indexed: true;
+            readonly internalType: "address";
+        }, {
+            readonly name: "newOwner";
+            readonly type: "address";
+            readonly indexed: true;
+            readonly internalType: "address";
+        }];
+        readonly anonymous: false;
+    }, {
+        readonly type: "event";
+        readonly name: "PublicDecryptionVerified";
+        readonly inputs: readonly [{
+            readonly name: "handlesList";
+            readonly type: "bytes32[]";
+            readonly indexed: false;
+            readonly internalType: "bytes32[]";
+        }, {
+            readonly name: "abiEncodedCleartexts";
+            readonly type: "bytes";
+            readonly indexed: false;
+            readonly internalType: "bytes";
+        }];
+        readonly anonymous: false;
+    }, {
+        readonly type: "event";
+        readonly name: "UnwrapFinalized";
+        readonly inputs: readonly [{
+            readonly name: "receiver";
+            readonly type: "address";
+            readonly indexed: true;
+            readonly internalType: "address";
+        }, {
+            readonly name: "unwrapRequestId";
+            readonly type: "bytes32";
+            readonly indexed: true;
+            readonly internalType: "bytes32";
+        }, {
+            readonly name: "encryptedAmount";
+            readonly type: "bytes32";
+            readonly indexed: false;
+            readonly internalType: "euint64";
+        }, {
+            readonly name: "cleartextAmount";
+            readonly type: "uint64";
+            readonly indexed: false;
+            readonly internalType: "uint64";
+        }];
+        readonly anonymous: false;
+    }, {
+        readonly type: "event";
+        readonly name: "UnwrapRequested";
+        readonly inputs: readonly [{
+            readonly name: "receiver";
+            readonly type: "address";
+            readonly indexed: true;
+            readonly internalType: "address";
+        }, {
+            readonly name: "unwrapRequestId";
+            readonly type: "bytes32";
+            readonly indexed: true;
+            readonly internalType: "bytes32";
+        }, {
+            readonly name: "amount";
+            readonly type: "bytes32";
+            readonly indexed: false;
+            readonly internalType: "euint64";
+        }];
+        readonly anonymous: false;
+    }, {
+        readonly type: "event";
+        readonly name: "Upgraded";
+        readonly inputs: readonly [{
+            readonly name: "implementation";
+            readonly type: "address";
+            readonly indexed: true;
+            readonly internalType: "address";
+        }];
+        readonly anonymous: false;
+    }, {
+        readonly type: "event";
+        readonly name: "UserBlocked";
+        readonly inputs: readonly [{
+            readonly name: "user";
+            readonly type: "address";
+            readonly indexed: true;
+            readonly internalType: "address";
+        }];
+        readonly anonymous: false;
+    }, {
+        readonly type: "event";
+        readonly name: "UserUnblocked";
+        readonly inputs: readonly [{
+            readonly name: "user";
+            readonly type: "address";
+            readonly indexed: true;
+            readonly internalType: "address";
+        }];
+        readonly anonymous: false;
+    }, {
+        readonly type: "event";
+        readonly name: "Wrap";
+        readonly inputs: readonly [{
+            readonly name: "to";
+            readonly type: "address";
+            readonly indexed: true;
+            readonly internalType: "address";
+        }, {
+            readonly name: "roundedAmount";
+            readonly type: "uint256";
+            readonly indexed: false;
+            readonly internalType: "uint256";
+        }, {
+            readonly name: "encryptedWrappedAmount";
+            readonly type: "bytes32";
+            readonly indexed: false;
+            readonly internalType: "euint64";
+        }];
+        readonly anonymous: false;
+    }, {
+        readonly type: "error";
+        readonly name: "AddressEmptyCode";
+        readonly inputs: readonly [{
+            readonly name: "target";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "BlockedUser";
+        readonly inputs: readonly [{
+            readonly name: "user";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "ERC1967InvalidImplementation";
+        readonly inputs: readonly [{
+            readonly name: "implementation";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "ERC1967NonPayable";
+        readonly inputs: readonly [];
+    }, {
+        readonly type: "error";
+        readonly name: "ERC7984InvalidReceiver";
+        readonly inputs: readonly [{
+            readonly name: "receiver";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "ERC7984InvalidReceiver";
+        readonly inputs: readonly [{
+            readonly name: "receiver";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "ERC7984InvalidSender";
+        readonly inputs: readonly [{
+            readonly name: "sender";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "ERC7984TotalSupplyOverflow";
+        readonly inputs: readonly [];
+    }, {
+        readonly type: "error";
+        readonly name: "ERC7984UnauthorizedCaller";
+        readonly inputs: readonly [{
+            readonly name: "caller";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "ERC7984UnauthorizedSpender";
+        readonly inputs: readonly [{
+            readonly name: "holder";
+            readonly type: "address";
+            readonly internalType: "address";
+        }, {
+            readonly name: "spender";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "ERC7984UnauthorizedUseOfEncryptedAmount";
+        readonly inputs: readonly [{
+            readonly name: "amount";
+            readonly type: "bytes32";
+            readonly internalType: "euint64";
+        }, {
+            readonly name: "user";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "ERC7984ZeroBalance";
+        readonly inputs: readonly [{
+            readonly name: "holder";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "FailedCall";
+        readonly inputs: readonly [];
+    }, {
+        readonly type: "error";
+        readonly name: "InvalidInitialization";
+        readonly inputs: readonly [];
+    }, {
+        readonly type: "error";
+        readonly name: "InvalidKMSSignatures";
+        readonly inputs: readonly [];
+    }, {
+        readonly type: "error";
+        readonly name: "InvalidUnderlyingDenyListResponse";
+        readonly inputs: readonly [];
+    }, {
+        readonly type: "error";
+        readonly name: "InvalidUnwrapRequest";
+        readonly inputs: readonly [{
+            readonly name: "unwrapRequestId";
+            readonly type: "bytes32";
+            readonly internalType: "bytes32";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "NotInitializing";
+        readonly inputs: readonly [];
+    }, {
+        readonly type: "error";
+        readonly name: "OwnableInvalidOwner";
+        readonly inputs: readonly [{
+            readonly name: "owner";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "OwnableUnauthorizedAccount";
+        readonly inputs: readonly [{
+            readonly name: "account";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "SafeCastOverflowedUintDowncast";
+        readonly inputs: readonly [{
+            readonly name: "bits";
+            readonly type: "uint8";
+            readonly internalType: "uint8";
+        }, {
+            readonly name: "value";
+            readonly type: "uint256";
+            readonly internalType: "uint256";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "SafeERC20FailedOperation";
+        readonly inputs: readonly [{
+            readonly name: "token";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "SenderNotAllowedToUseHandle";
+        readonly inputs: readonly [{
+            readonly name: "handle";
+            readonly type: "bytes32";
+            readonly internalType: "bytes32";
+        }, {
+            readonly name: "sender";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "UUPSUnauthorizedCallContext";
+        readonly inputs: readonly [];
+    }, {
+        readonly type: "error";
+        readonly name: "UUPSUnsupportedProxiableUUID";
+        readonly inputs: readonly [{
+            readonly name: "slot";
+            readonly type: "bytes32";
+            readonly internalType: "bytes32";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "UnderlyingDenyListCallFailed";
+        readonly inputs: readonly [];
+    }, {
+        readonly type: "error";
+        readonly name: "UnderlyingDenyListedAddress";
+        readonly inputs: readonly [{
+            readonly name: "user";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "UserAlreadyBlocked";
+        readonly inputs: readonly [{
+            readonly name: "user";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "UserAlreadyUnblocked";
+        readonly inputs: readonly [{
+            readonly name: "user";
+            readonly type: "address";
+            readonly internalType: "address";
+        }];
+    }, {
+        readonly type: "error";
+        readonly name: "ZamaProtocolUnsupported";
+        readonly inputs: readonly [];
+    }];
+    readonly functionName: "unwrapRequester";
+    readonly args: readonly [`0x${string}`];
+};
+
+// @public
 export interface UnwrapResult extends TransactionResult {
     unwrapRequestId: EncryptedValue;
 }
@@ -19721,6 +20902,7 @@
     readonly SigningFailed: "SIGNING_FAILED";
     readonly EncryptionFailed: "ENCRYPTION_FAILED";
     readonly DecryptionFailed: "DECRYPTION_FAILED";
+    readonly EncryptOffloadUnavailable: "ENCRYPT_OFFLOAD_UNAVAILABLE";
     readonly TransactionReverted: "TRANSACTION_REVERTED";
     readonly TransportKeyPairExpired: "KEYPAIR_EXPIRED";
     readonly InvalidTransportKeyPair: "INVALID_KEYPAIR";
@@ -19756,6 +20938,7 @@
     readonly PreparedPermitExpired: "PREPARED_PERMIT_EXPIRED";
     readonly UnifiedPermitNotSupported: "UNIFIED_PERMIT_NOT_SUPPORTED";
     readonly UnifiedDecryptionUnsupported: "UNIFIED_DECRYPTION_UNSUPPORTED";
+    readonly UnshieldAlreadyFinalized: "UNSHIELD_ALREADY_FINALIZED";
 };
 
 // @public
@@ -19783,7 +20966,7 @@
 }
 
 // @public
-export type ZamaSDKEvent = EncryptStartEvent | EncryptEndEvent | EncryptErrorEvent | DecryptStartEvent | DecryptEndEvent | DecryptErrorEvent | TransactionErrorEvent | ShieldSubmittedEvent | TransferSubmittedEvent | TransferFromSubmittedEvent | SetOperatorSubmittedEvent | ApproveUnderlyingSubmittedEvent | WrapSubmittedEvent | UnwrapSubmittedEvent | FinalizeUnwrapSubmittedEvent | DelegationSubmittedEvent | RevokeDelegationSubmittedEvent | UnshieldPhase1SubmittedEvent | UnshieldPhase2StartedEvent | UnshieldPhase2SubmittedEvent;
+export type ZamaSDKEvent = EncryptStartEvent | EncryptEndEvent | EncryptErrorEvent | DecryptStartEvent | DecryptEndEvent | DecryptErrorEvent | PermitErrorEvent | TransactionErrorEvent | ShieldSubmittedEvent | TransferSubmittedEvent | TransferFromSubmittedEvent | SetOperatorSubmittedEvent | ApproveUnderlyingSubmittedEvent | WrapSubmittedEvent | UnwrapSubmittedEvent | FinalizeUnwrapSubmittedEvent | DelegationSubmittedEvent | RevokeDelegationSubmittedEvent | UnshieldPhase1SubmittedEvent | UnshieldPhase2StartedEvent | UnshieldPhase2SubmittedEvent;
 
 // @public
 export type ZamaSDKEventListener = (event: ZamaSDKEvent) => void;
@@ -19796,6 +20979,7 @@
     readonly DecryptStart: "decrypt:start";
     readonly DecryptEnd: "decrypt:end";
     readonly DecryptError: "decrypt:error";
+    readonly PermitError: "permit:error";
     readonly TransactionError: "transaction:error";
     readonly ShieldSubmitted: "shield:submitted";
     readonly TransferSubmitted: "transfer:submitted";

@github-actions

Copy link
Copy Markdown

Coverage Report

Status Category Percentage Covered / Total
🟢 Lines 93.54% (🎯 80%) 3752 / 4011
🔵 Statements 93.53% 3835 / 4100
🟢 Functions 91.9% (🎯 80%) 1169 / 1272
🟢 Branches 88.76% (🎯 80%) 1769 / 1993
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
packages/react-sdk/src/provider.tsx 100% 100% 100% 100%
packages/react-sdk/src/test-fixtures/addresses.ts 100% 100% 100% 100%
packages/react-sdk/src/unshield/use-resume-unshield.ts 100% 100% 100% 100%
packages/sdk/src/zama-sdk.ts 96.55% 100% 94.11% 96.55% 212, 284
packages/sdk/src/chains/router.ts 100% 100% 100% 100%
packages/sdk/src/config/build.ts 100% 100% 100% 100%
packages/sdk/src/config/cleartext.ts 75% 50% 100% 75% 29
packages/sdk/src/config/resolve.ts 100% 100% 100% 100%
packages/sdk/src/config/types.ts 100% 100% 100% 100%
packages/sdk/src/config/web.ts 100% 100% 100% 100%
packages/sdk/src/contracts/confidential-wrapper.ts 100% 100% 100% 100%
packages/sdk/src/contracts/wrappers-registry.ts 100% 100% 100% 100%
packages/sdk/src/credentials/credential-service.ts 97.09% 95% 97.05% 97.43% 256, 278, 613, 831, 871-872, 950
packages/sdk/src/errors/acl-revert.ts 100% 100% 100% 100%
packages/sdk/src/errors/base.ts 100% 100% 100% 100%
packages/sdk/src/errors/encryption.ts 100% 100% 100% 100%
packages/sdk/src/errors/match.ts 100% 100% 100% 100%
packages/sdk/src/errors/revert.ts 88.88% 85.71% 100% 88.88% 16
packages/sdk/src/errors/signing.ts 100% 100% 100% 100%
packages/sdk/src/errors/unshield.ts 100% 100% 100% 100%
packages/sdk/src/ethers/ethers-provider.ts 88.63% 78.57% 81.81% 88.63% 104-106, 158, 160, 181-184, 196-199
packages/sdk/src/events/sdk-events.ts 100% 100% 100% 100%
packages/sdk/src/namespaces/permits.ts 91.52% 77.77% 100% 91.52% 140, 152, 167, 196, 226
packages/sdk/src/node/config.ts 0% 100% 0% 0% 27-29
packages/sdk/src/relayer/applied-runtime.ts 100% 100% 100% 100%
packages/sdk/src/relayer/fhevm-relayer.ts 88.39% 93.02% 82.05% 88.28% 484-548, 137, 200, 205, 485-548, 674
packages/sdk/src/relayer/types.ts 100% 100% 100% 100%
packages/sdk/src/services/logger-service.ts 100% 100% 100% 100%
packages/sdk/src/test-fixtures/logger.ts 100% 100% 100% 100%
packages/sdk/src/test-fixtures/router.ts 85.18% 85.71% 85.71% 84% 74, 84-85, 110
packages/sdk/src/test-fixtures/services.ts 95.23% 95.34% 93.75% 95.23% 130
packages/sdk/src/token/wrapped-token.ts 95.02% 88.4% 100% 95% 76, 170, 246-252, 267-273, 457
packages/sdk/src/types/transaction.ts 100% 100% 100% 100%
packages/sdk/src/utils/error.ts 99.12% 98.41% 100% 99.09% 351
packages/sdk/src/worker/encrypt-worker-client.ts 97.16% 87.73% 95.91% 97.14% 62, 100, 105, 244, 362, 528
packages/sdk/src/worker/protocol.ts 100% 97.05% 100% 100%
packages/sdk/src/worker/spawn.ts 100% 100% 100% 100%
Generated in workflow #718 for commit 54566bd by the Vitest Coverage Report Action

@ankurdotb
ankurdotb merged commit 166975e into alpha Sep 14, 2026
32 checks passed
@ankurdotb
ankurdotb deleted the sync/beta-into-alpha branch September 14, 2026 12:23
@zama-bot

Copy link
Copy Markdown
Collaborator

🎉 This PR is included in version 3.7.0-alpha.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

ankurdotb added a commit that referenced this pull request Sep 18, 2026
Sync alpha from beta (alpha is based off and back-synced from beta): brings
in the #783 release-tag security hardening, the #779 v3.3-v3.6 changelog
audit, and accumulated dependency bumps, alongside alpha's own protocol-
testing work (KMS recovery extended to V2 permits #727, and prior wildcard-
permit/permit-branching features). Landed as an explicit merge commit via
branch-protection bypass, not squash/rebase/cherry-pick -- any of those would
drop beta's commits from alpha's ancestry, pinning the merge-base and
re-conflicting this same content on every future sync.

Two real conflicts, both resolved by hand:
- docs/gitbook/src/guides/handle-errors.md: both sides had independently
  added a row to the same error-reference table (alpha's own
  DelegationDelegateCannotBeWildcardError, beta's UnshieldAlreadyFinalizedError
  from #779) -- neither side was a superset of the other, so the resolution
  is the union of both rows, not a pick-a-side. A second, non-conflicting
  edit in the same file (the troubleshooting-table row correcting the stale
  pre-3.6.0 resumeUnshield() description) auto-merged correctly since alpha's
  actual code already had that behavior via the prior #763 sync -- only the
  docs had never caught up.
- pnpm-lock.yaml: reconciled via pnpm install after resolving package.json
  (auto-merged cleanly, no conflict).

Verified: @fhevm/sdk stays pinned at 0.14.1-1 (alpha's protocol-testing
version, auto-merged with no conflict since beta never touches that line);
doc/LLM-corpus URLs remain alpha-self-targeted with the beta GitBook space
(check-target alpha, check-links, llm:check all pass); docs script tests,
lint, and format all pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@zama-bot

Copy link
Copy Markdown
Collaborator

🎉 This PR is included in version 3.7.0-beta.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants