react-router 7.2.0 → 7.3.0-pre.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/CHANGELOG.md +266 -0
  2. package/dist/development/{chunk-HA7DTUK3.mjs → chunk-3XNZT7XE.mjs} +782 -340
  3. package/dist/development/dom-export.d.mts +13 -3
  4. package/dist/development/dom-export.d.ts +13 -3
  5. package/dist/development/dom-export.js +306 -83
  6. package/dist/development/dom-export.mjs +14 -5
  7. package/dist/development/{fog-of-war-Cm1iXIp7.d.ts → fog-of-war-CvttGpNz.d.ts} +93 -9
  8. package/dist/{production/fog-of-war-Cm1iXIp7.d.ts → development/fog-of-war-Da8gpnoZ.d.mts} +93 -9
  9. package/dist/{production/data-CQbyyGzl.d.mts → development/future-ldDp5FKH.d.mts} +11 -1
  10. package/dist/development/{data-CQbyyGzl.d.mts → future-ldDp5FKH.d.ts} +11 -1
  11. package/dist/development/index.d.mts +16 -14
  12. package/dist/development/index.d.ts +16 -14
  13. package/dist/development/index.js +784 -340
  14. package/dist/development/index.mjs +6 -2
  15. package/dist/development/lib/types/route-module.d.mts +25 -6
  16. package/dist/development/lib/types/route-module.d.ts +25 -6
  17. package/dist/development/lib/types/route-module.js +1 -1
  18. package/dist/development/lib/types/route-module.mjs +1 -1
  19. package/dist/{production/route-data-BmvbmBej.d.mts → development/route-data-H2S3hwhf.d.mts} +66 -13
  20. package/dist/development/{route-data-BmvbmBej.d.mts → route-data-H2S3hwhf.d.ts} +66 -13
  21. package/dist/production/{chunk-Z4EF7MSU.mjs → chunk-ZGBK665M.mjs} +782 -340
  22. package/dist/production/dom-export.d.mts +13 -3
  23. package/dist/production/dom-export.d.ts +13 -3
  24. package/dist/production/dom-export.js +306 -83
  25. package/dist/production/dom-export.mjs +14 -5
  26. package/dist/production/{fog-of-war-BALYJxf_.d.mts → fog-of-war-CvttGpNz.d.ts} +93 -9
  27. package/dist/{development/fog-of-war-BALYJxf_.d.mts → production/fog-of-war-Da8gpnoZ.d.mts} +93 -9
  28. package/dist/{development/data-CQbyyGzl.d.ts → production/future-ldDp5FKH.d.mts} +11 -1
  29. package/dist/production/{data-CQbyyGzl.d.ts → future-ldDp5FKH.d.ts} +11 -1
  30. package/dist/production/index.d.mts +16 -14
  31. package/dist/production/index.d.ts +16 -14
  32. package/dist/production/index.js +784 -340
  33. package/dist/production/index.mjs +6 -2
  34. package/dist/production/lib/types/route-module.d.mts +25 -6
  35. package/dist/production/lib/types/route-module.d.ts +25 -6
  36. package/dist/production/lib/types/route-module.js +1 -1
  37. package/dist/production/lib/types/route-module.mjs +1 -1
  38. package/dist/{development/route-data-BmvbmBej.d.ts → production/route-data-H2S3hwhf.d.mts} +66 -13
  39. package/dist/production/{route-data-BmvbmBej.d.ts → route-data-H2S3hwhf.d.ts} +66 -13
  40. package/package.json +3 -2
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v7.2.0
2
+ * react-router v7.3.0-pre.1
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -89,6 +89,8 @@ import {
89
89
  resolvePath,
90
90
  setDevServerHooks,
91
91
  shouldHydrateRouteLoader,
92
+ unstable_RouterContextProvider,
93
+ unstable_createContext,
92
94
  useActionData,
93
95
  useAsyncError,
94
96
  useAsyncValue,
@@ -121,7 +123,7 @@ import {
121
123
  useSearchParams,
122
124
  useSubmit,
123
125
  useViewTransitionState
124
- } from "./chunk-HA7DTUK3.mjs";
126
+ } from "./chunk-3XNZT7XE.mjs";
125
127
  export {
126
128
  Await,
127
129
  BrowserRouter,
@@ -204,6 +206,8 @@ export {
204
206
  replace,
205
207
  resolvePath,
206
208
  HistoryRouter as unstable_HistoryRouter,
209
+ unstable_RouterContextProvider,
210
+ unstable_createContext,
207
211
  setDevServerHooks as unstable_setDevServerHooks,
208
212
  usePrompt as unstable_usePrompt,
209
213
  useActionData,
@@ -1,8 +1,9 @@
1
- import { az as LinkDescriptor, aw as MetaDescriptor, aO as ServerDataFrom, aP as ClientDataFrom, aQ as Func, E as Equal, aR as Pretty } from '../../route-data-BmvbmBej.mjs';
2
- import { A as AppLoadContext } from '../../data-CQbyyGzl.mjs';
1
+ import { aE as LinkDescriptor, aB as MetaDescriptor, aT as ServerDataFrom, aU as ClientDataFrom, aV as Func, aW as unstable_MiddlewareNextFunction, E as Equal, u as unstable_RouterContextProvider, aX as Pretty } from '../../route-data-H2S3hwhf.mjs';
2
+ import { M as MiddlewareEnabled, A as AppLoadContext } from '../../future-ldDp5FKH.mjs';
3
3
  import 'react';
4
4
 
5
5
  type IsDefined<T> = Equal<T, undefined> extends true ? false : true;
6
+ type MaybePromise<T> = T | Promise<T>;
6
7
  type RouteModule = {
7
8
  meta?: Func;
8
9
  links?: Func;
@@ -96,6 +97,15 @@ type ClientDataFunctionArgs<T extends RouteInfo> = {
96
97
  * }
97
98
  **/
98
99
  params: T["params"];
100
+ /**
101
+ * When `future.unstable_middleware` is not enabled, this is undefined.
102
+ *
103
+ * When `future.unstable_middleware` is enabled, this is an instance of
104
+ * `unstable_RouterContextProvider` and can be used to access context values
105
+ * from your route middlewares. You may pass in initial context values in your
106
+ * `<HydratedRouter unstable_getContext>` prop
107
+ */
108
+ context: unstable_RouterContextProvider;
99
109
  };
100
110
  type ServerDataFunctionArgs<T extends RouteInfo> = {
101
111
  /** A {@link https://developer.mozilla.org/en-US/docs/Web/API/Request Fetch Request instance} which you can use to read the url, method, headers (such as cookies), and request body from the request. */
@@ -116,12 +126,21 @@ type ServerDataFunctionArgs<T extends RouteInfo> = {
116
126
  **/
117
127
  params: T["params"];
118
128
  /**
119
- * This is the context passed in to your server adapter's getLoadContext() function.
120
- * It's a way to bridge the gap between the adapter's request/response API with your React Router app.
129
+ * Without `future.unstable_middleware` enabled, this is the context passed in
130
+ * to your server adapter's `getLoadContext` function. It's a way to bridge the
131
+ * gap between the adapter's request/response API with your React Router app.
121
132
  * It is only applicable if you are using a custom server adapter.
133
+ *
134
+ * With `future.unstable_middleware` enabled, this is an instance of
135
+ * `unstable_RouterContextProvider` and can be used for type-safe access to
136
+ * context value set in your route middlewares. If you are using a custom
137
+ * server adapter, you may provide an initial set of context values from your
138
+ * `getLoadContext` function.
122
139
  */
123
- context: AppLoadContext;
140
+ context: MiddlewareEnabled extends true ? unstable_RouterContextProvider : AppLoadContext;
124
141
  };
142
+ type CreateServerMiddlewareFunction<T extends RouteInfo> = (args: ServerDataFunctionArgs<T>, next: unstable_MiddlewareNextFunction<Response>) => MaybePromise<Response | void>;
143
+ type CreateClientMiddlewareFunction<T extends RouteInfo> = (args: ClientDataFunctionArgs<T>, next: unstable_MiddlewareNextFunction<undefined>) => MaybePromise<undefined>;
125
144
  type CreateServerLoaderArgs<T extends RouteInfo> = ServerDataFunctionArgs<T>;
126
145
  type CreateClientLoaderArgs<T extends RouteInfo> = ClientDataFunctionArgs<T> & {
127
146
  /** This is an asynchronous function to get the data from the server loader for this route. On client-side navigations, this will make a {@link https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API fetch} call to the React Router server loader. If you opt-into running your clientLoader on hydration, then this function will return the data that was already loaded on the server (via Promise.resolve). */
@@ -187,4 +206,4 @@ type CreateErrorBoundaryProps<T extends RouteInfo> = {
187
206
  actionData?: T["actionData"];
188
207
  };
189
208
 
190
- export type { CreateActionData, CreateClientActionArgs, CreateClientLoaderArgs, CreateComponentProps, CreateErrorBoundaryProps, CreateHydrateFallbackProps, CreateLoaderData, CreateMetaArgs, CreateServerActionArgs, CreateServerLoaderArgs, HeadersArgs, LinkDescriptors, MetaDescriptors };
209
+ export type { CreateActionData, CreateClientActionArgs, CreateClientLoaderArgs, CreateClientMiddlewareFunction, CreateComponentProps, CreateErrorBoundaryProps, CreateHydrateFallbackProps, CreateLoaderData, CreateMetaArgs, CreateServerActionArgs, CreateServerLoaderArgs, CreateServerMiddlewareFunction, HeadersArgs, LinkDescriptors, MetaDescriptors };
@@ -1,8 +1,9 @@
1
- import { az as LinkDescriptor, aw as MetaDescriptor, aO as ServerDataFrom, aP as ClientDataFrom, aQ as Func, E as Equal, aR as Pretty } from '../../route-data-BmvbmBej.js';
2
- import { A as AppLoadContext } from '../../data-CQbyyGzl.js';
1
+ import { aE as LinkDescriptor, aB as MetaDescriptor, aT as ServerDataFrom, aU as ClientDataFrom, aV as Func, aW as unstable_MiddlewareNextFunction, E as Equal, u as unstable_RouterContextProvider, aX as Pretty } from '../../route-data-H2S3hwhf.js';
2
+ import { M as MiddlewareEnabled, A as AppLoadContext } from '../../future-ldDp5FKH.js';
3
3
  import 'react';
4
4
 
5
5
  type IsDefined<T> = Equal<T, undefined> extends true ? false : true;
6
+ type MaybePromise<T> = T | Promise<T>;
6
7
  type RouteModule = {
7
8
  meta?: Func;
8
9
  links?: Func;
@@ -96,6 +97,15 @@ type ClientDataFunctionArgs<T extends RouteInfo> = {
96
97
  * }
97
98
  **/
98
99
  params: T["params"];
100
+ /**
101
+ * When `future.unstable_middleware` is not enabled, this is undefined.
102
+ *
103
+ * When `future.unstable_middleware` is enabled, this is an instance of
104
+ * `unstable_RouterContextProvider` and can be used to access context values
105
+ * from your route middlewares. You may pass in initial context values in your
106
+ * `<HydratedRouter unstable_getContext>` prop
107
+ */
108
+ context: unstable_RouterContextProvider;
99
109
  };
100
110
  type ServerDataFunctionArgs<T extends RouteInfo> = {
101
111
  /** A {@link https://developer.mozilla.org/en-US/docs/Web/API/Request Fetch Request instance} which you can use to read the url, method, headers (such as cookies), and request body from the request. */
@@ -116,12 +126,21 @@ type ServerDataFunctionArgs<T extends RouteInfo> = {
116
126
  **/
117
127
  params: T["params"];
118
128
  /**
119
- * This is the context passed in to your server adapter's getLoadContext() function.
120
- * It's a way to bridge the gap between the adapter's request/response API with your React Router app.
129
+ * Without `future.unstable_middleware` enabled, this is the context passed in
130
+ * to your server adapter's `getLoadContext` function. It's a way to bridge the
131
+ * gap between the adapter's request/response API with your React Router app.
121
132
  * It is only applicable if you are using a custom server adapter.
133
+ *
134
+ * With `future.unstable_middleware` enabled, this is an instance of
135
+ * `unstable_RouterContextProvider` and can be used for type-safe access to
136
+ * context value set in your route middlewares. If you are using a custom
137
+ * server adapter, you may provide an initial set of context values from your
138
+ * `getLoadContext` function.
122
139
  */
123
- context: AppLoadContext;
140
+ context: MiddlewareEnabled extends true ? unstable_RouterContextProvider : AppLoadContext;
124
141
  };
142
+ type CreateServerMiddlewareFunction<T extends RouteInfo> = (args: ServerDataFunctionArgs<T>, next: unstable_MiddlewareNextFunction<Response>) => MaybePromise<Response | void>;
143
+ type CreateClientMiddlewareFunction<T extends RouteInfo> = (args: ClientDataFunctionArgs<T>, next: unstable_MiddlewareNextFunction<undefined>) => MaybePromise<undefined>;
125
144
  type CreateServerLoaderArgs<T extends RouteInfo> = ServerDataFunctionArgs<T>;
126
145
  type CreateClientLoaderArgs<T extends RouteInfo> = ClientDataFunctionArgs<T> & {
127
146
  /** This is an asynchronous function to get the data from the server loader for this route. On client-side navigations, this will make a {@link https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API fetch} call to the React Router server loader. If you opt-into running your clientLoader on hydration, then this function will return the data that was already loaded on the server (via Promise.resolve). */
@@ -187,4 +206,4 @@ type CreateErrorBoundaryProps<T extends RouteInfo> = {
187
206
  actionData?: T["actionData"];
188
207
  };
189
208
 
190
- export type { CreateActionData, CreateClientActionArgs, CreateClientLoaderArgs, CreateComponentProps, CreateErrorBoundaryProps, CreateHydrateFallbackProps, CreateLoaderData, CreateMetaArgs, CreateServerActionArgs, CreateServerLoaderArgs, HeadersArgs, LinkDescriptors, MetaDescriptors };
209
+ export type { CreateActionData, CreateClientActionArgs, CreateClientLoaderArgs, CreateClientMiddlewareFunction, CreateComponentProps, CreateErrorBoundaryProps, CreateHydrateFallbackProps, CreateLoaderData, CreateMetaArgs, CreateServerActionArgs, CreateServerLoaderArgs, CreateServerMiddlewareFunction, HeadersArgs, LinkDescriptors, MetaDescriptors };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v7.2.0
2
+ * react-router v7.3.0-pre.1
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v7.2.0
2
+ * react-router v7.3.0-pre.1
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -260,6 +260,34 @@ type Submission = {
260
260
  json: undefined;
261
261
  text: string;
262
262
  };
263
+ interface unstable_RouterContext<T = unknown> {
264
+ defaultValue?: T;
265
+ }
266
+ /**
267
+ * Creates a context object that may be used to store and retrieve arbitrary values.
268
+ *
269
+ * If a `defaultValue` is provided, it will be returned from `context.get()` when no value has been
270
+ * set for the context. Otherwise reading this context when no value has been set will throw an
271
+ * error.
272
+ *
273
+ * @param defaultValue The default value for the context
274
+ * @returns A context object
275
+ */
276
+ declare function unstable_createContext<T>(defaultValue?: T): unstable_RouterContext<T>;
277
+ /**
278
+ * A Map of RouterContext objects to their initial values - used to populate a
279
+ * fresh `context` value per request/navigation/fetch
280
+ */
281
+ type unstable_InitialContext = Map<unstable_RouterContext, unknown>;
282
+ /**
283
+ * Provides methods for writing/reading values in application context in a typesafe way.
284
+ */
285
+ declare class unstable_RouterContextProvider {
286
+ #private;
287
+ constructor(init?: unstable_InitialContext);
288
+ get<T>(context: unstable_RouterContext<T>): T;
289
+ set<C extends unstable_RouterContext>(context: C, value: C extends unstable_RouterContext<infer T> ? T : never): void;
290
+ }
263
291
  /**
264
292
  * @private
265
293
  * Arguments passed to route loader/action functions. Same for now but we keep
@@ -288,8 +316,22 @@ interface DataFunctionArgs<Context> {
288
316
  * It's a way to bridge the gap between the adapter's request/response API with your React Router app.
289
317
  * It is only applicable if you are using a custom server adapter.
290
318
  */
291
- context?: Context;
319
+ context: Context;
292
320
  }
321
+ /**
322
+ * Route middleware `next` function to call downstream handlers and then complete
323
+ * middlewares from the bottom-up
324
+ */
325
+ interface unstable_MiddlewareNextFunction<Result = unknown> {
326
+ (): Result | Promise<Result>;
327
+ }
328
+ /**
329
+ * Route middleware function signature. Receives the same "data" arguments as a
330
+ * `loader`/`action` (`request`, `params`, `context`) as the first parameter and
331
+ * a `next` function as the second parameter which will call downstream handlers
332
+ * and then complete middlewares from the bottom-up
333
+ */
334
+ type unstable_MiddlewareFunction<Result = unknown> = (args: DataFunctionArgs<unstable_RouterContextProvider>, next: unstable_MiddlewareNextFunction<Result>) => Result | Promise<Result>;
293
335
  /**
294
336
  * Arguments passed to loader functions
295
337
  */
@@ -301,11 +343,9 @@ interface LoaderFunctionArgs<Context = any> extends DataFunctionArgs<Context> {
301
343
  interface ActionFunctionArgs<Context = any> extends DataFunctionArgs<Context> {
302
344
  }
303
345
  /**
304
- * Loaders and actions can return anything except `undefined` (`null` is a
305
- * valid return value if there is no data to return). Responses are preferred
306
- * and will ease any future migration to Remix
346
+ * Loaders and actions can return anything
307
347
  */
308
- type DataFunctionValue = Response | NonNullable<unknown> | null;
348
+ type DataFunctionValue = unknown;
309
349
  type DataFunctionReturnValue = Promise<DataFunctionValue> | DataFunctionValue;
310
350
  /**
311
351
  * Route loader function signature
@@ -402,13 +442,14 @@ interface DataStrategyResult {
402
442
  type: "data" | "error";
403
443
  result: unknown;
404
444
  }
405
- interface DataStrategyFunction {
406
- (args: DataStrategyFunctionArgs): Promise<Record<string, DataStrategyResult>>;
445
+ interface DataStrategyFunction<Context = any> {
446
+ (args: DataStrategyFunctionArgs<Context>): Promise<Record<string, DataStrategyResult>>;
407
447
  }
408
448
  type AgnosticPatchRoutesOnNavigationFunctionArgs<O extends AgnosticRouteObject = AgnosticRouteObject, M extends AgnosticRouteMatch = AgnosticRouteMatch> = {
409
449
  signal: AbortSignal;
410
450
  path: string;
411
451
  matches: M[];
452
+ fetcherKey: string | undefined;
412
453
  patch: (routeId: string | null, children: O[]) => void;
413
454
  };
414
455
  type AgnosticPatchRoutesOnNavigationFunction<O extends AgnosticRouteObject = AgnosticRouteObject, M extends AgnosticRouteMatch = AgnosticRouteMatch> = (opts: AgnosticPatchRoutesOnNavigationFunctionArgs<O, M>) => void | Promise<void>;
@@ -444,6 +485,7 @@ type AgnosticBaseRouteObject = {
444
485
  caseSensitive?: boolean;
445
486
  path?: string;
446
487
  id?: string;
488
+ unstable_middleware?: unstable_MiddlewareFunction[];
447
489
  loader?: LoaderFunction | boolean;
448
490
  action?: ActionFunction | boolean;
449
491
  hasErrorBoundary?: boolean;
@@ -669,6 +711,7 @@ declare class ErrorResponseImpl implements ErrorResponse {
669
711
  */
670
712
  declare function isRouteErrorResponse(error: any): error is ErrorResponse;
671
713
 
714
+ type MaybePromise<T> = T | Promise<T>;
672
715
  /**
673
716
  * A Router instance manages all navigation and data loading/mutations
674
717
  */
@@ -924,6 +967,7 @@ type HydrationState = Partial<Pick<RouterState, "loaderData" | "actionData" | "e
924
967
  * Future flags to toggle new feature behavior
925
968
  */
926
969
  interface FutureConfig {
970
+ unstable_middleware: boolean;
927
971
  }
928
972
  /**
929
973
  * Initialization options for createRouter
@@ -932,6 +976,7 @@ interface RouterInit {
932
976
  routes: AgnosticRouteObject[];
933
977
  history: History;
934
978
  basename?: string;
979
+ unstable_getContext?: () => MaybePromise<unstable_InitialContext>;
935
980
  mapRouteProperties?: MapRoutePropertiesFunction;
936
981
  future?: Partial<FutureConfig>;
937
982
  hydrationData?: HydrationState;
@@ -961,13 +1006,17 @@ interface StaticHandler {
961
1006
  dataRoutes: AgnosticDataRouteObject[];
962
1007
  query(request: Request, opts?: {
963
1008
  requestContext?: unknown;
1009
+ filterMatchesToLoad?: (match: AgnosticDataRouteMatch) => boolean;
964
1010
  skipLoaderErrorBubbling?: boolean;
965
- dataStrategy?: DataStrategyFunction;
1011
+ skipRevalidation?: boolean;
1012
+ dataStrategy?: DataStrategyFunction<unknown>;
1013
+ unstable_respond?: (staticContext: StaticHandlerContext) => MaybePromise<Response>;
966
1014
  }): Promise<StaticHandlerContext | Response>;
967
1015
  queryRoute(request: Request, opts?: {
968
1016
  routeId?: string;
969
1017
  requestContext?: unknown;
970
- dataStrategy?: DataStrategyFunction;
1018
+ dataStrategy?: DataStrategyFunction<unknown>;
1019
+ unstable_respond?: (res: Response) => MaybePromise<Response>;
971
1020
  }): Promise<any>;
972
1021
  }
973
1022
  type ViewTransitionOpts = {
@@ -1201,6 +1250,7 @@ interface IndexRouteObject {
1201
1250
  caseSensitive?: AgnosticIndexRouteObject["caseSensitive"];
1202
1251
  path?: AgnosticIndexRouteObject["path"];
1203
1252
  id?: AgnosticIndexRouteObject["id"];
1253
+ unstable_middleware?: AgnosticIndexRouteObject["unstable_middleware"];
1204
1254
  loader?: AgnosticIndexRouteObject["loader"];
1205
1255
  action?: AgnosticIndexRouteObject["action"];
1206
1256
  hasErrorBoundary?: AgnosticIndexRouteObject["hasErrorBoundary"];
@@ -1220,6 +1270,7 @@ interface NonIndexRouteObject {
1220
1270
  caseSensitive?: AgnosticNonIndexRouteObject["caseSensitive"];
1221
1271
  path?: AgnosticNonIndexRouteObject["path"];
1222
1272
  id?: AgnosticNonIndexRouteObject["id"];
1273
+ unstable_middleware?: AgnosticNonIndexRouteObject["unstable_middleware"];
1223
1274
  loader?: AgnosticNonIndexRouteObject["loader"];
1224
1275
  action?: AgnosticNonIndexRouteObject["action"];
1225
1276
  hasErrorBoundary?: AgnosticNonIndexRouteObject["hasErrorBoundary"];
@@ -1425,6 +1476,7 @@ interface RouteModules {
1425
1476
  interface RouteModule {
1426
1477
  clientAction?: ClientActionFunction;
1427
1478
  clientLoader?: ClientLoaderFunction;
1479
+ unstable_clientMiddleware?: unstable_MiddlewareFunction<undefined>[];
1428
1480
  ErrorBoundary?: ErrorBoundaryComponent;
1429
1481
  HydrateFallback?: HydrateFallbackComponent;
1430
1482
  Layout?: LayoutComponent;
@@ -1443,6 +1495,7 @@ interface ServerRouteModule extends RouteModule {
1443
1495
  [name: string]: string;
1444
1496
  };
1445
1497
  loader?: LoaderFunction;
1498
+ unstable_middleware?: unstable_MiddlewareFunction<Response>[];
1446
1499
  }
1447
1500
  /**
1448
1501
  * A function that handles data mutations for a route on the client
@@ -1451,7 +1504,7 @@ type ClientActionFunction = (args: ClientActionFunctionArgs) => ReturnType<Actio
1451
1504
  /**
1452
1505
  * Arguments passed to a route `clientAction` function
1453
1506
  */
1454
- type ClientActionFunctionArgs = ActionFunctionArgs<undefined> & {
1507
+ type ClientActionFunctionArgs = ActionFunctionArgs & {
1455
1508
  serverAction: <T = unknown>() => Promise<SerializeFrom<T>>;
1456
1509
  };
1457
1510
  /**
@@ -1463,7 +1516,7 @@ type ClientLoaderFunction = ((args: ClientLoaderFunctionArgs) => ReturnType<Load
1463
1516
  /**
1464
1517
  * Arguments passed to a route `clientLoader` function
1465
1518
  */
1466
- type ClientLoaderFunctionArgs = LoaderFunctionArgs<undefined> & {
1519
+ type ClientLoaderFunctionArgs = LoaderFunctionArgs & {
1467
1520
  serverLoader: <T = unknown>() => Promise<SerializeFrom<T>>;
1468
1521
  };
1469
1522
  /**
@@ -1628,7 +1681,7 @@ type Serializable = undefined | null | boolean | string | symbol | number | Arra
1628
1681
  * in your application.
1629
1682
  */
1630
1683
  type unstable_SerializesTo<T> = {
1631
- unstable__ReactRouter_SerializesTo?: [T];
1684
+ unstable__ReactRouter_SerializesTo: [T];
1632
1685
  };
1633
1686
 
1634
1687
  type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;
@@ -1649,4 +1702,4 @@ type ServerDataFrom<T> = ServerData<DataFrom<T>>;
1649
1702
  type ClientDataFrom<T> = ClientData<DataFrom<T>>;
1650
1703
  type SerializeFrom<T> = T extends (...args: infer Args) => unknown ? Args extends [ClientLoaderFunctionArgs | ClientActionFunctionArgs] ? ClientDataFrom<T> : ServerDataFrom<T> : T;
1651
1704
 
1652
- export { type HTMLFormMethod as $, type ActionFunctionArgs as A, type BlockerFunction as B, type CreateStaticHandlerOptions as C, type DataStrategyFunction as D, type Equal as E, type FutureConfig as F, type GetScrollPositionFunction as G, type HydrationState as H, type InitialEntry as I, type RouterSubscriber as J, type RouterNavigateOptions as K, type LoaderFunctionArgs as L, type MetaFunction as M, type NavigateOptions as N, type RouterFetchOptions as O, type ParamParseKey as P, type DataStrategyFunctionArgs as Q, type RouteModules as R, type ServerRouteModule as S, type To as T, type UIMatch as U, type DataStrategyMatch as V, type DataStrategyResult as W, DataWithResponseInit as X, type ErrorResponse as Y, type FormEncType as Z, type FormMethod as _, type Router as a, type LazyRouteFunction as a0, type PathParam as a1, type RedirectFunction as a2, type ShouldRevalidateFunction as a3, type ShouldRevalidateFunctionArgs as a4, createPath as a5, parsePath as a6, IDLE_NAVIGATION as a7, IDLE_FETCHER as a8, IDLE_BLOCKER as a9, type unstable_SerializesTo as aA, createBrowserHistory as aB, invariant as aC, createRouter as aD, ErrorResponseImpl as aE, DataRouterContext as aF, DataRouterStateContext as aG, FetchersContext as aH, LocationContext as aI, NavigationContext as aJ, RouteContext as aK, ViewTransitionContext as aL, type RouteModule as aM, type History as aN, type ServerDataFrom as aO, type ClientDataFrom as aP, type Func as aQ, type Pretty as aR, data as aa, generatePath as ab, isRouteErrorResponse as ac, matchPath as ad, matchRoutes as ae, redirect as af, redirectDocument as ag, replace as ah, resolvePath as ai, type DataRouteMatch as aj, type DataRouteObject as ak, type Navigator as al, type PatchRoutesOnNavigationFunction as am, type PatchRoutesOnNavigationFunctionArgs as an, type RouteMatch as ao, type ClientActionFunction as ap, type ClientActionFunctionArgs as aq, type ClientLoaderFunction as ar, type ClientLoaderFunctionArgs as as, type HeadersArgs as at, type HeadersFunction as au, type MetaArgs as av, type MetaDescriptor as aw, type PageLinkDescriptor as ax, type HtmlLinkDescriptor as ay, type LinkDescriptor as az, type RouteManifest as b, type RelativeRoutingType as c, type Location as d, Action as e, type Path as f, type PathPattern as g, type PathMatch as h, type Params as i, type RouteObject as j, type Navigation as k, type RevalidationState as l, type SerializeFrom as m, type Blocker as n, type StaticHandlerContext as o, type StaticHandler as p, type IndexRouteObject as q, type LoaderFunction as r, type ActionFunction as s, type LinksFunction as t, type NonIndexRouteObject as u, type RouterState as v, type GetScrollRestorationKeyFunction as w, type Fetcher as x, type NavigationStates as y, type RouterInit as z };
1705
+ export { type FormEncType as $, type ActionFunctionArgs as A, type BlockerFunction as B, type CreateStaticHandlerOptions as C, type DataStrategyFunction as D, type Equal as E, type FutureConfig as F, type GetScrollPositionFunction as G, type HydrationState as H, type InitialEntry as I, type Fetcher as J, type NavigationStates as K, type LoaderFunctionArgs as L, type MetaFunction as M, type NavigateOptions as N, type RouterSubscriber as O, type ParamParseKey as P, type RouterNavigateOptions as Q, type RouterInit as R, type ServerRouteModule as S, type To as T, type UIMatch as U, type RouterFetchOptions as V, type DataStrategyFunctionArgs as W, type DataStrategyMatch as X, type DataStrategyResult as Y, DataWithResponseInit as Z, type ErrorResponse as _, type RouteModules as a, type FormMethod as a0, type HTMLFormMethod as a1, type LazyRouteFunction as a2, type unstable_MiddlewareFunction as a3, type PathParam as a4, type RedirectFunction as a5, type unstable_RouterContext as a6, type ShouldRevalidateFunction as a7, type ShouldRevalidateFunctionArgs as a8, unstable_createContext as a9, type MetaArgs as aA, type MetaDescriptor as aB, type PageLinkDescriptor as aC, type HtmlLinkDescriptor as aD, type LinkDescriptor as aE, type unstable_SerializesTo as aF, createBrowserHistory as aG, invariant as aH, createRouter as aI, ErrorResponseImpl as aJ, DataRouterContext as aK, DataRouterStateContext as aL, FetchersContext as aM, LocationContext as aN, NavigationContext as aO, RouteContext as aP, ViewTransitionContext as aQ, type RouteModule as aR, type History as aS, type ServerDataFrom as aT, type ClientDataFrom as aU, type Func as aV, type unstable_MiddlewareNextFunction as aW, type Pretty as aX, createPath as aa, parsePath as ab, IDLE_NAVIGATION as ac, IDLE_FETCHER as ad, IDLE_BLOCKER as ae, data as af, generatePath as ag, isRouteErrorResponse as ah, matchPath as ai, matchRoutes as aj, redirect as ak, redirectDocument as al, replace as am, resolvePath as an, type DataRouteMatch as ao, type DataRouteObject as ap, type Navigator as aq, type PatchRoutesOnNavigationFunction as ar, type PatchRoutesOnNavigationFunctionArgs as as, type RouteMatch as at, type ClientActionFunction as au, type ClientActionFunctionArgs as av, type ClientLoaderFunction as aw, type ClientLoaderFunctionArgs as ax, type HeadersArgs as ay, type HeadersFunction as az, type Router as b, type RouteManifest as c, type RelativeRoutingType as d, type Location as e, Action as f, type Path as g, type PathPattern as h, type PathMatch as i, type Params as j, type RouteObject as k, type Navigation as l, type RevalidationState as m, type SerializeFrom as n, type Blocker as o, type StaticHandlerContext as p, type StaticHandler as q, type unstable_InitialContext as r, type IndexRouteObject as s, type LoaderFunction as t, unstable_RouterContextProvider as u, type ActionFunction as v, type LinksFunction as w, type NonIndexRouteObject as x, type RouterState as y, type GetScrollRestorationKeyFunction as z };
@@ -260,6 +260,34 @@ type Submission = {
260
260
  json: undefined;
261
261
  text: string;
262
262
  };
263
+ interface unstable_RouterContext<T = unknown> {
264
+ defaultValue?: T;
265
+ }
266
+ /**
267
+ * Creates a context object that may be used to store and retrieve arbitrary values.
268
+ *
269
+ * If a `defaultValue` is provided, it will be returned from `context.get()` when no value has been
270
+ * set for the context. Otherwise reading this context when no value has been set will throw an
271
+ * error.
272
+ *
273
+ * @param defaultValue The default value for the context
274
+ * @returns A context object
275
+ */
276
+ declare function unstable_createContext<T>(defaultValue?: T): unstable_RouterContext<T>;
277
+ /**
278
+ * A Map of RouterContext objects to their initial values - used to populate a
279
+ * fresh `context` value per request/navigation/fetch
280
+ */
281
+ type unstable_InitialContext = Map<unstable_RouterContext, unknown>;
282
+ /**
283
+ * Provides methods for writing/reading values in application context in a typesafe way.
284
+ */
285
+ declare class unstable_RouterContextProvider {
286
+ #private;
287
+ constructor(init?: unstable_InitialContext);
288
+ get<T>(context: unstable_RouterContext<T>): T;
289
+ set<C extends unstable_RouterContext>(context: C, value: C extends unstable_RouterContext<infer T> ? T : never): void;
290
+ }
263
291
  /**
264
292
  * @private
265
293
  * Arguments passed to route loader/action functions. Same for now but we keep
@@ -288,8 +316,22 @@ interface DataFunctionArgs<Context> {
288
316
  * It's a way to bridge the gap between the adapter's request/response API with your React Router app.
289
317
  * It is only applicable if you are using a custom server adapter.
290
318
  */
291
- context?: Context;
319
+ context: Context;
292
320
  }
321
+ /**
322
+ * Route middleware `next` function to call downstream handlers and then complete
323
+ * middlewares from the bottom-up
324
+ */
325
+ interface unstable_MiddlewareNextFunction<Result = unknown> {
326
+ (): Result | Promise<Result>;
327
+ }
328
+ /**
329
+ * Route middleware function signature. Receives the same "data" arguments as a
330
+ * `loader`/`action` (`request`, `params`, `context`) as the first parameter and
331
+ * a `next` function as the second parameter which will call downstream handlers
332
+ * and then complete middlewares from the bottom-up
333
+ */
334
+ type unstable_MiddlewareFunction<Result = unknown> = (args: DataFunctionArgs<unstable_RouterContextProvider>, next: unstable_MiddlewareNextFunction<Result>) => Result | Promise<Result>;
293
335
  /**
294
336
  * Arguments passed to loader functions
295
337
  */
@@ -301,11 +343,9 @@ interface LoaderFunctionArgs<Context = any> extends DataFunctionArgs<Context> {
301
343
  interface ActionFunctionArgs<Context = any> extends DataFunctionArgs<Context> {
302
344
  }
303
345
  /**
304
- * Loaders and actions can return anything except `undefined` (`null` is a
305
- * valid return value if there is no data to return). Responses are preferred
306
- * and will ease any future migration to Remix
346
+ * Loaders and actions can return anything
307
347
  */
308
- type DataFunctionValue = Response | NonNullable<unknown> | null;
348
+ type DataFunctionValue = unknown;
309
349
  type DataFunctionReturnValue = Promise<DataFunctionValue> | DataFunctionValue;
310
350
  /**
311
351
  * Route loader function signature
@@ -402,13 +442,14 @@ interface DataStrategyResult {
402
442
  type: "data" | "error";
403
443
  result: unknown;
404
444
  }
405
- interface DataStrategyFunction {
406
- (args: DataStrategyFunctionArgs): Promise<Record<string, DataStrategyResult>>;
445
+ interface DataStrategyFunction<Context = any> {
446
+ (args: DataStrategyFunctionArgs<Context>): Promise<Record<string, DataStrategyResult>>;
407
447
  }
408
448
  type AgnosticPatchRoutesOnNavigationFunctionArgs<O extends AgnosticRouteObject = AgnosticRouteObject, M extends AgnosticRouteMatch = AgnosticRouteMatch> = {
409
449
  signal: AbortSignal;
410
450
  path: string;
411
451
  matches: M[];
452
+ fetcherKey: string | undefined;
412
453
  patch: (routeId: string | null, children: O[]) => void;
413
454
  };
414
455
  type AgnosticPatchRoutesOnNavigationFunction<O extends AgnosticRouteObject = AgnosticRouteObject, M extends AgnosticRouteMatch = AgnosticRouteMatch> = (opts: AgnosticPatchRoutesOnNavigationFunctionArgs<O, M>) => void | Promise<void>;
@@ -444,6 +485,7 @@ type AgnosticBaseRouteObject = {
444
485
  caseSensitive?: boolean;
445
486
  path?: string;
446
487
  id?: string;
488
+ unstable_middleware?: unstable_MiddlewareFunction[];
447
489
  loader?: LoaderFunction | boolean;
448
490
  action?: ActionFunction | boolean;
449
491
  hasErrorBoundary?: boolean;
@@ -669,6 +711,7 @@ declare class ErrorResponseImpl implements ErrorResponse {
669
711
  */
670
712
  declare function isRouteErrorResponse(error: any): error is ErrorResponse;
671
713
 
714
+ type MaybePromise<T> = T | Promise<T>;
672
715
  /**
673
716
  * A Router instance manages all navigation and data loading/mutations
674
717
  */
@@ -924,6 +967,7 @@ type HydrationState = Partial<Pick<RouterState, "loaderData" | "actionData" | "e
924
967
  * Future flags to toggle new feature behavior
925
968
  */
926
969
  interface FutureConfig {
970
+ unstable_middleware: boolean;
927
971
  }
928
972
  /**
929
973
  * Initialization options for createRouter
@@ -932,6 +976,7 @@ interface RouterInit {
932
976
  routes: AgnosticRouteObject[];
933
977
  history: History;
934
978
  basename?: string;
979
+ unstable_getContext?: () => MaybePromise<unstable_InitialContext>;
935
980
  mapRouteProperties?: MapRoutePropertiesFunction;
936
981
  future?: Partial<FutureConfig>;
937
982
  hydrationData?: HydrationState;
@@ -961,13 +1006,17 @@ interface StaticHandler {
961
1006
  dataRoutes: AgnosticDataRouteObject[];
962
1007
  query(request: Request, opts?: {
963
1008
  requestContext?: unknown;
1009
+ filterMatchesToLoad?: (match: AgnosticDataRouteMatch) => boolean;
964
1010
  skipLoaderErrorBubbling?: boolean;
965
- dataStrategy?: DataStrategyFunction;
1011
+ skipRevalidation?: boolean;
1012
+ dataStrategy?: DataStrategyFunction<unknown>;
1013
+ unstable_respond?: (staticContext: StaticHandlerContext) => MaybePromise<Response>;
966
1014
  }): Promise<StaticHandlerContext | Response>;
967
1015
  queryRoute(request: Request, opts?: {
968
1016
  routeId?: string;
969
1017
  requestContext?: unknown;
970
- dataStrategy?: DataStrategyFunction;
1018
+ dataStrategy?: DataStrategyFunction<unknown>;
1019
+ unstable_respond?: (res: Response) => MaybePromise<Response>;
971
1020
  }): Promise<any>;
972
1021
  }
973
1022
  type ViewTransitionOpts = {
@@ -1201,6 +1250,7 @@ interface IndexRouteObject {
1201
1250
  caseSensitive?: AgnosticIndexRouteObject["caseSensitive"];
1202
1251
  path?: AgnosticIndexRouteObject["path"];
1203
1252
  id?: AgnosticIndexRouteObject["id"];
1253
+ unstable_middleware?: AgnosticIndexRouteObject["unstable_middleware"];
1204
1254
  loader?: AgnosticIndexRouteObject["loader"];
1205
1255
  action?: AgnosticIndexRouteObject["action"];
1206
1256
  hasErrorBoundary?: AgnosticIndexRouteObject["hasErrorBoundary"];
@@ -1220,6 +1270,7 @@ interface NonIndexRouteObject {
1220
1270
  caseSensitive?: AgnosticNonIndexRouteObject["caseSensitive"];
1221
1271
  path?: AgnosticNonIndexRouteObject["path"];
1222
1272
  id?: AgnosticNonIndexRouteObject["id"];
1273
+ unstable_middleware?: AgnosticNonIndexRouteObject["unstable_middleware"];
1223
1274
  loader?: AgnosticNonIndexRouteObject["loader"];
1224
1275
  action?: AgnosticNonIndexRouteObject["action"];
1225
1276
  hasErrorBoundary?: AgnosticNonIndexRouteObject["hasErrorBoundary"];
@@ -1425,6 +1476,7 @@ interface RouteModules {
1425
1476
  interface RouteModule {
1426
1477
  clientAction?: ClientActionFunction;
1427
1478
  clientLoader?: ClientLoaderFunction;
1479
+ unstable_clientMiddleware?: unstable_MiddlewareFunction<undefined>[];
1428
1480
  ErrorBoundary?: ErrorBoundaryComponent;
1429
1481
  HydrateFallback?: HydrateFallbackComponent;
1430
1482
  Layout?: LayoutComponent;
@@ -1443,6 +1495,7 @@ interface ServerRouteModule extends RouteModule {
1443
1495
  [name: string]: string;
1444
1496
  };
1445
1497
  loader?: LoaderFunction;
1498
+ unstable_middleware?: unstable_MiddlewareFunction<Response>[];
1446
1499
  }
1447
1500
  /**
1448
1501
  * A function that handles data mutations for a route on the client
@@ -1451,7 +1504,7 @@ type ClientActionFunction = (args: ClientActionFunctionArgs) => ReturnType<Actio
1451
1504
  /**
1452
1505
  * Arguments passed to a route `clientAction` function
1453
1506
  */
1454
- type ClientActionFunctionArgs = ActionFunctionArgs<undefined> & {
1507
+ type ClientActionFunctionArgs = ActionFunctionArgs & {
1455
1508
  serverAction: <T = unknown>() => Promise<SerializeFrom<T>>;
1456
1509
  };
1457
1510
  /**
@@ -1463,7 +1516,7 @@ type ClientLoaderFunction = ((args: ClientLoaderFunctionArgs) => ReturnType<Load
1463
1516
  /**
1464
1517
  * Arguments passed to a route `clientLoader` function
1465
1518
  */
1466
- type ClientLoaderFunctionArgs = LoaderFunctionArgs<undefined> & {
1519
+ type ClientLoaderFunctionArgs = LoaderFunctionArgs & {
1467
1520
  serverLoader: <T = unknown>() => Promise<SerializeFrom<T>>;
1468
1521
  };
1469
1522
  /**
@@ -1628,7 +1681,7 @@ type Serializable = undefined | null | boolean | string | symbol | number | Arra
1628
1681
  * in your application.
1629
1682
  */
1630
1683
  type unstable_SerializesTo<T> = {
1631
- unstable__ReactRouter_SerializesTo?: [T];
1684
+ unstable__ReactRouter_SerializesTo: [T];
1632
1685
  };
1633
1686
 
1634
1687
  type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;
@@ -1649,4 +1702,4 @@ type ServerDataFrom<T> = ServerData<DataFrom<T>>;
1649
1702
  type ClientDataFrom<T> = ClientData<DataFrom<T>>;
1650
1703
  type SerializeFrom<T> = T extends (...args: infer Args) => unknown ? Args extends [ClientLoaderFunctionArgs | ClientActionFunctionArgs] ? ClientDataFrom<T> : ServerDataFrom<T> : T;
1651
1704
 
1652
- export { type HTMLFormMethod as $, type ActionFunctionArgs as A, type BlockerFunction as B, type CreateStaticHandlerOptions as C, type DataStrategyFunction as D, type Equal as E, type FutureConfig as F, type GetScrollPositionFunction as G, type HydrationState as H, type InitialEntry as I, type RouterSubscriber as J, type RouterNavigateOptions as K, type LoaderFunctionArgs as L, type MetaFunction as M, type NavigateOptions as N, type RouterFetchOptions as O, type ParamParseKey as P, type DataStrategyFunctionArgs as Q, type RouteModules as R, type ServerRouteModule as S, type To as T, type UIMatch as U, type DataStrategyMatch as V, type DataStrategyResult as W, DataWithResponseInit as X, type ErrorResponse as Y, type FormEncType as Z, type FormMethod as _, type Router as a, type LazyRouteFunction as a0, type PathParam as a1, type RedirectFunction as a2, type ShouldRevalidateFunction as a3, type ShouldRevalidateFunctionArgs as a4, createPath as a5, parsePath as a6, IDLE_NAVIGATION as a7, IDLE_FETCHER as a8, IDLE_BLOCKER as a9, type unstable_SerializesTo as aA, createBrowserHistory as aB, invariant as aC, createRouter as aD, ErrorResponseImpl as aE, DataRouterContext as aF, DataRouterStateContext as aG, FetchersContext as aH, LocationContext as aI, NavigationContext as aJ, RouteContext as aK, ViewTransitionContext as aL, type RouteModule as aM, type History as aN, type ServerDataFrom as aO, type ClientDataFrom as aP, type Func as aQ, type Pretty as aR, data as aa, generatePath as ab, isRouteErrorResponse as ac, matchPath as ad, matchRoutes as ae, redirect as af, redirectDocument as ag, replace as ah, resolvePath as ai, type DataRouteMatch as aj, type DataRouteObject as ak, type Navigator as al, type PatchRoutesOnNavigationFunction as am, type PatchRoutesOnNavigationFunctionArgs as an, type RouteMatch as ao, type ClientActionFunction as ap, type ClientActionFunctionArgs as aq, type ClientLoaderFunction as ar, type ClientLoaderFunctionArgs as as, type HeadersArgs as at, type HeadersFunction as au, type MetaArgs as av, type MetaDescriptor as aw, type PageLinkDescriptor as ax, type HtmlLinkDescriptor as ay, type LinkDescriptor as az, type RouteManifest as b, type RelativeRoutingType as c, type Location as d, Action as e, type Path as f, type PathPattern as g, type PathMatch as h, type Params as i, type RouteObject as j, type Navigation as k, type RevalidationState as l, type SerializeFrom as m, type Blocker as n, type StaticHandlerContext as o, type StaticHandler as p, type IndexRouteObject as q, type LoaderFunction as r, type ActionFunction as s, type LinksFunction as t, type NonIndexRouteObject as u, type RouterState as v, type GetScrollRestorationKeyFunction as w, type Fetcher as x, type NavigationStates as y, type RouterInit as z };
1705
+ export { type FormEncType as $, type ActionFunctionArgs as A, type BlockerFunction as B, type CreateStaticHandlerOptions as C, type DataStrategyFunction as D, type Equal as E, type FutureConfig as F, type GetScrollPositionFunction as G, type HydrationState as H, type InitialEntry as I, type Fetcher as J, type NavigationStates as K, type LoaderFunctionArgs as L, type MetaFunction as M, type NavigateOptions as N, type RouterSubscriber as O, type ParamParseKey as P, type RouterNavigateOptions as Q, type RouterInit as R, type ServerRouteModule as S, type To as T, type UIMatch as U, type RouterFetchOptions as V, type DataStrategyFunctionArgs as W, type DataStrategyMatch as X, type DataStrategyResult as Y, DataWithResponseInit as Z, type ErrorResponse as _, type RouteModules as a, type FormMethod as a0, type HTMLFormMethod as a1, type LazyRouteFunction as a2, type unstable_MiddlewareFunction as a3, type PathParam as a4, type RedirectFunction as a5, type unstable_RouterContext as a6, type ShouldRevalidateFunction as a7, type ShouldRevalidateFunctionArgs as a8, unstable_createContext as a9, type MetaArgs as aA, type MetaDescriptor as aB, type PageLinkDescriptor as aC, type HtmlLinkDescriptor as aD, type LinkDescriptor as aE, type unstable_SerializesTo as aF, createBrowserHistory as aG, invariant as aH, createRouter as aI, ErrorResponseImpl as aJ, DataRouterContext as aK, DataRouterStateContext as aL, FetchersContext as aM, LocationContext as aN, NavigationContext as aO, RouteContext as aP, ViewTransitionContext as aQ, type RouteModule as aR, type History as aS, type ServerDataFrom as aT, type ClientDataFrom as aU, type Func as aV, type unstable_MiddlewareNextFunction as aW, type Pretty as aX, createPath as aa, parsePath as ab, IDLE_NAVIGATION as ac, IDLE_FETCHER as ad, IDLE_BLOCKER as ae, data as af, generatePath as ag, isRouteErrorResponse as ah, matchPath as ai, matchRoutes as aj, redirect as ak, redirectDocument as al, replace as am, resolvePath as an, type DataRouteMatch as ao, type DataRouteObject as ap, type Navigator as aq, type PatchRoutesOnNavigationFunction as ar, type PatchRoutesOnNavigationFunctionArgs as as, type RouteMatch as at, type ClientActionFunction as au, type ClientActionFunctionArgs as av, type ClientLoaderFunction as aw, type ClientLoaderFunctionArgs as ax, type HeadersArgs as ay, type HeadersFunction as az, type Router as b, type RouteManifest as c, type RelativeRoutingType as d, type Location as e, Action as f, type Path as g, type PathPattern as h, type PathMatch as i, type Params as j, type RouteObject as k, type Navigation as l, type RevalidationState as m, type SerializeFrom as n, type Blocker as o, type StaticHandlerContext as p, type StaticHandler as q, type unstable_InitialContext as r, type IndexRouteObject as s, type LoaderFunction as t, unstable_RouterContextProvider as u, type ActionFunction as v, type LinksFunction as w, type NonIndexRouteObject as x, type RouterState as y, type GetScrollRestorationKeyFunction as z };