You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- 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))
266
-
267
265
-`createCookie`
268
266
-`createCookieSessionStorage`
269
267
-`createMemorySessionStorage`
@@ -272,7 +270,6 @@
272
270
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)
273
271
274
272
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
- For Remix consumers migrating to React Router, all exports from `@remix-run/cloudflare-pages` are now provided for React Router consumers in the `@react-router/cloudflare` package. There is no longer a separate package for Cloudflare Pages. ([#11801](https://github.com/remix-run/react-router/pull/11801))
236
235
- 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))
237
-
238
236
-`createCookie`
239
237
-`createCookieSessionStorage`
240
238
-`createMemorySessionStorage`
@@ -243,7 +241,6 @@
243
241
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)
244
242
245
243
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
This initial implementation targets type inference for:
902
-
903
901
- `Params` : Path parameters from your routing config in `routes.ts` including file-based routing
904
902
- `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module
905
903
- `ActionData` : Action data from `action` and/or `clientAction` within your route module
@@ -914,7 +912,6 @@
914
912
```
915
913
916
914
Check out our docs for more:
917
-
918
915
- [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety)
919
916
- [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety)
920
917
@@ -1114,7 +1111,6 @@
1114
1111
- Vite: Provide `Unstable_ServerBundlesFunction` and `Unstable_VitePluginConfig` types ([#8654](https://github.com/remix-run/remix/pull/8654))
1115
1112
1116
1113
- Vite: add `--sourcemapClient` and `--sourcemapServer` flags to `remix vite:build` ([#8613](https://github.com/remix-run/remix/pull/8613))
1117
-
1118
1114
- `--sourcemapClient`
1119
1115
1120
1116
- `--sourcemapClient=inline`
@@ -1451,7 +1447,6 @@
1451
1447
- Add support for `clientLoader`/`clientAction`/`HydrateFallback` route exports ([RFC](https://github.com/remix-run/remix/discussions/7634)) ([#8173](https://github.com/remix-run/remix/pull/8173))
1452
1448
1453
1449
Remix now supports loaders/actions that run on the client (in addition to, or instead of the loader/action that runs on the server). While we still recommend server loaders/actions for the majority of your data needs in a Remix app - these provide some levers you can pull for more advanced use-cases such as:
1454
-
1455
1450
- Leveraging a data source local to the browser (i.e., `localStorage`)
1456
1451
- Managing a client-side cache of server data (like `IndexedDB`)
1457
1452
- Bypassing the Remix server in a BFF setup and hitting your API directly from the browser
@@ -1855,7 +1850,6 @@
1855
1850
- Output esbuild metafiles for bundle analysis ([#6772](https://github.com/remix-run/remix/pull/6772))
1856
1851
1857
1852
Written to server build directory (`build/` by default):
1858
-
1859
1853
- `metafile.css.json`
1860
1854
- `metafile.js.json` (browser JS)
1861
1855
- `metafile.server.json` (server JS)
@@ -1953,7 +1947,6 @@
1953
1947
- built-in tls support ([#6483](https://github.com/remix-run/remix/pull/6483))
1954
1948
1955
1949
New options:
1956
-
1957
1950
- `--tls-key` / `tlsKey`: TLS key
1958
1951
- `--tls-cert` / `tlsCert`: TLS Certificate
1959
1952
@@ -2224,7 +2217,6 @@
2224
2217
```
2225
2218
2226
2219
The dev server will:
2227
-
2228
2220
- force `NODE_ENV=development` and warn you if it was previously set to something else
2229
2221
- rebuild your app whenever your Remix app code changes
2230
2222
- restart your app server whenever rebuilds succeed
- Remove single fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522))
237
236
238
237
- 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))
239
-
240
238
-`createCookie`
241
239
-`createCookieSessionStorage`
242
240
-`createMemorySessionStorage`
@@ -245,7 +243,6 @@
245
243
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)
246
244
247
245
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
248
-
249
246
-`createCookieFactory`
250
247
-`createSessionStorageFactory`
251
248
-`createCookieSessionStorageFactory`
@@ -653,12 +650,10 @@
653
650
- Introduces the `defer()` API from `@remix-run/router` with support for server-rendering and HTTP streaming. This utility allows you to defer values returned from `loader` functions by returning promises instead of resolved values. This has been refered to as _"sending a promise over the wire"_. ([#4920](https://github.com/remix-run/remix/pull/4920))
Copy file name to clipboardExpand all lines: packages/react-router-serve/CHANGELOG.md
-2Lines changed: 0 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -654,12 +654,10 @@
654
654
- Introduces the `defer()`API from `@remix-run/router`with support for server-rendering and HTTPstreaming. This utility allows you to defer values returned from `loader` functions by returning promises instead of resolved values. This has been refered to as _"sending a promise over the wire"_. ([#4920](https://github.com/remix-run/remix/pull/4920))
- \[UNSTABLE] Add `<RouterProvider unstable_onError>`/`<HydratedRouter unstable_onError>` prop for client side error reporting ([#14162](https://github.com/remix-run/react-router/pull/14162))
182
181
183
-
- server action revalidation opt out via $SKIP\_REVALIDATION field ([#14154](https://github.com/remix-run/react-router/pull/14154))
182
+
- server action revalidation opt out via $SKIP_REVALIDATION field ([#14154](https://github.com/remix-run/react-router/pull/14154))
184
183
185
184
- Properly escape interpolated param values in `generatePath()` ([#13530](https://github.com/remix-run/react-router/pull/13530))
186
185
@@ -229,7 +228,6 @@
229
228
- Remove dependency on `@types/node` in TypeScript declaration files ([#14059](https://github.com/remix-run/react-router/pull/14059))
230
229
231
230
- Fix types for `UIMatch` to reflect that the `loaderData`/`data` properties may be `undefined` ([#12206](https://github.com/remix-run/react-router/pull/12206))
232
-
233
231
- 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
234
232
- 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
235
233
- ⚠️ 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.
@@ -263,7 +261,6 @@
263
261
- \[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))
264
262
265
263
- \[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))
266
-
267
264
- The API has been renamed to `unstable_generateMiddlewareResponse` for clarity
268
265
- 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
269
266
- The `query` version of the API now has a signature of `(query: (r: Request) => Promise<StaticHandlerContext | Response>) => Promise<Response>`
@@ -909,7 +906,6 @@
909
906
```
910
907
911
908
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:
- Remove `future.v7_normalizeFormMethod` future flag ([#11697](https://github.com/remix-run/react-router/pull/11697))
1098
1094
1099
1095
- 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))
1100
-
1101
1096
- `createCookie`
1102
1097
- `createCookieSessionStorage`
1103
1098
- `createMemorySessionStorage`
@@ -1106,7 +1101,6 @@ _No changes_
1106
1101
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)
1107
1102
1108
1103
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
1109
-
1110
1104
- `createCookieFactory`
1111
1105
- `createSessionStorageFactory`
1112
1106
- `createCookieSessionStorageFactory`
@@ -1262,7 +1256,6 @@ _No changes_
1262
1256
```
1263
1257
1264
1258
This initial implementation targets type inference for:
1265
-
1266
1259
- `Params` : Path parameters from your routing config in `routes.ts` including file-based routing
1267
1260
- `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module
1268
1261
- `ActionData` : Action data from `action` and/or `clientAction` within your route module
@@ -1277,7 +1270,6 @@ _No changes_
1277
1270
```
1278
1271
1279
1272
Check out our docs for more:
1280
-
1281
1273
- [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety)
1282
1274
- [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety)
0 commit comments