react-router 7.13.0 → 7.13.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 (68) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/dist/development/{browser-BEPxnEBW.d.mts → browser-DzsJABDQ.d.mts} +3 -2
  3. package/dist/{production/browser-BEPxnEBW.d.mts → development/browser-sPQ7eaK4.d.ts} +3 -2
  4. package/dist/development/{chunk-HMDR2CVH.js → chunk-2YMDXNOJ.js} +124 -107
  5. package/dist/{production/chunk-GSFLVUYQ.mjs → development/chunk-JPUPSTYD.mjs} +13 -4
  6. package/dist/{production/chunk-NGWWS4QJ.js → development/chunk-KSEWV2VO.js} +7 -7
  7. package/dist/development/{chunk-JZWAC4HX.mjs → chunk-LFPYN7LY.mjs} +153 -63
  8. package/dist/development/{chunk-WICQJKU6.js → chunk-XOLAXE2Z.js} +203 -128
  9. package/dist/development/dom-export.d.mts +2 -2
  10. package/dist/development/dom-export.d.ts +2 -2
  11. package/dist/development/dom-export.js +34 -27
  12. package/dist/development/dom-export.mjs +10 -3
  13. package/dist/development/{index-react-server-client-1TI9M9o1.d.ts → index-react-server-client-C4tCIird.d.ts} +54 -2
  14. package/dist/development/{index-react-server-client-MKTlCGL3.d.mts → index-react-server-client-EzWJGpN_.d.mts} +54 -2
  15. package/dist/development/index-react-server-client.d.mts +2 -2
  16. package/dist/development/index-react-server-client.d.ts +2 -2
  17. package/dist/development/index-react-server-client.js +4 -4
  18. package/dist/development/index-react-server-client.mjs +2 -2
  19. package/dist/development/index-react-server.d.mts +12 -1
  20. package/dist/development/index-react-server.d.ts +12 -1
  21. package/dist/development/index-react-server.js +80 -44
  22. package/dist/development/index-react-server.mjs +80 -45
  23. package/dist/development/index.d.mts +11 -10
  24. package/dist/development/index.d.ts +11 -10
  25. package/dist/development/index.js +94 -85
  26. package/dist/development/index.mjs +3 -3
  27. package/dist/{production/instrumentation-DvHY1sgY.d.ts → development/instrumentation--6Pioq_G.d.ts} +14 -2
  28. package/dist/development/lib/types/internal.d.mts +4 -4
  29. package/dist/development/lib/types/internal.d.ts +4 -4
  30. package/dist/development/lib/types/internal.js +1 -1
  31. package/dist/development/lib/types/internal.mjs +1 -1
  32. package/dist/development/{register-Bm80E9qL.d.ts → register-CBoanF80.d.ts} +1 -1
  33. package/dist/development/{register-CS_tiXsm.d.mts → register-cRYJ3CjG.d.mts} +1 -1
  34. package/dist/{production/router-5iOvts3c.d.mts → development/router-cLsU7kHk.d.mts} +14 -2
  35. package/dist/{development/browser-CJ9_du-U.d.ts → production/browser-DzsJABDQ.d.mts} +3 -2
  36. package/dist/production/{browser-CJ9_du-U.d.ts → browser-sPQ7eaK4.d.ts} +3 -2
  37. package/dist/production/{chunk-QSNCZFX5.js → chunk-772H4TVR.js} +203 -128
  38. package/dist/production/{chunk-N2HZAAIG.js → chunk-B5UMK6O7.js} +124 -107
  39. package/dist/production/{chunk-Y3R63HEB.mjs → chunk-RJCJ3EYF.mjs} +153 -63
  40. package/dist/{development/chunk-4LKRSAEJ.mjs → production/chunk-TXB4YXR2.mjs} +13 -4
  41. package/dist/{development/chunk-7PAHGFS4.js → production/chunk-ZJMCM6KT.js} +7 -7
  42. package/dist/production/dom-export.d.mts +2 -2
  43. package/dist/production/dom-export.d.ts +2 -2
  44. package/dist/production/dom-export.js +34 -27
  45. package/dist/production/dom-export.mjs +10 -3
  46. package/dist/production/{index-react-server-client-1TI9M9o1.d.ts → index-react-server-client-C4tCIird.d.ts} +54 -2
  47. package/dist/production/{index-react-server-client-MKTlCGL3.d.mts → index-react-server-client-EzWJGpN_.d.mts} +54 -2
  48. package/dist/production/index-react-server-client.d.mts +2 -2
  49. package/dist/production/index-react-server-client.d.ts +2 -2
  50. package/dist/production/index-react-server-client.js +4 -4
  51. package/dist/production/index-react-server-client.mjs +2 -2
  52. package/dist/production/index-react-server.d.mts +12 -1
  53. package/dist/production/index-react-server.d.ts +12 -1
  54. package/dist/production/index-react-server.js +80 -44
  55. package/dist/production/index-react-server.mjs +80 -45
  56. package/dist/production/index.d.mts +11 -10
  57. package/dist/production/index.d.ts +11 -10
  58. package/dist/production/index.js +94 -85
  59. package/dist/production/index.mjs +3 -3
  60. package/dist/{development/instrumentation-DvHY1sgY.d.ts → production/instrumentation--6Pioq_G.d.ts} +14 -2
  61. package/dist/production/lib/types/internal.d.mts +4 -4
  62. package/dist/production/lib/types/internal.d.ts +4 -4
  63. package/dist/production/lib/types/internal.js +1 -1
  64. package/dist/production/lib/types/internal.mjs +1 -1
  65. package/dist/production/{register-Bm80E9qL.d.ts → register-CBoanF80.d.ts} +1 -1
  66. package/dist/production/{register-CS_tiXsm.d.mts → register-cRYJ3CjG.d.mts} +1 -1
  67. package/dist/{development/router-5iOvts3c.d.mts → production/router-cLsU7kHk.d.mts} +14 -2
  68. package/package.json +1 -1
@@ -60,6 +60,11 @@ interface Location<State = any> extends Path {
60
60
  * Note: This value is always "default" on the initial location.
61
61
  */
62
62
  key: string;
63
+ /**
64
+ * The masked location displayed in the URL bar, which differs from the URL the
65
+ * router is operating on
66
+ */
67
+ unstable_mask: Path | undefined;
63
68
  }
64
69
  /**
65
70
  * A change to the current location.
@@ -1224,6 +1229,10 @@ interface RouterState {
1224
1229
  * Tracks whether we've completed our initial data load
1225
1230
  */
1226
1231
  initialized: boolean;
1232
+ /**
1233
+ * Tracks whether we should be rendering a HydrateFallback during hydration
1234
+ */
1235
+ renderFallback: boolean;
1227
1236
  /**
1228
1237
  * Current scroll position we should start at for a new view
1229
1238
  * - number -> scroll position to restore to
@@ -1376,6 +1385,7 @@ type BaseNavigateOptions = BaseNavigateOrFetchOptions & {
1376
1385
  state?: any;
1377
1386
  fromRouteId?: string;
1378
1387
  viewTransition?: boolean;
1388
+ unstable_mask?: To;
1379
1389
  };
1380
1390
  type BaseSubmissionOptions = {
1381
1391
  formMethod?: HTMLFormMethod;
@@ -2097,6 +2107,7 @@ type LdJsonValue = LdJsonPrimitive | LdJsonObject | LdJsonArray;
2097
2107
  */
2098
2108
  type RouteHandle = unknown;
2099
2109
 
2110
+ declare function getRequest(): Request;
2100
2111
  declare const redirect: typeof redirect$1;
2101
2112
  declare const redirectDocument: typeof redirectDocument$1;
2102
2113
  declare const replace: typeof replace$1;
@@ -2550,4 +2561,4 @@ interface MemorySessionStorageOptions {
2550
2561
  */
2551
2562
  declare function createMemorySessionStorage<Data = SessionData, FlashData = Data>({ cookie }?: MemorySessionStorageOptions): SessionStorage<Data, FlashData>;
2552
2563
 
2553
- export { Await, type Cookie, type CookieOptions, type CookieSignatureOptions, type FlashSessionData, type IsCookieFunction, type IsSessionFunction, type MiddlewareFunction, type MiddlewareNextFunction, type RouterContext, RouterContextProvider, type Session, type SessionData, type SessionIdStorageStrategy, type SessionStorage, createContext, createCookie, createCookieSessionStorage, createMemorySessionStorage, createSession, createSessionStorage, createStaticHandler, data, href, isCookie, isRouteErrorResponse, isSession, matchRoutes, redirect, redirectDocument, replace, type DecodeActionFunction as unstable_DecodeActionFunction, type DecodeFormStateFunction as unstable_DecodeFormStateFunction, type DecodeReplyFunction as unstable_DecodeReplyFunction, type LoadServerActionFunction as unstable_LoadServerActionFunction, type RSCManifestPayload as unstable_RSCManifestPayload, type RSCMatch as unstable_RSCMatch, type RSCPayload as unstable_RSCPayload, type RSCRenderPayload as unstable_RSCRenderPayload, type RSCRouteConfig as unstable_RSCRouteConfig, type RSCRouteConfigEntry as unstable_RSCRouteConfigEntry, type RSCRouteManifest as unstable_RSCRouteManifest, type RSCRouteMatch as unstable_RSCRouteMatch, matchRSCServerRequest as unstable_matchRSCServerRequest };
2564
+ export { Await, type Cookie, type CookieOptions, type CookieSignatureOptions, type FlashSessionData, type IsCookieFunction, type IsSessionFunction, type MiddlewareFunction, type MiddlewareNextFunction, type RouterContext, RouterContextProvider, type Session, type SessionData, type SessionIdStorageStrategy, type SessionStorage, createContext, createCookie, createCookieSessionStorage, createMemorySessionStorage, createSession, createSessionStorage, createStaticHandler, data, href, isCookie, isRouteErrorResponse, isSession, matchRoutes, redirect, redirectDocument, replace, type DecodeActionFunction as unstable_DecodeActionFunction, type DecodeFormStateFunction as unstable_DecodeFormStateFunction, type DecodeReplyFunction as unstable_DecodeReplyFunction, type LoadServerActionFunction as unstable_LoadServerActionFunction, type RSCManifestPayload as unstable_RSCManifestPayload, type RSCMatch as unstable_RSCMatch, type RSCPayload as unstable_RSCPayload, type RSCRenderPayload as unstable_RSCRenderPayload, type RSCRouteConfig as unstable_RSCRouteConfig, type RSCRouteConfigEntry as unstable_RSCRouteConfigEntry, type RSCRouteManifest as unstable_RSCRouteManifest, type RSCRouteMatch as unstable_RSCRouteMatch, getRequest as unstable_getRequest, matchRSCServerRequest as unstable_matchRSCServerRequest };
@@ -27,7 +27,7 @@ function _interopNamespace(e) {
27
27
  var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
28
28
 
29
29
  /**
30
- * react-router v7.13.0
30
+ * react-router v7.13.1
31
31
  *
32
32
  * Copyright (c) Remix Software Inc.
33
33
  *
@@ -61,7 +61,7 @@ function warning(cond, message) {
61
61
  function createKey() {
62
62
  return Math.random().toString(36).substring(2, 10);
63
63
  }
64
- function createLocation(current, to, state = null, key) {
64
+ function createLocation(current, to, state = null, key, unstable_mask) {
65
65
  let location = {
66
66
  pathname: typeof current === "string" ? current : current.pathname,
67
67
  search: "",
@@ -72,7 +72,8 @@ function createLocation(current, to, state = null, key) {
72
72
  // full Locations now and avoid the need to run through this flow at all
73
73
  // But that's a pretty big refactor to the current test suite so going to
74
74
  // keep as is for the time being and just let any incoming keys take precedence
75
- key: to && to.key || key || createKey()
75
+ key: to && to.key || key || createKey(),
76
+ unstable_mask
76
77
  };
77
78
  return location;
78
79
  }
@@ -665,9 +666,16 @@ function compilePath(path, caseSensitive = false, end = true) {
665
666
  let params = [];
666
667
  let regexpSource = "^" + path.replace(/\/*\*?$/, "").replace(/^\/*/, "/").replace(/[\\.*+^${}|()[\]]/g, "\\$&").replace(
667
668
  /\/:([\w-]+)(\?)?/g,
668
- (_, paramName, isOptional) => {
669
+ (match, paramName, isOptional, index, str) => {
669
670
  params.push({ paramName, isOptional: isOptional != null });
670
- return isOptional ? "/?([^\\/]+)?" : "/([^\\/]+)";
671
+ if (isOptional) {
672
+ let nextChar = str.charAt(index + match.length);
673
+ if (nextChar && nextChar !== "/") {
674
+ return "/([^\\/]*)";
675
+ }
676
+ return "(?:/([^\\/]*))?";
677
+ }
678
+ return "/([^\\/]+)";
671
679
  }
672
680
  ).replace(/\/([\w-]+)\?(\/|$)/g, "(/$1)?$2");
673
681
  if (path.endsWith("*")) {
@@ -2389,7 +2397,14 @@ var SINGLE_FETCH_REDIRECT_STATUS = 202;
2389
2397
  // lib/actions.ts
2390
2398
  function throwIfPotentialCSRFAttack(headers, allowedActionOrigins) {
2391
2399
  let originHeader = headers.get("origin");
2392
- let originDomain = typeof originHeader === "string" && originHeader !== "null" ? new URL(originHeader).host : originHeader;
2400
+ let originDomain = null;
2401
+ try {
2402
+ originDomain = typeof originHeader === "string" && originHeader !== "null" ? new URL(originHeader).host : originHeader;
2403
+ } catch {
2404
+ throw new Error(
2405
+ `\`origin\` header is not a valid URL. Aborting the action.`
2406
+ );
2407
+ }
2393
2408
  let host = parseHostHeader(headers);
2394
2409
  if (originDomain && (!host || originDomain !== host.value)) {
2395
2410
  if (!isAllowedOrigin(originDomain, allowedActionOrigins)) {
@@ -2504,6 +2519,14 @@ var WithErrorBoundaryProps = reactServerClient.UNSAFE_WithErrorBoundaryProps;
2504
2519
  var WithHydrateFallbackProps = reactServerClient.UNSAFE_WithHydrateFallbackProps;
2505
2520
  var globalVar = typeof globalThis !== "undefined" ? globalThis : global;
2506
2521
  var ServerStorage = globalVar.___reactRouterServerStorage___ ?? (globalVar.___reactRouterServerStorage___ = new node_async_hooks.AsyncLocalStorage());
2522
+ function getRequest() {
2523
+ const ctx = ServerStorage.getStore();
2524
+ if (!ctx)
2525
+ throw new Error(
2526
+ "getRequest must be called from within a React Server render context"
2527
+ );
2528
+ return ctx.request;
2529
+ }
2507
2530
  var redirect2 = (...args) => {
2508
2531
  const response = redirect(...args);
2509
2532
  const ctx = ServerStorage.getStore();
@@ -2823,6 +2846,7 @@ async function generateRenderResponse(request, routes, basename, isDataRequest,
2823
2846
  });
2824
2847
  let actionResult;
2825
2848
  const ctx = {
2849
+ request,
2826
2850
  runningAction: false
2827
2851
  };
2828
2852
  const result = await ServerStorage.run(
@@ -2835,50 +2859,56 @@ async function generateRenderResponse(request, routes, basename, isDataRequest,
2835
2859
  async generateMiddlewareResponse(query) {
2836
2860
  let formState;
2837
2861
  let skipRevalidation = false;
2862
+ let potentialCSRFAttackError;
2838
2863
  if (request.method === "POST") {
2839
- throwIfPotentialCSRFAttack(request.headers, allowedActionOrigins);
2840
- ctx.runningAction = true;
2841
- let result2 = await processServerAction(
2842
- request,
2843
- basename,
2844
- decodeReply,
2845
- loadServerAction,
2846
- decodeAction,
2847
- decodeFormState,
2848
- onError,
2849
- temporaryReferences
2850
- );
2851
- ctx.runningAction = false;
2852
- if (isResponse(result2)) {
2853
- return generateRedirectResponse(
2854
- result2,
2855
- actionResult,
2864
+ try {
2865
+ throwIfPotentialCSRFAttack(request.headers, allowedActionOrigins);
2866
+ ctx.runningAction = true;
2867
+ let result2 = await processServerAction(
2868
+ request,
2856
2869
  basename,
2857
- isDataRequest,
2858
- generateResponse,
2859
- temporaryReferences,
2860
- ctx.redirect?.headers
2861
- );
2862
- }
2863
- skipRevalidation = result2?.skipRevalidation ?? false;
2864
- actionResult = result2?.actionResult;
2865
- formState = result2?.formState;
2866
- request = result2?.revalidationRequest ?? request;
2867
- if (ctx.redirect) {
2868
- return generateRedirectResponse(
2869
- ctx.redirect,
2870
- actionResult,
2871
- basename,
2872
- isDataRequest,
2873
- generateResponse,
2874
- temporaryReferences,
2875
- void 0
2876
- );
2870
+ decodeReply,
2871
+ loadServerAction,
2872
+ decodeAction,
2873
+ decodeFormState,
2874
+ onError,
2875
+ temporaryReferences
2876
+ ).finally(() => {
2877
+ ctx.runningAction = false;
2878
+ });
2879
+ if (isResponse(result2)) {
2880
+ return generateRedirectResponse(
2881
+ result2,
2882
+ actionResult,
2883
+ basename,
2884
+ isDataRequest,
2885
+ generateResponse,
2886
+ temporaryReferences,
2887
+ ctx.redirect?.headers
2888
+ );
2889
+ }
2890
+ skipRevalidation = result2?.skipRevalidation ?? false;
2891
+ actionResult = result2?.actionResult;
2892
+ formState = result2?.formState;
2893
+ request = result2?.revalidationRequest ?? request;
2894
+ if (ctx.redirect) {
2895
+ return generateRedirectResponse(
2896
+ ctx.redirect,
2897
+ actionResult,
2898
+ basename,
2899
+ isDataRequest,
2900
+ generateResponse,
2901
+ temporaryReferences,
2902
+ void 0
2903
+ );
2904
+ }
2905
+ } catch (error) {
2906
+ potentialCSRFAttackError = error;
2877
2907
  }
2878
2908
  }
2879
2909
  let staticContext = await query(
2880
2910
  request,
2881
- skipRevalidation ? {
2911
+ skipRevalidation || !!potentialCSRFAttackError ? {
2882
2912
  filterMatchesToLoad: () => false
2883
2913
  } : void 0
2884
2914
  );
@@ -2893,6 +2923,11 @@ async function generateRenderResponse(request, routes, basename, isDataRequest,
2893
2923
  ctx.redirect?.headers
2894
2924
  );
2895
2925
  }
2926
+ if (potentialCSRFAttackError) {
2927
+ staticContext.errors ?? (staticContext.errors = {});
2928
+ staticContext.errors[staticContext.matches[0].route.id] = potentialCSRFAttackError;
2929
+ staticContext.statusCode = 400;
2930
+ }
2896
2931
  return generateStaticContextResponse(
2897
2932
  routes,
2898
2933
  basename,
@@ -3705,4 +3740,5 @@ exports.matchRoutes = matchRoutes;
3705
3740
  exports.redirect = redirect2;
3706
3741
  exports.redirectDocument = redirectDocument2;
3707
3742
  exports.replace = replace2;
3743
+ exports.unstable_getRequest = getRequest;
3708
3744
  exports.unstable_matchRSCServerRequest = matchRSCServerRequest;
@@ -6,7 +6,7 @@ export { BrowserRouter, Form, HashRouter, Link, Links, MemoryRouter, Meta, NavLi
6
6
  import { serialize, parse } from 'cookie';
7
7
 
8
8
  /**
9
- * react-router v7.13.0
9
+ * react-router v7.13.1
10
10
  *
11
11
  * Copyright (c) Remix Software Inc.
12
12
  *
@@ -40,7 +40,7 @@ function warning(cond, message) {
40
40
  function createKey() {
41
41
  return Math.random().toString(36).substring(2, 10);
42
42
  }
43
- function createLocation(current, to, state = null, key) {
43
+ function createLocation(current, to, state = null, key, unstable_mask) {
44
44
  let location = {
45
45
  pathname: typeof current === "string" ? current : current.pathname,
46
46
  search: "",
@@ -51,7 +51,8 @@ function createLocation(current, to, state = null, key) {
51
51
  // full Locations now and avoid the need to run through this flow at all
52
52
  // But that's a pretty big refactor to the current test suite so going to
53
53
  // keep as is for the time being and just let any incoming keys take precedence
54
- key: to && to.key || key || createKey()
54
+ key: to && to.key || key || createKey(),
55
+ unstable_mask
55
56
  };
56
57
  return location;
57
58
  }
@@ -644,9 +645,16 @@ function compilePath(path, caseSensitive = false, end = true) {
644
645
  let params = [];
645
646
  let regexpSource = "^" + path.replace(/\/*\*?$/, "").replace(/^\/*/, "/").replace(/[\\.*+^${}|()[\]]/g, "\\$&").replace(
646
647
  /\/:([\w-]+)(\?)?/g,
647
- (_, paramName, isOptional) => {
648
+ (match, paramName, isOptional, index, str) => {
648
649
  params.push({ paramName, isOptional: isOptional != null });
649
- return isOptional ? "/?([^\\/]+)?" : "/([^\\/]+)";
650
+ if (isOptional) {
651
+ let nextChar = str.charAt(index + match.length);
652
+ if (nextChar && nextChar !== "/") {
653
+ return "/([^\\/]*)";
654
+ }
655
+ return "(?:/([^\\/]*))?";
656
+ }
657
+ return "/([^\\/]+)";
650
658
  }
651
659
  ).replace(/\/([\w-]+)\?(\/|$)/g, "(/$1)?$2");
652
660
  if (path.endsWith("*")) {
@@ -2368,7 +2376,14 @@ var SINGLE_FETCH_REDIRECT_STATUS = 202;
2368
2376
  // lib/actions.ts
2369
2377
  function throwIfPotentialCSRFAttack(headers, allowedActionOrigins) {
2370
2378
  let originHeader = headers.get("origin");
2371
- let originDomain = typeof originHeader === "string" && originHeader !== "null" ? new URL(originHeader).host : originHeader;
2379
+ let originDomain = null;
2380
+ try {
2381
+ originDomain = typeof originHeader === "string" && originHeader !== "null" ? new URL(originHeader).host : originHeader;
2382
+ } catch {
2383
+ throw new Error(
2384
+ `\`origin\` header is not a valid URL. Aborting the action.`
2385
+ );
2386
+ }
2372
2387
  let host = parseHostHeader(headers);
2373
2388
  if (originDomain && (!host || originDomain !== host.value)) {
2374
2389
  if (!isAllowedOrigin(originDomain, allowedActionOrigins)) {
@@ -2483,6 +2498,14 @@ var WithErrorBoundaryProps = UNSAFE_WithErrorBoundaryProps;
2483
2498
  var WithHydrateFallbackProps = UNSAFE_WithHydrateFallbackProps;
2484
2499
  var globalVar = typeof globalThis !== "undefined" ? globalThis : global;
2485
2500
  var ServerStorage = globalVar.___reactRouterServerStorage___ ?? (globalVar.___reactRouterServerStorage___ = new AsyncLocalStorage());
2501
+ function getRequest() {
2502
+ const ctx = ServerStorage.getStore();
2503
+ if (!ctx)
2504
+ throw new Error(
2505
+ "getRequest must be called from within a React Server render context"
2506
+ );
2507
+ return ctx.request;
2508
+ }
2486
2509
  var redirect2 = (...args) => {
2487
2510
  const response = redirect(...args);
2488
2511
  const ctx = ServerStorage.getStore();
@@ -2802,6 +2825,7 @@ async function generateRenderResponse(request, routes, basename, isDataRequest,
2802
2825
  });
2803
2826
  let actionResult;
2804
2827
  const ctx = {
2828
+ request,
2805
2829
  runningAction: false
2806
2830
  };
2807
2831
  const result = await ServerStorage.run(
@@ -2814,50 +2838,56 @@ async function generateRenderResponse(request, routes, basename, isDataRequest,
2814
2838
  async generateMiddlewareResponse(query) {
2815
2839
  let formState;
2816
2840
  let skipRevalidation = false;
2841
+ let potentialCSRFAttackError;
2817
2842
  if (request.method === "POST") {
2818
- throwIfPotentialCSRFAttack(request.headers, allowedActionOrigins);
2819
- ctx.runningAction = true;
2820
- let result2 = await processServerAction(
2821
- request,
2822
- basename,
2823
- decodeReply,
2824
- loadServerAction,
2825
- decodeAction,
2826
- decodeFormState,
2827
- onError,
2828
- temporaryReferences
2829
- );
2830
- ctx.runningAction = false;
2831
- if (isResponse(result2)) {
2832
- return generateRedirectResponse(
2833
- result2,
2834
- actionResult,
2843
+ try {
2844
+ throwIfPotentialCSRFAttack(request.headers, allowedActionOrigins);
2845
+ ctx.runningAction = true;
2846
+ let result2 = await processServerAction(
2847
+ request,
2835
2848
  basename,
2836
- isDataRequest,
2837
- generateResponse,
2838
- temporaryReferences,
2839
- ctx.redirect?.headers
2840
- );
2841
- }
2842
- skipRevalidation = result2?.skipRevalidation ?? false;
2843
- actionResult = result2?.actionResult;
2844
- formState = result2?.formState;
2845
- request = result2?.revalidationRequest ?? request;
2846
- if (ctx.redirect) {
2847
- return generateRedirectResponse(
2848
- ctx.redirect,
2849
- actionResult,
2850
- basename,
2851
- isDataRequest,
2852
- generateResponse,
2853
- temporaryReferences,
2854
- void 0
2855
- );
2849
+ decodeReply,
2850
+ loadServerAction,
2851
+ decodeAction,
2852
+ decodeFormState,
2853
+ onError,
2854
+ temporaryReferences
2855
+ ).finally(() => {
2856
+ ctx.runningAction = false;
2857
+ });
2858
+ if (isResponse(result2)) {
2859
+ return generateRedirectResponse(
2860
+ result2,
2861
+ actionResult,
2862
+ basename,
2863
+ isDataRequest,
2864
+ generateResponse,
2865
+ temporaryReferences,
2866
+ ctx.redirect?.headers
2867
+ );
2868
+ }
2869
+ skipRevalidation = result2?.skipRevalidation ?? false;
2870
+ actionResult = result2?.actionResult;
2871
+ formState = result2?.formState;
2872
+ request = result2?.revalidationRequest ?? request;
2873
+ if (ctx.redirect) {
2874
+ return generateRedirectResponse(
2875
+ ctx.redirect,
2876
+ actionResult,
2877
+ basename,
2878
+ isDataRequest,
2879
+ generateResponse,
2880
+ temporaryReferences,
2881
+ void 0
2882
+ );
2883
+ }
2884
+ } catch (error) {
2885
+ potentialCSRFAttackError = error;
2856
2886
  }
2857
2887
  }
2858
2888
  let staticContext = await query(
2859
2889
  request,
2860
- skipRevalidation ? {
2890
+ skipRevalidation || !!potentialCSRFAttackError ? {
2861
2891
  filterMatchesToLoad: () => false
2862
2892
  } : void 0
2863
2893
  );
@@ -2872,6 +2902,11 @@ async function generateRenderResponse(request, routes, basename, isDataRequest,
2872
2902
  ctx.redirect?.headers
2873
2903
  );
2874
2904
  }
2905
+ if (potentialCSRFAttackError) {
2906
+ staticContext.errors ?? (staticContext.errors = {});
2907
+ staticContext.errors[staticContext.matches[0].route.id] = potentialCSRFAttackError;
2908
+ staticContext.statusCode = 400;
2909
+ }
2875
2910
  return generateStaticContextResponse(
2876
2911
  routes,
2877
2912
  basename,
@@ -3594,4 +3629,4 @@ function createMemorySessionStorage({ cookie } = {}) {
3594
3629
  });
3595
3630
  }
3596
3631
 
3597
- export { Await, RouterContextProvider, createContext, createCookie, createCookieSessionStorage, createMemorySessionStorage, createSession, createSessionStorage, createStaticHandler, data, href, isCookie, isRouteErrorResponse, isSession, matchRoutes, redirect2 as redirect, redirectDocument2 as redirectDocument, replace2 as replace, matchRSCServerRequest as unstable_matchRSCServerRequest };
3632
+ export { Await, RouterContextProvider, createContext, createCookie, createCookieSessionStorage, createMemorySessionStorage, createSession, createSessionStorage, createStaticHandler, data, href, isCookie, isRouteErrorResponse, isSession, matchRoutes, redirect2 as redirect, redirectDocument2 as redirectDocument, replace2 as replace, getRequest as unstable_getRequest, matchRSCServerRequest as unstable_matchRSCServerRequest };
@@ -1,15 +1,15 @@
1
- import { p as Router, q as RouteModules, r as DataStrategyFunction, s as MiddlewareEnabled, c as RouterContextProvider, t as AppLoadContext, T as To, v as NavigateOptions, B as BlockerFunction, w as Blocker, x as SerializeFrom, y as RelativeRoutingType, L as Location, z as ParamParseKey, E as Path, I as PathPattern, J as PathMatch, U as UIMatch, K as Navigation, O as Action, P as Params, Q as RouteObject, G as GetLoaderData, o as GetActionData, V as InitialEntry, W as HydrationState, X as IndexRouteObject, Y as RouteComponentType, Z as HydrateFallbackType, _ as ErrorBoundaryType, d as LoaderFunction, A as ActionFunction, M as MetaFunction, b as LinksFunction, $ as NonIndexRouteObject, a0 as Equal, a1 as RouterState, a2 as PatchRoutesOnNavigationFunction, a3 as DataRouteObject, a as ClientLoaderFunction } from './router-5iOvts3c.mjs';
2
- export { ae as ActionFunctionArgs, b1 as Await, aS as AwaitProps, C as ClientActionFunction, bd as ClientActionFunctionArgs, be as ClientLoaderFunctionArgs, g as ClientOnErrorFunction, aN as DataRouteMatch, af as DataStrategyFunctionArgs, ag as DataStrategyMatch, D as DataStrategyResult, ai as ErrorResponse, a8 as Fetcher, aj as FormEncType, ak as FormMethod, bj as Future, a5 as GetScrollPositionFunction, a6 as GetScrollRestorationKeyFunction, al as HTMLFormMethod, bf as HeadersArgs, H as HeadersFunction, bi as HtmlLinkDescriptor, aD as IDLE_BLOCKER, aC as IDLE_FETCHER, aB as IDLE_NAVIGATION, aT as IndexRouteProps, aU as LayoutRouteProps, am as LazyRouteFunction, h as LinkDescriptor, an as LoaderFunctionArgs, b2 as MemoryRouter, aV as MemoryRouterOpts, aW as MemoryRouterProps, bg as MetaArgs, j as MetaDescriptor, ao as MiddlewareFunction, b3 as Navigate, aX as NavigateProps, a9 as NavigationStates, aO as Navigator, b4 as Outlet, aY as OutletProps, bh as PageLinkDescriptor, aP as PatchRoutesOnNavigationFunctionArgs, ap as PathParam, aZ as PathRouteProps, aq as RedirectFunction, ad as RevalidationState, b5 as Route, aQ as RouteMatch, a_ as RouteProps, b6 as Router, ar as RouterContext, ac as RouterFetchOptions, e as RouterInit, ab as RouterNavigateOptions, a$ as RouterProps, b7 as RouterProvider, f as RouterProviderProps, aa as RouterSubscriber, b8 as Routes, b0 as RoutesProps, S as ShouldRevalidateFunction, as as ShouldRevalidateFunctionArgs, a4 as StaticHandler, a7 as StaticHandlerContext, aR as UNSAFE_AwaitContextProvider, br as UNSAFE_DataRouterContext, bs as UNSAFE_DataRouterStateContext, ah as UNSAFE_DataWithResponseInit, bq as UNSAFE_ErrorResponseImpl, bt as UNSAFE_FetchersContext, bu as UNSAFE_LocationContext, bv as UNSAFE_NavigationContext, bw as UNSAFE_RouteContext, bx as UNSAFE_ViewTransitionContext, bA as UNSAFE_WithComponentProps, bE as UNSAFE_WithErrorBoundaryProps, bC as UNSAFE_WithHydrateFallbackProps, bm as UNSAFE_createBrowserHistory, bn as UNSAFE_createHashHistory, bl as UNSAFE_createMemoryHistory, bp as UNSAFE_createRouter, by as UNSAFE_hydrationRouteProperties, bo as UNSAFE_invariant, bz as UNSAFE_mapRouteProperties, bB as UNSAFE_withComponentProps, bF as UNSAFE_withErrorBoundaryProps, bD as UNSAFE_withHydrateFallbackProps, at as createContext, b9 as createMemoryRouter, au as createPath, ba as createRoutesFromChildren, bb as createRoutesFromElements, aE as data, aF as generatePath, aG as isRouteErrorResponse, aH as matchPath, aI as matchRoutes, av as parsePath, aJ as redirect, aK as redirectDocument, bc as renderMatches, aL as replace, aM as resolvePath, u as unstable_ClientInstrumentation, ax as unstable_InstrumentRequestHandlerFunction, az as unstable_InstrumentRouteFunction, ay as unstable_InstrumentRouterFunction, aA as unstable_InstrumentationHandlerResult, bk as unstable_SerializesTo, aw as unstable_ServerInstrumentation } from './router-5iOvts3c.mjs';
1
+ import { p as Router, q as RouteModules, r as DataStrategyFunction, s as MiddlewareEnabled, c as RouterContextProvider, t as AppLoadContext, T as To, v as NavigateOptions, B as BlockerFunction, w as Blocker, x as SerializeFrom, y as RelativeRoutingType, L as Location, z as ParamParseKey, E as Path, I as PathPattern, J as PathMatch, U as UIMatch, K as Navigation, O as Action, P as Params, Q as RouteObject, G as GetLoaderData, o as GetActionData, V as InitialEntry, W as HydrationState, X as IndexRouteObject, Y as RouteComponentType, Z as HydrateFallbackType, _ as ErrorBoundaryType, d as LoaderFunction, A as ActionFunction, M as MetaFunction, b as LinksFunction, $ as NonIndexRouteObject, a0 as Equal, a1 as RouterState, a2 as PatchRoutesOnNavigationFunction, a3 as DataRouteObject, a as ClientLoaderFunction } from './router-cLsU7kHk.mjs';
2
+ export { ae as ActionFunctionArgs, b1 as Await, aS as AwaitProps, C as ClientActionFunction, bd as ClientActionFunctionArgs, be as ClientLoaderFunctionArgs, g as ClientOnErrorFunction, aN as DataRouteMatch, af as DataStrategyFunctionArgs, ag as DataStrategyMatch, D as DataStrategyResult, ai as ErrorResponse, a8 as Fetcher, aj as FormEncType, ak as FormMethod, bj as Future, a5 as GetScrollPositionFunction, a6 as GetScrollRestorationKeyFunction, al as HTMLFormMethod, bf as HeadersArgs, H as HeadersFunction, bi as HtmlLinkDescriptor, aD as IDLE_BLOCKER, aC as IDLE_FETCHER, aB as IDLE_NAVIGATION, aT as IndexRouteProps, aU as LayoutRouteProps, am as LazyRouteFunction, h as LinkDescriptor, an as LoaderFunctionArgs, b2 as MemoryRouter, aV as MemoryRouterOpts, aW as MemoryRouterProps, bg as MetaArgs, j as MetaDescriptor, ao as MiddlewareFunction, b3 as Navigate, aX as NavigateProps, a9 as NavigationStates, aO as Navigator, b4 as Outlet, aY as OutletProps, bh as PageLinkDescriptor, aP as PatchRoutesOnNavigationFunctionArgs, ap as PathParam, aZ as PathRouteProps, aq as RedirectFunction, ad as RevalidationState, b5 as Route, aQ as RouteMatch, a_ as RouteProps, b6 as Router, ar as RouterContext, ac as RouterFetchOptions, e as RouterInit, ab as RouterNavigateOptions, a$ as RouterProps, b7 as RouterProvider, f as RouterProviderProps, aa as RouterSubscriber, b8 as Routes, b0 as RoutesProps, S as ShouldRevalidateFunction, as as ShouldRevalidateFunctionArgs, a4 as StaticHandler, a7 as StaticHandlerContext, aR as UNSAFE_AwaitContextProvider, br as UNSAFE_DataRouterContext, bs as UNSAFE_DataRouterStateContext, ah as UNSAFE_DataWithResponseInit, bq as UNSAFE_ErrorResponseImpl, bt as UNSAFE_FetchersContext, bu as UNSAFE_LocationContext, bv as UNSAFE_NavigationContext, bw as UNSAFE_RouteContext, bx as UNSAFE_ViewTransitionContext, bA as UNSAFE_WithComponentProps, bE as UNSAFE_WithErrorBoundaryProps, bC as UNSAFE_WithHydrateFallbackProps, bm as UNSAFE_createBrowserHistory, bn as UNSAFE_createHashHistory, bl as UNSAFE_createMemoryHistory, bp as UNSAFE_createRouter, by as UNSAFE_hydrationRouteProperties, bo as UNSAFE_invariant, bz as UNSAFE_mapRouteProperties, bB as UNSAFE_withComponentProps, bF as UNSAFE_withErrorBoundaryProps, bD as UNSAFE_withHydrateFallbackProps, at as createContext, b9 as createMemoryRouter, au as createPath, ba as createRoutesFromChildren, bb as createRoutesFromElements, aE as data, aF as generatePath, aG as isRouteErrorResponse, aH as matchPath, aI as matchRoutes, av as parsePath, aJ as redirect, aK as redirectDocument, bc as renderMatches, aL as replace, aM as resolvePath, u as unstable_ClientInstrumentation, ax as unstable_InstrumentRequestHandlerFunction, az as unstable_InstrumentRouteFunction, ay as unstable_InstrumentRouterFunction, aA as unstable_InstrumentationHandlerResult, bk as unstable_SerializesTo, aw as unstable_ServerInstrumentation } from './router-cLsU7kHk.mjs';
3
3
  import * as React from 'react';
4
4
  import React__default, { ReactElement } from 'react';
5
- import { a as RouteModules$1, P as Pages } from './register-CS_tiXsm.mjs';
6
- export { b as Register } from './register-CS_tiXsm.mjs';
7
- import { A as AssetsManifest, S as ServerBuild, E as EntryContext, F as FutureConfig } from './index-react-server-client-MKTlCGL3.mjs';
8
- export { l as BrowserRouter, B as BrowserRouterProps, D as DOMRouterOpts, a1 as DiscoverBehavior, c as FetcherFormProps, h as FetcherSubmitFunction, G as FetcherSubmitOptions, i as FetcherWithComponents, q as Form, d as FormProps, a2 as HandleDataRequestFunction, a3 as HandleDocumentRequestFunction, a4 as HandleErrorFunction, m as HashRouter, H as HashRouterProps, a as HistoryRouterProps, n as Link, L as LinkProps, X as Links, _ as LinksProps, W as Meta, p as NavLink, N as NavLinkProps, b as NavLinkRenderProps, P as ParamKeyValuePair, a0 as PrefetchBehavior, Z as PrefetchPageLinks, Y as Scripts, $ as ScriptsProps, r as ScrollRestoration, e as ScrollRestorationProps, a5 as ServerEntryModule, f as SetURLSearchParams, T as StaticRouter, M as StaticRouterProps, V as StaticRouterProvider, O as StaticRouterProviderProps, g as SubmitFunction, I as SubmitOptions, J as SubmitTarget, a6 as UNSAFE_FrameworkContext, a7 as UNSAFE_createClientRoutes, a8 as UNSAFE_createClientRoutesWithHMRRevalidationOptOut, a9 as UNSAFE_shouldHydrateRouteLoader, aa as UNSAFE_useScrollRestoration, U as URLSearchParamsInit, j as createBrowserRouter, k as createHashRouter, K as createSearchParams, Q as createStaticHandler, R as createStaticRouter, o as unstable_HistoryRouter, z as unstable_usePrompt, y as useBeforeUnload, w as useFetcher, x as useFetchers, v as useFormAction, u as useLinkClickHandler, s as useSearchParams, t as useSubmit, C as useViewTransitionState } from './index-react-server-client-MKTlCGL3.mjs';
5
+ import { a as RouteModules$1, P as Pages } from './register-cRYJ3CjG.mjs';
6
+ export { b as Register } from './register-cRYJ3CjG.mjs';
7
+ import { A as AssetsManifest, S as ServerBuild, E as EntryContext, F as FutureConfig } from './index-react-server-client-EzWJGpN_.mjs';
8
+ export { l as BrowserRouter, B as BrowserRouterProps, D as DOMRouterOpts, a1 as DiscoverBehavior, c as FetcherFormProps, h as FetcherSubmitFunction, G as FetcherSubmitOptions, i as FetcherWithComponents, q as Form, d as FormProps, a2 as HandleDataRequestFunction, a3 as HandleDocumentRequestFunction, a4 as HandleErrorFunction, m as HashRouter, H as HashRouterProps, a as HistoryRouterProps, n as Link, L as LinkProps, X as Links, _ as LinksProps, W as Meta, p as NavLink, N as NavLinkProps, b as NavLinkRenderProps, P as ParamKeyValuePair, a0 as PrefetchBehavior, Z as PrefetchPageLinks, Y as Scripts, $ as ScriptsProps, r as ScrollRestoration, e as ScrollRestorationProps, a5 as ServerEntryModule, f as SetURLSearchParams, T as StaticRouter, M as StaticRouterProps, V as StaticRouterProvider, O as StaticRouterProviderProps, g as SubmitFunction, I as SubmitOptions, J as SubmitTarget, a6 as UNSAFE_FrameworkContext, a7 as UNSAFE_createClientRoutes, a8 as UNSAFE_createClientRoutesWithHMRRevalidationOptOut, a9 as UNSAFE_shouldHydrateRouteLoader, aa as UNSAFE_useScrollRestoration, U as URLSearchParamsInit, j as createBrowserRouter, k as createHashRouter, K as createSearchParams, Q as createStaticHandler, R as createStaticRouter, o as unstable_HistoryRouter, z as unstable_usePrompt, y as useBeforeUnload, w as useFetcher, x as useFetchers, v as useFormAction, u as useLinkClickHandler, s as useSearchParams, t as useSubmit, C as useViewTransitionState } from './index-react-server-client-EzWJGpN_.mjs';
9
9
  import { ParseOptions, SerializeOptions } from 'cookie';
10
10
  export { ParseOptions as CookieParseOptions, SerializeOptions as CookieSerializeOptions } from 'cookie';
11
- import { e as RSCPayload, m as matchRSCServerRequest } from './browser-BEPxnEBW.mjs';
12
- export { B as unstable_BrowserCreateFromReadableStreamFunction, D as unstable_DecodeActionFunction, a as unstable_DecodeFormStateFunction, b as unstable_DecodeReplyFunction, E as unstable_EncodeReplyFunction, L as unstable_LoadServerActionFunction, g as unstable_RSCHydratedRouterProps, d as unstable_RSCManifestPayload, h as unstable_RSCMatch, f as unstable_RSCRenderPayload, l as unstable_RSCRouteConfig, k as unstable_RSCRouteConfigEntry, i as unstable_RSCRouteManifest, j as unstable_RSCRouteMatch } from './browser-BEPxnEBW.mjs';
11
+ import { e as RSCPayload, g as getRequest, m as matchRSCServerRequest } from './browser-DzsJABDQ.mjs';
12
+ export { B as unstable_BrowserCreateFromReadableStreamFunction, D as unstable_DecodeActionFunction, a as unstable_DecodeFormStateFunction, b as unstable_DecodeReplyFunction, E as unstable_EncodeReplyFunction, L as unstable_LoadServerActionFunction, h as unstable_RSCHydratedRouterProps, d as unstable_RSCManifestPayload, i as unstable_RSCMatch, f as unstable_RSCRenderPayload, n as unstable_RSCRouteConfig, l as unstable_RSCRouteConfigEntry, j as unstable_RSCRouteManifest, k as unstable_RSCRouteMatch } from './browser-DzsJABDQ.mjs';
13
13
 
14
14
  declare const SingleFetchRedirectSymbol: unique symbol;
15
15
  declare function getTurboStreamSingleFetchDataStrategy(getRouter: () => Router, manifest: AssetsManifest, routeModules: RouteModules, ssr: boolean, basename: string | undefined, trailingSlashAware: boolean): DataStrategyFunction;
@@ -1357,7 +1357,7 @@ declare class RemixErrorBoundary extends React.Component<RemixErrorBoundaryProps
1357
1357
  render(): string | number | boolean | React.JSX.Element | Iterable<React.ReactNode> | null | undefined;
1358
1358
  }
1359
1359
 
1360
- declare function getPatchRoutesOnNavigationFunction(manifest: AssetsManifest, routeModules: RouteModules, ssr: boolean, routeDiscovery: ServerBuild["routeDiscovery"], isSpaMode: boolean, basename: string | undefined): PatchRoutesOnNavigationFunction | undefined;
1360
+ declare function getPatchRoutesOnNavigationFunction(getRouter: () => Router, manifest: AssetsManifest, routeModules: RouteModules, ssr: boolean, routeDiscovery: ServerBuild["routeDiscovery"], isSpaMode: boolean, basename: string | undefined): PatchRoutesOnNavigationFunction | undefined;
1361
1361
  declare function useFogOFWarDiscovery(router: Router, manifest: AssetsManifest, routeModules: RouteModules, ssr: boolean, routeDiscovery: ServerBuild["routeDiscovery"], isSpaMode: boolean): void;
1362
1362
 
1363
1363
  declare function getHydrationData({ state, routes, getRouteInfo, location, basename, isSpaMode, }: {
@@ -1382,6 +1382,7 @@ declare function getHydrationData({ state, routes, getRouteInfo, location, basen
1382
1382
  * @mergeModuleWith react-router
1383
1383
  */
1384
1384
 
1385
+ declare const unstable_getRequest: typeof getRequest;
1385
1386
  declare const unstable_matchRSCServerRequest: typeof matchRSCServerRequest;
1386
1387
 
1387
- export { ActionFunction, AppLoadContext, Blocker, BlockerFunction, ClientLoaderFunction, type Cookie, type CookieOptions, type CookieSignatureOptions, type CreateRequestHandlerFunction, DataRouteObject, Router as DataRouter, DataStrategyFunction, EntryContext, type FlashSessionData, HydrationState, IndexRouteObject, InitialEntry, type IsCookieFunction, type IsSessionFunction, LinksFunction, LoaderFunction, Location, MetaFunction, type NavigateFunction, NavigateOptions, Navigation, Action as NavigationType, NonIndexRouteObject, ParamParseKey, Params, PatchRoutesOnNavigationFunction, Path, PathMatch, PathPattern, RelativeRoutingType, type RequestHandler, RouteObject, RouterContextProvider, RouterState, type RoutesTestStubProps, ServerBuild, ServerRouter, type ServerRouterProps, type Session, type SessionData, type SessionIdStorageStrategy, type SessionStorage, To, UIMatch, AssetsManifest as UNSAFE_AssetsManifest, MiddlewareEnabled as UNSAFE_MiddlewareEnabled, RSCDefaultRootErrorBoundary as UNSAFE_RSCDefaultRootErrorBoundary, RemixErrorBoundary as UNSAFE_RemixErrorBoundary, RouteModules as UNSAFE_RouteModules, ServerMode as UNSAFE_ServerMode, SingleFetchRedirectSymbol as UNSAFE_SingleFetchRedirectSymbol, decodeViaTurboStream as UNSAFE_decodeViaTurboStream, deserializeErrors as UNSAFE_deserializeErrors, getHydrationData as UNSAFE_getHydrationData, getPatchRoutesOnNavigationFunction as UNSAFE_getPatchRoutesOnNavigationFunction, getTurboStreamSingleFetchDataStrategy as UNSAFE_getTurboStreamSingleFetchDataStrategy, useFogOFWarDiscovery as UNSAFE_useFogOFWarDiscovery, createCookie, createCookieSessionStorage, createMemorySessionStorage, createRequestHandler, createRoutesStub, createSession, createSessionStorage, href, isCookie, isSession, RSCPayload as unstable_RSCPayload, RSCStaticRouter as unstable_RSCStaticRouter, type RSCStaticRouterProps as unstable_RSCStaticRouterProps, type SSRCreateFromReadableStreamFunction as unstable_SSRCreateFromReadableStreamFunction, unstable_matchRSCServerRequest, routeRSCServerRequest as unstable_routeRSCServerRequest, setDevServerHooks as unstable_setDevServerHooks, useRoute as unstable_useRoute, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes };
1388
+ export { ActionFunction, AppLoadContext, Blocker, BlockerFunction, ClientLoaderFunction, type Cookie, type CookieOptions, type CookieSignatureOptions, type CreateRequestHandlerFunction, DataRouteObject, Router as DataRouter, DataStrategyFunction, EntryContext, type FlashSessionData, HydrationState, IndexRouteObject, InitialEntry, type IsCookieFunction, type IsSessionFunction, LinksFunction, LoaderFunction, Location, MetaFunction, type NavigateFunction, NavigateOptions, Navigation, Action as NavigationType, NonIndexRouteObject, ParamParseKey, Params, PatchRoutesOnNavigationFunction, Path, PathMatch, PathPattern, RelativeRoutingType, type RequestHandler, RouteObject, RouterContextProvider, RouterState, type RoutesTestStubProps, ServerBuild, ServerRouter, type ServerRouterProps, type Session, type SessionData, type SessionIdStorageStrategy, type SessionStorage, To, UIMatch, AssetsManifest as UNSAFE_AssetsManifest, MiddlewareEnabled as UNSAFE_MiddlewareEnabled, RSCDefaultRootErrorBoundary as UNSAFE_RSCDefaultRootErrorBoundary, RemixErrorBoundary as UNSAFE_RemixErrorBoundary, RouteModules as UNSAFE_RouteModules, ServerMode as UNSAFE_ServerMode, SingleFetchRedirectSymbol as UNSAFE_SingleFetchRedirectSymbol, decodeViaTurboStream as UNSAFE_decodeViaTurboStream, deserializeErrors as UNSAFE_deserializeErrors, getHydrationData as UNSAFE_getHydrationData, getPatchRoutesOnNavigationFunction as UNSAFE_getPatchRoutesOnNavigationFunction, getTurboStreamSingleFetchDataStrategy as UNSAFE_getTurboStreamSingleFetchDataStrategy, useFogOFWarDiscovery as UNSAFE_useFogOFWarDiscovery, createCookie, createCookieSessionStorage, createMemorySessionStorage, createRequestHandler, createRoutesStub, createSession, createSessionStorage, href, isCookie, isSession, RSCPayload as unstable_RSCPayload, RSCStaticRouter as unstable_RSCStaticRouter, type RSCStaticRouterProps as unstable_RSCStaticRouterProps, type SSRCreateFromReadableStreamFunction as unstable_SSRCreateFromReadableStreamFunction, unstable_getRequest, unstable_matchRSCServerRequest, routeRSCServerRequest as unstable_routeRSCServerRequest, setDevServerHooks as unstable_setDevServerHooks, useRoute as unstable_useRoute, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes };
@@ -1,15 +1,15 @@
1
- import { n as Router, o as RouteModules, p as DataStrategyFunction, q as MiddlewareEnabled, c as RouterContextProvider, r as AppLoadContext, T as To, s as NavigateOptions, B as BlockerFunction, t as Blocker, v as SerializeFrom, w as RelativeRoutingType, L as Location, x as ParamParseKey, y as Path, z as PathPattern, E as PathMatch, U as UIMatch, I as Navigation, J as Action, P as Params, K as RouteObject, G as GetLoaderData, m as GetActionData, O as InitialEntry, Q as HydrationState, V as IndexRouteObject, W as RouteComponentType, X as HydrateFallbackType, Y as ErrorBoundaryType, d as LoaderFunction, A as ActionFunction, M as MetaFunction, b as LinksFunction, Z as NonIndexRouteObject, _ as Equal, $ as RouterState, a0 as PatchRoutesOnNavigationFunction, a1 as DataRouteObject, a as ClientLoaderFunction } from './instrumentation-DvHY1sgY.js';
2
- export { ac as ActionFunctionArgs, b1 as Await, aQ as AwaitProps, C as ClientActionFunction, bd as ClientActionFunctionArgs, be as ClientLoaderFunctionArgs, aS as ClientOnErrorFunction, aL as DataRouteMatch, ad as DataStrategyFunctionArgs, ae as DataStrategyMatch, D as DataStrategyResult, ag as ErrorResponse, a6 as Fetcher, ah as FormEncType, ai as FormMethod, bj as Future, a3 as GetScrollPositionFunction, a4 as GetScrollRestorationKeyFunction, aj as HTMLFormMethod, bf as HeadersArgs, H as HeadersFunction, bi as HtmlLinkDescriptor, aB as IDLE_BLOCKER, aA as IDLE_FETCHER, az as IDLE_NAVIGATION, aR as IndexRouteProps, aT as LayoutRouteProps, ak as LazyRouteFunction, f as LinkDescriptor, al as LoaderFunctionArgs, b2 as MemoryRouter, aU as MemoryRouterOpts, aV as MemoryRouterProps, bg as MetaArgs, h as MetaDescriptor, am as MiddlewareFunction, b3 as Navigate, aW as NavigateProps, a7 as NavigationStates, aM as Navigator, b4 as Outlet, aX as OutletProps, bh as PageLinkDescriptor, aN as PatchRoutesOnNavigationFunctionArgs, an as PathParam, aY as PathRouteProps, ao as RedirectFunction, ab as RevalidationState, b5 as Route, aO as RouteMatch, aZ as RouteProps, b6 as Router, ap as RouterContext, aa as RouterFetchOptions, e as RouterInit, a9 as RouterNavigateOptions, a_ as RouterProps, b7 as RouterProvider, a$ as RouterProviderProps, a8 as RouterSubscriber, b8 as Routes, b0 as RoutesProps, S as ShouldRevalidateFunction, aq as ShouldRevalidateFunctionArgs, a2 as StaticHandler, a5 as StaticHandlerContext, aP as UNSAFE_AwaitContextProvider, br as UNSAFE_DataRouterContext, bs as UNSAFE_DataRouterStateContext, af as UNSAFE_DataWithResponseInit, bq as UNSAFE_ErrorResponseImpl, bt as UNSAFE_FetchersContext, bu as UNSAFE_LocationContext, bv as UNSAFE_NavigationContext, bw as UNSAFE_RouteContext, bx as UNSAFE_ViewTransitionContext, bA as UNSAFE_WithComponentProps, bE as UNSAFE_WithErrorBoundaryProps, bC as UNSAFE_WithHydrateFallbackProps, bm as UNSAFE_createBrowserHistory, bn as UNSAFE_createHashHistory, bl as UNSAFE_createMemoryHistory, bp as UNSAFE_createRouter, by as UNSAFE_hydrationRouteProperties, bo as UNSAFE_invariant, bz as UNSAFE_mapRouteProperties, bB as UNSAFE_withComponentProps, bF as UNSAFE_withErrorBoundaryProps, bD as UNSAFE_withHydrateFallbackProps, ar as createContext, b9 as createMemoryRouter, as as createPath, ba as createRoutesFromChildren, bb as createRoutesFromElements, aC as data, aD as generatePath, aE as isRouteErrorResponse, aF as matchPath, aG as matchRoutes, at as parsePath, aH as redirect, aI as redirectDocument, bc as renderMatches, aJ as replace, aK as resolvePath, u as unstable_ClientInstrumentation, av as unstable_InstrumentRequestHandlerFunction, ax as unstable_InstrumentRouteFunction, aw as unstable_InstrumentRouterFunction, ay as unstable_InstrumentationHandlerResult, bk as unstable_SerializesTo, au as unstable_ServerInstrumentation } from './instrumentation-DvHY1sgY.js';
1
+ import { n as Router, o as RouteModules, p as DataStrategyFunction, q as MiddlewareEnabled, c as RouterContextProvider, r as AppLoadContext, T as To, s as NavigateOptions, B as BlockerFunction, t as Blocker, v as SerializeFrom, w as RelativeRoutingType, L as Location, x as ParamParseKey, y as Path, z as PathPattern, E as PathMatch, U as UIMatch, I as Navigation, J as Action, P as Params, K as RouteObject, G as GetLoaderData, m as GetActionData, O as InitialEntry, Q as HydrationState, V as IndexRouteObject, W as RouteComponentType, X as HydrateFallbackType, Y as ErrorBoundaryType, d as LoaderFunction, A as ActionFunction, M as MetaFunction, b as LinksFunction, Z as NonIndexRouteObject, _ as Equal, $ as RouterState, a0 as PatchRoutesOnNavigationFunction, a1 as DataRouteObject, a as ClientLoaderFunction } from './instrumentation--6Pioq_G.js';
2
+ export { ac as ActionFunctionArgs, b1 as Await, aQ as AwaitProps, C as ClientActionFunction, bd as ClientActionFunctionArgs, be as ClientLoaderFunctionArgs, aS as ClientOnErrorFunction, aL as DataRouteMatch, ad as DataStrategyFunctionArgs, ae as DataStrategyMatch, D as DataStrategyResult, ag as ErrorResponse, a6 as Fetcher, ah as FormEncType, ai as FormMethod, bj as Future, a3 as GetScrollPositionFunction, a4 as GetScrollRestorationKeyFunction, aj as HTMLFormMethod, bf as HeadersArgs, H as HeadersFunction, bi as HtmlLinkDescriptor, aB as IDLE_BLOCKER, aA as IDLE_FETCHER, az as IDLE_NAVIGATION, aR as IndexRouteProps, aT as LayoutRouteProps, ak as LazyRouteFunction, f as LinkDescriptor, al as LoaderFunctionArgs, b2 as MemoryRouter, aU as MemoryRouterOpts, aV as MemoryRouterProps, bg as MetaArgs, h as MetaDescriptor, am as MiddlewareFunction, b3 as Navigate, aW as NavigateProps, a7 as NavigationStates, aM as Navigator, b4 as Outlet, aX as OutletProps, bh as PageLinkDescriptor, aN as PatchRoutesOnNavigationFunctionArgs, an as PathParam, aY as PathRouteProps, ao as RedirectFunction, ab as RevalidationState, b5 as Route, aO as RouteMatch, aZ as RouteProps, b6 as Router, ap as RouterContext, aa as RouterFetchOptions, e as RouterInit, a9 as RouterNavigateOptions, a_ as RouterProps, b7 as RouterProvider, a$ as RouterProviderProps, a8 as RouterSubscriber, b8 as Routes, b0 as RoutesProps, S as ShouldRevalidateFunction, aq as ShouldRevalidateFunctionArgs, a2 as StaticHandler, a5 as StaticHandlerContext, aP as UNSAFE_AwaitContextProvider, br as UNSAFE_DataRouterContext, bs as UNSAFE_DataRouterStateContext, af as UNSAFE_DataWithResponseInit, bq as UNSAFE_ErrorResponseImpl, bt as UNSAFE_FetchersContext, bu as UNSAFE_LocationContext, bv as UNSAFE_NavigationContext, bw as UNSAFE_RouteContext, bx as UNSAFE_ViewTransitionContext, bA as UNSAFE_WithComponentProps, bE as UNSAFE_WithErrorBoundaryProps, bC as UNSAFE_WithHydrateFallbackProps, bm as UNSAFE_createBrowserHistory, bn as UNSAFE_createHashHistory, bl as UNSAFE_createMemoryHistory, bp as UNSAFE_createRouter, by as UNSAFE_hydrationRouteProperties, bo as UNSAFE_invariant, bz as UNSAFE_mapRouteProperties, bB as UNSAFE_withComponentProps, bF as UNSAFE_withErrorBoundaryProps, bD as UNSAFE_withHydrateFallbackProps, ar as createContext, b9 as createMemoryRouter, as as createPath, ba as createRoutesFromChildren, bb as createRoutesFromElements, aC as data, aD as generatePath, aE as isRouteErrorResponse, aF as matchPath, aG as matchRoutes, at as parsePath, aH as redirect, aI as redirectDocument, bc as renderMatches, aJ as replace, aK as resolvePath, u as unstable_ClientInstrumentation, av as unstable_InstrumentRequestHandlerFunction, ax as unstable_InstrumentRouteFunction, aw as unstable_InstrumentRouterFunction, ay as unstable_InstrumentationHandlerResult, bk as unstable_SerializesTo, au as unstable_ServerInstrumentation } from './instrumentation--6Pioq_G.js';
3
3
  import * as React from 'react';
4
4
  import React__default, { ReactElement } from 'react';
5
- import { a as RouteModules$1, P as Pages } from './register-Bm80E9qL.js';
6
- export { b as Register } from './register-Bm80E9qL.js';
7
- import { A as AssetsManifest, S as ServerBuild, E as EntryContext, F as FutureConfig } from './index-react-server-client-1TI9M9o1.js';
8
- export { l as BrowserRouter, B as BrowserRouterProps, D as DOMRouterOpts, a1 as DiscoverBehavior, c as FetcherFormProps, h as FetcherSubmitFunction, G as FetcherSubmitOptions, i as FetcherWithComponents, q as Form, d as FormProps, a2 as HandleDataRequestFunction, a3 as HandleDocumentRequestFunction, a4 as HandleErrorFunction, m as HashRouter, H as HashRouterProps, a as HistoryRouterProps, n as Link, L as LinkProps, X as Links, _ as LinksProps, W as Meta, p as NavLink, N as NavLinkProps, b as NavLinkRenderProps, P as ParamKeyValuePair, a0 as PrefetchBehavior, Z as PrefetchPageLinks, Y as Scripts, $ as ScriptsProps, r as ScrollRestoration, e as ScrollRestorationProps, a5 as ServerEntryModule, f as SetURLSearchParams, T as StaticRouter, M as StaticRouterProps, V as StaticRouterProvider, O as StaticRouterProviderProps, g as SubmitFunction, I as SubmitOptions, J as SubmitTarget, a6 as UNSAFE_FrameworkContext, a7 as UNSAFE_createClientRoutes, a8 as UNSAFE_createClientRoutesWithHMRRevalidationOptOut, a9 as UNSAFE_shouldHydrateRouteLoader, aa as UNSAFE_useScrollRestoration, U as URLSearchParamsInit, j as createBrowserRouter, k as createHashRouter, K as createSearchParams, Q as createStaticHandler, R as createStaticRouter, o as unstable_HistoryRouter, z as unstable_usePrompt, y as useBeforeUnload, w as useFetcher, x as useFetchers, v as useFormAction, u as useLinkClickHandler, s as useSearchParams, t as useSubmit, C as useViewTransitionState } from './index-react-server-client-1TI9M9o1.js';
5
+ import { a as RouteModules$1, P as Pages } from './register-CBoanF80.js';
6
+ export { b as Register } from './register-CBoanF80.js';
7
+ import { A as AssetsManifest, S as ServerBuild, E as EntryContext, F as FutureConfig } from './index-react-server-client-C4tCIird.js';
8
+ export { l as BrowserRouter, B as BrowserRouterProps, D as DOMRouterOpts, a1 as DiscoverBehavior, c as FetcherFormProps, h as FetcherSubmitFunction, G as FetcherSubmitOptions, i as FetcherWithComponents, q as Form, d as FormProps, a2 as HandleDataRequestFunction, a3 as HandleDocumentRequestFunction, a4 as HandleErrorFunction, m as HashRouter, H as HashRouterProps, a as HistoryRouterProps, n as Link, L as LinkProps, X as Links, _ as LinksProps, W as Meta, p as NavLink, N as NavLinkProps, b as NavLinkRenderProps, P as ParamKeyValuePair, a0 as PrefetchBehavior, Z as PrefetchPageLinks, Y as Scripts, $ as ScriptsProps, r as ScrollRestoration, e as ScrollRestorationProps, a5 as ServerEntryModule, f as SetURLSearchParams, T as StaticRouter, M as StaticRouterProps, V as StaticRouterProvider, O as StaticRouterProviderProps, g as SubmitFunction, I as SubmitOptions, J as SubmitTarget, a6 as UNSAFE_FrameworkContext, a7 as UNSAFE_createClientRoutes, a8 as UNSAFE_createClientRoutesWithHMRRevalidationOptOut, a9 as UNSAFE_shouldHydrateRouteLoader, aa as UNSAFE_useScrollRestoration, U as URLSearchParamsInit, j as createBrowserRouter, k as createHashRouter, K as createSearchParams, Q as createStaticHandler, R as createStaticRouter, o as unstable_HistoryRouter, z as unstable_usePrompt, y as useBeforeUnload, w as useFetcher, x as useFetchers, v as useFormAction, u as useLinkClickHandler, s as useSearchParams, t as useSubmit, C as useViewTransitionState } from './index-react-server-client-C4tCIird.js';
9
9
  import { ParseOptions, SerializeOptions } from 'cookie';
10
10
  export { ParseOptions as CookieParseOptions, SerializeOptions as CookieSerializeOptions } from 'cookie';
11
- import { e as RSCPayload, m as matchRSCServerRequest } from './browser-CJ9_du-U.js';
12
- export { B as unstable_BrowserCreateFromReadableStreamFunction, D as unstable_DecodeActionFunction, a as unstable_DecodeFormStateFunction, b as unstable_DecodeReplyFunction, E as unstable_EncodeReplyFunction, L as unstable_LoadServerActionFunction, g as unstable_RSCHydratedRouterProps, d as unstable_RSCManifestPayload, h as unstable_RSCMatch, f as unstable_RSCRenderPayload, l as unstable_RSCRouteConfig, k as unstable_RSCRouteConfigEntry, i as unstable_RSCRouteManifest, j as unstable_RSCRouteMatch } from './browser-CJ9_du-U.js';
11
+ import { e as RSCPayload, g as getRequest, m as matchRSCServerRequest } from './browser-sPQ7eaK4.js';
12
+ export { B as unstable_BrowserCreateFromReadableStreamFunction, D as unstable_DecodeActionFunction, a as unstable_DecodeFormStateFunction, b as unstable_DecodeReplyFunction, E as unstable_EncodeReplyFunction, L as unstable_LoadServerActionFunction, h as unstable_RSCHydratedRouterProps, d as unstable_RSCManifestPayload, i as unstable_RSCMatch, f as unstable_RSCRenderPayload, n as unstable_RSCRouteConfig, l as unstable_RSCRouteConfigEntry, j as unstable_RSCRouteManifest, k as unstable_RSCRouteMatch } from './browser-sPQ7eaK4.js';
13
13
 
14
14
  declare const SingleFetchRedirectSymbol: unique symbol;
15
15
  declare function getTurboStreamSingleFetchDataStrategy(getRouter: () => Router, manifest: AssetsManifest, routeModules: RouteModules, ssr: boolean, basename: string | undefined, trailingSlashAware: boolean): DataStrategyFunction;
@@ -1357,7 +1357,7 @@ declare class RemixErrorBoundary extends React.Component<RemixErrorBoundaryProps
1357
1357
  render(): string | number | boolean | React.JSX.Element | Iterable<React.ReactNode> | null | undefined;
1358
1358
  }
1359
1359
 
1360
- declare function getPatchRoutesOnNavigationFunction(manifest: AssetsManifest, routeModules: RouteModules, ssr: boolean, routeDiscovery: ServerBuild["routeDiscovery"], isSpaMode: boolean, basename: string | undefined): PatchRoutesOnNavigationFunction | undefined;
1360
+ declare function getPatchRoutesOnNavigationFunction(getRouter: () => Router, manifest: AssetsManifest, routeModules: RouteModules, ssr: boolean, routeDiscovery: ServerBuild["routeDiscovery"], isSpaMode: boolean, basename: string | undefined): PatchRoutesOnNavigationFunction | undefined;
1361
1361
  declare function useFogOFWarDiscovery(router: Router, manifest: AssetsManifest, routeModules: RouteModules, ssr: boolean, routeDiscovery: ServerBuild["routeDiscovery"], isSpaMode: boolean): void;
1362
1362
 
1363
1363
  declare function getHydrationData({ state, routes, getRouteInfo, location, basename, isSpaMode, }: {
@@ -1382,6 +1382,7 @@ declare function getHydrationData({ state, routes, getRouteInfo, location, basen
1382
1382
  * @mergeModuleWith react-router
1383
1383
  */
1384
1384
 
1385
+ declare const unstable_getRequest: typeof getRequest;
1385
1386
  declare const unstable_matchRSCServerRequest: typeof matchRSCServerRequest;
1386
1387
 
1387
- export { ActionFunction, AppLoadContext, Blocker, BlockerFunction, ClientLoaderFunction, type Cookie, type CookieOptions, type CookieSignatureOptions, type CreateRequestHandlerFunction, DataRouteObject, Router as DataRouter, DataStrategyFunction, EntryContext, type FlashSessionData, HydrationState, IndexRouteObject, InitialEntry, type IsCookieFunction, type IsSessionFunction, LinksFunction, LoaderFunction, Location, MetaFunction, type NavigateFunction, NavigateOptions, Navigation, Action as NavigationType, NonIndexRouteObject, ParamParseKey, Params, PatchRoutesOnNavigationFunction, Path, PathMatch, PathPattern, RelativeRoutingType, type RequestHandler, RouteObject, RouterContextProvider, RouterState, type RoutesTestStubProps, ServerBuild, ServerRouter, type ServerRouterProps, type Session, type SessionData, type SessionIdStorageStrategy, type SessionStorage, To, UIMatch, AssetsManifest as UNSAFE_AssetsManifest, MiddlewareEnabled as UNSAFE_MiddlewareEnabled, RSCDefaultRootErrorBoundary as UNSAFE_RSCDefaultRootErrorBoundary, RemixErrorBoundary as UNSAFE_RemixErrorBoundary, RouteModules as UNSAFE_RouteModules, ServerMode as UNSAFE_ServerMode, SingleFetchRedirectSymbol as UNSAFE_SingleFetchRedirectSymbol, decodeViaTurboStream as UNSAFE_decodeViaTurboStream, deserializeErrors as UNSAFE_deserializeErrors, getHydrationData as UNSAFE_getHydrationData, getPatchRoutesOnNavigationFunction as UNSAFE_getPatchRoutesOnNavigationFunction, getTurboStreamSingleFetchDataStrategy as UNSAFE_getTurboStreamSingleFetchDataStrategy, useFogOFWarDiscovery as UNSAFE_useFogOFWarDiscovery, createCookie, createCookieSessionStorage, createMemorySessionStorage, createRequestHandler, createRoutesStub, createSession, createSessionStorage, href, isCookie, isSession, RSCPayload as unstable_RSCPayload, RSCStaticRouter as unstable_RSCStaticRouter, type RSCStaticRouterProps as unstable_RSCStaticRouterProps, type SSRCreateFromReadableStreamFunction as unstable_SSRCreateFromReadableStreamFunction, unstable_matchRSCServerRequest, routeRSCServerRequest as unstable_routeRSCServerRequest, setDevServerHooks as unstable_setDevServerHooks, useRoute as unstable_useRoute, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes };
1388
+ export { ActionFunction, AppLoadContext, Blocker, BlockerFunction, ClientLoaderFunction, type Cookie, type CookieOptions, type CookieSignatureOptions, type CreateRequestHandlerFunction, DataRouteObject, Router as DataRouter, DataStrategyFunction, EntryContext, type FlashSessionData, HydrationState, IndexRouteObject, InitialEntry, type IsCookieFunction, type IsSessionFunction, LinksFunction, LoaderFunction, Location, MetaFunction, type NavigateFunction, NavigateOptions, Navigation, Action as NavigationType, NonIndexRouteObject, ParamParseKey, Params, PatchRoutesOnNavigationFunction, Path, PathMatch, PathPattern, RelativeRoutingType, type RequestHandler, RouteObject, RouterContextProvider, RouterState, type RoutesTestStubProps, ServerBuild, ServerRouter, type ServerRouterProps, type Session, type SessionData, type SessionIdStorageStrategy, type SessionStorage, To, UIMatch, AssetsManifest as UNSAFE_AssetsManifest, MiddlewareEnabled as UNSAFE_MiddlewareEnabled, RSCDefaultRootErrorBoundary as UNSAFE_RSCDefaultRootErrorBoundary, RemixErrorBoundary as UNSAFE_RemixErrorBoundary, RouteModules as UNSAFE_RouteModules, ServerMode as UNSAFE_ServerMode, SingleFetchRedirectSymbol as UNSAFE_SingleFetchRedirectSymbol, decodeViaTurboStream as UNSAFE_decodeViaTurboStream, deserializeErrors as UNSAFE_deserializeErrors, getHydrationData as UNSAFE_getHydrationData, getPatchRoutesOnNavigationFunction as UNSAFE_getPatchRoutesOnNavigationFunction, getTurboStreamSingleFetchDataStrategy as UNSAFE_getTurboStreamSingleFetchDataStrategy, useFogOFWarDiscovery as UNSAFE_useFogOFWarDiscovery, createCookie, createCookieSessionStorage, createMemorySessionStorage, createRequestHandler, createRoutesStub, createSession, createSessionStorage, href, isCookie, isSession, RSCPayload as unstable_RSCPayload, RSCStaticRouter as unstable_RSCStaticRouter, type RSCStaticRouterProps as unstable_RSCStaticRouterProps, type SSRCreateFromReadableStreamFunction as unstable_SSRCreateFromReadableStreamFunction, unstable_getRequest, unstable_matchRSCServerRequest, routeRSCServerRequest as unstable_routeRSCServerRequest, setDevServerHooks as unstable_setDevServerHooks, useRoute as unstable_useRoute, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes };