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))
274
-
275
273
-`createCookie`
276
274
-`createCookieSessionStorage`
277
275
-`createMemorySessionStorage`
@@ -280,7 +278,6 @@
280
278
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)
281
279
282
280
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))
243
242
- 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))
244
-
245
243
-`createCookie`
246
244
-`createCookieSessionStorage`
247
245
-`createMemorySessionStorage`
@@ -250,7 +248,6 @@
250
248
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)
251
249
252
250
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:
915
-
916
914
- `Params` : Path parameters from your routing config in `routes.ts` including file-based routing
917
915
- `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module
918
916
- `ActionData` : Action data from `action` and/or `clientAction` within your route module
@@ -927,7 +925,6 @@
927
925
```
928
926
929
927
Check out our docs for more:
930
-
931
928
- [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety)
932
929
- [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety)
933
930
@@ -1127,7 +1124,6 @@
1127
1124
- Vite: Provide `Unstable_ServerBundlesFunction` and `Unstable_VitePluginConfig` types ([#8654](https://github.com/remix-run/remix/pull/8654))
1128
1125
1129
1126
- Vite: add `--sourcemapClient` and `--sourcemapServer` flags to `remix vite:build` ([#8613](https://github.com/remix-run/remix/pull/8613))
1130
-
1131
1127
- `--sourcemapClient`
1132
1128
1133
1129
- `--sourcemapClient=inline`
@@ -1464,7 +1460,6 @@
1464
1460
- 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))
1465
1461
1466
1462
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:
1467
-
1468
1463
- Leveraging a data source local to the browser (i.e., `localStorage`)
1469
1464
- Managing a client-side cache of server data (like `IndexedDB`)
1470
1465
- Bypassing the Remix server in a BFF setup and hitting your API directly from the browser
@@ -1868,7 +1863,6 @@
1868
1863
- Output esbuild metafiles for bundle analysis ([#6772](https://github.com/remix-run/remix/pull/6772))
1869
1864
1870
1865
Written to server build directory (`build/` by default):
1871
-
1872
1866
- `metafile.css.json`
1873
1867
- `metafile.js.json` (browser JS)
1874
1868
- `metafile.server.json` (server JS)
@@ -1966,7 +1960,6 @@
1966
1960
- built-in tls support ([#6483](https://github.com/remix-run/remix/pull/6483))
1967
1961
1968
1962
New options:
1969
-
1970
1963
- `--tls-key` / `tlsKey`: TLS key
1971
1964
- `--tls-cert` / `tlsCert`: TLS Certificate
1972
1965
@@ -2237,7 +2230,6 @@
2237
2230
```
2238
2231
2239
2232
The dev server will:
2240
-
2241
2233
- force `NODE_ENV=development` and warn you if it was previously set to something else
2242
2234
- rebuild your app whenever your Remix app code changes
2243
2235
- restart your app server whenever rebuilds succeed
- Remove single fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522))
244
243
245
244
- 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))
246
-
247
245
-`createCookie`
248
246
-`createCookieSessionStorage`
249
247
-`createMemorySessionStorage`
@@ -252,7 +250,6 @@
252
250
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)
253
251
254
252
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
255
-
256
253
-`createCookieFactory`
257
254
-`createSessionStorageFactory`
258
255
-`createCookieSessionStorageFactory`
@@ -660,12 +657,10 @@
660
657
- 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
@@ -663,12 +663,10 @@
663
663
- 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))
Copy file name to clipboardExpand all lines: packages/react-router/CHANGELOG.md
+1-10Lines changed: 1 addition & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,6 @@
28
28
- Ensure action handlers run for routes with middleware even if no loader is present ([#14443](https://github.com/remix-run/react-router/pull/14443))
29
29
30
30
- 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))
- \[UNSTABLE] Add `<RouterProvider unstable_onError>`/`<HydratedRouter unstable_onError>` prop for client side error reporting ([#14162](https://github.com/remix-run/react-router/pull/14162))
219
217
220
-
- server action revalidation opt out via $SKIP\_REVALIDATION field ([#14154](https://github.com/remix-run/react-router/pull/14154))
218
+
- server action revalidation opt out via $SKIP_REVALIDATION field ([#14154](https://github.com/remix-run/react-router/pull/14154))
221
219
222
220
- Properly escape interpolated param values in `generatePath()` ([#13530](https://github.com/remix-run/react-router/pull/13530))
223
221
@@ -266,7 +264,6 @@
266
264
- Remove dependency on `@types/node` in TypeScript declaration files ([#14059](https://github.com/remix-run/react-router/pull/14059))
267
265
268
266
- Fix types for `UIMatch` to reflect that the `loaderData`/`data` properties may be `undefined` ([#12206](https://github.com/remix-run/react-router/pull/12206))
269
-
270
267
- 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
271
268
- 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
272
269
- ⚠️ 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.
@@ -300,7 +297,6 @@
300
297
- \[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))
301
298
302
299
- \[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))
303
-
304
300
- The API has been renamed to `unstable_generateMiddlewareResponse` for clarity
305
301
- 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
306
302
- The `query` version of the API now has a signature of `(query: (r: Request) => Promise<StaticHandlerContext | Response>) => Promise<Response>`
@@ -946,7 +942,6 @@
946
942
```
947
943
948
944
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))
1135
1130
1136
1131
- 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))
1137
-
1138
1132
- `createCookie`
1139
1133
- `createCookieSessionStorage`
1140
1134
- `createMemorySessionStorage`
@@ -1143,7 +1137,6 @@ _No changes_
1143
1137
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)
1144
1138
1145
1139
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
1146
-
1147
1140
- `createCookieFactory`
1148
1141
- `createSessionStorageFactory`
1149
1142
- `createCookieSessionStorageFactory`
@@ -1299,7 +1292,6 @@ _No changes_
1299
1292
```
1300
1293
1301
1294
This initial implementation targets type inference for:
1302
-
1303
1295
- `Params` : Path parameters from your routing config in `routes.ts` including file-based routing
1304
1296
- `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module
1305
1297
- `ActionData` : Action data from `action` and/or `clientAction` within your route module
@@ -1314,7 +1306,6 @@ _No changes_
1314
1306
```
1315
1307
1316
1308
Check out our docs for more:
1317
-
1318
1309
- [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety)
1319
1310
- [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety)
0 commit comments