Skip to content

Reintegrate - #581

Merged
jquagga merged 34 commits into
mainfrom
reintegrate
Aug 2, 2026
Merged

jquagga merged 34 commits into
mainfrom
reintegrate

Conversation

@jquagga

@jquagga jquagga commented Aug 2, 2026

Copy link
Copy Markdown
Owner

No description provided.

jquagga and others added 30 commits May 12, 2026 08:21
Co-authored-by: Justin Settle <jus10@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/2
This PR contains the following updates:

| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |

🔧 This Pull Request updates lock files to use the latest dependency versions.

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - "before 4am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNzYuNyIsInVwZGF0ZWRJblZlciI6IjQzLjE3Ni43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: jquagga-renovate <renovate@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/4
Co-authored-by: Justin Settle <jus10@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/5
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Adoption](https://docs.renovatebot.com/merge-confidence/) | [Passing](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|---|---|
| [svelte](https://svelte.dev) ([source](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte)) | [`5.55.5` → `5.55.7`](https://renovatebot.com/diffs/npm/svelte/5.55.5/5.55.7) | ![age](https://developer.mend.io/api/mc/badges/age/npm/svelte/5.55.7?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/svelte/5.55.7?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/svelte/5.55.5/5.55.7?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/svelte/5.55.5/5.55.7?slim=true) |

---

### Svelte: ReDoS in `<svelte:element>` Tag Validation
[CVE-2026-42567](https://nvd.nist.gov/vuln/detail/CVE-2026-42567) / [GHSA-9rmh-mm8f-r9h6](GHSA-9rmh-mm8f-r9h6)

<details>
<summary>More information</summary>

#### Details
An internal regex in the Svelte runtime can take exponential time to test in `<svelte:element this={tag}></svelte:element>`. You are only vulnerable to this if you allow tags of unconstrained length. If your application only allows a predetermined list of tags or trims their length before passing them to `svelte:element`, you are safe.

#### Severity
- CVSS Score: 5.9 / 10 (Medium)
- Vector String: `CVSS:4.0/AV:N/AC:H/AT:P/PR:H/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N`

#### References
- [https://github.com/sveltejs/svelte/security/advisories/GHSA-9rmh-mm8f-r9h6](https://github.com/sveltejs/svelte/security/advisories/GHSA-9rmh-mm8f-r9h6)
- [https://github.com/sveltejs/svelte](https://github.com/sveltejs/svelte)
- [https://github.com/sveltejs/svelte/releases/tag/svelte%405.55.7](https://github.com/sveltejs/svelte/releases/tag/svelte%405.55.7)

This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-9rmh-mm8f-r9h6) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>

---

### Svelte: SSR XSS via Insecure Promise Serialization in hydratable
[GHSA-f3cj-j4f6-wq85](GHSA-f3cj-j4f6-wq85)

<details>
<summary>More information</summary>

#### Details
Contents of `hydratable` promises were not properly stringified, potentially leading to an XSS exploit. You are vulnerable if all of the following is true:
- you are using `hydratable` (an experimental feature at the time of this report)
- you are passing attacker-controlled input such that a synchronous value is hydrated, then a promise value, e.g. `hydratable('someKey', () => [synchronousValue, promiseValue])`

#### Severity
- CVSS Score: 5.3 / 10 (Medium)
- Vector String: `CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:N`

#### References
- [https://github.com/sveltejs/svelte/security/advisories/GHSA-f3cj-j4f6-wq85](https://github.com/sveltejs/svelte/security/advisories/GHSA-f3cj-j4f6-wq85)
- [https://github.com/sveltejs/svelte/commit/a16ebc67bbcf8f708360195687e1b2719463e1a4](https://github.com/sveltejs/svelte/commit/a16ebc67bbcf8f708360195687e1b2719463e1a4)
- [https://github.com/sveltejs/svelte](https://github.com/sveltejs/svelte)
- [http://github.com/sveltejs/svelte/releases/tag/svelte%405.55.7](http://github.com/sveltejs/svelte/releases/tag/svelte%405.55.7)

This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-f3cj-j4f6-wq85) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>

---

### Svelte SSR vulnerable to cross-site scripting via spread attributes
[CVE-2026-42599](https://nvd.nist.gov/vuln/detail/CVE-2026-42599) / [GHSA-pr6f-5x2q-rwfp](GHSA-pr6f-5x2q-rwfp)

<details>
<summary>More information</summary>

#### Details
When using spread syntax to render attributes from untrusted data, event handler properties are included in the rendered HTML output. If an application spreads user-controlled or external data as element attributes, an attacker can inject malicious event handlers that execute in victims' browsers. Note that this vulnerability _only_ triggers if the user's browser has JavaScript enabled but Svelte's hydration mechanism does not reach the vulnerable element before the event fires.

This is similar to but different from [CVE-2026-27121](https://nvd.nist.gov/vuln/detail/CVE-2026-27121).

#### Severity
- CVSS Score: 5.1 / 10 (Medium)
- Vector String: `CVSS:4.0/AV:N/AC:H/AT:P/PR:H/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:N`

#### References
- [https://github.com/sveltejs/svelte/security/advisories/GHSA-pr6f-5x2q-rwfp](https://github.com/sveltejs/svelte/security/advisories/GHSA-pr6f-5x2q-rwfp)
- [https://nvd.nist.gov/vuln/detail/CVE-2026-27121](https://nvd.nist.gov/vuln/detail/CVE-2026-27121)
- [https://github.com/sveltejs/svelte](https://github.com/sveltejs/svelte)
- [https://github.com/sveltejs/svelte/releases/tag/svelte%405.55.7](https://github.com/sveltejs/svelte/releases/tag/svelte%405.55.7)

This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-pr6f-5x2q-rwfp) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>

---

### Svelte Vulnerable to XSS via DOM Clobbering of Internal Framework State
[CVE-2026-42573](https://nvd.nist.gov/vuln/detail/CVE-2026-42573) / [GHSA-rcqx-6q8c-2c42](GHSA-rcqx-6q8c-2c42)

<details>
<summary>More information</summary>

#### Details
Svelte was vulnerable to DOM clobbering of its internal framework state on elements, potentially leading to XSS attacks.

You are vulnerable if all of the following is true:
- you are using attribute spreading on a form element
- you are using attribute spreading or allow a dynamic value for the `name` attribute on an input or button element within that form
- both of these are simultaneously user-controllable

```svelte
<form {...spread1}>
  <input {...spread2}>
</form>
```

#### Severity
- CVSS Score: 5.3 / 10 (Medium)
- Vector String: `CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:L/VI:N/VA:N/SC:H/SI:H/SA:N`

#### References
- [https://github.com/sveltejs/svelte/security/advisories/GHSA-rcqx-6q8c-2c42](https://github.com/sveltejs/svelte/security/advisories/GHSA-rcqx-6q8c-2c42)
- [https://github.com/sveltejs/svelte](https://github.com/sveltejs/svelte)
- [https://github.com/sveltejs/svelte/releases/tag/svelte%405.55.7](https://github.com/sveltejs/svelte/releases/tag/svelte%405.55.7)

This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-rcqx-6q8c-2c42) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>

---

### Release Notes

<details>
<summary>sveltejs/svelte (svelte)</summary>

### [`v5.55.7`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5557)

[Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.55.6...svelte@5.55.7)

##### Patch Changes

- fix: prevent XSS on `hydratable` from user contents ([`a16ebc67bbcf8f708360195687e1b2719463e1a4`](sveltejs/svelte@a16ebc6))

- chore: bump devalue ([#&#8203;18219](sveltejs/svelte#18219))

- fix: disallow empty attribute names during SSR ([`547853e2406a2147ad7fb5ffeba95b01bd9642da`](sveltejs/svelte@547853e))

- fix: harden regex ([`d2375e2ebcab5c88feb5652f1a9d621b8f06b259`](sveltejs/svelte@d2375e2))

- fix: move Svelte runtime properties to symbols ([`e1cbbd96441e82c9eb8a23a2903c0d06d3cda991`](sveltejs/svelte@e1cbbd9))

### [`v5.55.6`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5556)

[Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.55.5...svelte@5.55.6)

##### Patch Changes

- fix: leave stale promises to wait for a later resolution, instead of rejecting ([#&#8203;18180](sveltejs/svelte#18180))

- fix: keep dependencies of `$state.eager/pending` ([#&#8203;18218](sveltejs/svelte#18218))

- fix: reapply context after transforming error during SSR ([#&#8203;18099](sveltejs/svelte#18099))

- fix: don't rebase just-created batches ([#&#8203;18117](sveltejs/svelte#18117))

- chore: allow `null` for `pending` in typings ([#&#8203;18201](sveltejs/svelte#18201))

- fix: flush eager effects in production ([#&#8203;18107](sveltejs/svelte#18107))

- fix: rethrow error of failed iterable after calling `return()` ([#&#8203;18169](sveltejs/svelte#18169))

- fix: account for proxified instance when updating `bind:this` ([#&#8203;18147](sveltejs/svelte#18147))

- fix: ensure scheduled batch is flushed if not obsolete ([#&#8203;18131](sveltejs/svelte#18131))

- fix: resolve stale deriveds with latest value ([#&#8203;18167](sveltejs/svelte#18167))

- chore: remove unnecessary `increment_pending` calls ([#&#8203;18183](sveltejs/svelte#18183))

- fix: correctly compile component member expressions for SSR ([#&#8203;18192](sveltejs/svelte#18192))

- fix: reset `source.updated` stack traces after `flush` ([#&#8203;18196](sveltejs/svelte#18196))

- fix: replacing async 'blocking' strategy with 'merging' ([#&#8203;18205](sveltejs/svelte#18205))

- fix: allow `@debug` tags to reference awaited variables ([#&#8203;18138](sveltejs/svelte#18138))

- fix: re-run fallback props if dependencies update ([#&#8203;18146](sveltejs/svelte#18146))

- fix: abort running obsolete async branches ([#&#8203;18118](sveltejs/svelte#18118))

- fix: ignore comments when reading CSS values ([#&#8203;18153](sveltejs/svelte#18153))

- fix: wrap `Promise.all` in `save` during SSR ([#&#8203;18178](sveltejs/svelte#18178))

- fix: ignore false-positive errors of `$inspect` dependencies ([#&#8203;18106](sveltejs/svelte#18106))

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xODAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjE4MC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJzZWN1cml0eSJdfQ==-->

Co-authored-by: jquagga-renovate <renovate@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/6
This PR contains the following updates:

| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |

🔧 This Pull Request updates lock files to use the latest dependency versions.

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - "before 4am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xODIuMSIsInVwZGF0ZWRJblZlciI6IjQzLjE4Mi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: jquagga-renovate <renovate@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/8
This PR contains the following updates:

| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |

🔧 This Pull Request updates lock files to use the latest dependency versions.

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - "before 4am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTUuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE5NS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: jquagga-renovate <renovate@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/11
Co-authored-by: Justin Settle <jus10@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/13
This PR contains the following updates:

| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | devDependencies | pin | [`^25.9.1` → `25.9.1`](https://renovatebot.com/diffs/npm/@types%2fnode/25.9.1/25.9.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/DefinitelyTyped/DefinitelyTyped/badge)](https://securityscorecards.dev/viewer/?uri=github.com/DefinitelyTyped/DefinitelyTyped) |

⚠️ Renovate's pin functionality [does not currently](renovatebot/renovate#40288) wire in the release age for a package, so the Minimum Release Age checks can apply. You will need to manually validate the Minimum Release Age for these package(s).

Add the preset `:preserveSemverRanges` to your config if you don't want to pin your dependencies.

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - "before 4am on sunday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDQuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIwNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: jquagga-renovate <renovate@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/14
Co-authored-by: Justin Settle <jus10@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/16
Co-authored-by: Justin Settle <jus10@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/17
Co-authored-by: Justin Settle <jus10@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/18
Co-authored-by: Justin Settle <jus10@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/19
This PR contains the following updates:

| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |

🔧 This Pull Request updates lock files to use the latest dependency versions.

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMTQuNiIsInVwZGF0ZWRJblZlciI6IjQzLjIxNC42IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: jquagga-renovate <renovate@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/21
This PR contains the following updates:

| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |

🔧 This Pull Request updates lock files to use the latest dependency versions.

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMjIuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIyMi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: jquagga-renovate <renovate@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/23
This PR contains the following updates:

| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [@sveltejs/kit](https://svelte.dev) ([source](https://github.com/sveltejs/kit/tree/HEAD/packages/kit)) | devDependencies | minor | [`2.66.0` → `2.68.0`](https://renovatebot.com/diffs/npm/@sveltejs%2fkit/2.66.0/2.68.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/sveltejs/kit/badge)](https://securityscorecards.dev/viewer/?uri=github.com/sveltejs/kit) |
| [@types/luxon](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/luxon) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/luxon)) | devDependencies | patch | [`3.7.1` → `3.7.2`](https://renovatebot.com/diffs/npm/@types%2fluxon/3.7.1/3.7.2) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/DefinitelyTyped/DefinitelyTyped/badge)](https://securityscorecards.dev/viewer/?uri=github.com/DefinitelyTyped/DefinitelyTyped) |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | devDependencies | patch | [`25.9.3` → `25.9.4`](https://renovatebot.com/diffs/npm/@types%2fnode/25.9.3/25.9.4) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/DefinitelyTyped/DefinitelyTyped/badge)](https://securityscorecards.dev/viewer/?uri=github.com/DefinitelyTyped/DefinitelyTyped) |
| [cookie](https://github.com/jshttp/cookie) | overrides | major | [`1.1.1` → `2.0.0`](https://renovatebot.com/diffs/npm/cookie/1.1.1/2.0.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/jshttp/cookie/badge)](https://securityscorecards.dev/viewer/?uri=github.com/jshttp/cookie) |
| [svelte](https://svelte.dev) ([source](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte)) | devDependencies | patch | [`5.56.3` → `5.56.4`](https://renovatebot.com/diffs/npm/svelte/5.56.3/5.56.4) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/sveltejs/svelte/badge)](https://securityscorecards.dev/viewer/?uri=github.com/sveltejs/svelte) |
| [svelte-check](https://github.com/sveltejs/language-tools) | devDependencies | minor | [`4.6.0` → `4.7.1`](https://renovatebot.com/diffs/npm/svelte-check/4.6.0/4.7.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/sveltejs/language-tools/badge)](https://securityscorecards.dev/viewer/?uri=github.com/sveltejs/language-tools) |
| [vite](https://vite.dev) ([source](https://github.com/vitejs/vite/tree/HEAD/packages/vite)) | devDependencies | minor | [`8.0.16` → `8.1.0`](https://renovatebot.com/diffs/npm/vite/8.0.16/8.1.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/vitejs/vite/badge)](https://securityscorecards.dev/viewer/?uri=github.com/vitejs/vite) |
| [wrangler](https://github.com/cloudflare/workers-sdk) ([source](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler)) | devDependencies | minor | [`4.102.0` → `4.105.0`](https://renovatebot.com/diffs/npm/wrangler/4.102.0/4.105.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/cloudflare/workers-sdk/badge)](https://securityscorecards.dev/viewer/?uri=github.com/cloudflare/workers-sdk) |

---

### Release Notes

<details>
<summary>sveltejs/kit (@&#8203;sveltejs/kit)</summary>

### [`v2.68.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2680)

##### Minor Changes

- feat: expose `RemoteFormEnhanceInstance` and `RemoteFormEnhanceCallback` types ([#&#8203;15816](sveltejs/kit#15816))

- feat: set value of `submit` fields when form is submitted ([#&#8203;15979](sveltejs/kit#15979))

##### Patch Changes

- fix: skip `native_navigation` when `__data.json` returns 404 on a static fallback page ([#&#8203;16135](sveltejs/kit#16135))

- fix: ignore third-party monkeypatches in `pushState`/`replaceState` warning detection ([#&#8203;15267](sveltejs/kit#15267))

- fix: snapshot form fields on read ([#&#8203;16150](sveltejs/kit#16150))

- fix: strip field prefix before erroring on duplicates ([#&#8203;16151](sveltejs/kit#16151))

- fix: call reset function via prototype ([#&#8203;16138](sveltejs/kit#16138))

- chore: fix navigation `type` hover info ([#&#8203;16147](sveltejs/kit#16147))

### [`v2.67.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2670)

[Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.66.0...@sveltejs/kit@2.67.0)

##### Minor Changes

- feat: add `prerender.handleInvalidUrl` option for invalid URLs discovered while crawling ([#&#8203;16088](sveltejs/kit#16088))

##### Patch Changes

- fix: support `exactOptionalPropertyTypes` for optional form schema fields ([#&#8203;15866](sveltejs/kit#15866))

- fix: avoid unnecessarily overriding a user's Vite 8 `codeSplitting` setting ([#&#8203;16118](sveltejs/kit#16118))

</details>

<details>
<summary>jshttp/cookie (cookie)</summary>

### [`v2.0.0`](https://github.com/jshttp/cookie/releases/tag/v2.0.0)

[Compare Source](jshttp/cookie@v1.1.1...v2.0.0)

**Important:** This release moves the package to ESM only. In node 22+ you can `require(esm)`, and older node versions are not supported.

**Changed**

- Switch to ESM ([#&#8203;273](jshttp/cookie#273))
- Remove deprecated code paths ([#&#8203;272](jshttp/cookie#272))
  - The old `parse` and `stringify` methods have been renamed: `parseCookie` and `stringifySetCookie`
  - `stringifySetCookie` only supports object mode (e.g. `{ name: "", value: "" }`)

**Improvements**

- Faster stringify cookie ([#&#8203;262](jshttp/cookie#262))
- Optimize encode performance ([#&#8203;269](jshttp/cookie#269))
- Apply `encode` to empty cookie values ([#&#8203;277](jshttp/cookie#277))

**Fixed**

- Omit leading semicolon when stringifying cookies with skipped values ([#&#8203;267](jshttp/cookie#267))

</details>

<details>
<summary>sveltejs/svelte (svelte)</summary>

### [`v5.56.4`](https://github.com/sveltejs/svelte/blob/HEAD/packages/svelte/CHANGELOG.md#5564)

[Compare Source](https://github.com/sveltejs/svelte/compare/svelte@5.56.3...svelte@5.56.4)

##### Patch Changes

- fix: include wrapping parentheses in `{@&#8203;const}` declarator `end` position ([#&#8203;18436](sveltejs/svelte#18436))

- fix: always unset reactivity context after restoring it ([#&#8203;18453](sveltejs/svelte#18453))

- fix: don't notify `searchParams` subscribers when the URL changes without affecting the search string ([#&#8203;18425](sveltejs/svelte#18425))

- fix: strip `?` from optional parameters in `<script lang="ts">` so generated JavaScript is valid ([#&#8203;18448](sveltejs/svelte#18448))

</details>

<details>
<summary>sveltejs/language-tools (svelte-check)</summary>

### [`v4.7.1`](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.1)

[Compare Source](https://github.com/sveltejs/language-tools/compare/svelte-check@4.7.0...svelte-check@4.7.1)

##### Patch Changes

- fix: correctly parse --tsgo-experimental-api flag ([#&#8203;3067](sveltejs/language-tools#3067))

### [`v4.7.0`](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.0)

[Compare Source](https://github.com/sveltejs/language-tools/compare/svelte-check@4.6.0...svelte-check@4.7.0)

##### Minor Changes

- feat: add `--config` option ([#&#8203;3066](sveltejs/language-tools#3066))

- feat: svelte-check tsgo support with experimental api ([#&#8203;3036](sveltejs/language-tools#3036))

##### Patch Changes

- fix: load esm version of Vite ([#&#8203;3065](sveltejs/language-tools#3065))

- fix: stop excluding workspaces under dot-prefixed ancestors ([#&#8203;3037](sveltejs/language-tools#3037))

- Updated dependencies \[[`7a3464b`](sveltejs/language-tools@7a3464b), [`a2561fc`](sveltejs/language-tools@a2561fc)]:
  - [@&#8203;sveltejs/load-config](https://github.com/sveltejs/load-config)@&#8203;0.2.0

</details>

<details>
<summary>vitejs/vite (vite)</summary>

### [`v8.1.0`](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#810-2026-06-23)

[Compare Source](vitejs/vite@v8.0.16...v8.1.0)

##### Features

- extend `server.fs.deny` list with common files ([#&#8203;22707](vitejs/vite#22707)) ([61ba8fd](vitejs/vite@61ba8fd))
- update rolldown to 1.1.2 ([#&#8203;22695](vitejs/vite#22695)) ([4f008a6](vitejs/vite@4f008a6))
- use `~` for Rolldown ([#&#8203;22693](vitejs/vite#22693)) ([9928722](vitejs/vite@9928722))

##### Bug Fixes

- **bundled-dev:** errors should be kept when incremental build fails ([#&#8203;22617](vitejs/vite#22617)) ([9a0dd48](vitejs/vite@9a0dd48))
- cache falsy values in perEnvironmentState ([#&#8203;22715](vitejs/vite#22715)) ([0e91e79](vitejs/vite@0e91e79))
- **glob:** respect caseSensitive option in hmr matcher ([#&#8203;22711](vitejs/vite#22711)) ([65f525e](vitejs/vite@65f525e))
- **html:** omit nonce on import map when cspNonce is unset ([#&#8203;22713](vitejs/vite#22713)) ([8340bb5](vitejs/vite@8340bb5))
- **optimizer:** skip null-valued exports in expandGlobIds glob resolution ([#&#8203;22611](vitejs/vite#22611)) ([8b9f5cd](vitejs/vite@8b9f5cd))
- resolved build options should be kept as a getter ([#&#8203;22691](vitejs/vite#22691)) ([3527191](vitejs/vite@3527191))
- **server:** handle malformed URI in memory files middleware ([#&#8203;22714](vitejs/vite#22714)) ([df9e0a5](vitejs/vite@df9e0a5))
- use literal envPrefix queries for Vite Task ([#&#8203;22706](vitejs/vite#22706)) ([da72733](vitejs/vite@da72733))
- warn on deprecated envFile ([#&#8203;22555](vitejs/vite#22555)) ([ed7b283](vitejs/vite@ed7b283))

##### Code Refactoring

- **client:** inline dev-id value in CSS selector ([#&#8203;22736](vitejs/vite#22736)) ([57f59bc](vitejs/vite@57f59bc))
- remove unused removeRawQuery util ([#&#8203;22724](vitejs/vite#22724)) ([403cc60](vitejs/vite@403cc60))
- use `rolldownOptions` property for chunkImportMap ([#&#8203;22692](vitejs/vite#22692)) ([8e8816c](vitejs/vite@8e8816c))

</details>

<details>
<summary>cloudflare/workers-sdk (wrangler)</summary>

### [`v4.105.0`](https://github.com/cloudflare/workers-sdk/blob/HEAD/packages/wrangler/CHANGELOG.md#41050)

[Compare Source](https://github.com/cloudflare/workers-sdk/compare/wrangler@4.104.0...wrangler@4.105.0)

##### Minor Changes

- [#&#8203;14311](cloudflare/workers-sdk#14311) [`34e0cef`](cloudflare/workers-sdk@34e0cef) Thanks [@&#8203;sherryliu-lsy](https://github.com/sherryliu-lsy)! - Add Google Artifact Registry support to `containers registries configure`

  `wrangler containers registries configure` now recognizes `*-docker.pkg.dev` (Google Artifact Registry) domains.

  - The Google service account email is the public credential, supplied with `--gar-email`. It must match the `client_email` in the service account key.
  - The service account JSON key is the private credential. It is provided via stdin (a file path, raw JSON, or base64) or an interactive prompt (a file path or base64) — never as a CLI flag, so it does not appear in shell history. The key is validated against `--gar-email` and stored base64-encoded.
  - Secret reuse inherits the existence-first flow: when the target Secrets Store secret already exists, it is reused by reference and the key is not required. In that case the email cannot be verified locally; it is validated against the key when images are pulled.

  ```sh
  <path-to-key>.json | npx wrangler@latest containers registries configure <region>-docker.pkg.dev --gar-email=<service-account-email> --secret-name=Google_Service_Account_JSON_Key
  ```

##### Patch Changes

- [#&#8203;14424](cloudflare/workers-sdk#14424) [`5f40dd5`](cloudflare/workers-sdk@5f40dd5) Thanks [@&#8203;MattieTK](https://github.com/MattieTK)! - Bump `am-i-vibing` from 0.4.0 to 0.5.0

  This updates the agentic environment detection library to the latest version, which adds detection for the Pi coding agent (`earendil-works/pi`).

- [#&#8203;14406](cloudflare/workers-sdk#14406) [`3b743c1`](cloudflare/workers-sdk@3b743c1) Thanks [@&#8203;dependabot](https://github.com/apps/dependabot)! - Update dependencies of "miniflare", "wrangler"

  The following dependency versions have been updated:

  | Dependency | From         | To           |
  | ---------- | ------------ | ------------ |
  | workerd    | 1.20260623.1 | 1.20260625.1 |

- [#&#8203;14343](cloudflare/workers-sdk#14343) [`daa5389`](cloudflare/workers-sdk@daa5389) Thanks [@&#8203;th0m](https://github.com/th0m)! - Use digest-pinned image references for Dockerfile container deploys

  Dockerfile-backed container deploys now use the pushed image digest when deploying the container application. This lets snapshot-enabled container apps pass Cloudchamber validation while keeping local, non-pushed builds and registry image URI deploys unchanged.

- [#&#8203;14394](cloudflare/workers-sdk#14394) [`8a5cf8c`](cloudflare/workers-sdk@8a5cf8c) Thanks [@&#8203;Partha-Shankar](https://github.com/Partha-Shankar)! - fix(d1): escape `migrationsTableName` and filenames in SQLite queries

  D1 migration commands in both `wrangler` and `@cloudflare/vitest-pool-workers` interpolated the `migrationsTableName` config value and migration filenames directly into SQL strings without any escaping. This meant:

  - A table name such as `my"table` would produce invalid SQL in `CREATE TABLE`, `SELECT`, and `INSERT` statements, and
  - A migration filename containing an apostrophe (e.g. `what's-new.sql`) would break the `INSERT INTO ... VALUES ('...')` statement appended after each migration in `wrangler`.

  Both identifiers are now properly escaped before interpolation: `migrationsTableName` is wrapped in double-quotes with internal double-quotes doubled (SQL-standard identifier quoting), and migration filenames used as string literals have their single-quotes doubled before insertion.

- Updated dependencies \[[`3b743c1`](cloudflare/workers-sdk@3b743c1)]:
  - miniflare\@&#8203;4.20260625.0

### [`v4.104.0`](https://github.com/cloudflare/workers-sdk/blob/HEAD/packages/wrangler/CHANGELOG.md#41040)

[Compare Source](https://github.com/cloudflare/workers-sdk/compare/wrangler@4.103.0...wrangler@4.104.0)

##### Minor Changes

- [#&#8203;14369](cloudflare/workers-sdk#14369) [`e312dec`](cloudflare/workers-sdk@e312dec) Thanks [@&#8203;edmundhung](https://github.com/edmundhung)! - Add `getEnv()` to `createTestHarness()` Worker handles

  Tests can now access the full `env` object for a Worker with `await server.getWorker<Env>().getEnv()`, including vars, secrets, and bindings.

##### Patch Changes

- [#&#8203;14364](cloudflare/workers-sdk#14364) [`a085dec`](cloudflare/workers-sdk@a085dec) Thanks [@&#8203;dependabot](https://github.com/apps/dependabot)! - Update dependencies of "miniflare", "wrangler"

  The following dependency versions have been updated:

  | Dependency | From         | To           |
  | ---------- | ------------ | ------------ |
  | workerd    | 1.20260617.1 | 1.20260619.1 |

- [#&#8203;14383](cloudflare/workers-sdk#14383) [`9a0de8f`](cloudflare/workers-sdk@9a0de8f) Thanks [@&#8203;dependabot](https://github.com/apps/dependabot)! - Update dependencies of "miniflare", "wrangler"

  The following dependency versions have been updated:

  | Dependency | From         | To           |
  | ---------- | ------------ | ------------ |
  | workerd    | 1.20260619.1 | 1.20260621.1 |

- [#&#8203;14397](cloudflare/workers-sdk#14397) [`fab565f`](cloudflare/workers-sdk@fab565f) Thanks [@&#8203;dependabot](https://github.com/apps/dependabot)! - Update dependencies of "miniflare", "wrangler"

  The following dependency versions have been updated:

  | Dependency | From         | To           |
  | ---------- | ------------ | ------------ |
  | workerd    | 1.20260621.1 | 1.20260623.1 |

- [#&#8203;14388](cloudflare/workers-sdk#14388) [`3f02864`](cloudflare/workers-sdk@3f02864) Thanks [@&#8203;petebacondarwin](https://github.com/petebacondarwin)! - Stop erroring when `find_additional_modules` discovers a file that only matches a inactive module rule

  Module rules assign module *types* to imported files — they are not include/exclude filters. Also, setting `fallthrough: false` in a rule will cause subsequent rules to become inactive. Previously, when `find_additional_modules` walked the filesystem and discovered a file whose only matching rule is inactive, Wrangler would throw an error and fail the build.

  This meant that adding a user rule like the one below would break the build for any `.txt`, `.html`, `.sql`, `.bin` or `.wasm` file that didn't match the user-supplied globs but lived somewhere under the module root:

  ```jsonc
  // wrangler.json
  {
    "rules": [
      {
        "type": "Text",
        "globs": ["html/includeme.html"],
        "fallthrough": false
      }
    ]
  }
  ```

  Discovered files that only match an inactive rule are now silently skipped (a `debug`-level log records each skip for troubleshooting), so users can use `fallthrough: false` to narrow the set of files attached to their Worker without having to delete or move untouched files on disk.

  The direct-import path is unchanged: importing a file in code that only matches an inactive rule is still a hard error, because the imported file genuinely needs a defined module type.

  Fixes [#&#8203;14257](cloudflare/workers-sdk#14257).

- [#&#8203;14358](cloudflare/workers-sdk#14358) [`4ef872f`](cloudflare/workers-sdk@4ef872f) Thanks [@&#8203;gabivlj](https://github.com/gabivlj)! - Fix container egress interception on arm64 Docker runtimes

  Both `wrangler dev` and the Cloudflare Vite plugin no longer force the `proxy-everything` sidecar image to pull as `linux/amd64`, allowing Docker to select the native image from the multi-platform manifest. Set `MINIFLARE_CONTAINER_EGRESS_IMAGE_PLATFORM` to force a specific platform when needed.

- [#&#8203;14362](cloudflare/workers-sdk#14362) [`2a02858`](cloudflare/workers-sdk@2a02858) Thanks [@&#8203;sherryliu-lsy](https://github.com/sherryliu-lsy)! - Don't require the private credential when reusing an existing Secrets Store secret in `containers registries configure`

  `wrangler containers registries configure` now checks whether the target Secrets Store secret already exists before resolving the private credential. When the secret already exists it is reused by reference, so the private credential no longer needs to be supplied (via stdin in non-interactive mode, or via a prompt interactively). This applies to all external registries.

  The new-secret path is unchanged: the credential is still required and stored. The only visible interactive change is that the secret prompt now appears last and only when a new secret is being created.

- Updated dependencies \[[`a085dec`](cloudflare/workers-sdk@a085dec), [`9a0de8f`](cloudflare/workers-sdk@9a0de8f), [`fab565f`](cloudflare/workers-sdk@fab565f)]:
  - miniflare\@&#8203;4.20260623.0

### [`v4.103.0`](https://github.com/cloudflare/workers-sdk/blob/HEAD/packages/wrangler/CHANGELOG.md#41030)

[Compare Source](https://github.com/cloudflare/workers-sdk/compare/wrangler@4.102.0...wrangler@4.103.0)

##### Minor Changes

- [#&#8203;14295](cloudflare/workers-sdk#14295) [`cfd6205`](cloudflare/workers-sdk@cfd6205) Thanks [@&#8203;dario-piotrowicz](https://github.com/dario-piotrowicz)! - Move `unstable_getWorkerNameFromProject` from wrangler to `@cloudflare/workers-utils`

  The `unstable_getWorkerNameFromProject` export has been removed from the `wrangler` package. This function is now available as `getWorkerNameFromProject` (without the `unstable_` prefix) from `@cloudflare/workers-utils`. If you were importing this function from `wrangler`, update your import to use `@cloudflare/workers-utils` instead.

- [#&#8203;14295](cloudflare/workers-sdk#14295) [`cfd6205`](cloudflare/workers-sdk@cfd6205) Thanks [@&#8203;dario-piotrowicz](https://github.com/dario-piotrowicz)! - Remove experimental autoconfig exports

  The experimental autoconfig exports (`experimental_getDetailsForAutoConfig`, `experimental_runAutoConfig`, `experimental_AutoConfigFramework`) have been removed. This logic has been moved to the `@cloudflare/autoconfig` package (without the `experimental_` prefixes since the package itself is pre-v1).

##### Patch Changes

- [#&#8203;14366](cloudflare/workers-sdk#14366) [`c6579d3`](cloudflare/workers-sdk@c6579d3) Thanks [@&#8203;jamesopstad](https://github.com/jamesopstad)! - Resolve relative `cf-worker` entrypoint imports relative to the importing module

  When loading the experimental `cloudflare.config.ts`, a relative entrypoint imported with `import ... with { type: "cf-worker" }` (e.g. `./src/index.ts`) is now anchored to the module where the import is written, rather than being passed through verbatim and later resolved against the top-level config file. This fixes incorrect resolution when the import lives in a file other than the entry config — for example a config that re-exports from a nested file.

  Bare specifiers (such as `@scope/pkg`) and virtual modules (such as `virtual:foo`) are still left unresolved so that consumers can apply their own resolution.

- [#&#8203;14316](cloudflare/workers-sdk#14316) [`444b75e`](cloudflare/workers-sdk@444b75e) Thanks [@&#8203;matingathani](https://github.com/matingathani)! - Prevent `wrangler dev` crash when source-mapping a truncated error chunk

  When a worker logs many errors in quick succession, the stderr chunks received by `wrangler dev` can be truncated mid-stack-frame, leaving a call site with an invalid column number. The source map library throws in that case, which was crashing the wrangler process entirely. The error is now caught and the original (un-source-mapped) text is returned instead.

- [#&#8203;14118](cloudflare/workers-sdk#14118) [`b38823f`](cloudflare/workers-sdk@b38823f) Thanks [@&#8203;aicayzer](https://github.com/aicayzer)! - Fix `Uint8Array` step outputs in local Workflows being persisted with the full backing `ArrayBuffer`

  A `Uint8Array` returned from a Workflows step under `wrangler dev` was serialised together with its full underlying `ArrayBuffer`, causing a raw `SQLITE_TOOBIG` error at view sizes well below the documented 1MiB step-output limit. For example, a 200KB view sliced from an 800KB buffer (a common pattern from `crypto.getRandomValues` or `arr.slice(...)` on a larger pool) would fail. The view's bytes are now copied to a tight buffer before persistence, bringing local behaviour in line with production. Fixes [#&#8203;14101](cloudflare/workers-sdk#14101).

- Updated dependencies \[[`b38823f`](cloudflare/workers-sdk@b38823f)]:
  - miniflare\@&#8203;4.20260617.1

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDYuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI0Ni4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: jquagga-renovate <renovate@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/25
Correct an issue when there are two alerts with the same properties issued at the same time.  Previously we used the event name and issue date; now let's use event id and issue date as a unique identifier.  This corrects a svelte for_each issue when two alerts have the same index. Basically add the upstream index to keep alerts unique.

Co-authored-by: Justin Settle <jus10@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/26
It seems to clamp down in certain cases which isn't desireable.

Co-authored-by: Justin Settle <jus10@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/27
This PR contains the following updates:

| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |

🔧 This Pull Request updates lock files to use the latest dependency versions.

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjI1MS4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: jquagga-renovate <renovate@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/28
Justin and others added 4 commits July 13, 2026 23:50
This PR contains the following updates:

| Package | Type | Update | Change | Pending | OpenSSF |
|---|---|---|---|---|---|
| [@sveltejs/kit](https://svelte.dev) ([source](https://github.com/sveltejs/kit/tree/HEAD/packages/kit)) | devDependencies | patch | [`2.69.1` → `2.69.2`](https://renovatebot.com/diffs/npm/@sveltejs%2fkit/2.69.1/2.69.2) | `2.69.3` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/sveltejs/kit/badge)](https://securityscorecards.dev/viewer/?uri=github.com/sveltejs/kit) |
| [@sveltejs/vite-plugin-svelte](https://github.com/sveltejs/vite-plugin-svelte) ([source](https://github.com/sveltejs/vite-plugin-svelte/tree/HEAD/packages/vite-plugin-svelte)) | devDependencies | minor | [`7.1.2` → `7.2.0`](https://renovatebot.com/diffs/npm/@sveltejs%2fvite-plugin-svelte/7.1.2/7.2.0) |  | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/sveltejs/vite-plugin-svelte/badge)](https://securityscorecards.dev/viewer/?uri=github.com/sveltejs/vite-plugin-svelte) |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | devDependencies | patch | [`25.9.4` → `25.9.5`](https://renovatebot.com/diffs/npm/@types%2fnode/25.9.4/25.9.5) |  | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/DefinitelyTyped/DefinitelyTyped/badge)](https://securityscorecards.dev/viewer/?uri=github.com/DefinitelyTyped/DefinitelyTyped) |
| [svelte-check](https://github.com/sveltejs/language-tools) | devDependencies | patch | [`4.7.1` → `4.7.2`](https://renovatebot.com/diffs/npm/svelte-check/4.7.1/4.7.2) |  | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/sveltejs/language-tools/badge)](https://securityscorecards.dev/viewer/?uri=github.com/sveltejs/language-tools) |
| [typescript](https://www.typescriptlang.org/) ([source](https://github.com/microsoft/TypeScript)) | devDependencies | major | [`6.0.3` → `7.0.2`](https://renovatebot.com/diffs/npm/typescript/6.0.3/7.0.2) |  | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/microsoft/TypeScript/badge)](https://securityscorecards.dev/viewer/?uri=github.com/microsoft/TypeScript) |
| [vite](https://vite.dev) ([source](https://github.com/vitejs/vite/tree/HEAD/packages/vite)) | devDependencies | patch | [`8.1.3` → `8.1.4`](https://renovatebot.com/diffs/npm/vite/8.1.3/8.1.4) |  | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/vitejs/vite/badge)](https://securityscorecards.dev/viewer/?uri=github.com/vitejs/vite) |
| [wrangler](https://github.com/cloudflare/workers-sdk) ([source](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler)) | devDependencies | minor | [`4.107.0` → `4.110.0`](https://renovatebot.com/diffs/npm/wrangler/4.107.0/4.110.0) |  | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/cloudflare/workers-sdk/badge)](https://securityscorecards.dev/viewer/?uri=github.com/cloudflare/workers-sdk) |

---

### Release Notes

<details>
<summary>sveltejs/kit (@&#8203;sveltejs/kit)</summary>

### [`v2.69.2`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2692)

[Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.69.1...@sveltejs/kit@2.69.2)

##### Patch Changes

- fix: set `define` values on `globalThis` when running Vitest ([#&#8203;16246](sveltejs/kit#16246))

</details>

<details>
<summary>sveltejs/vite-plugin-svelte (@&#8203;sveltejs/vite-plugin-svelte)</summary>

### [`v7.2.0`](https://github.com/sveltejs/vite-plugin-svelte/blob/HEAD/packages/vite-plugin-svelte/CHANGELOG.md#720)

[Compare Source](https://github.com/sveltejs/vite-plugin-svelte/compare/@sveltejs/vite-plugin-svelte@7.1.4...@sveltejs/vite-plugin-svelte@7.2.0)

##### Minor Changes

- feat(inspector): add a context menu with current component stack ([#&#8203;1370](sveltejs/vite-plugin-svelte#1370))

### [`v7.1.4`](https://github.com/sveltejs/vite-plugin-svelte/blob/HEAD/packages/vite-plugin-svelte/CHANGELOG.md#714)

[Compare Source](https://github.com/sveltejs/vite-plugin-svelte/compare/@sveltejs/vite-plugin-svelte@7.1.3...@sveltejs/vite-plugin-svelte@7.1.4)

##### Patch Changes

- fix: enforce ltr styles for inspector ([#&#8203;1324](sveltejs/vite-plugin-svelte#1324))

### [`v7.1.3`](https://github.com/sveltejs/vite-plugin-svelte/blob/HEAD/packages/vite-plugin-svelte/CHANGELOG.md#713)

[Compare Source](https://github.com/sveltejs/vite-plugin-svelte/compare/@sveltejs/vite-plugin-svelte@7.1.2...@sveltejs/vite-plugin-svelte@7.1.3)

##### Patch Changes

- fix: ensure the inspector is injected into the client correctly for Vite+ projects ([#&#8203;1355](sveltejs/vite-plugin-svelte#1355))

</details>

<details>
<summary>sveltejs/language-tools (svelte-check)</summary>

### [`v4.7.2`](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.2)

[Compare Source](https://github.com/sveltejs/language-tools/compare/svelte-check@4.7.1...svelte-check@4.7.2)

##### Patch Changes

- fix: resolve tsgo bin path with package.json ([#&#8203;3074](sveltejs/language-tools#3074))

- fix: report tsconfig errors in --tsgo-experimental-api ([#&#8203;3070](sveltejs/language-tools#3070))

</details>

<details>
<summary>microsoft/TypeScript (typescript)</summary>

### [`v7.0.2`](microsoft/TypeScript@v6.0.3...2bd066d)

[Compare Source](microsoft/TypeScript@v6.0.3...2bd066d)

</details>

<details>
<summary>vitejs/vite (vite)</summary>

### [`v8.1.4`](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-814-2026-07-09-small)

[Compare Source](vitejs/vite@v8.1.3...v8.1.4)

##### Features

- **legacy:** prefer oxc as minifier (fix [#&#8203;21973](vitejs/vite#21973)) ([#&#8203;22468](vitejs/vite#22468)) ([ab5dafa](vitejs/vite@ab5dafa))

##### Bug Fixes

- **build:** add workaround for building on stackblitz ([#&#8203;22840](vitejs/vite#22840)) ([575c32c](vitejs/vite@575c32c))
- **build:** keep `import.meta.url` in preload function as-is ([#&#8203;22839](vitejs/vite#22839)) ([f1f90ed](vitejs/vite@f1f90ed))
- **deps:** update all non-major dependencies ([#&#8203;22865](vitejs/vite#22865)) ([d4295a9](vitejs/vite@d4295a9))
- **deps:** update rolldown-related dependencies ([#&#8203;22866](vitejs/vite#22866)) ([7cf07e4](vitejs/vite@7cf07e4))
- **html:** avoid backtracking in import-only check ([#&#8203;22848](vitejs/vite#22848)) ([b5868c0](vitejs/vite@b5868c0))
- **optimizer:** avoid optimizer run for transform request before init ([#&#8203;22852](vitejs/vite#22852)) ([72a5e21](vitejs/vite@72a5e21))
- **ssr:** align named export function call stacktrace column with Node ([#&#8203;22829](vitejs/vite#22829)) ([173a1b6](vitejs/vite@173a1b6))
- strip pure CSS chunk imports when chunkImportMap is enabled ([#&#8203;22841](vitejs/vite#22841)) ([648bd04](vitejs/vite@648bd04))

##### Documentation

- fix incorrect `@default` for `server.cors` ([#&#8203;22859](vitejs/vite#22859)) ([70435b2](vitejs/vite@70435b2))

##### Miscellaneous Chores

- **deps:** update dependency postcss-modules to v9 ([#&#8203;22867](vitejs/vite#22867)) ([a9539d6](vitejs/vite@a9539d6))

##### Code Refactoring

- eliminate ineffectiveDynamicImport warn ([#&#8203;22876](vitejs/vite#22876)) ([ea22fb3](vitejs/vite@ea22fb3))

##### Tests

- avoid warnings ([#&#8203;22851](vitejs/vite#22851)) ([af21ab6](vitejs/vite@af21ab6))

##### Build System

- remove the custom onLog function ([#&#8203;22878](vitejs/vite#22878)) ([2c4a217](vitejs/vite@2c4a217))
- replace deprecated `onwarn` with `onLog` ([#&#8203;22741](vitejs/vite#22741)) ([c581b55](vitejs/vite@c581b55))

</details>

<details>
<summary>cloudflare/workers-sdk (wrangler)</summary>

### [`v4.110.0`](https://github.com/cloudflare/workers-sdk/blob/HEAD/packages/wrangler/CHANGELOG.md#41100)

[Compare Source](https://github.com/cloudflare/workers-sdk/compare/wrangler@4.109.0...wrangler@4.110.0)

##### Minor Changes

- [#&#8203;14591](cloudflare/workers-sdk#14591) [`0283a1f`](cloudflare/workers-sdk@0283a1f) Thanks [@&#8203;dario-piotrowicz](https://github.com/dario-piotrowicz)! - Send npm package dependency metadata with worker uploads

  Wrangler now collects npm package dependency information from the project's `package.json` at deploy and version upload time, and includes it in the upload metadata sent to the Cloudflare API. This enables dependency analytics and future features like vulnerability alerting.

  The collected data includes the package name, the version constraint from `package.json`, and the exact installed version from `node_modules`. Both `dependencies` and `devDependencies` are included, while workspace packages, local packages, and unresolvable packages are excluded. The list is capped at 200 entries per upload.

  To opt out, set `dependencies_instrumentation.enabled` to `false` in your Wrangler configuration file:

  ```json
  {
    "dependencies_instrumentation": {
      "enabled": false
    }
  }
  ```

- [#&#8203;14535](cloudflare/workers-sdk#14535) [`1b965c5`](cloudflare/workers-sdk@1b965c5) Thanks [@&#8203;Naapperas](https://github.com/Naapperas)! - Support dynamic retry delays for Workflow steps in local dev

  A step's `retries.delay` can now be a function that computes the delay per failed attempt, in addition to a static duration. The function receives `{ ctx, error }` and returns a delay (a number of milliseconds or a duration string like `"30 seconds"`), and its result is fed into the configured `backoff`.

  ```js
  await step.do(
    "call flaky API",
    {
      retries: {
        limit: 5,
        backoff: "constant",
        delay: ({ ctx }) => ctx.attempt * 1000,
      },
    },
    async () => {
      /* ... */
    }
  );
  ```

  The function is invoked once per failed attempt with a 5 second timeout. If it throws, times out, or returns an invalid value, the step fails without further retries.

##### Patch Changes

- [#&#8203;14589](cloudflare/workers-sdk#14589) [`7b28392`](cloudflare/workers-sdk@7b28392) Thanks [@&#8203;jamesopstad](https://github.com/jamesopstad)! - Fix runtime type caching when `wrangler dev` auto-regenerates types

  When `dev.generate_types` (or `wrangler dev --types`) regenerated an out-of-date `worker-configuration.d.ts`, the written file omitted the `// Begin runtime types` marker (and the `/* eslint-disable */` header) that `wrangler types` writes. As a result, later runs could not detect the cached runtime types and always regenerated them. The auto-regenerated file now matches `wrangler types` output, restoring the cache.

- Updated dependencies \[[`1b965c5`](cloudflare/workers-sdk@1b965c5)]:
  - miniflare\@&#8203;4.20260708.1

### [`v4.109.0`](https://github.com/cloudflare/workers-sdk/blob/HEAD/packages/wrangler/CHANGELOG.md#41090)

[Compare Source](https://github.com/cloudflare/workers-sdk/compare/wrangler@4.108.0...wrangler@4.109.0)

##### Minor Changes

- [#&#8203;14489](cloudflare/workers-sdk#14489) [`e3f0cd6`](cloudflare/workers-sdk@e3f0cd6) Thanks [@&#8203;edmundhung](https://github.com/edmundhung)! - Add `listDurableObjectIds()` to `createTestHarness` Worker handles

  Tests using `createTestHarness` can now list persisted Durable Object instance IDs for a Durable Object binding. This helps integration tests discover objects created by app behavior without adding test-only endpoints.

- [#&#8203;14465](cloudflare/workers-sdk#14465) [`2fedb1f`](cloudflare/workers-sdk@2fedb1f) Thanks [@&#8203;vaishnav-mk](https://github.com/vaishnav-mk)! - Add rollback support when terminating Workflow instances

  `WorkflowInstance.terminate({ rollback: true })` now runs registered rollback handlers before marking a local Workflow instance as terminated. Wrangler also supports this via `wrangler workflows instances terminate --rollback`, including local mode.

  The rollback option is only sent for terminate operations and is rejected by the Local Explorer API for pause, resume, and restart actions.

- [#&#8203;14511](cloudflare/workers-sdk#14511) [`17d2fc1`](cloudflare/workers-sdk@17d2fc1) Thanks [@&#8203;juleslemee](https://github.com/juleslemee)! - Add `wrangler turnstile widget` commands for managing Turnstile widgets

  You can now create, list, inspect, update, and delete Turnstile widgets from the CLI:

  ```
  wrangler turnstile widget create <name> --domain example.com --mode managed
  wrangler turnstile widget list
  wrangler turnstile widget get <sitekey>
  wrangler turnstile widget update <sitekey> --name "Renamed"
  wrangler turnstile widget delete <sitekey>
  ```

  All five subcommands accept `--json` for machine-readable output (`get` prints a formatted view by default; the rest print a short human summary). `--domain` accepts comma-separated values, e.g. `--domain a.com,b.com`. `delete --json` requires `--skip-confirmation`/`-y` to keep output pipeable.

  `create` prints the sitekey, the secret, and the canonical `challenges.cloudflare.com/turnstile/v0/siteverify` endpoint for backend verification. The hint is backend-agnostic; it doesn't assume Workers. The secret is redacted from `list` and `update` output but remains available via `get` for retrieval later. `delete` prompts for confirmation; pass `--skip-confirmation`/`-y` to bypass.

  The OAuth flow now requests the `challenge-widgets.write` scope (the existing Bach-derived scope for Turnstile widget CRUD). Existing OAuth sessions need to run `wrangler login` again to pick it up. API token users need a token with the `Account.Turnstile:Edit` permission.

##### Patch Changes

- [#&#8203;14596](cloudflare/workers-sdk#14596) [`8511ddf`](cloudflare/workers-sdk@8511ddf) Thanks [@&#8203;dependabot](https://github.com/apps/dependabot)! - Update dependencies of "miniflare", "wrangler"

  The following dependency versions have been updated:

  | Dependency                                                               | From          | To            |
  | ------------------------------------------------------------------------ | ------------- | ------------- |
  | workerd                                                                  | 1.20260706.1  | 1.20260708.1  |
  | [@&#8203;cloudflare/workers-types](https://github.com/cloudflare/workers-types) | ^5.20260706.1 | ^5.20260708.1 |

- [#&#8203;14604](cloudflare/workers-sdk#14604) [`9f74a5f`](cloudflare/workers-sdk@9f74a5f) Thanks [@&#8203;vaishnav-mk](https://github.com/vaishnav-mk)! - Improve the deploy error for cron-triggered Workflows on free plans

  Wrangler now explains that Workflow schedules require a paid Workers plan instead of showing only the generic Workflows API request failure.

- [#&#8203;14616](cloudflare/workers-sdk#14616) [`c782e2a`](cloudflare/workers-sdk@c782e2a) Thanks [@&#8203;penalosa](https://github.com/penalosa)! - Fix `wrangler deploy` aborting in CI for autoconfigured projects

  A recent change guarded non-interactive deploys against overwriting a same-named Worker whenever there was no config file naming it. This was too broad: a plain `wrangler deploy` run in CI without a config file (for example an autoconfigured project whose generated config PR has not been merged) would fail with "A Worker named ... already exists in your account", even though re-deploying to that Worker is the intended behaviour.

  The guard is now limited to the Pages-to-Workers delegation, where the target name is a Pages project name that must not clobber an unrelated Worker. Plain deploys once again deploy normally.

- Updated dependencies \[[`e3f0cd6`](cloudflare/workers-sdk@e3f0cd6), [`8511ddf`](cloudflare/workers-sdk@8511ddf), [`2fedb1f`](cloudflare/workers-sdk@2fedb1f)]:
  - miniflare\@&#8203;4.20260708.0

### [`v4.108.0`](https://github.com/cloudflare/workers-sdk/blob/HEAD/packages/wrangler/CHANGELOG.md#41080)

[Compare Source](https://github.com/cloudflare/workers-sdk/compare/wrangler@4.107.1...wrangler@4.108.0)

##### Minor Changes

- [#&#8203;14312](cloudflare/workers-sdk#14312) [`54f74b8`](cloudflare/workers-sdk@54f74b8) Thanks [@&#8203;MattieTK](https://github.com/MattieTK)! - Delegate agent-driven static Pages deploys to Workers

  When `wrangler pages deploy` or `wrangler pages project create` is run by an AI coding agent against a brand-new, purely static project, Wrangler now delegates it to Workers static assets (using autoconfig) instead of Cloudflare Pages. Accounts that already have Cloudflare Pages projects, non-agent (human) sessions, and projects using Pages features that can't be carried across to Workers (Pages Functions, a `_worker.js`, or a `_routes.json` file) are unaffected and continue to use Pages. Passing `--force` to either command opts out of the delegation and deploys to Pages directly. Once the Workers deploy starts it is not silently swapped back to Pages: if it fails, the error is surfaced and the `--force` opt-out is suggested.

##### Patch Changes

- [#&#8203;14567](cloudflare/workers-sdk#14567) [`0852346`](cloudflare/workers-sdk@0852346) Thanks [@&#8203;dependabot](https://github.com/apps/dependabot)! - Update dependencies of "miniflare", "wrangler", "create-cloudflare"

  The following dependency versions have been updated:

  | Dependency                                                               | From         | To           |
  | ------------------------------------------------------------------------ | ------------ | ------------ |
  | workerd                                                                  | 1.20260702.1 | 1.20260706.1 |
  | [@&#8203;cloudflare/workers-types](https://github.com/cloudflare/workers-types) | 4.20260702.1 | 5.20260706.1 |

- [#&#8203;14312](cloudflare/workers-sdk#14312) [`54f74b8`](cloudflare/workers-sdk@54f74b8) Thanks [@&#8203;MattieTK](https://github.com/MattieTK)! - Avoid silently overwriting an existing Worker during non-interactive deploys that cannot prove they own the name

  A non-interactive deploy (an agent, CI, or the agent-delegated `wrangler pages deploy`) has no way to prompt before overwriting a Worker, so it now stops if the target name is already taken and this run cannot show it owns that Worker. This applies when there is no Wrangler configuration file naming the Worker and either the name was generated automatically or the deploy is the Pages-to-Workers delegation (where the name carried across is a Pages project name, not proof of Worker ownership). The check reuses the service metadata the deploy already fetches, so it adds no extra API calls.

  Deploys are unaffected when a configuration file names the Worker (so repeat deployments continue to update it), and interactive deploys keep their existing confirmation flow. To update an existing Worker in one of the guarded cases, add a Wrangler configuration file naming it, or deploy under a different name.

- Updated dependencies \[[`0852346`](cloudflare/workers-sdk@0852346)]:
  - miniflare\@&#8203;4.20260706.0

### [`v4.107.1`](https://github.com/cloudflare/workers-sdk/blob/HEAD/packages/wrangler/CHANGELOG.md#41071)

[Compare Source](https://github.com/cloudflare/workers-sdk/compare/wrangler@4.107.0...wrangler@4.107.1)

##### Patch Changes

- [#&#8203;14514](cloudflare/workers-sdk#14514) [`d88555e`](cloudflare/workers-sdk@d88555e) Thanks [@&#8203;dependabot](https://github.com/apps/dependabot)! - Update dependencies of "miniflare", "wrangler"

  The following dependency versions have been updated:

  | Dependency | From         | To           |
  | ---------- | ------------ | ------------ |
  | workerd    | 1.20260701.1 | 1.20260702.1 |

- [#&#8203;14564](cloudflare/workers-sdk#14564) [`5fd8bee`](cloudflare/workers-sdk@5fd8bee) Thanks [@&#8203;jibin7jose](https://github.com/jibin7jose)! - Fix an issue where `wrangler dev` would not override config `vars` with values from `.dev.vars` during local development when the `secrets` field was defined in the configuration file.

- [#&#8203;14332](cloudflare/workers-sdk#14332) [`5d9990e`](cloudflare/workers-sdk@5d9990e) Thanks [@&#8203;Divkix](https://github.com/Divkix)! - Fix misleading error guidance when deploying a new Worker with `secrets.required`

  When a Worker declares `secrets.required` and has never been deployed before, the previous error message suggested running `wrangler secret put <NAME>`, which doesn't work because the Worker doesn't exist yet.

  The one path that does work — `wrangler deploy --secrets-file <path>` — was not mentioned anywhere in the error output.

  The pre-deploy error now explains that `wrangler secret put` cannot be used for a new Worker, and directs users to the `--secrets-file` flag instead. The post-deploy error for existing Workers now also mentions `--secrets-file` alongside `wrangler secret put`.

- [#&#8203;14507](cloudflare/workers-sdk#14507) [`bf49a41`](cloudflare/workers-sdk@bf49a41) Thanks [@&#8203;joey727](https://github.com/joey727)! - Fix a potential crash when displaying certain CLI output

  Previously, some CLI output with no content lines could cause a crash. This is now handled correctly.

- [#&#8203;14492](cloudflare/workers-sdk#14492) [`1ac96a1`](cloudflare/workers-sdk@1ac96a1) Thanks [@&#8203;penalosa](https://github.com/penalosa)! - Replace the CommonJS `xdg-app-paths` dependency with a vendored pure-ESM implementation

  `xdg-app-paths` (and its `xdg-portable`/`os-paths` dependencies) are CommonJS only, which caused "Dynamic require of 'path' is not supported" errors when the surrounding code was bundled to ESM. The global config/cache directory resolution is now provided by a small, dependency-free pure-ESM module in `@cloudflare/workers-utils` that reproduces the previous path resolution exactly (verified against the real package in unit tests), so existing config and credential locations are unchanged. This also drops the transitive `fsevents` optional dependency that `xdg-app-paths` pulled in.

  Miniflare and create-cloudflare now consume the shared helpers from `@cloudflare/workers-utils` instead of maintaining their own copies, importing node-only leaf entry points (`@cloudflare/workers-utils/fs-helpers`, `@cloudflare/workers-utils/global-wrangler-config-path`) where ESM bundling is required.

- [#&#8203;14572](cloudflare/workers-sdk#14572) [`f416dd9`](cloudflare/workers-sdk@f416dd9) Thanks [@&#8203;petebacondarwin](https://github.com/petebacondarwin)! - Key local rate limit counters by `namespace_id` instead of binding name

  `wrangler dev` and Miniflare previously tracked each rate limit binding's counter by its binding name, so two bindings that referenced the same `namespace_id` were treated as separate limiters. Counters are now keyed by `namespace_id`, matching production: bindings that share a `namespace_id` share a limit, while distinct namespaces stay isolated. This also re-enables rate limit bindings in multiworker `wrangler dev` sessions, where they were previously stripped from secondary Workers to avoid a startup crash.

- [#&#8203;14570](cloudflare/workers-sdk#14570) [`1ca8d8f`](cloudflare/workers-sdk@1ca8d8f) Thanks [@&#8203;penalosa](https://github.com/penalosa)! - Upgrade `signal-exit` from v3 to v4

  The bundled `signal-exit` dependency was CJS-only. Upgrading to v4 (which ships a dual ESM/CJS build) unblocks ESM output. Exit-cleanup behaviour is unchanged, though v4 no longer registers handlers for a few signals that are no longer supported by the OS (`SIGUNUSED` on Linux; `SIGABRT`/`SIGALRM` on Windows).

- [#&#8203;14561](cloudflare/workers-sdk#14561) [`b973ed3`](cloudflare/workers-sdk@b973ed3) Thanks [@&#8203;martijnwalraven](https://github.com/martijnwalraven)! - Emit an error event for watch-mode rebuild failures in `unstable_startWorker`

  Initial build failures already dispatch an error event (surfaced as `buildFailed` on the DevEnv bus), but watch-mode rebuild failures were only logged from inside the esbuild plugin, so programmatic consumers had no way to observe them while dev kept serving the previous bundle. Rebuild failures now route through the same error path as initial-build failures: terminal output is unchanged and `buildFailed` fires symmetrically.

- Updated dependencies \[[`e7e5780`](cloudflare/workers-sdk@e7e5780), [`d88555e`](cloudflare/workers-sdk@d88555e), [`1ac96a1`](cloudflare/workers-sdk@1ac96a1), [`f416dd9`](cloudflare/workers-sdk@f416dd9), [`16fbf81`](cloudflare/workers-sdk@16fbf81)]:
  - miniflare\@&#8203;4.20260702.0

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjAuMyIsInVwZGF0ZWRJblZlciI6IjQzLjI2MC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: jquagga-renovate <renovate@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/31
This PR contains the following updates:

| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |

🔧 This Pull Request updates lock files to use the latest dependency versions.

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNzIuMCIsInVwZGF0ZWRJblZlciI6IjQzLjI3Mi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: jquagga-renovate <renovate@partlycloudy.org>
Reviewed-on: https://codeberg.org/jquagga/swa/pulls/34
@jquagga
jquagga merged commit f153806 into main Aug 2, 2026
1 check passed
@jquagga
jquagga deleted the reintegrate branch August 2, 2026 14:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant