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))
282
-
283
281
-`createCookie`
284
282
-`createCookieSessionStorage`
285
283
-`createMemorySessionStorage`
@@ -288,7 +286,6 @@
288
286
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)
289
287
290
288
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))
250
249
- 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))
251
-
252
250
-`createCookie`
253
251
-`createCookieSessionStorage`
254
252
-`createMemorySessionStorage`
@@ -257,7 +255,6 @@
257
255
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)
258
256
259
257
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:
926
-
927
925
- `Params` : Path parameters from your routing config in `routes.ts` including file-based routing
928
926
- `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module
929
927
- `ActionData` : Action data from `action` and/or `clientAction` within your route module
@@ -938,7 +936,6 @@
938
936
```
939
937
940
938
Check out our docs for more:
941
-
942
939
- [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety)
943
940
- [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety)
944
941
@@ -1138,7 +1135,6 @@
1138
1135
- Vite: Provide `Unstable_ServerBundlesFunction` and `Unstable_VitePluginConfig` types ([#8654](https://github.com/remix-run/remix/pull/8654))
1139
1136
1140
1137
- Vite: add `--sourcemapClient` and `--sourcemapServer` flags to `remix vite:build` ([#8613](https://github.com/remix-run/remix/pull/8613))
1141
-
1142
1138
- `--sourcemapClient`
1143
1139
1144
1140
- `--sourcemapClient=inline`
@@ -1475,7 +1471,6 @@
1475
1471
- 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))
1476
1472
1477
1473
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:
1478
-
1479
1474
- Leveraging a data source local to the browser (i.e., `localStorage`)
1480
1475
- Managing a client-side cache of server data (like `IndexedDB`)
1481
1476
- Bypassing the Remix server in a BFF setup and hitting your API directly from the browser
@@ -1879,7 +1874,6 @@
1879
1874
- Output esbuild metafiles for bundle analysis ([#6772](https://github.com/remix-run/remix/pull/6772))
1880
1875
1881
1876
Written to server build directory (`build/` by default):
1882
-
1883
1877
- `metafile.css.json`
1884
1878
- `metafile.js.json` (browser JS)
1885
1879
- `metafile.server.json` (server JS)
@@ -1977,7 +1971,6 @@
1977
1971
- built-in tls support ([#6483](https://github.com/remix-run/remix/pull/6483))
1978
1972
1979
1973
New options:
1980
-
1981
1974
- `--tls-key` / `tlsKey`: TLS key
1982
1975
- `--tls-cert` / `tlsCert`: TLS Certificate
1983
1976
@@ -2248,7 +2241,6 @@
2248
2241
```
2249
2242
2250
2243
The dev server will:
2251
-
2252
2244
- force `NODE_ENV=development` and warn you if it was previously set to something else
2253
2245
- rebuild your app whenever your Remix app code changes
2254
2246
- restart your app server whenever rebuilds succeed
- Remove single fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522))
251
250
252
251
- 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))
253
-
254
252
-`createCookie`
255
253
-`createCookieSessionStorage`
256
254
-`createMemorySessionStorage`
@@ -259,7 +257,6 @@
259
257
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)
260
258
261
259
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
262
-
263
260
-`createCookieFactory`
264
261
-`createSessionStorageFactory`
265
262
-`createCookieSessionStorageFactory`
@@ -667,12 +664,10 @@
667
664
- 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
@@ -672,12 +672,10 @@
672
672
- 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
@@ -61,7 +61,6 @@
61
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))
62
62
63
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))
- \[UNSTABLE] Add `<RouterProvider unstable_onError>`/`<HydratedRouter unstable_onError>` prop for client side error reporting ([#14162](https://github.com/remix-run/react-router/pull/14162))
252
250
253
-
- server action revalidation opt out via $SKIP\_REVALIDATION field ([#14154](https://github.com/remix-run/react-router/pull/14154))
251
+
- server action revalidation opt out via $SKIP_REVALIDATION field ([#14154](https://github.com/remix-run/react-router/pull/14154))
254
252
255
253
- Properly escape interpolated param values in `generatePath()` ([#13530](https://github.com/remix-run/react-router/pull/13530))
256
254
@@ -299,7 +297,6 @@
299
297
- Remove dependency on `@types/node` in TypeScript declaration files ([#14059](https://github.com/remix-run/react-router/pull/14059))
300
298
301
299
- 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
300
- 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
301
- 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
302
- ⚠️ 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,7 +330,6 @@
333
330
- \[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
331
335
332
- \[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
-
337
333
- The API has been renamed to `unstable_generateMiddlewareResponse` for clarity
338
334
- 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
339
335
- The `query` version of the API now has a signature of `(query: (r: Request) => Promise<StaticHandlerContext | Response>) => Promise<Response>`
@@ -979,7 +975,6 @@
979
975
```
980
976
981
977
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))
1168
1163
1169
1164
- 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
-
1171
1165
- `createCookie`
1172
1166
- `createCookieSessionStorage`
1173
1167
- `createMemorySessionStorage`
@@ -1176,7 +1170,6 @@ _No changes_
1176
1170
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)
1177
1171
1178
1172
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
1179
-
1180
1173
- `createCookieFactory`
1181
1174
- `createSessionStorageFactory`
1182
1175
- `createCookieSessionStorageFactory`
@@ -1332,7 +1325,6 @@ _No changes_
1332
1325
```
1333
1326
1334
1327
This initial implementation targets type inference for:
1335
-
1336
1328
- `Params` : Path parameters from your routing config in `routes.ts` including file-based routing
1337
1329
- `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module
1338
1330
- `ActionData` : Action data from `action` and/or `clientAction` within your route module
@@ -1347,7 +1339,6 @@ _No changes_
1347
1339
```
1348
1340
1349
1341
Check out our docs for more:
1350
-
1351
1342
- [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety)
1352
1343
- [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety)
0 commit comments