From b2be7f648b7d41ccbe0984e621b5795534a4d261 Mon Sep 17 00:00:00 2001 From: Remix Run Bot Date: Wed, 8 Oct 2025 17:36:02 +0000 Subject: [PATCH 1/7] chore: format --- integration/CHANGELOG.md | 1 - packages/react-router-architect/CHANGELOG.md | 3 --- packages/react-router-cloudflare/CHANGELOG.md | 3 --- packages/react-router-dev/CHANGELOG.md | 8 -------- packages/react-router-express/CHANGELOG.md | 1 - packages/react-router-node/CHANGELOG.md | 5 ----- packages/react-router-serve/CHANGELOG.md | 2 -- packages/react-router/CHANGELOG.md | 10 +--------- 8 files changed, 1 insertion(+), 32 deletions(-) diff --git a/integration/CHANGELOG.md b/integration/CHANGELOG.md index 6fccf850d7..2cf67d87b7 100644 --- a/integration/CHANGELOG.md +++ b/integration/CHANGELOG.md @@ -5,7 +5,6 @@ ### Minor Changes - Unstable Vite support for Node-based Remix apps ([#7590](https://github.com/remix-run/remix/pull/7590)) - - `remix build` 👉 `vite build && vite build --ssr` - `remix dev` 👉 `vite dev` diff --git a/packages/react-router-architect/CHANGELOG.md b/packages/react-router-architect/CHANGELOG.md index 8dd3f96677..16cf02621b 100644 --- a/packages/react-router-architect/CHANGELOG.md +++ b/packages/react-router-architect/CHANGELOG.md @@ -39,7 +39,6 @@ - Stabilize middleware and context APIs. ([#14215](https://github.com/remix-run/react-router/pull/14215)) We have removed the `unstable_` prefix from the following APIs and they are now considered stable and ready for production use: - - [`RouterContextProvider`](https://reactrouter.com/api/utils/RouterContextProvider) - [`createContext`](https://reactrouter.com/api/utils/createContext) - `createBrowserRouter` [`getContext`](https://reactrouter.com/api/data-routers/createBrowserRouter#optsgetcontext) option @@ -263,7 +262,6 @@ ### Major Changes - 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)) - - `createCookie` - `createCookieSessionStorage` - `createMemorySessionStorage` @@ -272,7 +270,6 @@ 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) Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed: - - `createCookieFactory` - `createSessionStorageFactory` - `createCookieSessionStorageFactory` diff --git a/packages/react-router-cloudflare/CHANGELOG.md b/packages/react-router-cloudflare/CHANGELOG.md index 46daa9383e..9a471e4a52 100644 --- a/packages/react-router-cloudflare/CHANGELOG.md +++ b/packages/react-router-cloudflare/CHANGELOG.md @@ -35,7 +35,6 @@ - Stabilize middleware and context APIs. ([#14215](https://github.com/remix-run/react-router/pull/14215)) We have removed the `unstable_` prefix from the following APIs and they are now considered stable and ready for production use: - - [`RouterContextProvider`](https://reactrouter.com/api/utils/RouterContextProvider) - [`createContext`](https://reactrouter.com/api/utils/createContext) - `createBrowserRouter` [`getContext`](https://reactrouter.com/api/data-routers/createBrowserRouter#optsgetcontext) option @@ -234,7 +233,6 @@ - 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)) - 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)) - - `createCookie` - `createCookieSessionStorage` - `createMemorySessionStorage` @@ -243,7 +241,6 @@ 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) Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed: - - `createCookieFactory` - `createSessionStorageFactory` - `createCookieSessionStorageFactory` diff --git a/packages/react-router-dev/CHANGELOG.md b/packages/react-router-dev/CHANGELOG.md index 980bd3bab0..e9029d2b52 100644 --- a/packages/react-router-dev/CHANGELOG.md +++ b/packages/react-router-dev/CHANGELOG.md @@ -156,7 +156,6 @@ - Stabilize middleware and context APIs. ([#14215](https://github.com/remix-run/react-router/pull/14215)) We have removed the `unstable_` prefix from the following APIs and they are now considered stable and ready for production use: - - [`RouterContextProvider`](https://reactrouter.com/api/utils/RouterContextProvider) - [`createContext`](https://reactrouter.com/api/utils/createContext) - `createBrowserRouter` [`getContext`](https://reactrouter.com/api/data-routers/createBrowserRouter#optsgetcontext) option @@ -899,7 +898,6 @@ ``` This initial implementation targets type inference for: - - `Params` : Path parameters from your routing config in `routes.ts` including file-based routing - `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module - `ActionData` : Action data from `action` and/or `clientAction` within your route module @@ -914,7 +912,6 @@ ``` Check out our docs for more: - - [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety) - [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety) @@ -1114,7 +1111,6 @@ - Vite: Provide `Unstable_ServerBundlesFunction` and `Unstable_VitePluginConfig` types ([#8654](https://github.com/remix-run/remix/pull/8654)) - Vite: add `--sourcemapClient` and `--sourcemapServer` flags to `remix vite:build` ([#8613](https://github.com/remix-run/remix/pull/8613)) - - `--sourcemapClient` - `--sourcemapClient=inline` @@ -1451,7 +1447,6 @@ - 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)) 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: - - Leveraging a data source local to the browser (i.e., `localStorage`) - Managing a client-side cache of server data (like `IndexedDB`) - Bypassing the Remix server in a BFF setup and hitting your API directly from the browser @@ -1855,7 +1850,6 @@ - Output esbuild metafiles for bundle analysis ([#6772](https://github.com/remix-run/remix/pull/6772)) Written to server build directory (`build/` by default): - - `metafile.css.json` - `metafile.js.json` (browser JS) - `metafile.server.json` (server JS) @@ -1953,7 +1947,6 @@ - built-in tls support ([#6483](https://github.com/remix-run/remix/pull/6483)) New options: - - `--tls-key` / `tlsKey`: TLS key - `--tls-cert` / `tlsCert`: TLS Certificate @@ -2224,7 +2217,6 @@ ``` The dev server will: - - force `NODE_ENV=development` and warn you if it was previously set to something else - rebuild your app whenever your Remix app code changes - restart your app server whenever rebuilds succeed diff --git a/packages/react-router-express/CHANGELOG.md b/packages/react-router-express/CHANGELOG.md index 069d309d11..3315423171 100644 --- a/packages/react-router-express/CHANGELOG.md +++ b/packages/react-router-express/CHANGELOG.md @@ -39,7 +39,6 @@ - Stabilize middleware and context APIs. ([#14215](https://github.com/remix-run/react-router/pull/14215)) We have removed the `unstable_` prefix from the following APIs and they are now considered stable and ready for production use: - - [`RouterContextProvider`](https://reactrouter.com/api/utils/RouterContextProvider) - [`createContext`](https://reactrouter.com/api/utils/createContext) - `createBrowserRouter` [`getContext`](https://reactrouter.com/api/data-routers/createBrowserRouter#optsgetcontext) option diff --git a/packages/react-router-node/CHANGELOG.md b/packages/react-router-node/CHANGELOG.md index 60f8387a04..4ec8cddc49 100644 --- a/packages/react-router-node/CHANGELOG.md +++ b/packages/react-router-node/CHANGELOG.md @@ -36,7 +36,6 @@ - Stabilize middleware and context APIs. ([#14215](https://github.com/remix-run/react-router/pull/14215)) We have removed the `unstable_` prefix from the following APIs and they are now considered stable and ready for production use: - - [`RouterContextProvider`](https://reactrouter.com/api/utils/RouterContextProvider) - [`createContext`](https://reactrouter.com/api/utils/createContext) - `createBrowserRouter` [`getContext`](https://reactrouter.com/api/data-routers/createBrowserRouter#optsgetcontext) option @@ -236,7 +235,6 @@ - Remove single fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522)) - 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)) - - `createCookie` - `createCookieSessionStorage` - `createMemorySessionStorage` @@ -245,7 +243,6 @@ 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) Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed: - - `createCookieFactory` - `createSessionStorageFactory` - `createCookieSessionStorageFactory` @@ -653,12 +650,10 @@ - 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)) Informational Resources: - - - Documentation Resources (better docs specific to Remix are in the works): - - - - diff --git a/packages/react-router-serve/CHANGELOG.md b/packages/react-router-serve/CHANGELOG.md index 48015455bd..21f876abd6 100644 --- a/packages/react-router-serve/CHANGELOG.md +++ b/packages/react-router-serve/CHANGELOG.md @@ -654,12 +654,10 @@ - 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)) Informational Resources: - - - Documentation Resources (better docs specific to Remix are in the works): - - - - diff --git a/packages/react-router/CHANGELOG.md b/packages/react-router/CHANGELOG.md index 6ef3ba52ad..479bccdc23 100644 --- a/packages/react-router/CHANGELOG.md +++ b/packages/react-router/CHANGELOG.md @@ -153,7 +153,6 @@ - Stabilize middleware and context APIs. ([#14215](https://github.com/remix-run/react-router/pull/14215)) We have removed the `unstable_` prefix from the following APIs and they are now considered stable and ready for production use: - - [`RouterContextProvider`](https://reactrouter.com/api/utils/RouterContextProvider) - [`createContext`](https://reactrouter.com/api/utils/createContext) - `createBrowserRouter` [`getContext`](https://reactrouter.com/api/data-routers/createBrowserRouter#optsgetcontext) option @@ -180,7 +179,7 @@ - \[UNSTABLE] Add ``/`` prop for client side error reporting ([#14162](https://github.com/remix-run/react-router/pull/14162)) -- server action revalidation opt out via $SKIP\_REVALIDATION field ([#14154](https://github.com/remix-run/react-router/pull/14154)) +- server action revalidation opt out via $SKIP_REVALIDATION field ([#14154](https://github.com/remix-run/react-router/pull/14154)) - Properly escape interpolated param values in `generatePath()` ([#13530](https://github.com/remix-run/react-router/pull/13530)) @@ -229,7 +228,6 @@ - Remove dependency on `@types/node` in TypeScript declaration files ([#14059](https://github.com/remix-run/react-router/pull/14059)) - Fix types for `UIMatch` to reflect that the `loaderData`/`data` properties may be `undefined` ([#12206](https://github.com/remix-run/react-router/pull/12206)) - - 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 - 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 - ⚠️ 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 @@ - \[UNSTABLE] When middleware is enabled, make the `context` parameter read-only (via `Readonly`) 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)) - \[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)) - - The API has been renamed to `unstable_generateMiddlewareResponse` for clarity - 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 - The `query` version of the API now has a signature of `(query: (r: Request) => Promise) => Promise` @@ -909,7 +906,6 @@ ``` 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: - - Library mode - `createBrowserRouter(routes, { unstable_getContext })` - Framework mode - `` @@ -1097,7 +1093,6 @@ _No changes_ - Remove `future.v7_normalizeFormMethod` future flag ([#11697](https://github.com/remix-run/react-router/pull/11697)) - 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)) - - `createCookie` - `createCookieSessionStorage` - `createMemorySessionStorage` @@ -1106,7 +1101,6 @@ _No changes_ 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) Since platform-specific packages no longer need to implement this API, the following low-level APIs have been removed: - - `createCookieFactory` - `createSessionStorageFactory` - `createCookieSessionStorageFactory` @@ -1262,7 +1256,6 @@ _No changes_ ``` This initial implementation targets type inference for: - - `Params` : Path parameters from your routing config in `routes.ts` including file-based routing - `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module - `ActionData` : Action data from `action` and/or `clientAction` within your route module @@ -1277,7 +1270,6 @@ _No changes_ ``` Check out our docs for more: - - [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety) - [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety) From 158847e11664bc47534bf8f334bc9d630ea79a70 Mon Sep 17 00:00:00 2001 From: Peter Neave <7982708+peterneave@users.noreply.github.com> Date: Fri, 10 Oct 2025 02:15:14 +1100 Subject: [PATCH 2/7] fix: Fix invalid markdown link for createHashRouter (#14434) Co-authored-by: Peter Neave --- contributors.yml | 1 + packages/react-router/lib/dom/lib.tsx | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/contributors.yml b/contributors.yml index 0b1dee6722..eeb4d400e1 100644 --- a/contributors.yml +++ b/contributors.yml @@ -308,6 +308,7 @@ - pawelblaszczyk5 - pcattori - penx +- peterneave - petersendidit - phildl - phryneas diff --git a/packages/react-router/lib/dom/lib.tsx b/packages/react-router/lib/dom/lib.tsx index ecbe52374e..92cda6b050 100644 --- a/packages/react-router/lib/dom/lib.tsx +++ b/packages/react-router/lib/dom/lib.tsx @@ -766,7 +766,7 @@ export function createBrowserRouter( /** * Create a new {@link DataRouter| data router} that manages the application - * path via the URL [`hash`]https://developer.mozilla.org/en-US/docs/Web/API/URL/hash). + * path via the URL [`hash`](https://developer.mozilla.org/en-US/docs/Web/API/URL/hash). * * @public * @category Data Routers From 255ac964d7468ab0d2c637ee1f6cd5af065b1784 Mon Sep 17 00:00:00 2001 From: Remix Run Bot Date: Thu, 9 Oct 2025 15:48:22 +0000 Subject: [PATCH 3/7] chore: generate markdown docs from jsdocs --- docs/api/data-routers/createHashRouter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api/data-routers/createHashRouter.md b/docs/api/data-routers/createHashRouter.md index 528410ec37..307944a3fa 100644 --- a/docs/api/data-routers/createHashRouter.md +++ b/docs/api/data-routers/createHashRouter.md @@ -23,7 +23,7 @@ https://github.com/remix-run/react-router/blob/main/packages/react-router/lib/do [Reference Documentation ↗](https://api.reactrouter.com/v7/functions/react_router.createHashRouter.html) Create a new [data router](https://api.reactrouter.com/v7/interfaces/react_router.DataRouter.html) that manages the application -path via the URL [`hash`]https://developer.mozilla.org/en-US/docs/Web/API/URL/hash). +path via the URL [`hash`](https://developer.mozilla.org/en-US/docs/Web/API/URL/hash). ## Signature From 3e3a223ee90c1fee3da01daf6866ad2f5bdf62ba Mon Sep 17 00:00:00 2001 From: Alex Anderson Date: Sun, 12 Oct 2025 16:32:26 -0600 Subject: [PATCH 4/7] docs: fix references (#14441) --- integration/vite-dot-server-test.ts | 4 ++-- packages/react-router-dev/vite/plugin.ts | 4 ++-- packages/react-router-fs-routes/index.ts | 2 +- packages/react-router-node/sessions/fileStorage.ts | 2 +- packages/react-router-remix-routes-option-adapter/index.ts | 2 +- packages/react-router/lib/dom/ssr/routeModules.ts | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/integration/vite-dot-server-test.ts b/integration/vite-dot-server-test.ts index 77e749d192..6e686d6b01 100644 --- a/integration/vite-dot-server-test.ts +++ b/integration/vite-dot-server-test.ts @@ -146,7 +146,7 @@ test.describe("Vite / route / server-only module referenced by client", () => { ` But other route exports in 'app/routes/_index.tsx' depend on '${specifier}'.`, - " See https://remix.run/docs/en/main/guides/vite#splitting-up-client-and-server-code", + " See https://reactrouter.com/explanation/code-splitting#removal-of-server-code", ].forEach(expect(stderr).toMatch); }); } @@ -206,7 +206,7 @@ test.describe("Vite / non-route / server-only module referenced by client", () = ` '${specifier}' imported by 'app/reexport-server-only.ts'`, - " See https://remix.run/docs/en/main/guides/vite#splitting-up-client-and-server-code", + " See https://reactrouter.com/explanation/code-splitting#removal-of-server-code", ].forEach(expect(stderr).toMatch); }); } diff --git a/packages/react-router-dev/vite/plugin.ts b/packages/react-router-dev/vite/plugin.ts index d409f808c0..28941aeefa 100644 --- a/packages/react-router-dev/vite/plugin.ts +++ b/packages/react-router-dev/vite/plugin.ts @@ -2084,7 +2084,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { "", ` But other route exports in '${importerShort}' depend on '${id}'.`, "", - " See https://remix.run/docs/en/main/guides/vite#splitting-up-client-and-server-code", + " See https://reactrouter.com/explanation/code-splitting#removal-of-server-code", "", ].join("\n"), ); @@ -2096,7 +2096,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { "", ` '${id}' imported by '${importerShort}'`, "", - " See https://remix.run/docs/en/main/guides/vite#splitting-up-client-and-server-code", + " See https://reactrouter.com/explanation/code-splitting#removal-of-server-code", "", ].join("\n"), ); diff --git a/packages/react-router-fs-routes/index.ts b/packages/react-router-fs-routes/index.ts index a68afc85e2..11d02ffb89 100644 --- a/packages/react-router-fs-routes/index.ts +++ b/packages/react-router-fs-routes/index.ts @@ -12,7 +12,7 @@ import { normalizeSlashes } from "./normalizeSlashes"; /** * Creates route config from the file system using a convention that matches * [Remix v2's route file - * naming](https://remix.run/docs/en/v2/file-conventions/routes-files), for use + * naming](https://v2.remix.run/docs/file-conventions/routes), for use * within `routes.ts`. */ export async function flatRoutes( diff --git a/packages/react-router-node/sessions/fileStorage.ts b/packages/react-router-node/sessions/fileStorage.ts index 3d2c30ae41..840d463a5f 100644 --- a/packages/react-router-node/sessions/fileStorage.ts +++ b/packages/react-router-node/sessions/fileStorage.ts @@ -26,7 +26,7 @@ interface FileSessionStorageOptions { * The advantage of using this instead of cookie session storage is that * files may contain much more data than cookies. * - * @see https://remix.run/utils/sessions#createfilesessionstorage-node + * @see https://api.reactrouter.com/v7/functions/_react_router_node.createFileSessionStorage */ export function createFileSessionStorage({ cookie, diff --git a/packages/react-router-remix-routes-option-adapter/index.ts b/packages/react-router-remix-routes-option-adapter/index.ts index 77f2582068..219b7a5780 100644 --- a/packages/react-router-remix-routes-option-adapter/index.ts +++ b/packages/react-router-remix-routes-option-adapter/index.ts @@ -11,7 +11,7 @@ export type { DefineRoutesFunction, DefineRouteFunction }; /** * Adapts routes defined using [Remix's `routes` config - * option](https://remix.run/docs/en/v2/file-conventions/vite-config#routes) to + * option](https://v2.remix.run/docs/file-conventions/vite-config#routes) to * React Router's config format, for use within `routes.ts`. */ export async function remixRoutesOptionAdapter( diff --git a/packages/react-router/lib/dom/ssr/routeModules.ts b/packages/react-router/lib/dom/ssr/routeModules.ts index c06e8b617c..e8926d46b4 100644 --- a/packages/react-router/lib/dom/ssr/routeModules.ts +++ b/packages/react-router/lib/dom/ssr/routeModules.ts @@ -119,7 +119,7 @@ export type LayoutComponent = ComponentType<{ * A function that defines `` tags to be inserted into the `` of * the document on route transitions. * - * @see https://remix.run/route/meta + * @see https://reactrouter.com/start/framework/route-module#meta */ export interface LinksFunction { (): LinkDescriptor[]; @@ -267,7 +267,7 @@ export type RouteComponent = ComponentType<{}>; /** * An arbitrary object that is associated with a route. * - * @see https://remix.run/route/handle + * @see https://reactrouter.com/how-to/using-handle */ export type RouteHandle = unknown; From 64f82f1581bd5e72a9312802c60bb61b9278135a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Oct 2025 20:01:32 +0200 Subject: [PATCH 5/7] chore(deps): bump actions/setup-node from 5 to 6 (#14448) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 5 to 6. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/close-no-repro-issues.yml | 2 +- .github/workflows/deduplicate-lock-file.yml | 2 +- .github/workflows/docs.yml | 2 +- .github/workflows/format.yml | 2 +- .github/workflows/release-experimental.yml | 2 +- .github/workflows/release-nightly.yml | 2 +- .github/workflows/release-stage-2-alpha.yml | 2 +- .github/workflows/release.yml | 4 ++-- .github/workflows/shared-build.yml | 2 +- .github/workflows/shared-integration.yml | 2 +- .github/workflows/test.yml | 2 +- 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/close-no-repro-issues.yml b/.github/workflows/close-no-repro-issues.yml index f9a6e2e45f..efc77ff396 100644 --- a/.github/workflows/close-no-repro-issues.yml +++ b/.github/workflows/close-no-repro-issues.yml @@ -31,7 +31,7 @@ jobs: uses: pnpm/action-setup@v4.1.0 - name: ⎔ Setup node - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: # required for --experimental-strip-types node-version: 22 diff --git a/.github/workflows/deduplicate-lock-file.yml b/.github/workflows/deduplicate-lock-file.yml index 51d6c758b4..3174fcfcbb 100644 --- a/.github/workflows/deduplicate-lock-file.yml +++ b/.github/workflows/deduplicate-lock-file.yml @@ -26,7 +26,7 @@ jobs: uses: pnpm/action-setup@v4 - name: ⎔ Setup node - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version-file: ".nvmrc" cache: "pnpm" diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 86ced6e59e..1e6391dfd8 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -35,7 +35,7 @@ jobs: uses: pnpm/action-setup@v4 - name: ⎔ Setup node - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version-file: ".nvmrc" cache: pnpm diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 459c848d12..ff63cd21ee 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -25,7 +25,7 @@ jobs: uses: pnpm/action-setup@v4 - name: ⎔ Setup node - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version-file: ".nvmrc" cache: pnpm diff --git a/.github/workflows/release-experimental.yml b/.github/workflows/release-experimental.yml index 1b4624d7f4..373afa10ba 100644 --- a/.github/workflows/release-experimental.yml +++ b/.github/workflows/release-experimental.yml @@ -29,7 +29,7 @@ jobs: uses: pnpm/action-setup@v4 - name: ⎔ Setup node - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version-file: ".nvmrc" cache: "pnpm" diff --git a/.github/workflows/release-nightly.yml b/.github/workflows/release-nightly.yml index b394521418..be5ec510e8 100644 --- a/.github/workflows/release-nightly.yml +++ b/.github/workflows/release-nightly.yml @@ -40,7 +40,7 @@ jobs: uses: pnpm/action-setup@v4 - name: ⎔ Setup node - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version-file: ".nvmrc" cache: "pnpm" diff --git a/.github/workflows/release-stage-2-alpha.yml b/.github/workflows/release-stage-2-alpha.yml index 40157097f3..c82f906205 100644 --- a/.github/workflows/release-stage-2-alpha.yml +++ b/.github/workflows/release-stage-2-alpha.yml @@ -35,7 +35,7 @@ jobs: uses: pnpm/action-setup@v4 - name: ⎔ Setup node - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version-file: ".nvmrc" cache: "pnpm" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 366c8dcc9f..b88bb74292 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -35,7 +35,7 @@ jobs: uses: pnpm/action-setup@v4 - name: ⎔ Setup node - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version-file: ".nvmrc" cache: "pnpm" @@ -84,7 +84,7 @@ jobs: uses: pnpm/action-setup@v4 - name: ⎔ Setup node - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version-file: ".nvmrc" cache: "pnpm" diff --git a/.github/workflows/shared-build.yml b/.github/workflows/shared-build.yml index 345ec9c300..4a3617aa6c 100644 --- a/.github/workflows/shared-build.yml +++ b/.github/workflows/shared-build.yml @@ -17,7 +17,7 @@ jobs: uses: pnpm/action-setup@v4 - name: ⎔ Setup node - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version-file: ".nvmrc" cache: "pnpm" diff --git a/.github/workflows/shared-integration.yml b/.github/workflows/shared-integration.yml index 0454fc2cca..782507c3ac 100644 --- a/.github/workflows/shared-integration.yml +++ b/.github/workflows/shared-integration.yml @@ -44,7 +44,7 @@ jobs: uses: pnpm/action-setup@v4 - name: ⎔ Setup node ${{ matrix.node }} - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version: ${{ matrix.node }} cache: "pnpm" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d510f93a25..2bf0dedbe9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -39,7 +39,7 @@ jobs: uses: pnpm/action-setup@v4 - name: ⎔ Setup node - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version: ${{ matrix.node }} cache: pnpm From 0e51de574a785de3718ec8648a7d26b4d88bfd2c Mon Sep 17 00:00:00 2001 From: Dmitrij Fedorenko Date: Fri, 5 Sep 2025 11:34:16 +0400 Subject: [PATCH 6/7] Bypass vite server watch config in dev --- .changeset/wet-walls-camp.md | 5 +++++ packages/react-router-dev/vite/plugin.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/wet-walls-camp.md diff --git a/.changeset/wet-walls-camp.md b/.changeset/wet-walls-camp.md new file mode 100644 index 0000000000..4d79eb8f82 --- /dev/null +++ b/.changeset/wet-walls-camp.md @@ -0,0 +1,5 @@ +--- +"@react-router/dev": patch +--- + +Copy `server.watch` config options from `vite.config.(ts|js)` file to child vite server in development mode. diff --git a/packages/react-router-dev/vite/plugin.ts b/packages/react-router-dev/vite/plugin.ts index 28941aeefa..1170bad034 100644 --- a/packages/react-router-dev/vite/plugin.ts +++ b/packages/react-router-dev/vite/plugin.ts @@ -1445,7 +1445,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { cacheDir: "node_modules/.vite-child-compiler", mode: viteConfig.mode, server: { - watch: viteConfig.command === "build" ? null : undefined, + watch: viteConfig.command === "build" ? null : viteConfig.server.watch, preTransformRequests: false, hmr: false, }, From c0f6e4f6570a0e3fa1994c2144f2b8c63bbc720e Mon Sep 17 00:00:00 2001 From: Dmitrij Fedorenko Date: Fri, 5 Sep 2025 14:07:02 +0400 Subject: [PATCH 7/7] Add c0va23 to contributors.yml --- contributors.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/contributors.yml b/contributors.yml index eeb4d400e1..9ffcd6a21f 100644 --- a/contributors.yml +++ b/contributors.yml @@ -65,6 +65,7 @@ - brophdawg11 - btav - bvangraafeiland +- c0va23 - camthompson - CanRau - caprolactam