Skip to content

Commit c32c4e2

Browse files
committed
Merge branch 'release-next'
2 parents eb4a991 + 5819e0c commit c32c4e2

File tree

44 files changed

+581
-228
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+581
-228
lines changed

CHANGELOG.md

+113-83
Original file line numberDiff line numberDiff line change
@@ -13,29 +13,33 @@ We manage release notes in this file instead of the paginated Github Releases Pa
1313
<summary>Table of Contents</summary>
1414

1515
- [React Router Releases](#react-router-releases)
16-
- [v7.5.1](#v751)
16+
- [v7.5.2](#v752)
17+
- [Security Notice](#security-notice)
1718
- [Patch Changes](#patch-changes)
1819
- [Unstable Changes](#unstable-changes)
20+
- [v7.5.1](#v751)
21+
- [Patch Changes](#patch-changes-1)
22+
- [Unstable Changes](#unstable-changes-1)
1923
- [v7.5.0](#v750)
2024
- [What's Changed](#whats-changed)
2125
- [`route.lazy` Object API](#routelazy-object-api)
2226
- [Minor Changes](#minor-changes)
23-
- [Patch Changes](#patch-changes-1)
24-
- [Unstable Changes](#unstable-changes-1)
25-
- [Changes by Package](#changes-by-package)
26-
- [v7.4.1](#v741)
27-
- [Security Notice](#security-notice)
2827
- [Patch Changes](#patch-changes-2)
2928
- [Unstable Changes](#unstable-changes-2)
30-
- [v7.4.0](#v740)
31-
- [Minor Changes](#minor-changes-1)
29+
- [Changes by Package](#changes-by-package)
30+
- [v7.4.1](#v741)
31+
- [Security Notice](#security-notice-1)
3232
- [Patch Changes](#patch-changes-3)
3333
- [Unstable Changes](#unstable-changes-3)
34+
- [v7.4.0](#v740)
35+
- [Minor Changes](#minor-changes-1)
36+
- [Patch Changes](#patch-changes-4)
37+
- [Unstable Changes](#unstable-changes-4)
3438
- [Changes by Package](#changes-by-package-1)
3539
- [v7.3.0](#v730)
3640
- [Minor Changes](#minor-changes-2)
37-
- [Patch Changes](#patch-changes-4)
38-
- [Unstable Changes](#unstable-changes-4)
41+
- [Patch Changes](#patch-changes-5)
42+
- [Unstable Changes](#unstable-changes-5)
3943
- [Client-side `context` (unstable)](#client-side-context-unstable)
4044
- [Middleware (unstable)](#middleware-unstable)
4145
- [Middleware `context` parameter](#middleware-context-parameter)
@@ -47,28 +51,28 @@ We manage release notes in this file instead of the paginated Github Releases Pa
4751
- [Prerendering with a SPA Fallback](#prerendering-with-a-spa-fallback)
4852
- [Allow a root `loader` in SPA Mode](#allow-a-root-loader-in-spa-mode)
4953
- [Minor Changes](#minor-changes-3)
50-
- [Patch Changes](#patch-changes-5)
51-
- [Unstable Changes](#unstable-changes-5)
54+
- [Patch Changes](#patch-changes-6)
55+
- [Unstable Changes](#unstable-changes-6)
5256
- [Split Route Modules (unstable)](#split-route-modules-unstable)
5357
- [Changes by Package](#changes-by-package-3)
5458
- [v7.1.5](#v715)
55-
- [Patch Changes](#patch-changes-6)
56-
- [v7.1.4](#v714)
5759
- [Patch Changes](#patch-changes-7)
58-
- [v7.1.3](#v713)
60+
- [v7.1.4](#v714)
5961
- [Patch Changes](#patch-changes-8)
60-
- [v7.1.2](#v712)
62+
- [v7.1.3](#v713)
6163
- [Patch Changes](#patch-changes-9)
62-
- [v7.1.1](#v711)
64+
- [v7.1.2](#v712)
6365
- [Patch Changes](#patch-changes-10)
66+
- [v7.1.1](#v711)
67+
- [Patch Changes](#patch-changes-11)
6468
- [v7.1.0](#v710)
6569
- [Minor Changes](#minor-changes-4)
66-
- [Patch Changes](#patch-changes-11)
70+
- [Patch Changes](#patch-changes-12)
6771
- [Changes by Package](#changes-by-package-4)
6872
- [v7.0.2](#v702)
69-
- [Patch Changes](#patch-changes-12)
70-
- [v7.0.1](#v701)
7173
- [Patch Changes](#patch-changes-13)
74+
- [v7.0.1](#v701)
75+
- [Patch Changes](#patch-changes-14)
7276
- [v7.0.0](#v700)
7377
- [Breaking Changes](#breaking-changes)
7478
- [Package Restructuring](#package-restructuring)
@@ -85,199 +89,199 @@ We manage release notes in this file instead of the paginated Github Releases Pa
8589
- [Major Changes (`react-router`)](#major-changes-react-router)
8690
- [Major Changes (`@react-router/*`)](#major-changes-react-router-1)
8791
- [Minor Changes](#minor-changes-5)
88-
- [Patch Changes](#patch-changes-14)
92+
- [Patch Changes](#patch-changes-15)
8993
- [Changes by Package](#changes-by-package-5)
9094
- [React Router v6 Releases](#react-router-v6-releases)
9195
- [v6.30.0](#v6300)
9296
- [Minor Changes](#minor-changes-6)
93-
- [Patch Changes](#patch-changes-15)
97+
- [Patch Changes](#patch-changes-16)
9498
- [v6.29.0](#v6290)
9599
- [Minor Changes](#minor-changes-7)
96-
- [Patch Changes](#patch-changes-16)
97-
- [v6.28.2](#v6282)
98100
- [Patch Changes](#patch-changes-17)
99-
- [v6.28.1](#v6281)
101+
- [v6.28.2](#v6282)
100102
- [Patch Changes](#patch-changes-18)
103+
- [v6.28.1](#v6281)
104+
- [Patch Changes](#patch-changes-19)
101105
- [v6.28.0](#v6280)
102106
- [What's Changed](#whats-changed-2)
103107
- [Minor Changes](#minor-changes-8)
104-
- [Patch Changes](#patch-changes-19)
108+
- [Patch Changes](#patch-changes-20)
105109
- [v6.27.0](#v6270)
106110
- [What's Changed](#whats-changed-3)
107111
- [Stabilized APIs](#stabilized-apis)
108112
- [Minor Changes](#minor-changes-9)
109-
- [Patch Changes](#patch-changes-20)
110-
- [v6.26.2](#v6262)
111113
- [Patch Changes](#patch-changes-21)
112-
- [v6.26.1](#v6261)
114+
- [v6.26.2](#v6262)
113115
- [Patch Changes](#patch-changes-22)
116+
- [v6.26.1](#v6261)
117+
- [Patch Changes](#patch-changes-23)
114118
- [v6.26.0](#v6260)
115119
- [Minor Changes](#minor-changes-10)
116-
- [Patch Changes](#patch-changes-23)
117-
- [v6.25.1](#v6251)
118120
- [Patch Changes](#patch-changes-24)
121+
- [v6.25.1](#v6251)
122+
- [Patch Changes](#patch-changes-25)
119123
- [v6.25.0](#v6250)
120124
- [What's Changed](#whats-changed-4)
121125
- [Stabilized `v7_skipActionErrorRevalidation`](#stabilized-v7_skipactionerrorrevalidation)
122126
- [Minor Changes](#minor-changes-11)
123-
- [Patch Changes](#patch-changes-25)
124-
- [v6.24.1](#v6241)
125127
- [Patch Changes](#patch-changes-26)
128+
- [v6.24.1](#v6241)
129+
- [Patch Changes](#patch-changes-27)
126130
- [v6.24.0](#v6240)
127131
- [What's Changed](#whats-changed-5)
128132
- [Lazy Route Discovery (a.k.a. "Fog of War")](#lazy-route-discovery-aka-fog-of-war)
129133
- [Minor Changes](#minor-changes-12)
130-
- [Patch Changes](#patch-changes-27)
131-
- [v6.23.1](#v6231)
132134
- [Patch Changes](#patch-changes-28)
135+
- [v6.23.1](#v6231)
136+
- [Patch Changes](#patch-changes-29)
133137
- [v6.23.0](#v6230)
134138
- [What's Changed](#whats-changed-6)
135139
- [Data Strategy (unstable)](#data-strategy-unstable)
136140
- [Skip Action Error Revalidation (unstable)](#skip-action-error-revalidation-unstable)
137141
- [Minor Changes](#minor-changes-13)
138142
- [v6.22.3](#v6223)
139-
- [Patch Changes](#patch-changes-29)
140-
- [v6.22.2](#v6222)
141143
- [Patch Changes](#patch-changes-30)
142-
- [v6.22.1](#v6221)
144+
- [v6.22.2](#v6222)
143145
- [Patch Changes](#patch-changes-31)
146+
- [v6.22.1](#v6221)
147+
- [Patch Changes](#patch-changes-32)
144148
- [v6.22.0](#v6220)
145149
- [What's Changed](#whats-changed-7)
146150
- [Core Web Vitals Technology Report Flag](#core-web-vitals-technology-report-flag)
147151
- [Minor Changes](#minor-changes-14)
148-
- [Patch Changes](#patch-changes-32)
149-
- [v6.21.3](#v6213)
150152
- [Patch Changes](#patch-changes-33)
151-
- [v6.21.2](#v6212)
153+
- [v6.21.3](#v6213)
152154
- [Patch Changes](#patch-changes-34)
153-
- [v6.21.1](#v6211)
155+
- [v6.21.2](#v6212)
154156
- [Patch Changes](#patch-changes-35)
157+
- [v6.21.1](#v6211)
158+
- [Patch Changes](#patch-changes-36)
155159
- [v6.21.0](#v6210)
156160
- [What's Changed](#whats-changed-8)
157161
- [`future.v7_relativeSplatPath`](#futurev7_relativesplatpath)
158162
- [Partial Hydration](#partial-hydration)
159163
- [Minor Changes](#minor-changes-15)
160-
- [Patch Changes](#patch-changes-36)
161-
- [v6.20.1](#v6201)
162164
- [Patch Changes](#patch-changes-37)
165+
- [v6.20.1](#v6201)
166+
- [Patch Changes](#patch-changes-38)
163167
- [v6.20.0](#v6200)
164168
- [Minor Changes](#minor-changes-16)
165-
- [Patch Changes](#patch-changes-38)
169+
- [Patch Changes](#patch-changes-39)
166170
- [v6.19.0](#v6190)
167171
- [What's Changed](#whats-changed-9)
168172
- [`unstable_flushSync` API](#unstable_flushsync-api)
169173
- [Minor Changes](#minor-changes-17)
170-
- [Patch Changes](#patch-changes-39)
174+
- [Patch Changes](#patch-changes-40)
171175
- [v6.18.0](#v6180)
172176
- [What's Changed](#whats-changed-10)
173177
- [New Fetcher APIs](#new-fetcher-apis)
174178
- [Persistence Future Flag (`future.v7_fetcherPersist`)](#persistence-future-flag-futurev7_fetcherpersist)
175179
- [Minor Changes](#minor-changes-18)
176-
- [Patch Changes](#patch-changes-40)
180+
- [Patch Changes](#patch-changes-41)
177181
- [v6.17.0](#v6170)
178182
- [What's Changed](#whats-changed-11)
179183
- [View Transitions 🚀](#view-transitions-)
180184
- [Minor Changes](#minor-changes-19)
181-
- [Patch Changes](#patch-changes-41)
185+
- [Patch Changes](#patch-changes-42)
182186
- [v6.16.0](#v6160)
183187
- [Minor Changes](#minor-changes-20)
184-
- [Patch Changes](#patch-changes-42)
188+
- [Patch Changes](#patch-changes-43)
185189
- [v6.15.0](#v6150)
186190
- [Minor Changes](#minor-changes-21)
187-
- [Patch Changes](#patch-changes-43)
188-
- [v6.14.2](#v6142)
189191
- [Patch Changes](#patch-changes-44)
190-
- [v6.14.1](#v6141)
192+
- [v6.14.2](#v6142)
191193
- [Patch Changes](#patch-changes-45)
194+
- [v6.14.1](#v6141)
195+
- [Patch Changes](#patch-changes-46)
192196
- [v6.14.0](#v6140)
193197
- [What's Changed](#whats-changed-12)
194198
- [JSON/Text Submissions](#jsontext-submissions)
195199
- [Minor Changes](#minor-changes-22)
196-
- [Patch Changes](#patch-changes-46)
200+
- [Patch Changes](#patch-changes-47)
197201
- [v6.13.0](#v6130)
198202
- [What's Changed](#whats-changed-13)
199203
- [`future.v7_startTransition`](#futurev7_starttransition)
200204
- [Minor Changes](#minor-changes-23)
201-
- [Patch Changes](#patch-changes-47)
202-
- [v6.12.1](#v6121)
203205
- [Patch Changes](#patch-changes-48)
206+
- [v6.12.1](#v6121)
207+
- [Patch Changes](#patch-changes-49)
204208
- [v6.12.0](#v6120)
205209
- [What's Changed](#whats-changed-14)
206210
- [`React.startTransition` support](#reactstarttransition-support)
207211
- [Minor Changes](#minor-changes-24)
208-
- [Patch Changes](#patch-changes-49)
209-
- [v6.11.2](#v6112)
210212
- [Patch Changes](#patch-changes-50)
211-
- [v6.11.1](#v6111)
213+
- [v6.11.2](#v6112)
212214
- [Patch Changes](#patch-changes-51)
215+
- [v6.11.1](#v6111)
216+
- [Patch Changes](#patch-changes-52)
213217
- [v6.11.0](#v6110)
214218
- [Minor Changes](#minor-changes-25)
215-
- [Patch Changes](#patch-changes-52)
219+
- [Patch Changes](#patch-changes-53)
216220
- [v6.10.0](#v6100)
217221
- [What's Changed](#whats-changed-15)
218222
- [Minor Changes](#minor-changes-26)
219223
- [`future.v7_normalizeFormMethod`](#futurev7_normalizeformmethod)
220-
- [Patch Changes](#patch-changes-53)
224+
- [Patch Changes](#patch-changes-54)
221225
- [v6.9.0](#v690)
222226
- [What's Changed](#whats-changed-16)
223227
- [`Component`/`ErrorBoundary` route properties](#componenterrorboundary-route-properties)
224228
- [Introducing Lazy Route Modules](#introducing-lazy-route-modules)
225229
- [Minor Changes](#minor-changes-27)
226-
- [Patch Changes](#patch-changes-54)
227-
- [v6.8.2](#v682)
228230
- [Patch Changes](#patch-changes-55)
229-
- [v6.8.1](#v681)
231+
- [v6.8.2](#v682)
230232
- [Patch Changes](#patch-changes-56)
233+
- [v6.8.1](#v681)
234+
- [Patch Changes](#patch-changes-57)
231235
- [v6.8.0](#v680)
232236
- [Minor Changes](#minor-changes-28)
233-
- [Patch Changes](#patch-changes-57)
237+
- [Patch Changes](#patch-changes-58)
234238
- [v6.7.0](#v670)
235239
- [Minor Changes](#minor-changes-29)
236-
- [Patch Changes](#patch-changes-58)
237-
- [v6.6.2](#v662)
238240
- [Patch Changes](#patch-changes-59)
239-
- [v6.6.1](#v661)
241+
- [v6.6.2](#v662)
240242
- [Patch Changes](#patch-changes-60)
243+
- [v6.6.1](#v661)
244+
- [Patch Changes](#patch-changes-61)
241245
- [v6.6.0](#v660)
242246
- [What's Changed](#whats-changed-17)
243247
- [Minor Changes](#minor-changes-30)
244-
- [Patch Changes](#patch-changes-61)
248+
- [Patch Changes](#patch-changes-62)
245249
- [v6.5.0](#v650)
246250
- [What's Changed](#whats-changed-18)
247251
- [Minor Changes](#minor-changes-31)
248-
- [Patch Changes](#patch-changes-62)
249-
- [v6.4.5](#v645)
250252
- [Patch Changes](#patch-changes-63)
251-
- [v6.4.4](#v644)
253+
- [v6.4.5](#v645)
252254
- [Patch Changes](#patch-changes-64)
253-
- [v6.4.3](#v643)
255+
- [v6.4.4](#v644)
254256
- [Patch Changes](#patch-changes-65)
255-
- [v6.4.2](#v642)
257+
- [v6.4.3](#v643)
256258
- [Patch Changes](#patch-changes-66)
257-
- [v6.4.1](#v641)
259+
- [v6.4.2](#v642)
258260
- [Patch Changes](#patch-changes-67)
261+
- [v6.4.1](#v641)
262+
- [Patch Changes](#patch-changes-68)
259263
- [v6.4.0](#v640)
260264
- [What's Changed](#whats-changed-19)
261265
- [Remix Data APIs](#remix-data-apis)
262-
- [Patch Changes](#patch-changes-68)
266+
- [Patch Changes](#patch-changes-69)
263267
- [v6.3.0](#v630)
264268
- [Minor Changes](#minor-changes-32)
265269
- [v6.2.2](#v622)
266-
- [Patch Changes](#patch-changes-69)
267-
- [v6.2.1](#v621)
268270
- [Patch Changes](#patch-changes-70)
271+
- [v6.2.1](#v621)
272+
- [Patch Changes](#patch-changes-71)
269273
- [v6.2.0](#v620)
270274
- [Minor Changes](#minor-changes-33)
271-
- [Patch Changes](#patch-changes-71)
272-
- [v6.1.1](#v611)
273275
- [Patch Changes](#patch-changes-72)
276+
- [v6.1.1](#v611)
277+
- [Patch Changes](#patch-changes-73)
274278
- [v6.1.0](#v610)
275279
- [Minor Changes](#minor-changes-34)
276-
- [Patch Changes](#patch-changes-73)
277-
- [v6.0.2](#v602)
278280
- [Patch Changes](#patch-changes-74)
279-
- [v6.0.1](#v601)
281+
- [v6.0.2](#v602)
280282
- [Patch Changes](#patch-changes-75)
283+
- [v6.0.1](#v601)
284+
- [Patch Changes](#patch-changes-76)
281285
- [v6.0.0](#v600)
282286

283287
</details>
@@ -319,6 +323,32 @@ Date: YYYY-MM-DD
319323
**Full Changelog**: [`v7.X.Y...v7.X.Y`](https://github.com/remix-run/react-router/compare/[email protected]@7.X.Y)
320324
-->
321325

326+
## v7.5.2
327+
328+
Date: 2025-04-24
329+
330+
### Security Notice
331+
332+
Fixed 2 security vulnerabilities that could result in cache-poisoning attacks by sending specific headers intended for build-time usage for SPA Mode and Pre-rendering ([GHSA-f46r-rw29-r322](https://github.com/remix-run/react-router/security/advisories/GHSA-f46r-rw29-r322), [GHSA-cpj6-fhp6-mr6j](https://github.com/remix-run/react-router/security/advisories/GHSA-cpj6-fhp6-mr6j)).
333+
334+
### Patch Changes
335+
336+
- `react-router` - Adjust approach for Pre-rendering/SPA Mode via headers ([#13453](https://github.com/remix-run/react-router/pull/13453))
337+
- `react-router` - Update Single Fetch to also handle the 204 redirects used in `?_data` requests in Remix v2 ([#13364](https://github.com/remix-run/react-router/pull/13364))
338+
- This allows applications to trigger a redirect on `.data` requests from outside the scope of React Router (i.e., an `express`/`hono` middleware) the same way they did in Remix v2 before Single Fetch was implemented
339+
- This is a bit of an escape hatch - the recommended way to handle this is redirecting from a root route middleware
340+
- To use this functionality, you may return from a `.data` request wih a response as follows:
341+
- Set a 204 status code
342+
- Set an `X-Remix-Redirect: <new-location>` header
343+
- Optionally, set `X-Remix-Replace: true` or `X-Remix-Reload-Document: true` headers to replicate `replace()`/`redirectDocument()` functionality
344+
- ⚠️ Please note that these responses rely on implementation details that are subject to change without a SemVer major release, and it is recommended you set up integration tests for your application to confirm this functionality is working correctly with each future React Router upgrade
345+
346+
### Unstable Changes
347+
348+
⚠️ _[Unstable features](https://reactrouter.com/community/api-development-strategy#unstable-flags) are not recommended for production use_
349+
350+
**Full Changelog**: [`v7.5.1...v7.5.2`](https://github.com/remix-run/react-router/compare/[email protected]@7.5.2)
351+
322352
## v7.5.1
323353

324354
Date: 2025-04-17
@@ -427,7 +457,7 @@ Date: 2025-03-28
427457

428458
### Security Notice
429459

430-
Fixed a security vulnerability that allowed URL manipulation and potential cache pollution via the `Host` and `X-Forwarded-Host` headers due to inadequate port sanitization.
460+
Fixed a security vulnerability that allowed URL manipulation and potential cache pollution via the `Host` and `X-Forwarded-Host` headers due to inadequate port sanitization ([GHSA-4q56-crqp-v477/CVE-2025-31137](https://github.com/remix-run/react-router/security/advisories/GHSA-4q56-crqp-v477)).
431461

432462
### Patch Changes
433463

contributors.yml

+1
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@
139139
- infoxicator
140140
- IsaiStormBlesed
141141
- Isammoc
142+
- iskanderbroere
142143
- istarkov
143144
- ivanjeremic
144145
- ivanjonas

0 commit comments

Comments
 (0)