Skip to content

[pull] main from TryGhost:main#1033

Merged
pull[bot] merged 12 commits into
code:mainfrom
TryGhost:main
Apr 6, 2026
Merged

[pull] main from TryGhost:main#1033
pull[bot] merged 12 commits into
code:mainfrom
TryGhost:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 6, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

renovate Bot and others added 4 commits April 6, 2026 07:26
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@aws-sdk/client-s3](https://redirect.github.com/aws/aws-sdk-js-v3/tree/main/clients/client-s3)
([source](https://redirect.github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3))
| [`3.864.0` →
`3.1023.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-s3/3.864.0/3.1023.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@aws-sdk%2fclient-s3/3.1023.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@aws-sdk%2fclient-s3/3.864.0/3.1023.0?slim=true)
|

---

### Release Notes

<details>
<summary>aws/aws-sdk-js-v3 (@&#8203;aws-sdk/client-s3)</summary>

###
[`v3.1023.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310230-2026-04-02)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1022.0...v3.1023.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1022.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310220-2026-04-01)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1021.0...v3.1022.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1021.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310210-2026-03-31)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1020.0...v3.1021.0)

##### Bug Fixes

- **codegen:** sync for adaptive retry throttling detection fix
([#&#8203;7905](https://redirect.github.com/aws/aws-sdk-js-v3/issues/7905))
([03f108d](https://redirect.github.com/aws/aws-sdk-js-v3/commit/03f108d08c37fcde9de0a62c29887458e980d84e))

##### Features

- **client-s3:** Add Bucket Metrics configuration support to directory
buckets
([67ff7cc](https://redirect.github.com/aws/aws-sdk-js-v3/commit/67ff7cc5dd608937694b7d1e10aceef09e611011))

###
[`v3.1020.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310200-2026-03-30)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1019.0...v3.1020.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1019.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310190-2026-03-27)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1018.0...v3.1019.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1018.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310180-2026-03-26)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1017.0...v3.1018.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1017.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310170-2026-03-25)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1016.0...v3.1017.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1016.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310160-2026-03-24)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1015.0...v3.1016.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1015.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310150-2026-03-23)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1014.0...v3.1015.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1014.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310140-2026-03-20)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1013.0...v3.1014.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1013.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310130-2026-03-19)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1012.0...v3.1013.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1012.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310120-2026-03-18)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1011.0...v3.1012.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1011.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310110-2026-03-17)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1010.0...v3.1011.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1010.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310100-2026-03-16)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1009.0...v3.1010.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1009.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310090-2026-03-13)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1008.0...v3.1009.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1008.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310080-2026-03-12)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1007.0...v3.1008.0)

##### Features

- **client-s3:** Adds support for account regional namespaces for
general purpose buckets. The account regional namespace is a reserved
subdivision of the global bucket namespace where only your account can
create general purpose buckets.
([1791028](https://redirect.github.com/aws/aws-sdk-js-v3/commit/179102877b8b119d9662e3bcb791ebafca57de2d))

###
[`v3.1007.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310070-2026-03-11)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1006.0...v3.1007.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1006.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310060-2026-03-10)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1005.0...v3.1006.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1005.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310050-2026-03-09)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1004.0...v3.1005.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1004.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310040-2026-03-06)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1003.0...v3.1004.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1003.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310030-2026-03-05)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1002.0...v3.1003.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1002.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310020-2026-03-04)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1001.0...v3.1002.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1001.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310010-2026-03-03)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.1000.0...v3.1001.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.1000.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#310000-2026-02-27)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.999.0...v3.1000.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.999.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39990-2026-02-26)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.998.0...v3.999.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.998.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39980-2026-02-25)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.997.0...v3.998.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.997.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39970-2026-02-24)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.996.0...v3.997.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.996.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39960-2026-02-23)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.995.0...v3.996.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.995.0`](https://redirect.github.com/aws/aws-sdk-js-v3/releases/tag/v3.995.0)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.994.0...v3.995.0)

##### 3.995.0(2026-02-20)

##### Chores

- **codegen:** bump codegen version to 0.45.0
([#&#8203;7752](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7752))
([3c93f8ab](https://redirect.github.com/aws/aws-sdk-js-v3/commit/3c93f8ab7a5baa0ad56bc06767b38132490221de))
- **util-user-agent-node:** populate metadata of alternative JavaScript
runtimes
([#&#8203;7754](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7754))
([79d2c235](https://redirect.github.com/aws/aws-sdk-js-v3/commit/79d2c235fc32a54fd088949cdb63afcd7fd8ed60))
- make PR template checklist easier to edit
([#&#8203;7753](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7753))
([be25ea35](https://redirect.github.com/aws/aws-sdk-js-v3/commit/be25ea35e3e48a216d20cd66beb3537d36d8a258))

##### New Features

- **clients:** update client endpoints as of 2026-02-20
([aa23f1e0](https://redirect.github.com/aws/aws-sdk-js-v3/commit/aa23f1e0e151ac3e2ce430b8b847ee196d78f457))
- **client-appstream:** Adding new attribute to disable IMDS v1 APIs for
fleet, Image Builder and AppBlockBuilder instances.
([72021889](https://redirect.github.com/aws/aws-sdk-js-v3/commit/720218892a2c5eae9c5157e383a253d02a5b3959))
- **client-sagemaker-runtime:** Added support for S3OutputPathExtension
and Filename parameters to the InvokeEndpointAsync API to allow users to
customize the S3 output path and file name for async inference response
payloads.
([edac3d73](https://redirect.github.com/aws/aws-sdk-js-v3/commit/edac3d730ce23289651582209425f567912be4fd))
- **client-trustedadvisor:** Adding a new enum attribute(statusReason)
to TrustedAdvisorAPI response. This attribute explains reasoning behind
check status for certain specific scenarios.
([2d4a1eb4](https://redirect.github.com/aws/aws-sdk-js-v3/commit/2d4a1eb4804aafa8b4581783e0db0dcb3eb61e8d))
- **client-ecs:** Migrated to Smithy. No functional changes
([20258a5f](https://redirect.github.com/aws/aws-sdk-js-v3/commit/20258a5ffedcaffdf80b85eeb66d5e00057de37d))
- **client-ssm:** Add support for AssociationDispatchAssumeRole in AWS
SSM State Manager.
([83535fc8](https://redirect.github.com/aws/aws-sdk-js-v3/commit/83535fc82c40d5871dea60dc4374527d6a2ff5be))
- **client-signer-data:** This release introduces AWS Signer Data Plane
SDK client supporting GetRevocationStatus API. The new client enables
AWS PrivateLink connectivity with both private DNS and VPC endpoint
URLs.
([b03b059d](https://redirect.github.com/aws/aws-sdk-js-v3/commit/b03b059db8d788eed82aa57f354adc89d06767c7))

***

For list of updated packages, view **updated-packages.md** in
**assets-3.995.0.zip**

###
[`v3.994.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39940-2026-02-19)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.993.0...v3.994.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.993.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39930-2026-02-18)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.992.0...v3.993.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.992.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39920-2026-02-17)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.991.0...v3.992.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.991.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39910-2026-02-16)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.990.0...v3.991.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.990.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39900-2026-02-13)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.989.0...v3.990.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.989.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39890-2026-02-12)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.988.0...v3.989.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.988.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39880-2026-02-11)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.987.0...v3.988.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.987.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39870-2026-02-10)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.986.0...v3.987.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.986.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39860-2026-02-09)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.985.0...v3.986.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.985.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39850-2026-02-06)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.984.0...v3.985.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.984.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39840-2026-02-05)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.983.0...v3.984.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.983.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39830-2026-02-04)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.982.0...v3.983.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.982.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39820-2026-02-03)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.981.0...v3.982.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.981.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39810-2026-02-02)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.980.0...v3.981.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.980.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39800-2026-01-30)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.978.0...v3.980.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.978.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39780-2026-01-28)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.975.0...v3.978.0)

##### Features

- **client-s3:** Adds support for the UpdateObjectEncryption API to
change the server-side encryption type of objects in general purpose
buckets.
([b56cea5](https://redirect.github.com/aws/aws-sdk-js-v3/commit/b56cea5532c5b36fcc5e88c8f5c5c8b67a0e4a12))

###
[`v3.975.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39750-2026-01-23)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.974.0...v3.975.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.974.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39740-2026-01-22)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.972.0...v3.974.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.972.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39720-2026-01-20)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.971.0...v3.972.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.971.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39710-2026-01-16)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.970.0...v3.971.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.970.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39700-2026-01-15)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.969.0...v3.970.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.969.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39690-2026-01-14)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.968.0...v3.969.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.968.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39680-2026-01-13)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.967.0...v3.968.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.967.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39670-2026-01-12)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.966.0...v3.967.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.966.0`](https://redirect.github.com/aws/aws-sdk-js-v3/releases/tag/v3.966.0)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.965.0...v3.966.0)

##### 3.966.0(2026-01-09)

##### Chores

- **codegen:**
- release smithy-typescript-aws-codegen v0.41.1
([#&#8203;7633](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7633))
([f5048a66](https://redirect.github.com/aws/aws-sdk-js-v3/commit/f5048a6665591d98e2c21c9ef9cd179a904006dd))
- set rimraf to 5.0.10
([#&#8203;7630](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7630))
([367465e7](https://redirect.github.com/aws/aws-sdk-js-v3/commit/367465e7e697565e12e5bef91eeb060f0b622f86))
- **util-arn-parser:** mark arn parser internal
([#&#8203;7629](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7629))
([7baf559c](https://redirect.github.com/aws/aws-sdk-js-v3/commit/7baf559cecaca0c6d500e4c8a375e8ac054968d2))
- **scripts:** script to get changed package list
([#&#8203;7628](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7628))
([a470a0e1](https://redirect.github.com/aws/aws-sdk-js-v3/commit/a470a0e1de7c087ae7aced875b4db31538fabcad))

##### New Features

- **clients:** update client endpoints as of 2026-01-09
([060fef34](https://redirect.github.com/aws/aws-sdk-js-v3/commit/060fef3420727847ae6b20758ac861aec5812597))
- **client-medialive:** MediaPackage v2 output groups in MediaLive can
now accept one additional destination for single pipeline channels and
up to two additional destinations for standard channels. MediaPackage v2
destinations now support sending to cross region MediaPackage channels.
([ce039310](https://redirect.github.com/aws/aws-sdk-js-v3/commit/ce039310db8a23f0a23c6632ad1046ef977ed04e))
- **client-bedrock-agentcore-control:** Adds optional field "view" to
GetMemory API input to give customers control over whether CMK encrypted
data such as strategy decryption or override prompts is returned or not.
([c68a59e8](https://redirect.github.com/aws/aws-sdk-js-v3/commit/c68a59e81cb8413535a9a4fa8160627897f20c92))
- **client-transcribe:** Adds waiters to Amazon Transcribe.
([93eb18c5](https://redirect.github.com/aws/aws-sdk-js-v3/commit/93eb18c5dabe2062d6a8c4422382e830874953bf))
- **client-glue:** Adding MaterializedViews task run APIs
([d430d646](https://redirect.github.com/aws/aws-sdk-js-v3/commit/d430d646041c31a9c79377cfd4257ee74b4f5bd8))
- **client-cloudfront:** Added EntityLimitExceeded exception handling to
the following API operations AssociateDistributionWebACL,
AssociateDistributionTenantWebACL, UpdateDistributionWithStagingConfig
([858e6e8b](https://redirect.github.com/aws/aws-sdk-js-v3/commit/858e6e8b74ecb701a7ee3ad01dc3fd3171f779db))

***

For list of updated packages, view **updated-packages.md** in
**assets-3.966.0.zip**

###
[`v3.965.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39650-2026-01-07)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.964.0...v3.965.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.964.0`](https://redirect.github.com/aws/aws-sdk-js-v3/releases/tag/v3.964.0)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.962.0...v3.964.0)

##### 3.964.0(2026-01-06)

##### Chores

- **core:** ensure package build order
([#&#8203;7623](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7623))
([3fa6ead6](https://redirect.github.com/aws/aws-sdk-js-v3/commit/3fa6ead66c30328f402461afda44f8ea769d0b79))

##### New Features

- **client-cost-explorer:** This release updates existing reservation
recommendations API to support deployment model.
([c9e728da](https://redirect.github.com/aws/aws-sdk-js-v3/commit/c9e728da65fc98ee3da8d145c0c39a37f327f7dd))
- **client-emr-serverless:** Added support for enabling disk encryption
using customer managed AWS KMS keys to CreateApplication,
UpdateApplication and StartJobRun APIs.
([9d932c38](https://redirect.github.com/aws/aws-sdk-js-v3/commit/9d932c38fdfacf45989a4bb733e10d9dddb91824))

##### Bug Fixes

- **core:** make CREDENTIALS\_CODE mutually exclusive with other
credential sources
([#&#8203;7615](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7615))
([05e017ef](https://redirect.github.com/aws/aws-sdk-js-v3/commit/05e017ef8879b33a3fbe8a27df7a5b662831178d))

***

For list of updated packages, view **updated-packages.md** in
**assets-3.964.0.zip**

###
[`v3.962.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39620-2026-01-02)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.958.0...v3.962.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.958.0`](https://redirect.github.com/aws/aws-sdk-js-v3/releases/tag/v3.958.0)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.957.0...v3.958.0)

##### 3.958.0(2025-12-23)

##### Chores

- **client-elastic-transcoder:** remove elastic transcoder due to
service shutdown
([#&#8203;7602](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7602))
([4381b2dc](https://redirect.github.com/aws/aws-sdk-js-v3/commit/4381b2dcf13e5f7f49f1f4318b77e59a032f0ab4))
- **build:** generate clients without formatting prettier/eslint
([#&#8203;7599](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7599))
([da9c913a](https://redirect.github.com/aws/aws-sdk-js-v3/commit/da9c913a3235c270b3d0b978f5971e70bb1484a9))
- **codegen:** bump codegen version to 0.40.0
([#&#8203;7601](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7601))
([4dc2bcb7](https://redirect.github.com/aws/aws-sdk-js-v3/commit/4dc2bcb7a46a589ee647816ec4bf2136fd6ee634))

##### New Features

- **clients:** update client endpoints as of 2025-12-23
([f5aa61b9](https://redirect.github.com/aws/aws-sdk-js-v3/commit/f5aa61b92c6b1b0f597706be5c47fc96c66e0021))
- **client-s3:** Add additional validation to Outpost bucket names.
([2f30457f](https://redirect.github.com/aws/aws-sdk-js-v3/commit/2f30457fc7256d5fbdaaa2ab07bf77dbdffab0e2))
- **client-geo-places:** Adds support for InferredSecondaryAddress place
type, Designator in SecondaryAddressComponent and Heading in
ReverseGeocode.
([1c6374da](https://redirect.github.com/aws/aws-sdk-js-v3/commit/1c6374dac803c99b13e8b16025bd03aa3a57282a))
- **client-pinpoint-sms-voice-v2:** This release adds support for the
Registration Reviewer feature, which provides generative AI feedback on
a phone number or sender ID registration to ensure completeness before
sending to downstream (carrier) review.
([ac0c236b](https://redirect.github.com/aws/aws-sdk-js-v3/commit/ac0c236ba38cd993193c80298819149e4b8a82a5))

##### Tests

- **client-sqs:** increase timeout from 5s to 60s
([#&#8203;7603](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7603))
([c140520a](https://redirect.github.com/aws/aws-sdk-js-v3/commit/c140520a684920c4e8ad289c41e74c412f743e46))

***

For list of updated packages, view **updated-packages.md** in
**assets-3.958.0.zip**

###
[`v3.957.0`](https://redirect.github.com/aws/aws-sdk-js-v3/releases/tag/v3.957.0)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.956.0...v3.957.0)

##### 3.957.0(2025-12-22)

##### Chores

- move crc64NvmeCrtContainer to
'[@&#8203;aws-sdk/crc64-nvme](https://redirect.github.com/aws-sdk/crc64-nvme)'
([#&#8203;7600](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7600))
([69196b71](https://redirect.github.com/aws/aws-sdk-js-v3/commit/69196b713ac03a8e888f2d8f41ca208937d454ed))
- move e2e tests from cucumber to vitest
([#&#8203;7539](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7539))
([561b8900](https://redirect.github.com/aws/aws-sdk-js-v3/commit/561b8900a8034e734eac0a610eac11ca8f818209))
- **build:** replace lerna partial-tree build with turbo
([#&#8203;7597](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7597))
([04bdba3e](https://redirect.github.com/aws/aws-sdk-js-v3/commit/04bdba3e20af1357fa76f12c3095666f94b12017))

##### Documentation Changes

- **client-pcs:** Change API Reference Documentation for default Mode in
Accounting and SlurmRest
([966f60ac](https://redirect.github.com/aws/aws-sdk-js-v3/commit/966f60ac5a015f005d8758c8ddcc24f690f44cbd))

##### New Features

- **client-config-service:** Added supported resourceTypes for Config
from July to November 2025
([2c7dab27](https://redirect.github.com/aws/aws-sdk-js-v3/commit/2c7dab27221af3ac083ace712056d3d369652f60))
- **client-ec2:** Adds support for linkedGroupId on the
CreatePlacementGroup and DescribePlacementGroups APIs. The linkedGroupId
parameter is reserved for future use.
([a492f734](https://redirect.github.com/aws/aws-sdk-js-v3/commit/a492f73438968bb208451503d32d196d2ff65a26))
- **client-guardduty:** Make accountIds a required field in
GetRemainingFreeTrialDays API to reflect service behavior.
([53e59c65](https://redirect.github.com/aws/aws-sdk-js-v3/commit/53e59c65fa7408042eb0427ca9804b4498006c59))
- **middleware-flexible-checksums:** use CRC64NVME JS implementation if
CRT is not available
([#&#8203;7595](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7595))
([4c6ad409](https://redirect.github.com/aws/aws-sdk-js-v3/commit/4c6ad409225bc9b8db2d024f6de7136d64117bcb))

##### Bug Fixes

- **middleware-flexible-checksums:** advise user on
InvalidChunkSizeError
([#&#8203;7598](https://redirect.github.com/aws/aws-sdk-js-v3/pull/7598))
([6fa3b4cc](https://redirect.github.com/aws/aws-sdk-js-v3/commit/6fa3b4ccc643ebc6ade6146e5326a7d89bad1185))

***

For list of updated packages, view **updated-packages.md** in
**assets-3.957.0.zip**

###
[`v3.956.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39560-2025-12-19)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.955.0...v3.956.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.955.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39550-2025-12-18)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.954.0...v3.955.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.954.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39540-2025-12-17)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.953.0...v3.954.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.953.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39530-2025-12-16)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.952.0...v3.953.0)

##### Features

- **clients:** allow protocol selection by class constructor
([#&#8203;7568](https://redirect.github.com/aws/aws-sdk-js-v3/issues/7568))
([5c5fd2e](https://redirect.github.com/aws/aws-sdk-js-v3/commit/5c5fd2e627109cbcdb40ecf0947a5b638d517101))

###
[`v3.952.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39520-2025-12-15)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.948.0...v3.952.0)

##### Features

- **client-s3:** This release adds support for the new optional field
'LifecycleExpirationDate' in S3 Inventory configurations.
([55955e0](https://redirect.github.com/aws/aws-sdk-js-v3/commit/55955e018c9276e55a3479debe28593103dac5f4))

###
[`v3.948.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39480-2025-12-09)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.947.0...v3.948.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.947.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39470-2025-12-08)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.946.0...v3.947.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.946.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39460-2025-12-05)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.943.0...v3.946.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.943.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39430-2025-12-02)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.940.0...v3.943.0)

##### Features

- **client-s3:** New S3 Storage Class FSX\_ONTAP
([56ffa40](https://redirect.github.com/aws/aws-sdk-js-v3/commit/56ffa40ae180847a5e8d2e37d96356e6eaf38c72))

###
[`v3.940.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39400-2025-11-25)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.939.0...v3.940.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.939.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39390-2025-11-24)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.937.0...v3.939.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.937.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39370-2025-11-20)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.936.0...v3.937.0)

##### Features

- **client-s3:** Enable / Disable ABAC on a general purpose bucket.
([9816b26](https://redirect.github.com/aws/aws-sdk-js-v3/commit/9816b260680314d8883fc56e59e015fdd906f8b8))

###
[`v3.936.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39360-2025-11-19)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.935.0...v3.936.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.935.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39350-2025-11-19)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.934.0...v3.935.0)

##### Features

- **client-s3:** Adds support for blocking SSE-C writes to general
purpose buckets.
([cee2e72](https://redirect.github.com/aws/aws-sdk-js-v3/commit/cee2e72ffbcafb34a5283c9f4779c58c02a0be59))

###
[`v3.934.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39340-2025-11-18)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.933.0...v3.934.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.933.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39330-2025-11-17)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.932.0...v3.933.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.932.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39320-2025-11-14)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.931.0...v3.932.0)

##### Bug Fixes

- **core/protocols:** decorate service exceptions with unmodeled fields
([#&#8203;7504](https://redirect.github.com/aws/aws-sdk-js-v3/issues/7504))
([6de803d](https://redirect.github.com/aws/aws-sdk-js-v3/commit/6de803d7a3ed4832b557d334b7eadedd7ca651fa))

###
[`v3.931.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39310-2025-11-13)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.930.0...v3.931.0)

##### Features

- **clients:** use schema-serde in AWS REST XML clients
([#&#8203;7499](https://redirect.github.com/aws/aws-sdk-js-v3/issues/7499))
([f806a2b](https://redirect.github.com/aws/aws-sdk-js-v3/commit/f806a2b9eded9f82d488f3d81db36b9cba9da220))

###
[`v3.930.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39300-2025-11-12)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.929.0...v3.930.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.929.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39290-2025-11-11)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.928.0...v3.929.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.928.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39280-2025-11-10)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.927.0...v3.928.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.927.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39270-2025-11-07)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.926.0...v3.927.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.926.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39260-2025-11-06)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.925.0...v3.926.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.925.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39250-2025-11-05)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.922.0...v3.925.0)

##### Features

- **client-s3:** Launch IPv6 dual-stack support for S3 Express
([a6a3e29](https://redirect.github.com/aws/aws-sdk-js-v3/commit/a6a3e2980d299734956f0bccc69c094a8757549f))

###
[`v3.922.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39220-2025-10-31)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.921.0...v3.922.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.921.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39210-2025-10-30)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.920.0...v3.921.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.920.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39200-2025-10-29)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.919.0...v3.920.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.919.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39190-2025-10-28)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.918.0...v3.919.0)

##### Features

- **client-s3:** Amazon Simple Storage Service / Features: Add
conditional writes in CopyObject on destination key to prevent
unintended object modifications.
([2533edc](https://redirect.github.com/aws/aws-sdk-js-v3/commit/2533edce830d1f5070a44d4b99135a2146c5d2a6))

###
[`v3.918.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39180-2025-10-27)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.917.0...v3.918.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.917.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39170-2025-10-24)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.916.0...v3.917.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.916.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39160-2025-10-23)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.914.0...v3.916.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.914.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39140-2025-10-21)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.913.0...v3.914.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.913.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39130-2025-10-17)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.911.0...v3.913.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.911.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39110-2025-10-15)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.910.0...v3.911.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.910.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39100-2025-10-14)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.908.0...v3.910.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.908.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39080-2025-10-10)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.907.0...v3.908.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.907.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39070-2025-10-09)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.906.0...v3.907.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.906.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39060-2025-10-08)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.901.0...v3.906.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.901.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#39010-2025-10-01)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.899.0...v3.901.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.899.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38990-2025-09-29)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.896.0...v3.899.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.896.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38960-2025-09-24)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.895.0...v3.896.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.895.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38950-2025-09-23)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.894.0...v3.895.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.894.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38940-2025-09-22)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.893.0...v3.894.0)

##### Features

- **xml-builder:** use DOMParser for browser XML parsing
([#&#8203;7347](https://redirect.github.com/aws/aws-sdk-js-v3/issues/7347))
([af40250](https://redirect.github.com/aws/aws-sdk-js-v3/commit/af4025005e5c251d64b5cf3840d24e48d7ae1d91))

###
[`v3.893.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38930-2025-09-19)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.892.0...v3.893.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.892.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38920-2025-09-18)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.891.0...v3.892.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.891.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38910-2025-09-17)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.890.0...v3.891.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.890.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38900-2025-09-16)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.888.0...v3.890.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.888.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38880-2025-09-12)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.887.0...v3.888.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.887.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38870-2025-09-11)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.886.0...v3.887.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.886.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38860-2025-09-10)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.884.0...v3.886.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.884.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38840-2025-09-08)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.883.0...v3.884.0)

##### Features

- **client-s3:** This release includes backward compatibility work on
the "Expires" parameter.
([11d390e](https://redirect.github.com/aws/aws-sdk-js-v3/commit/11d390e1c84b7ac00d3b27fae7dda67404ff7818))

###
[`v3.883.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38830-2025-09-05)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.882.0...v3.883.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.882.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38820-2025-09-04)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.879.0...v3.882.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.879.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38790-2025-08-29)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.878.0...v3.879.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.878.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38780-2025-08-28)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.876.0...v3.878.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.876.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38760-2025-08-26)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.873.0...v3.876.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.873.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38730-2025-08-21)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.872.0...v3.873.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

###
[`v3.872.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#38720-2025-08-20)

[Compare
Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.864.0...v3.872.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Only on Sunday and Saturday ( * * * * 0,6 ), Between 12:00
AM and 12:59 PM, only on Monday ( * 0-12 * * 1 ) in timezone Etc/UTC.

🚦 **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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ref 554eb8a

The test spawned a child process to set TZ=America/New_York, which
intermittently timed out on CI (2s mocha default). Since modern
Node.js picks up process.env.TZ changes mid-process, this should
allow the timezone to be set in-process instead, avoiding the
subprocess and its flaky timeout.
closes https://linear.app/ghost/issue/BER-3502
ref https://linear.app/ghost/project/gift-subscriptions-b7184e4f8972

Adding a new table in the context of the gift subscriptions project, to
store gift data (buyer info, redeemer info, gift
amount/currency/duration, etc.)
@pull pull Bot locked and limited conversation to collaborators Apr 6, 2026
@pull pull Bot added the ⤵️ pull label Apr 6, 2026
renovate Bot and others added 8 commits April 6, 2026 10:41
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [react-hook-form](https://react-hook-form.com)
([source](https://redirect.github.com/react-hook-form/react-hook-form))
| [`7.65.0` →
`7.72.1`](https://renovatebot.com/diffs/npm/react-hook-form/7.65.0/7.72.1)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/react-hook-form/7.72.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-hook-form/7.65.0/7.72.1?slim=true)
|

---

### Release Notes

<details>
<summary>react-hook-form/react-hook-form (react-hook-form)</summary>

###
[`v7.72.1`](https://redirect.github.com/react-hook-form/react-hook-form/releases/tag/v7.72.1):
Version 7.72.1

[Compare
Source](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.72.0...v7.72.1)

🐞 fix: add isDirty check for numeric string keys in defaultValues (issue
[#&#8203;13346](https://redirect.github.com/react-hook-form/react-hook-form/issues/13346))
([#&#8203;13347](https://redirect.github.com/react-hook-form/react-hook-form/issues/13347))
🐞 fix: prevent setValue with shouldDirty from polluting unrelated dirty
fields
([#&#8203;13326](https://redirect.github.com/react-hook-form/react-hook-form/issues/13326))
🐞 fix: memoize control in HookFormControlContext to prevent render
conflicts
([#&#8203;13272](https://redirect.github.com/react-hook-form/react-hook-form/issues/13272))
([#&#8203;13312](https://redirect.github.com/react-hook-form/react-hook-form/issues/13312))
🐞 fix: isNameInFieldArray should check all ancestor paths for nested
field arrays
([#&#8203;13318](https://redirect.github.com/react-hook-form/react-hook-form/issues/13318))
🐞 fix:
[#&#8203;13320](https://redirect.github.com/react-hook-form/react-hook-form/issues/13320)
formState.isValid incorrect on Controller re-mount
([#&#8203;13324](https://redirect.github.com/react-hook-form/react-hook-form/issues/13324))

thanks to [@&#8203;6810779s](https://redirect.github.com/6810779s),
[@&#8203;candymask0712](https://redirect.github.com/candymask0712),
[@&#8203;olagokemills](https://redirect.github.com/olagokemills),
[@&#8203;shahmir-oscilar](https://redirect.github.com/shahmir-oscilar) &
[@&#8203;bae080311](https://redirect.github.com/bae080311)

###
[`v7.72.0`](https://redirect.github.com/react-hook-form/react-hook-form/releases/tag/v7.72.0):
Version 7.72.0

[Compare
Source](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.71.2...v7.72.0)

⚓️ feat: built-in form level validate
([#&#8203;13195](https://redirect.github.com/react-hook-form/react-hook-form/issues/13195))

```tsx
const { register, formState: { errors } } = useForm({
  validate: async (formValue) => {
    if (formValue.test1.length > formValue.test.length) {
      return {
        type: 'formError',
        message: 'something is wrong here',
      };
    }

    if (formValue.test === 'test') {
      return 'direct error message';
    }

    return true;
  },
});
```

🐞 fix: prevent useFieldArray from marking unrelated fields as dirty
([#&#8203;13299](https://redirect.github.com/react-hook-form/react-hook-form/issues/13299))
🐞 fix
[#&#8203;13300](https://redirect.github.com/react-hook-form/react-hook-form/issues/13300)
checkbox form validation ignored with native validation
([#&#8203;13310](https://redirect.github.com/react-hook-form/react-hook-form/issues/13310))
🌉 allow subscribe formState to track submit state
([#&#8203;13319](https://redirect.github.com/react-hook-form/react-hook-form/issues/13319))

###
[`v7.71.2`](https://redirect.github.com/react-hook-form/react-hook-form/releases/tag/v7.71.2):
Version 7.71.2

[Compare
Source](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.71.1...v7.71.2)

🕵️‍♂️ fix: use DeepPartialSkipArrayKey for WatchObserver value parameter
([#&#8203;13278](https://redirect.github.com/react-hook-form/react-hook-form/issues/13278))
🧹 fix(clearErrors): emit name signal for targeted field updates
([#&#8203;13280](https://redirect.github.com/react-hook-form/react-hook-form/issues/13280))

thanks to [@&#8203;veeceey](https://redirect.github.com/veeceey),
[@&#8203;kaigritun](https://redirect.github.com/kaigritun),
[@&#8203;pgoslatara](https://redirect.github.com/pgoslatara) &
[@&#8203;seongbiny](https://redirect.github.com/seongbiny)

###
[`v7.71.1`](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.71.0...51589c50baa008e58f0fad71e5ef3d13314a3018)

[Compare
Source](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.71.0...v7.71.1)

###
[`v7.71.0`](https://redirect.github.com/react-hook-form/react-hook-form/releases/tag/v7.71.0):
Version 7.71.0

[Compare
Source](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.70.0...v7.71.0)

⚡ perf: memoize FormProvider context value to prevent unnecessary
rerenders
([#&#8203;13235](https://redirect.github.com/react-hook-form/react-hook-form/issues/13235))
🚄 perf: separate control context to prevent unnecessary rerenders
([#&#8203;13234](https://redirect.github.com/react-hook-form/react-hook-form/issues/13234))
🐞 fix: update isValid when field disabled state changes
([#&#8203;13231](https://redirect.github.com/react-hook-form/react-hook-form/issues/13231))
👌 chore: optimize bundle size via safe terser options
([#&#8203;13243](https://redirect.github.com/react-hook-form/react-hook-form/issues/13243))
([#&#8203;13244](https://redirect.github.com/react-hook-form/react-hook-form/issues/13244))

thanks to [@&#8203;kamja44](https://redirect.github.com/kamja44),
[@&#8203;a28689604](https://redirect.github.com/a28689604) &
[@&#8203;newsiberian](https://redirect.github.com/newsiberian)

###
[`v7.70.0`](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.69.0...v7.70.0)

[Compare
Source](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.69.0...v7.70.0)

###
[`v7.69.0`](https://redirect.github.com/react-hook-form/react-hook-form/releases/tag/v7.69.0):
🎄 Version 7.69.0

[Compare
Source](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.68.0...v7.69.0)

📏 feat: align <Watch /> API with useWatch
([#&#8203;13192](https://redirect.github.com/react-hook-form/react-hook-form/issues/13192))
🤦🏻‍♂️ chore: update
[@&#8203;deprecated](https://redirect.github.com/deprecated) names prop
on <Watch />
([#&#8203;13198](https://redirect.github.com/react-hook-form/react-hook-form/issues/13198))
🏥 chore: safely call function methods on elements
([#&#8203;13190](https://redirect.github.com/react-hook-form/react-hook-form/issues/13190))
🪖 chore: cve-2025-67779
([#&#8203;13196](https://redirect.github.com/react-hook-form/react-hook-form/issues/13196))
🪖 chore: cve-2025-55184 & cve-2025-55183
([#&#8203;13194](https://redirect.github.com/react-hook-form/react-hook-form/issues/13194))
🪖 chore: CVE-2025-55182 Critical RCE vulnerabilty
([#&#8203;13175](https://redirect.github.com/react-hook-form/react-hook-form/issues/13175))
🔬 test: add regression tests for
[#&#8203;12837](https://redirect.github.com/react-hook-form/react-hook-form/issues/12837)
and
[#&#8203;13136](https://redirect.github.com/react-hook-form/react-hook-form/issues/13136)
([#&#8203;13187](https://redirect.github.com/react-hook-form/react-hook-form/issues/13187))
🐞 fix(reset): preserve isValid state when keepIsValid option is used
([#&#8203;13173](https://redirect.github.com/react-hook-form/react-hook-form/issues/13173))
🐞 fix: ensure each createFormControl.subscribe subscription listens only
to the changes it subscribes to
([#&#8203;12968](https://redirect.github.com/react-hook-form/react-hook-form/issues/12968))
🐞 fix(validation): batch isValidating state updates with validation
result
([#&#8203;13181](https://redirect.github.com/react-hook-form/react-hook-form/issues/13181))
🐞 fix(createFormControl): resolve race condition between setError and
setFocus
([#&#8203;13138](https://redirect.github.com/react-hook-form/react-hook-form/issues/13138))
([#&#8203;13169](https://redirect.github.com/react-hook-form/react-hook-form/issues/13169))
🧿 fix <Watch /> control prop type
([#&#8203;13189](https://redirect.github.com/react-hook-form/react-hook-form/issues/13189))
🔔 chore: clean cloneObject logic
([#&#8203;13179](https://redirect.github.com/react-hook-form/react-hook-form/issues/13179))

thanks to [@&#8203;PierreCrb](https://redirect.github.com/PierreCrb),
[@&#8203;a28689604](https://redirect.github.com/a28689604),
[@&#8203;AnuragM7666](https://redirect.github.com/AnuragM7666),
[@&#8203;ap0nia](https://redirect.github.com/ap0nia),
[@&#8203;dusan233](https://redirect.github.com/dusan233) &
[@&#8203;hlongc](https://redirect.github.com/hlongc)

###
[`v7.68.0`](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.67.0...b84595e77a9f5413f937035269d2f3d86ca2e7b4)

[Compare
Source](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.67.0...v7.68.0)

###
[`v7.67.0`](https://redirect.github.com/react-hook-form/react-hook-form/releases/tag/v7.67.0):
Version 7.67.0

[Compare
Source](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.66.1...v7.67.0)

🎯 feat: add exact to useController props
([#&#8203;13154](https://redirect.github.com/react-hook-form/react-hook-form/issues/13154))

```tsx
useForm({
  defaultValues: {
    user: {
      name: ''
    }
  }
})

<Controller control={control} name="user" exact={false} /> // subscribe to all user object
```

✨ fix(types): allow undefined value with async defaultValues in Contr…
([#&#8203;13160](https://redirect.github.com/react-hook-form/react-hook-form/issues/13160))
🐞 fix(types): correct PathValueImpl type inference
([#&#8203;13150](https://redirect.github.com/react-hook-form/react-hook-form/issues/13150))

###
[`v7.66.1`](https://redirect.github.com/react-hook-form/react-hook-form/compare/089f0a30fe0081e3dcc7ac3bae3ed034bf9c63dc...caa514c6d1a9d5116cee973728daa837b1deedf2)

[Compare
Source](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.66.0...v7.66.1)

###
[`v7.66.0`](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.65.0...089f0a30fe0081e3dcc7ac3bae3ed034bf9c63dc)

[Compare
Source](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.65.0...v7.66.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Only on Sunday and Saturday ( * * * * 0,6 ), Between 12:00
AM and 12:59 PM, only on Monday ( * 0-12 * * 1 ) in timezone Etc/UTC.

🚦 **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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Ghost CI now triggers & waits for the dispatched traffic analytics
workflow and mirrors its final result.

This moves the Tinybird deploy check out of this repo, over to an
internally managed repo.
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [react-router](https://redirect.github.com/remix-run/react-router)
([source](https://redirect.github.com/remix-run/react-router/tree/HEAD/packages/react-router))
| [`7.9.4` →
`7.14.0`](https://renovatebot.com/diffs/npm/react-router/7.9.4/7.14.0) |
![age](https://developer.mend.io/api/mc/badges/age/npm/react-router/7.14.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-router/7.9.4/7.14.0?slim=true)
|

---

### Release Notes

<details>
<summary>remix-run/react-router (react-router)</summary>

###
[`v7.14.0`](https://redirect.github.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#7140)

[Compare
Source](https://redirect.github.com/remix-run/react-router/compare/react-router@7.13.2...react-router@7.14.0)

##### Patch Changes

- UNSTABLE RSC FRAMEWORK MODE BREAKING CHANGE - Existing route module
exports remain unchanged from stable v7 non-RSC mode, but new exports
are added for RSC mode. If you want to use RSC features, you will need
to update your route modules to export the new annotations.
([#&#8203;14901](https://redirect.github.com/remix-run/react-router/pull/14901))

If you are using RSC framework mode currently, you will need to update
your route modules to the new conventions. The following route module
components have their own mutually exclusive server component
counterparts:

  | Server Component Export | Client Component  |
  | ----------------------- | ----------------- |
  | `ServerComponent`       | `default`         |
  | `ServerErrorBoundary`   | `ErrorBoundary`   |
  | `ServerLayout`          | `Layout`          |
  | `ServerHydrateFallback` | `HydrateFallback` |

If you were previously exporting a `ServerComponent`, your
`ErrorBoundary`, `Layout`, and `HydrateFallback` were also server
components. If you want to keep those as server components, you can
rename them and prefix them with `Server`. If you were previously
importing the implementations of those components from a client module,
you can simply inline them.

  Example:

  Before

  ```tsx
  import { ErrorBoundary as ClientErrorBoundary } from "./client";

  export function ServerComponent() {
    // ...
  }

  export function ErrorBoundary() {
    return <ClientErrorBoundary />;
  }

  export function Layout() {
    // ...
  }

  export function HydrateFallback() {
    // ...
  }
  ```

  After

  ```tsx
  export function ServerComponent() {
    // ...
  }

  export function ErrorBoundary() {
// previous implementation of ClientErrorBoundary, this is now a client
component
  }

  export function ServerLayout() {
// rename previous Layout export to ServerLayout to make it a server
component
  }

  export function ServerHydrateFallback() {
// rename previous HydrateFallback export to ServerHydrateFallback to
make it a server component
  }
  ```

- rsc Link prefetch
([#&#8203;14902](https://redirect.github.com/remix-run/react-router/pull/14902))

- Remove recursion from turbo-stream v2 allowing for encoding / decoding
of massive payloads.
([#&#8203;14838](https://redirect.github.com/remix-run/react-router/pull/14838))

- encodeViaTurboStream leaked memory via unremoved AbortSignal listener
([#&#8203;14900](https://redirect.github.com/remix-run/react-router/pull/14900))

###
[`v7.13.2`](https://redirect.github.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#7132)

[Compare
Source](https://redirect.github.com/remix-run/react-router/compare/react-router@7.13.1...react-router@7.13.2)

##### Patch Changes

- Fix clientLoader.hydrate when an ancestor route is also hydrating a
clientLoader
([#&#8203;14835](https://redirect.github.com/remix-run/react-router/pull/14835))

- Fix type error when passing Framework Mode route components using
`Route.ComponentProps` to `createRoutesStub`
([#&#8203;14892](https://redirect.github.com/remix-run/react-router/pull/14892))

- Fix percent encoding in relative path navigation
([#&#8203;14786](https://redirect.github.com/remix-run/react-router/pull/14786))

- Add `future.unstable_passThroughRequests` flag
([#&#8203;14775](https://redirect.github.com/remix-run/react-router/pull/14775))

By default, React Router normalizes the `request.url` passed to your
`loader`, `action`, and `middleware` functions by removing React
Router's internal implementation details (`.data` suffixes, `index` +
`_routes` query params).

Enabling this flag removes that normalization and passes the raw HTTP
`request` instance to your handlers. This provides a few benefits:

- Reduces server-side overhead by eliminating multiple `new Request()`
calls on the critical path
- Allows you to distinguish document from data requests in your handlers
base don the presence of a `.data` suffix (useful for observability
purposes)

If you were previously relying on the normalization of `request.url`,
you can switch to use the new sibling `unstable_url` parameter which
contains a `URL` instance representing the normalized location:

  ```tsx
// ❌ Before: you could assume there was no `.data` suffix in
`request.url`
  export async function loader({ request }: Route.LoaderArgs) {
    let url = new URL(request.url);
    if (url.pathname === "/path") {
// This check will fail with the flag enabled because the `.data` suffix
will
      // exist on data requests
    }
  }

// ✅ After: use `unstable_url` for normalized routing logic and
`request.url`
  // for raw routing logic
export async function loader({ request, unstable_url }:
Route.LoaderArgs) {
    if (unstable_url.pathname === "/path") {
      // This will always have the `.data` suffix stripped
    }

    // And now you can distinguish between document versus data requests
    let isDataRequest = new URL(request.url).pathname.endsWith(".data");
  }
  ```

- Internal refactor to consolidate framework-agnostic/React-specific
route type layers - no public API changes
([#&#8203;14765](https://redirect.github.com/remix-run/react-router/pull/14765))

- Sync protocol validation to rsc flows
([#&#8203;14882](https://redirect.github.com/remix-run/react-router/pull/14882))

- Add a new `unstable_url: URL` parameter to route handler methods
(`loader`, `action`, `middleware`, etc.) representing the normalized URL
the application is navigating to or fetching, with React Router
implementation details removed (`.data`suffix, `index`/`_routes` query
params)
([#&#8203;14775](https://redirect.github.com/remix-run/react-router/pull/14775))

This is being added alongside the new
`future.unstable_passthroughRequests` future flag so that users still
have a way to access the normalized URL when that flag is enabled and
non-normalized `request`'s are being passed to your handlers. When
adopting this flag, you will only need to start leveraging this new
parameter if you are relying on the normalization of `request.url` in
your application code.

If you don't have the flag enabled, then `unstable_url` will match
`request.url`.

###
[`v7.13.1`](https://redirect.github.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#7131)

[Compare
Source](https://redirect.github.com/remix-run/react-router/compare/react-router@7.13.0...react-router@7.13.1)

##### Patch Changes

- fix null reference exception in bad codepath leading to invalid route
tree comparisons
([#&#8203;14780](https://redirect.github.com/remix-run/react-router/pull/14780))

- fix: clear timeout when turbo-stream encoding completes
([#&#8203;14810](https://redirect.github.com/remix-run/react-router/pull/14810))

- Improve error message when Origin header is invalid
([#&#8203;14743](https://redirect.github.com/remix-run/react-router/pull/14743))

- Fix matchPath optional params matching without a "/" separator.
([#&#8203;14689](https://redirect.github.com/remix-run/react-router/pull/14689))
  - matchPath("/users/:id?", "/usersblah") now returns null.
- matchPath("/test\_route/:part?", "/test\_route\_more") now returns
null.

- add RSC unstable\_getRequest
([#&#8203;14758](https://redirect.github.com/remix-run/react-router/pull/14758))

- Fix `HydrateFallback` rendering during initial lazy route discovery
with matching splat route
([#&#8203;14740](https://redirect.github.com/remix-run/react-router/pull/14740))

- \[UNSTABLE] Add support for `<Link unstable_mask>` in Data Mode which
allows users to navigate to a URL in the router but "mask" the URL
displayed in the browser. This is useful for contextual routing usages
such as displaying an image in a model on top of a gallery, but
displaying a browser URL directly to the image that can be shared and
loaded without the contextual gallery in the background.
([#&#8203;14716](https://redirect.github.com/remix-run/react-router/pull/14716))

  ```tsx
  // routes/gallery.tsx
  export function clientLoader({ request }: Route.LoaderArgs) {
    let sp = new URL(request.url).searchParams;
    return {
      images: getImages(),
// When the router location has the image param, load the modal data
      modalImage: sp.has("image") ? getImage(sp.get("image")!) : null,
    };
  }

export default function Gallery({ loaderData }: Route.ComponentProps) {
    return (
      <>
        <GalleryGrid>
          {loaderData.images.map((image) => (
            <Link
              key={image.id}
              {/* Navigate the router to /galley?image=N */}}
              to={`/gallery?image=${image.id}`}
              {/* But display /images/N in the URL bar */}}
              unstable_mask={`/images/${image.id}`}
            >
              <img src={image.url} alt={image.alt} />
            </Link>
          ))}
        </GalleryGrid>

        {/* When the modal data exists, display the modal */}
        {data.modalImage ? (
          <dialog open>
            <img src={data.modalImage.url} alt={data.modalImage.alt} />
          </dialog>
        ) : null}
      </>
    );
  }
  ```

  Notes:

- The masked location, if present, will be available on
`useLocation().unstable_mask` so you can detect whether you are
currently masked or not.
- Masked URLs only work for SPA use cases, and will be removed from
`history.state` during SSR.
- This provides a first-class API to mask URLs in Data Mode to achieve
the same behavior you could do in Declarative Mode via [manual
`backgroundLocation`
management](https://redirect.github.com/remix-run/react-router/tree/main/examples/modal).

- RSC: Update failed origin checks to return a 400 status and
appropriate UI instead of a generic 500
([#&#8203;14755](https://redirect.github.com/remix-run/react-router/pull/14755))

- Preserve query parameters and hash on manifest version mismatch reload
([#&#8203;14813](https://redirect.github.com/remix-run/react-router/pull/14813))

###
[`v7.13.0`](https://redirect.github.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#7130)

[Compare
Source](https://redirect.github.com/remix-run/react-router/compare/react-router@7.12.0...react-router@7.13.0)

##### Minor Changes

- Add `crossOrigin` prop to `Links` component
([#&#8203;14687](https://redirect.github.com/remix-run/react-router/pull/14687))

##### Patch Changes

- Fix double slash normalization for useNavigate colon urls
([#&#8203;14718](https://redirect.github.com/remix-run/react-router/pull/14718))
- Update failed origin checks to return a 400 status instead of a 500
([#&#8203;14737](https://redirect.github.com/remix-run/react-router/pull/14737))
- Bugfix
[#&#8203;14666](https://redirect.github.com/remix-run/react-router/issues/14666):
Inline criticalCss is missing nonce
([#&#8203;14691](https://redirect.github.com/remix-run/react-router/pull/14691))
- Loosen `allowedActionOrigins` glob check so `**` matches all domains
([#&#8203;14722](https://redirect.github.com/remix-run/react-router/pull/14722))

###
[`v7.12.0`](https://redirect.github.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#7120)

[Compare
Source](https://redirect.github.com/remix-run/react-router/compare/react-router@7.11.0...react-router@7.12.0)

##### Minor Changes

- Add additional layer of CSRF protection by rejecting submissions to UI
routes from external origins. If you need to permit access to specific
external origins, you can specify them in the `react-router.config.ts`
config `allowedActionOrigins` field.
([#&#8203;14708](https://redirect.github.com/remix-run/react-router/pull/14708))

##### Patch Changes

- Fix `generatePath` when used with suffixed params (i.e.,
"/books/:id.json")
([#&#8203;14269](https://redirect.github.com/remix-run/react-router/pull/14269))

- Export `UNSAFE_createMemoryHistory` and `UNSAFE_createHashHistory`
alongside `UNSAFE_createBrowserHistory` for consistency. These are not
intended to be used for new apps but intended to help apps usiong
`unstable_HistoryRouter` migrate from v6->v7 so they can adopt the newer
APIs.
([#&#8203;14663](https://redirect.github.com/remix-run/react-router/pull/14663))

- Escape HTML in scroll restoration keys
([#&#8203;14705](https://redirect.github.com/remix-run/react-router/pull/14705))

- Validate redirect locations
([#&#8203;14706](https://redirect.github.com/remix-run/react-router/pull/14706))

- \[UNSTABLE] Pass `<Scripts nonce>` value through to the underlying
`importmap` `script` tag when using
`future.unstable_subResourceIntegrity`
([#&#8203;14675](https://redirect.github.com/remix-run/react-router/pull/14675))

- \[UNSTABLE] Add a new `future.unstable_trailingSlashAwareDataRequests`
flag to provide consistent behavior of `request.pathname` inside
`middleware`, `loader`, and `action` functions on document and data
requests when a trailing slash is present in the browser URL.
([#&#8203;14644](https://redirect.github.com/remix-run/react-router/pull/14644))

Currently, your HTTP and `request` pathnames would be as follows for
`/a/b/c` and `/a/b/c/`

  | URL `/a/b/c` | **HTTP pathname** | **`request` pathname\`** |
  | ------------ | ----------------- | ------------------------ |
  | **Document** | `/a/b/c`          | `/a/b/c` ✅               |
  | **Data**     | `/a/b/c.data`     | `/a/b/c` ✅               |

  | URL `/a/b/c/` | **HTTP pathname** | **`request` pathname\`** |
  | ------------- | ----------------- | ------------------------ |
  | **Document**  | `/a/b/c/`         | `/a/b/c/` ✅              |
  | **Data**      | `/a/b/c.data`     | `/a/b/c` ⚠️              |

With this flag enabled, these pathnames will be made consistent though a
new `_.data` format for client-side `.data` requests:

  | URL `/a/b/c` | **HTTP pathname** | **`request` pathname\`** |
  | ------------ | ----------------- | ------------------------ |
  | **Document** | `/a/b/c`          | `/a/b/c` ✅               |
  | **Data**     | `/a/b/c.data`     | `/a/b/c` ✅               |

  | URL `/a/b/c/` | **HTTP pathname**  | **`request` pathname\`** |
  | ------------- | ------------------ | ------------------------ |
  | **Document**  | `/a/b/c/`          | `/a/b/c/` ✅              |
  | **Data**      | `/a/b/c/_.data` ⬅️ | `/a/b/c/` ✅              |

This a bug fix but we are putting it behind an opt-in flag because it
has the potential to be a "breaking bug fix" if you are relying on the
URL format for any other application or caching logic.

Enabling this flag also changes the format of client side `.data`
requests from `/_root.data` to `/_.data` when navigating to `/` to align
with the new format. This does not impact the `request` pathname which
is still `/` in all cases.

- Preserve `clientLoader.hydrate=true` when using `<HydratedRouter
unstable_instrumentations>`
([#&#8203;14674](https://redirect.github.com/remix-run/react-router/pull/14674))

###
[`v7.11.0`](https://redirect.github.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#7110)

[Compare
Source](https://redirect.github.com/remix-run/react-router/compare/react-router@7.10.1...react-router@7.11.0)

##### Minor Changes

- Stabilize `<HydratedRouter onError>`/`<RouterProvider onError>`
([#&#8203;14546](https://redirect.github.com/remix-run/react-router/pull/14546))

##### Patch Changes

- add support for throwing redirect Response's at RSC render time
([#&#8203;14596](https://redirect.github.com/remix-run/react-router/pull/14596))

- Support for throwing `data()` and Response from server component
render phase. Response body is not serialized as async work is not
allowed as error encoding phase. If you wish to transmit data to the
boundary, throw `data()` instead.
([#&#8203;14632](https://redirect.github.com/remix-run/react-router/pull/14632))

- Fix `unstable_useTransitions` prop on `<Router>` component to permit
omission for backewards compatibility
([#&#8203;14646](https://redirect.github.com/remix-run/react-router/pull/14646))

- `routeRSCServerRequest` replace `fetchServer` with `serverResponse`
([#&#8203;14597](https://redirect.github.com/remix-run/react-router/pull/14597))

- \[UNSTABLE] Add a new `unstable_defaultShouldRevalidate` flag to
various APIs to allow opt-ing out of standard revalidation behaviors.
([#&#8203;14542](https://redirect.github.com/remix-run/react-router/pull/14542))

If active routes include a `shouldRevalidate` function, then your value
will be passed as `defaultShouldRevalidate` in those function so that
the route always has the final revalidation determination.

  - `<Form method="post" unstable_defaultShouldRevalidate={false}>`
- `submit(data, { method: "post", unstable_defaultShouldRevalidate:
false })`
- `<fetcher.Form method="post"
unstable_defaultShouldRevalidate={false}>`
- `fetcher.submit(data, { method: "post",
unstable_defaultShouldRevalidate: false })`

This is also available on non-submission APIs that may trigger
revalidations due to changing search params:

  - `<Link to="/" unstable_defaultShouldRevalidate={false}>`
  - `navigate("/?foo=bar", { unstable_defaultShouldRevalidate: false })`
- `setSearchParams(params, { unstable_defaultShouldRevalidate: false })`

- Allow redirects to be returned from client side middleware
([#&#8203;14598](https://redirect.github.com/remix-run/react-router/pull/14598))

- Handle `dataStrategy` implementations that return insufficient result
sets by adding errors for routes without any available result
([#&#8203;14627](https://redirect.github.com/remix-run/react-router/pull/14627))

###
[`v7.10.1`](https://redirect.github.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#7101)

[Compare
Source](https://redirect.github.com/remix-run/react-router/compare/react-router@7.10.0...react-router@7.10.1)

##### Patch Changes

- Update the `useOptimistic` stub we provide for React 18 users to use a
stable setter function to avoid potential `useEffect` loops -
specifically when using `<Link viewTransition>`
([#&#8203;14628](https://redirect.github.com/remix-run/react-router/pull/14628))

###
[`v7.10.0`](https://redirect.github.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#7100)

[Compare
Source](https://redirect.github.com/remix-run/react-router/compare/react-router@7.9.6...react-router@7.10.0)

##### Minor Changes

- Stabilize `fetcher.reset()`
([#&#8203;14545](https://redirect.github.com/remix-run/react-router/pull/14545))
- ⚠️ This is a breaking change if you have begun using
`fetcher.unstable_reset()`

- Stabilize the `dataStrategy`
`match.shouldRevalidateArgs`/`match.shouldCallHandler()` APIs.
([#&#8203;14592](https://redirect.github.com/remix-run/react-router/pull/14592))

- The `match.shouldLoad` API is now marked deprecated in favor of these
more powerful alternatives

- If you're using this API in a custom `dataStrategy` today, you can
swap to the new API at your convenience:

    ```tsx
    // Before
    const matchesToLoad = matches.filter((m) => m.shouldLoad);

    // After
    const matchesToLoad = matches.filter((m) => m.shouldCallHandler());
    ```

- `match.shouldRevalidateArgs` is the argument that will be passed to
the route `shouldRevaliate` function

- Combined with the parameter accepted by `match.shouldCallHandler`, you
can define a custom revalidation behavior for your `dataStrategy`:

  ```tsx
  const matchesToLoad = matches.filter((m) => {
    const defaultShouldRevalidate = customRevalidationBehavior(
      match.shouldRevalidateArgs,
    );
    return m.shouldCallHandler(defaultShouldRevalidate);
// The argument here will override the internal
`defaultShouldRevalidate` value
  });
  ```

##### Patch Changes

- Fix a Framework Mode bug where the `defaultShouldRevalidate` parameter
to `shouldRevalidate` would not be correct after `action` returned a
4xx/5xx response (`true` when it should have been `false`)
([#&#8203;14592](https://redirect.github.com/remix-run/react-router/pull/14592))
- If your `shouldRevalidate` function relied on that parameter, you may
have seen unintended revalidations

- Fix `fetcher.submit` failing with plain objects containing a `tagName`
property
([#&#8203;14534](https://redirect.github.com/remix-run/react-router/pull/14534))

- \[UNSTABLE] Add `unstable_pattern` to the parameters for client side
`unstable_onError`, refactor how it's called by `RouterProvider` to
avoid potential strict mode issues
([#&#8203;14573](https://redirect.github.com/remix-run/react-router/pull/14573))

- Add new `unstable_useTransitions` flag to routers to give users
control over the usage of
[`React.startTransition`](https://react.dev/reference/react/startTransition)
and
[`React.useOptimistic`](https://react.dev/reference/react/useOptimistic).
([#&#8203;14524](https://redirect.github.com/remix-run/react-router/pull/14524))
  - Framework Mode + Data Mode:
- `<HydratedRouter unstable_transition>`/`<RouterProvider
unstable_transition>`
    - When left unset (current default behavior)
      - Router state updates are wrapped in `React.startTransition`
- ⚠️ This can lead to buggy behaviors if you are wrapping your own
navigations/fetchers in `React.startTransition`
- You should set the flag to `true` if you run into this scenario to get
the enhanced `useOptimistic` behavior (requires React 19)
    - When set to `true`
- Router state updates remain wrapped in `React.startTransition` (as
they are without the flag)
- `Link`/`Form` navigations will be wrapped in `React.startTransition`
- A subset of router state info will be surfaced to the UI *during*
navigations via `React.useOptimistic` (i.e., `useNavigation()`,
`useFetchers()`, etc.)
- ⚠️ This is a React 19 API so you must also be React 19 to opt into
this flag for Framework/Data Mode
    - When set to `false`
- The router will not leverage `React.startTransition` or
`React.useOptimistic` on any navigations or state changes
  - Declarative Mode
    - `<BrowserRouter unstable_useTransitions>`
    - When left unset
      - Router state updates are wrapped in `React.startTransition`
    - When set to `true`
- Router state updates remain wrapped in `React.startTransition` (as
they are without the flag)
- `Link`/`Form` navigations will be wrapped in `React.startTransition`
    - When set to `false`
- the router will not leverage `React.startTransition` on any
navigations or state changes

- Fix the promise returned from `useNavigate` in Framework/Data Mode so
that it properly tracks the duration of `popstate` navigations (i.e.,
`navigate(-1)`)
([#&#8203;14524](https://redirect.github.com/remix-run/react-router/pull/14524))

- Fix internal type error in useRoute types that surfaces when
skipLibCheck is disabled
([#&#8203;14577](https://redirect.github.com/remix-run/react-router/pull/14577))

- Preserve `statusText` on the `ErrorResponse` instance when throwing
`data()` from a route handler
([#&#8203;14555](https://redirect.github.com/remix-run/react-router/pull/14555))

- Optimize href() to avoid backtracking regex on splat
([#&#8203;14329](https://redirect.github.com/remix-run/react-router/pull/14329))

###
[`v7.9.6`](https://redirect.github.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#796)

[Compare
Source](https://redirect.github.com/remix-run/react-router/compare/react-router@7.9.5...react-router@7.9.6)

##### Patch Changes

- \[UNSTABLE] Add `location`/`params` as arguments to client-side
`unstable_onError` to permit enhanced error reporting.
([#&#8203;14509](https://redirect.github.com/remix-run/react-router/pull/14509))

⚠️ This is a breaking change if you've already adopted
`unstable_onError`. The second `errorInfo` parameter is now an object
with `location` and `params`:

  ```tsx
  // Before
  function errorHandler(error: unknown, errorInfo?: React.errorInfo) {
    /*...*/
  }

  // After
  function errorHandler(
    error: unknown,
    info: {
      location: Location;
      params: Params;
      errorInfo?: React.ErrorInfo;
    },
  ) {
    /*...*/
  }
  ```

- Properly handle ancestor thrown middleware errors before `next()` on
fetcher submissions
([#&#8203;14517](https://redirect.github.com/remix-run/react-router/pull/14517))

- Fix issue with splat routes interfering with multiple calls to
patchRoutesOnNavigation
([#&#8203;14487](https://redirect.github.com/remix-run/react-router/pull/14487))

- Normalize double-slashes in `resolvePath`
([#&#8203;14529](https://redirect.github.com/remix-run/react-router/pull/14529))

###
[`v7.9.5`](https://redirect.github.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#795)

[Compare
Source](https://redirect.github.com/remix-run/react-router/compare/react-router@7.9.4...react-router@7.9.5)

##### Patch Changes

- Move RSCHydratedRouter and utils to `/dom` export.
([#&#8203;14457](https://redirect.github.com/remix-run/react-router/pull/14457))

- useRoute: return type-safe `handle`
([#&#8203;14462](https://redirect.github.com/remix-run/react-router/pull/14462))

  For example:

  ```ts
  // app/routes/admin.tsx
  const handle = { hello: "world" };
  ```

  ```ts
  // app/routes/some-other-route.tsx
  export default function Component() {
    const admin = useRoute("routes/admin");
    if (!admin) throw new Error("Not nested within 'routes/admin'");
    console.log(admin.handle);
    //                ^? { hello: string }
  }
  ```

- Ensure action handlers run for routes with middleware even if no
loader is present
([#&#8203;14443](https://redirect.github.com/remix-run/react-router/pull/14443))

- Add `unstable_instrumentations` API to allow users to add observablity
to their apps by instrumenting route loaders, actions, middlewares,
lazy, as well as server-side request handlers and client side
navigations/fetches
([#&#8203;14412](https://redirect.github.com/remix-run/react-router/pull/14412))

  - Framework Mode:
- `entry.server.tsx`: `export const unstable_instrumentations = [...]`
- `entry.client.tsx`: `<HydratedRouter unstable_instrumentations={[...]}
/>`
  - Data Mode
- `createBrowserRouter(routes, { unstable_instrumentations: [...] })`

This also adds a new `unstable_pattern` parameter to
loaders/actions/middleware which contains the un-interpolated route
pattern (i.e., `/blog/:slug`) which is useful for aggregating
performance metrics by route

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Only on Sunday and Saturday ( * * * * 0,6 ), Between 12:00
AM and 12:59 PM, only on Monday ( * 0-12 * * 1 ) in timezone Etc/UTC.

🚦 **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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [vite](https://vite.dev)
([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))
| [`5.4.20` →
`5.4.21`](https://renovatebot.com/diffs/npm/vite/5.4.20/5.4.21) |
![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.4.21?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.4.20/5.4.21?slim=true)
|

### GitHub Vulnerability Alerts

####
[CVE-2025-62522](https://redirect.github.com/vitejs/vite/security/advisories/GHSA-93m4-6634-74q7)

### Summary
Files denied by
[`server.fs.deny`](https://vitejs.dev/config/server-options.html#server-fs-deny)
were sent if the URL ended with `\` when the dev server is running on
Windows.

### Impact
Only apps that match the following conditions are affected:

- explicitly exposes the Vite dev server to the network (using --host or
[`server.host` config
option](https://vitejs.dev/config/server-options.html#server-host))
- running the dev server on Windows

### Details
`server.fs.deny` can contain patterns matching against files (by default
it includes `.env`, `.env.*`, `*.{crt,pem}` as such patterns). These
patterns were able to bypass by using a back slash(`\`). The root cause
is that `fs.readFile('/foo.png/')` loads `/foo.png`.

### PoC
```shell
npm create vite@latest
cd vite-project/
cat "secret" > .env
npm install
npm run dev
curl --request-target /.env\ http://localhost:5173
```
<img width="1593" height="616" alt="image"
src="https://github.com/user-attachments/assets/36212f4e-1d3c-4686-b16f-16b35ca9e175"
/>

---

### Release Notes

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

###
[`v5.4.21`](https://redirect.github.com/vitejs/vite/releases/tag/v5.4.21)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v5.4.20...v5.4.21)

Please refer to
[CHANGELOG.md](https://redirect.github.com/vitejs/vite/blob/v5.4.21/packages/vite/CHANGELOG.md)
for details.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" in timezone Etc/UTC, Automerge -
Only on Sunday and Saturday ( * * * * 0,6 ), Between 12:00 AM and 12:59
PM, only on Monday ( * 0-12 * * 1 ) in timezone Etc/UTC.

🚦 **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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hannah Wolfe <github.erisds@gmail.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@types/dockerode](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/dockerode)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dockerode))
| [`3.3.44` →
`3.3.47`](https://renovatebot.com/diffs/npm/@types%2fdockerode/3.3.44/3.3.47)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fdockerode/3.3.47?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fdockerode/3.3.44/3.3.47?slim=true)
|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`22.18.10` →
`22.19.16`](https://renovatebot.com/diffs/npm/@types%2fnode/22.18.10/22.19.16)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.19.16?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/22.18.10/22.19.16?slim=true)
|
|
[@types/nodemailer](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/nodemailer)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/nodemailer))
| [`6.4.20` →
`6.4.23`](https://renovatebot.com/diffs/npm/@types%2fnodemailer/6.4.20/6.4.23)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnodemailer/6.4.23?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnodemailer/6.4.20/6.4.23?slim=true)
|
|
[@types/react](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.3.26` →
`18.3.28`](https://renovatebot.com/diffs/npm/@types%2freact/18.3.26/18.3.28)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.3.28?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.3.26/18.3.28?slim=true)
|
|
[@types/validator](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/validator)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/validator))
| [`13.15.3` →
`13.15.10`](https://renovatebot.com/diffs/npm/@types%2fvalidator/13.15.3/13.15.10)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fvalidator/13.15.10?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fvalidator/13.15.3/13.15.10?slim=true)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Only on Sunday and Saturday ( * * * * 0,6 ), Between 12:00
AM and 12:59 PM, only on Monday ( * 0-12 * * 1 ) in timezone Etc/UTC.

🚦 **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 these
updates again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hannah Wolfe <github.erisds@gmail.com>
- added yarn audit output to give more visibility to security issues
- moved the summary to the end, and added dates/commit to make it easier to tie the state back to a reference and time
- this tool is transient, we don't need to reimplement it if we switch away from yarn, it's just helpful when trying to identify which deps to target first.
Closes
https://linear.app/ghost/issue/DES-1337/right-side-buttons-have-inconsistent-spacing

The left and right side button groups in posts used inconsistent spacing
between the buttons.

| Before | After |
|--------|--------|
| <img width="298" height="192" alt="Screenshot 2026-04-06 at 15 29 55"
src="https://github.com/user-attachments/assets/8f595ccf-7439-4fe6-9790-1e9b6b231528"
/> | <img width="300" height="198" alt="Screenshot 2026-04-06 at 15 29
20"
src="https://github.com/user-attachments/assets/baa96bbb-d9f4-4c69-8f05-199a19ea4c94"
/>
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| ghost/traffic-analytics | patch | `1.0.116` → `1.0.172` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - Only on Sunday and Saturday ( * * * * 0,6 ), Between 12:00
AM and 12:59 PM, only on Monday ( * 0-12 * * 1 ) in timezone Etc/UTC.

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

♻ **Rebasing**: Never, 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@pull pull Bot merged commit bfe1c42 into code:main Apr 6, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants