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))
298
-
299
297
-`createCookie`
300
298
-`createCookieSessionStorage`
301
299
-`createMemorySessionStorage`
@@ -304,7 +302,6 @@
304
302
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)
305
303
306
304
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))
264
263
- 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))
265
-
266
264
-`createCookie`
267
265
-`createCookieSessionStorage`
268
266
-`createMemorySessionStorage`
@@ -271,7 +269,6 @@
271
269
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)
272
270
273
271
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:
975
-
976
974
- `Params` : Path parameters from your routing config in `routes.ts` including file-based routing
977
975
- `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module
978
976
- `ActionData` : Action data from `action` and/or `clientAction` within your route module
@@ -987,7 +985,6 @@
987
985
```
988
986
989
987
Check out our docs for more:
990
-
991
988
- [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety)
992
989
- [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety)
993
990
@@ -1187,7 +1184,6 @@
1187
1184
- Vite: Provide `Unstable_ServerBundlesFunction` and `Unstable_VitePluginConfig` types ([#8654](https://github.com/remix-run/remix/pull/8654))
1188
1185
1189
1186
- Vite: add `--sourcemapClient` and `--sourcemapServer` flags to `remix vite:build` ([#8613](https://github.com/remix-run/remix/pull/8613))
1190
-
1191
1187
- `--sourcemapClient`
1192
1188
1193
1189
- `--sourcemapClient=inline`
@@ -1524,7 +1520,6 @@
1524
1520
- 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))
1525
1521
1526
1522
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:
1527
-
1528
1523
- Leveraging a data source local to the browser (i.e., `localStorage`)
1529
1524
- Managing a client-side cache of server data (like `IndexedDB`)
1530
1525
- Bypassing the Remix server in a BFF setup and hitting your API directly from the browser
@@ -1928,7 +1923,6 @@
1928
1923
- Output esbuild metafiles for bundle analysis ([#6772](https://github.com/remix-run/remix/pull/6772))
1929
1924
1930
1925
Written to server build directory (`build/` by default):
1931
-
1932
1926
- `metafile.css.json`
1933
1927
- `metafile.js.json` (browser JS)
1934
1928
- `metafile.server.json` (server JS)
@@ -2026,7 +2020,6 @@
2026
2020
- built-in tls support ([#6483](https://github.com/remix-run/remix/pull/6483))
2027
2021
2028
2022
New options:
2029
-
2030
2023
- `--tls-key` / `tlsKey`: TLS key
2031
2024
- `--tls-cert` / `tlsCert`: TLS Certificate
2032
2025
@@ -2297,7 +2290,6 @@
2297
2290
```
2298
2291
2299
2292
The dev server will:
2300
-
2301
2293
- force `NODE_ENV=development` and warn you if it was previously set to something else
2302
2294
- rebuild your app whenever your Remix app code changes
2303
2295
- restart your app server whenever rebuilds succeed
- Remove single fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522))
265
264
266
265
- 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))
267
-
268
266
-`createCookie`
269
267
-`createCookieSessionStorage`
270
268
-`createMemorySessionStorage`
@@ -273,7 +271,6 @@
273
271
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)
274
272
275
273
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
276
-
277
274
-`createCookieFactory`
278
275
-`createSessionStorageFactory`
279
276
-`createCookieSessionStorageFactory`
@@ -681,12 +678,10 @@
681
678
- 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
@@ -690,12 +690,10 @@
690
690
- 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-11Lines changed: 1 addition & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,6 @@
14
14
- ⚠️ This is a breaking change if you have begun using `fetcher.unstable_reset()`
15
15
16
16
- Stabilize the `dataStrategy` `match.shouldRevalidateArgs`/`match.shouldCallHandler()` APIs. ([#14592](https://github.com/remix-run/react-router/pull/14592))
17
-
18
17
- The `match.shouldLoad` API is now marked deprecated in favor of these more powerful alternatives
19
18
20
19
- If you're using this API in a custom `dataStrategy` today, you can swap to the new API at your convenience:
@@ -143,7 +142,6 @@
143
142
- Ensure action handlers run for routes with middleware even if no loader is present ([#14443](https://github.com/remix-run/react-router/pull/14443))
144
143
145
144
- 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))
334
331
335
-
- server action revalidation opt out via $SKIP\_REVALIDATION field ([#14154](https://github.com/remix-run/react-router/pull/14154))
332
+
- server action revalidation opt out via $SKIP_REVALIDATION field ([#14154](https://github.com/remix-run/react-router/pull/14154))
336
333
337
334
- Properly escape interpolated param values in `generatePath()` ([#13530](https://github.com/remix-run/react-router/pull/13530))
338
335
@@ -381,7 +378,6 @@
381
378
- Remove dependency on `@types/node` in TypeScript declaration files ([#14059](https://github.com/remix-run/react-router/pull/14059))
382
379
383
380
- Fix types for `UIMatch` to reflect that the `loaderData`/`data` properties may be `undefined` ([#12206](https://github.com/remix-run/react-router/pull/12206))
384
-
385
381
- 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
386
382
- 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
387
383
- ⚠️ 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.
@@ -415,7 +411,6 @@
415
411
- \[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))
416
412
417
413
- \[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))
418
-
419
414
- The API has been renamed to `unstable_generateMiddlewareResponse` for clarity
420
415
- 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
421
416
- The `query` version of the API now has a signature of `(query: (r: Request) => Promise<StaticHandlerContext | Response>) => Promise<Response>`
@@ -1061,7 +1056,6 @@
1061
1056
```
1062
1057
1063
1058
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))
1250
1244
1251
1245
- 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))
1252
-
1253
1246
- `createCookie`
1254
1247
- `createCookieSessionStorage`
1255
1248
- `createMemorySessionStorage`
@@ -1258,7 +1251,6 @@ _No changes_
1258
1251
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)
1259
1252
1260
1253
Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed:
1261
-
1262
1254
- `createCookieFactory`
1263
1255
- `createSessionStorageFactory`
1264
1256
- `createCookieSessionStorageFactory`
@@ -1414,7 +1406,6 @@ _No changes_
1414
1406
```
1415
1407
1416
1408
This initial implementation targets type inference for:
1417
-
1418
1409
- `Params` : Path parameters from your routing config in `routes.ts` including file-based routing
1419
1410
- `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module
1420
1411
- `ActionData` : Action data from `action` and/or `clientAction` within your route module
@@ -1429,7 +1420,6 @@ _No changes_
1429
1420
```
1430
1421
1431
1422
Check out our docs for more:
1432
-
1433
1423
- [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety)
1434
1424
- [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety)
0 commit comments