react-router 7.9.6-pre.1 → 7.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -9
- package/dist/development/{chunk-DKSAHU2I.mjs → chunk-4WY6JWTD.mjs} +2 -2
- package/dist/development/{chunk-CYHICRRW.js → chunk-AMVS5XVJ.js} +1 -1
- package/dist/development/{chunk-RGKEVI2W.mjs → chunk-G3INQAYP.mjs} +2 -2
- package/dist/{production/chunk-EDK3MRM6.js → development/chunk-O4JVZSOY.js} +93 -93
- package/dist/{production/chunk-JLDESRHY.js → development/chunk-PZWDWJAY.js} +7 -7
- package/dist/development/dom-export.js +26 -26
- package/dist/development/dom-export.mjs +3 -3
- package/dist/development/index-react-server-client.js +4 -4
- package/dist/development/index-react-server-client.mjs +2 -2
- package/dist/development/index-react-server.js +1 -1
- package/dist/development/index-react-server.mjs +1 -1
- package/dist/development/index.js +76 -76
- package/dist/development/index.mjs +3 -3
- package/dist/development/lib/types/internal.js +1 -1
- package/dist/development/lib/types/internal.mjs +1 -1
- package/dist/production/{chunk-2DNJUQK6.js → chunk-EAIF67OW.js} +1 -1
- package/dist/production/{chunk-LC2OWLJG.mjs → chunk-FDUMZGKM.mjs} +2 -2
- package/dist/production/{chunk-LESYMMDQ.mjs → chunk-FUSXQSWG.mjs} +2 -2
- package/dist/{development/chunk-OLIKX45O.js → production/chunk-G5A35OQU.js} +7 -7
- package/dist/{development/chunk-HSVNPM3C.js → production/chunk-QN64DHI4.js} +93 -93
- package/dist/production/dom-export.js +26 -26
- package/dist/production/dom-export.mjs +3 -3
- package/dist/production/index-react-server-client.js +4 -4
- package/dist/production/index-react-server-client.mjs +2 -2
- package/dist/production/index-react-server.js +1 -1
- package/dist/production/index-react-server.mjs +1 -1
- package/dist/production/index.js +76 -76
- package/dist/production/index.mjs +3 -3
- package/dist/production/lib/types/internal.js +1 -1
- package/dist/production/lib/types/internal.mjs +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
# `react-router`
|
|
2
2
|
|
|
3
|
-
## 7.9.6
|
|
3
|
+
## 7.9.6
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
|
|
9
|
-
## 7.9.6-pre.0
|
|
10
|
-
|
|
11
|
-
### Patch Changes
|
|
12
|
-
|
|
13
|
-
- [UNSTABLE] Add `location`/`params` as arguments to client-side `unstable_onError` to permit enhanced error reporting. ([#14509](https://github.com/remix-run/react-router/pull/14509))
|
|
7
|
+
- \[UNSTABLE] Add `location`/`params` as arguments to client-side `unstable_onError` to permit enhanced error reporting. ([#14509](https://github.com/remix-run/react-router/pull/14509))
|
|
14
8
|
|
|
15
9
|
⚠️ This is a breaking change if you've already adopted `unstable_onError`. The second `errorInfo` parameter is now an object with `location` and `params`:
|
|
16
10
|
|
|
@@ -34,8 +28,11 @@
|
|
|
34
28
|
```
|
|
35
29
|
|
|
36
30
|
- Properly handle ancestor thrown middleware errors before `next()` on fetcher submissions ([#14517](https://github.com/remix-run/react-router/pull/14517))
|
|
31
|
+
|
|
37
32
|
- Fix issue with splat routes interfering with multiple calls to patchRoutesOnNavigation ([#14487](https://github.com/remix-run/react-router/pull/14487))
|
|
38
33
|
|
|
34
|
+
- Normalize double-slashes in `resolvePath` ([#14529](https://github.com/remix-run/react-router/pull/14529))
|
|
35
|
+
|
|
39
36
|
## 7.9.5
|
|
40
37
|
|
|
41
38
|
### Patch Changes
|
|
@@ -64,6 +61,7 @@
|
|
|
64
61
|
- Ensure action handlers run for routes with middleware even if no loader is present ([#14443](https://github.com/remix-run/react-router/pull/14443))
|
|
65
62
|
|
|
66
63
|
- 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 ([#14412](https://github.com/remix-run/react-router/pull/14412))
|
|
64
|
+
|
|
67
65
|
- Framework Mode:
|
|
68
66
|
- `entry.server.tsx`: `export const unstable_instrumentations = [...]`
|
|
69
67
|
- `entry.client.tsx`: `<HydratedRouter unstable_instrumentations={[...]} />`
|
|
@@ -225,6 +223,7 @@
|
|
|
225
223
|
- Stabilize middleware and context APIs. ([#14215](https://github.com/remix-run/react-router/pull/14215))
|
|
226
224
|
|
|
227
225
|
We have removed the `unstable_` prefix from the following APIs and they are now considered stable and ready for production use:
|
|
226
|
+
|
|
228
227
|
- [`RouterContextProvider`](https://reactrouter.com/api/utils/RouterContextProvider)
|
|
229
228
|
- [`createContext`](https://reactrouter.com/api/utils/createContext)
|
|
230
229
|
- `createBrowserRouter` [`getContext`](https://reactrouter.com/api/data-routers/createBrowserRouter#optsgetcontext) option
|
|
@@ -251,7 +250,7 @@
|
|
|
251
250
|
|
|
252
251
|
- \[UNSTABLE] Add `<RouterProvider unstable_onError>`/`<HydratedRouter unstable_onError>` prop for client side error reporting ([#14162](https://github.com/remix-run/react-router/pull/14162))
|
|
253
252
|
|
|
254
|
-
- server action revalidation opt out via $
|
|
253
|
+
- server action revalidation opt out via $SKIP\_REVALIDATION field ([#14154](https://github.com/remix-run/react-router/pull/14154))
|
|
255
254
|
|
|
256
255
|
- Properly escape interpolated param values in `generatePath()` ([#13530](https://github.com/remix-run/react-router/pull/13530))
|
|
257
256
|
|
|
@@ -300,6 +299,7 @@
|
|
|
300
299
|
- Remove dependency on `@types/node` in TypeScript declaration files ([#14059](https://github.com/remix-run/react-router/pull/14059))
|
|
301
300
|
|
|
302
301
|
- Fix types for `UIMatch` to reflect that the `loaderData`/`data` properties may be `undefined` ([#12206](https://github.com/remix-run/react-router/pull/12206))
|
|
302
|
+
|
|
303
303
|
- When an `ErrorBoundary` is being rendered, not all active matches will have loader data available, since it may have been their `loader` that threw to trigger the boundary
|
|
304
304
|
- The `UIMatch.data` type was not correctly handing this and would always reflect the presence of data, leading to the unexpected runtime errors when an `ErrorBoundary` was rendered
|
|
305
305
|
- ⚠️ This may cause some type errors to show up in your code for unguarded `match.data` accesses - you should properly guard for `undefined` values in those scenarios.
|
|
@@ -333,6 +333,7 @@
|
|
|
333
333
|
- \[UNSTABLE] When middleware is enabled, make the `context` parameter read-only (via `Readonly<unstable_RouterContextProvider>`) so that TypeScript will not allow you to write arbitrary fields to it in loaders, actions, or middleware. ([#14097](https://github.com/remix-run/react-router/pull/14097))
|
|
334
334
|
|
|
335
335
|
- \[UNSTABLE] Rename and alter the signature/functionality of the `unstable_respond` API in `staticHandler.query`/`staticHandler.queryRoute` ([#14103](https://github.com/remix-run/react-router/pull/14103))
|
|
336
|
+
|
|
336
337
|
- The API has been renamed to `unstable_generateMiddlewareResponse` for clarity
|
|
337
338
|
- The main functional change is that instead of running the loaders/actions before calling `unstable_respond` and handing you the result, we now pass a `query`/`queryRoute` function as a parameter and you execute the loaders/actions inside your callback, giving you full access to pre-processing and error handling
|
|
338
339
|
- The `query` version of the API now has a signature of `(query: (r: Request) => Promise<StaticHandlerContext | Response>) => Promise<Response>`
|
|
@@ -978,6 +979,7 @@
|
|
|
978
979
|
```
|
|
979
980
|
|
|
980
981
|
Similar to server-side requests, a fresh `context` will be created per navigation (or `fetcher` call). If you have initial data you'd like to populate in the context for every request, you can provide an `unstable_getContext` function at the root of your app:
|
|
982
|
+
|
|
981
983
|
- Library mode - `createBrowserRouter(routes, { unstable_getContext })`
|
|
982
984
|
- Framework mode - `<HydratedRouter unstable_getContext>`
|
|
983
985
|
|
|
@@ -1165,6 +1167,7 @@ _No changes_
|
|
|
1165
1167
|
- Remove `future.v7_normalizeFormMethod` future flag ([#11697](https://github.com/remix-run/react-router/pull/11697))
|
|
1166
1168
|
|
|
1167
1169
|
- For Remix consumers migrating to React Router, the `crypto` global from the [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API) is now required when using cookie and session APIs. This means that the following APIs are provided from `react-router` rather than platform-specific packages: ([#11837](https://github.com/remix-run/react-router/pull/11837))
|
|
1170
|
+
|
|
1168
1171
|
- `createCookie`
|
|
1169
1172
|
- `createCookieSessionStorage`
|
|
1170
1173
|
- `createMemorySessionStorage`
|
|
@@ -1173,6 +1176,7 @@ _No changes_
|
|
|
1173
1176
|
For consumers running older versions of Node, the `installGlobals` function from `@remix-run/node` has been updated to define `globalThis.crypto`, using [Node's `require('node:crypto').webcrypto` implementation.](https://nodejs.org/api/webcrypto.html)
|
|
1174
1177
|
|
|
1175
1178
|
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
|
|
1179
|
+
|
|
1176
1180
|
- `createCookieFactory`
|
|
1177
1181
|
- `createSessionStorageFactory`
|
|
1178
1182
|
- `createCookieSessionStorageFactory`
|
|
@@ -1328,6 +1332,7 @@ _No changes_
|
|
|
1328
1332
|
```
|
|
1329
1333
|
|
|
1330
1334
|
This initial implementation targets type inference for:
|
|
1335
|
+
|
|
1331
1336
|
- `Params` : Path parameters from your routing config in `routes.ts` including file-based routing
|
|
1332
1337
|
- `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module
|
|
1333
1338
|
- `ActionData` : Action data from `action` and/or `clientAction` within your route module
|
|
@@ -1342,6 +1347,7 @@ _No changes_
|
|
|
1342
1347
|
```
|
|
1343
1348
|
|
|
1344
1349
|
Check out our docs for more:
|
|
1350
|
+
|
|
1345
1351
|
- [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety)
|
|
1346
1352
|
- [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety)
|
|
1347
1353
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* react-router v7.9.6
|
|
2
|
+
* react-router v7.9.6
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -9538,7 +9538,7 @@ var isBrowser = typeof window !== "undefined" && typeof window.document !== "und
|
|
|
9538
9538
|
try {
|
|
9539
9539
|
if (isBrowser) {
|
|
9540
9540
|
window.__reactRouterVersion = // @ts-expect-error
|
|
9541
|
-
"7.9.6
|
|
9541
|
+
"7.9.6";
|
|
9542
9542
|
}
|
|
9543
9543
|
} catch (e) {
|
|
9544
9544
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }/**
|
|
2
|
-
* react-router v7.9.6
|
|
2
|
+
* react-router v7.9.6
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* react-router v7.9.6
|
|
2
|
+
* react-router v7.9.6
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -49,7 +49,7 @@ import {
|
|
|
49
49
|
withComponentProps,
|
|
50
50
|
withErrorBoundaryProps,
|
|
51
51
|
withHydrateFallbackProps
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-4WY6JWTD.mjs";
|
|
53
53
|
|
|
54
54
|
// lib/dom/ssr/server.tsx
|
|
55
55
|
import * as React from "react";
|