react-router 7.2.0-pre.0 → 7.2.0-pre.2
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.
- package/CHANGELOG.md +57 -0
- package/dist/development/{chunk-HLU4BUUT.mjs → chunk-ULARE4JK.mjs} +58 -40
- package/dist/development/dom-export.d.mts +2 -2
- package/dist/development/dom-export.d.ts +2 -2
- package/dist/development/dom-export.js +18 -19
- package/dist/development/dom-export.mjs +2 -2
- package/dist/{production/fog-of-war-Ax4Jg2xL.d.ts → development/fog-of-war-rn7nVSAv.d.ts} +1 -1
- package/dist/development/{fog-of-war-Cyo_TZuh.d.mts → fog-of-war-yKFj2vdd.d.mts} +1 -1
- package/dist/development/index.d.mts +37 -6
- package/dist/development/index.d.ts +37 -6
- package/dist/development/index.js +59 -40
- package/dist/development/index.mjs +4 -2
- package/dist/development/lib/types/route-module.d.mts +1 -1
- package/dist/development/lib/types/route-module.d.ts +1 -1
- package/dist/development/lib/types/route-module.js +1 -1
- package/dist/development/lib/types/route-module.mjs +1 -1
- package/dist/development/{route-data-DQbTMaUY.d.ts → route-data-CfLfC_Bh.d.mts} +1 -1
- package/dist/{production/route-data-DQbTMaUY.d.mts → development/route-data-CfLfC_Bh.d.ts} +1 -1
- package/dist/production/{chunk-IA3JXIZE.mjs → chunk-QRCLBIUO.mjs} +58 -40
- package/dist/production/dom-export.d.mts +2 -2
- package/dist/production/dom-export.d.ts +2 -2
- package/dist/production/dom-export.js +18 -19
- package/dist/production/dom-export.mjs +2 -2
- package/dist/{development/fog-of-war-Ax4Jg2xL.d.ts → production/fog-of-war-rn7nVSAv.d.ts} +1 -1
- package/dist/production/{fog-of-war-Cyo_TZuh.d.mts → fog-of-war-yKFj2vdd.d.mts} +1 -1
- package/dist/production/index.d.mts +37 -6
- package/dist/production/index.d.ts +37 -6
- package/dist/production/index.js +59 -40
- package/dist/production/index.mjs +4 -2
- package/dist/production/lib/types/route-module.d.mts +1 -1
- package/dist/production/lib/types/route-module.d.ts +1 -1
- package/dist/production/lib/types/route-module.js +1 -1
- package/dist/production/lib/types/route-module.mjs +1 -1
- package/dist/production/{route-data-DQbTMaUY.d.ts → route-data-CfLfC_Bh.d.mts} +1 -1
- package/dist/{development/route-data-DQbTMaUY.d.mts → production/route-data-CfLfC_Bh.d.ts} +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,62 @@
|
|
|
1
1
|
# `react-router`
|
|
2
2
|
|
|
3
|
+
## 7.2.0-pre.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Properly handle revalidations to across a prerender/SPA boundary ([#13021](https://github.com/remix-run/react-router/pull/13021))
|
|
8
|
+
|
|
9
|
+
- In "hybrid" applications where some routes are pre-rendered and some are served from a SPA fallback, we need to avoid making `.data` requests if the path wasn't pre-rendered because the request will 404
|
|
10
|
+
- We don't know all the pre-rendered paths client-side, however:
|
|
11
|
+
- All `loader` data in `ssr:false` mode is static because it's generated at build time
|
|
12
|
+
- A route must use a `clientLoader` to do anything dynamic
|
|
13
|
+
- Therefore, if a route only has a `loader` and not a `clientLoader`, we disable revalidation by default because there is no new data to retrieve
|
|
14
|
+
- We short circuit and skip single fetch `.data` request logic if there are no server loaders with `shouldLoad=true` in our single fetch `dataStrategy`
|
|
15
|
+
- This ensures that the route doesn't cause a `.data` request that would 404 after a submission
|
|
16
|
+
|
|
17
|
+
- Error at build time in `ssr:false` + `prerender` apps for the edge case scenario of: ([#13021](https://github.com/remix-run/react-router/pull/13021))
|
|
18
|
+
|
|
19
|
+
- A parent route has only a `loader` (does not have a `clientLoader`)
|
|
20
|
+
- The parent route is pre-rendered
|
|
21
|
+
- The parent route has children routes which are not prerendered
|
|
22
|
+
- This means that when the child paths are loaded via the SPA fallback, the parent won't have any `loaderData` because there is no server on which to run the `loader`
|
|
23
|
+
- This can be resolved by either adding a parent `clientLoader` or pre-rendering the child paths
|
|
24
|
+
- If you add a `clientLoader`, calling the `serverLoader()` on non-prerendered paths will throw a 404
|
|
25
|
+
|
|
26
|
+
## 7.2.0-pre.1
|
|
27
|
+
|
|
28
|
+
### Minor Changes
|
|
29
|
+
|
|
30
|
+
- New type-safe `href` utility that guarantees links point to actual paths in your app ([#13012](https://github.com/remix-run/react-router/pull/13012))
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
import { href } from "react-router";
|
|
34
|
+
|
|
35
|
+
export default function Component() {
|
|
36
|
+
const link = href("/blog/:slug", { slug: "my-first-post" });
|
|
37
|
+
return (
|
|
38
|
+
<main>
|
|
39
|
+
<Link to={href("/products/:id", { id: "asdf" })} />
|
|
40
|
+
<NavLink to={href("/:lang?/about", { lang: "en" })} />
|
|
41
|
+
</main>
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Patch Changes
|
|
47
|
+
|
|
48
|
+
- Fix typegen for repeated params ([#13012](https://github.com/remix-run/react-router/pull/13012))
|
|
49
|
+
|
|
50
|
+
In React Router, path parameters are keyed by their name.
|
|
51
|
+
So for a path pattern like `/a/:id/b/:id?/c/:id`, the last `:id` will set the value for `id` in `useParams` and the `params` prop.
|
|
52
|
+
For example, `/a/1/b/2/c/3` will result in the value `{ id: 3 }` at runtime.
|
|
53
|
+
|
|
54
|
+
Previously, generated types for params incorrectly modeled repeated params with an array.
|
|
55
|
+
So `/a/1/b/2/c/3` generated a type like `{ id: [1,2,3] }`.
|
|
56
|
+
|
|
57
|
+
To be consistent with runtime behavior, the generated types now correctly model the "last one wins" semantics of path parameters.
|
|
58
|
+
So `/a/1/b/2/c/3` now generates a type like `{ id: 3 }`.
|
|
59
|
+
|
|
3
60
|
## 7.2.0-pre.0
|
|
4
61
|
|
|
5
62
|
### Patch Changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* react-router v7.2.0-pre.
|
|
2
|
+
* react-router v7.2.0-pre.2
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -154,13 +154,13 @@ function createHashHistory(options = {}) {
|
|
|
154
154
|
}
|
|
155
155
|
function createHashHref(window2, to) {
|
|
156
156
|
let base = window2.document.querySelector("base");
|
|
157
|
-
let
|
|
157
|
+
let href2 = "";
|
|
158
158
|
if (base && base.getAttribute("href")) {
|
|
159
159
|
let url = window2.location.href;
|
|
160
160
|
let hashIndex = url.indexOf("#");
|
|
161
|
-
|
|
161
|
+
href2 = hashIndex === -1 ? url : url.slice(0, hashIndex);
|
|
162
162
|
}
|
|
163
|
-
return
|
|
163
|
+
return href2 + "#" + (typeof to === "string" ? to : createPath(to));
|
|
164
164
|
}
|
|
165
165
|
function validateHashLocation(location, to) {
|
|
166
166
|
warning(
|
|
@@ -302,13 +302,13 @@ function getUrlBasedHistory(getLocation, createHref2, validateLocation, options
|
|
|
302
302
|
}
|
|
303
303
|
function createURL(to) {
|
|
304
304
|
let base = window2.location.origin !== "null" ? window2.location.origin : window2.location.href;
|
|
305
|
-
let
|
|
306
|
-
|
|
305
|
+
let href2 = typeof to === "string" ? to : createPath(to);
|
|
306
|
+
href2 = href2.replace(/ $/, "%20");
|
|
307
307
|
invariant(
|
|
308
308
|
base,
|
|
309
|
-
`No window.location.(origin|href) available to create URL for href: ${
|
|
309
|
+
`No window.location.(origin|href) available to create URL for href: ${href2}`
|
|
310
310
|
);
|
|
311
|
-
return new URL(
|
|
311
|
+
return new URL(href2, base);
|
|
312
312
|
}
|
|
313
313
|
let history = {
|
|
314
314
|
get action() {
|
|
@@ -1710,7 +1710,7 @@ function createRouter(init) {
|
|
|
1710
1710
|
});
|
|
1711
1711
|
return new Map(state.fetchers);
|
|
1712
1712
|
}
|
|
1713
|
-
async function fetch2(key, routeId,
|
|
1713
|
+
async function fetch2(key, routeId, href2, opts) {
|
|
1714
1714
|
abortFetcher(key);
|
|
1715
1715
|
let flushSync = (opts && opts.flushSync) === true;
|
|
1716
1716
|
let routesToUse = inFlightDataRoutes || dataRoutes;
|
|
@@ -1718,7 +1718,7 @@ function createRouter(init) {
|
|
|
1718
1718
|
state.location,
|
|
1719
1719
|
state.matches,
|
|
1720
1720
|
basename,
|
|
1721
|
-
|
|
1721
|
+
href2,
|
|
1722
1722
|
routeId,
|
|
1723
1723
|
opts?.relative
|
|
1724
1724
|
);
|
|
@@ -5356,7 +5356,7 @@ function getKeyedLinksForMatches(matches, routeModules, manifest) {
|
|
|
5356
5356
|
let module = routeModules[match.route.id];
|
|
5357
5357
|
let route = manifest.routes[match.route.id];
|
|
5358
5358
|
return [
|
|
5359
|
-
route && route.css ? route.css.map((
|
|
5359
|
+
route && route.css ? route.css.map((href2) => ({ rel: "stylesheet", href: href2 })) : [],
|
|
5360
5360
|
module?.links?.() || []
|
|
5361
5361
|
];
|
|
5362
5362
|
}).flat(2);
|
|
@@ -5365,7 +5365,7 @@ function getKeyedLinksForMatches(matches, routeModules, manifest) {
|
|
|
5365
5365
|
}
|
|
5366
5366
|
function getRouteCssDescriptors(route) {
|
|
5367
5367
|
if (!route.css) return [];
|
|
5368
|
-
return route.css.map((
|
|
5368
|
+
return route.css.map((href2) => ({ rel: "stylesheet", href: href2 }));
|
|
5369
5369
|
}
|
|
5370
5370
|
async function prefetchRouteCss(route) {
|
|
5371
5371
|
if (!route.css) return;
|
|
@@ -5670,10 +5670,10 @@ function getSingleFetchDataStrategy(manifest, routeModules, ssr, getRouter) {
|
|
|
5670
5670
|
return singleFetchActionStrategy(request, matches);
|
|
5671
5671
|
}
|
|
5672
5672
|
if (!ssr) {
|
|
5673
|
-
let
|
|
5674
|
-
(m) => m.route.id
|
|
5673
|
+
let foundRevalidatingServerLoader = matches.some(
|
|
5674
|
+
(m) => m.shouldLoad && manifest.routes[m.route.id]?.hasLoader && !manifest.routes[m.route.id]?.hasClientLoader
|
|
5675
5675
|
);
|
|
5676
|
-
if (!
|
|
5676
|
+
if (!foundRevalidatingServerLoader) {
|
|
5677
5677
|
let matchesToLoad = matches.filter((m) => m.shouldLoad);
|
|
5678
5678
|
let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));
|
|
5679
5679
|
return results.reduce(
|
|
@@ -6168,13 +6168,7 @@ function createClientRoutesWithHMRRevalidationOptOut(needsRevalidation, manifest
|
|
|
6168
6168
|
needsRevalidation
|
|
6169
6169
|
);
|
|
6170
6170
|
}
|
|
6171
|
-
function preventInvalidServerHandlerCall(type, route
|
|
6172
|
-
if (isSpaMode) {
|
|
6173
|
-
let fn = type === "action" ? "serverAction()" : "serverLoader()";
|
|
6174
|
-
let msg = `You cannot call ${fn} in SPA Mode (routeId: "${route.id}")`;
|
|
6175
|
-
console.error(msg);
|
|
6176
|
-
throw new ErrorResponseImpl(400, "Bad Request", new Error(msg), true);
|
|
6177
|
-
}
|
|
6171
|
+
function preventInvalidServerHandlerCall(type, route) {
|
|
6178
6172
|
if (type === "loader" && !route.hasLoader || type === "action" && !route.hasAction) {
|
|
6179
6173
|
let fn = type === "action" ? "serverAction()" : "serverLoader()";
|
|
6180
6174
|
let msg = `You are trying to call ${fn} on a route that does not have a server ${type} (routeId: "${route.id}")`;
|
|
@@ -6268,7 +6262,7 @@ function createClientRoutes(manifest, routeModulesCache, initialState, ssr, isSp
|
|
|
6268
6262
|
request,
|
|
6269
6263
|
params,
|
|
6270
6264
|
async serverLoader() {
|
|
6271
|
-
preventInvalidServerHandlerCall("loader", route
|
|
6265
|
+
preventInvalidServerHandlerCall("loader", route);
|
|
6272
6266
|
if (isHydrationRequest) {
|
|
6273
6267
|
if (hasInitialData) {
|
|
6274
6268
|
return initialData;
|
|
@@ -6307,7 +6301,7 @@ function createClientRoutes(manifest, routeModulesCache, initialState, ssr, isSp
|
|
|
6307
6301
|
request,
|
|
6308
6302
|
params,
|
|
6309
6303
|
async serverAction() {
|
|
6310
|
-
preventInvalidServerHandlerCall("action", route
|
|
6304
|
+
preventInvalidServerHandlerCall("action", route);
|
|
6311
6305
|
return fetchServerAction(singleFetch);
|
|
6312
6306
|
}
|
|
6313
6307
|
});
|
|
@@ -6329,7 +6323,7 @@ function createClientRoutes(manifest, routeModulesCache, initialState, ssr, isSp
|
|
|
6329
6323
|
return clientLoader({
|
|
6330
6324
|
...args,
|
|
6331
6325
|
async serverLoader() {
|
|
6332
|
-
preventInvalidServerHandlerCall("loader", route
|
|
6326
|
+
preventInvalidServerHandlerCall("loader", route);
|
|
6333
6327
|
return fetchServerLoader(singleFetch);
|
|
6334
6328
|
}
|
|
6335
6329
|
});
|
|
@@ -6354,7 +6348,7 @@ function createClientRoutes(manifest, routeModulesCache, initialState, ssr, isSp
|
|
|
6354
6348
|
return clientAction({
|
|
6355
6349
|
...args,
|
|
6356
6350
|
async serverAction() {
|
|
6357
|
-
preventInvalidServerHandlerCall("action", route
|
|
6351
|
+
preventInvalidServerHandlerCall("action", route);
|
|
6358
6352
|
return fetchServerAction(singleFetch);
|
|
6359
6353
|
}
|
|
6360
6354
|
});
|
|
@@ -6376,7 +6370,7 @@ function createClientRoutes(manifest, routeModulesCache, initialState, ssr, isSp
|
|
|
6376
6370
|
lazyRoute.loader = (args, singleFetch) => clientLoader({
|
|
6377
6371
|
...args,
|
|
6378
6372
|
async serverLoader() {
|
|
6379
|
-
preventInvalidServerHandlerCall("loader", route
|
|
6373
|
+
preventInvalidServerHandlerCall("loader", route);
|
|
6380
6374
|
return fetchServerLoader(singleFetch);
|
|
6381
6375
|
}
|
|
6382
6376
|
});
|
|
@@ -6386,7 +6380,7 @@ function createClientRoutes(manifest, routeModulesCache, initialState, ssr, isSp
|
|
|
6386
6380
|
lazyRoute.action = (args, singleFetch) => clientAction({
|
|
6387
6381
|
...args,
|
|
6388
6382
|
async serverAction() {
|
|
6389
|
-
preventInvalidServerHandlerCall("action", route
|
|
6383
|
+
preventInvalidServerHandlerCall("action", route);
|
|
6390
6384
|
return fetchServerAction(singleFetch);
|
|
6391
6385
|
}
|
|
6392
6386
|
});
|
|
@@ -6431,8 +6425,13 @@ function getShouldRevalidateFunction(route, manifestRoute, ssr, needsRevalidatio
|
|
|
6431
6425
|
needsRevalidation
|
|
6432
6426
|
);
|
|
6433
6427
|
}
|
|
6434
|
-
if (!ssr && manifestRoute.
|
|
6435
|
-
|
|
6428
|
+
if (!ssr && manifestRoute.hasLoader && !manifestRoute.hasClientLoader) {
|
|
6429
|
+
if (route.shouldRevalidate) {
|
|
6430
|
+
let fn = route.shouldRevalidate;
|
|
6431
|
+
return (opts) => fn({ ...opts, defaultShouldRevalidate: false });
|
|
6432
|
+
} else {
|
|
6433
|
+
return () => false;
|
|
6434
|
+
}
|
|
6436
6435
|
}
|
|
6437
6436
|
if (ssr && route.shouldRevalidate) {
|
|
6438
6437
|
let fn = route.shouldRevalidate;
|
|
@@ -6868,7 +6867,7 @@ function PrefetchPageLinksImpl({
|
|
|
6868
6867
|
[newMatchesForAssets, manifest]
|
|
6869
6868
|
);
|
|
6870
6869
|
let keyedPrefetchLinks = useKeyedPrefetchLinks(newMatchesForAssets);
|
|
6871
|
-
return /* @__PURE__ */ React9.createElement(React9.Fragment, null, dataHrefs.map((
|
|
6870
|
+
return /* @__PURE__ */ React9.createElement(React9.Fragment, null, dataHrefs.map((href2) => /* @__PURE__ */ React9.createElement("link", { key: href2, rel: "prefetch", as: "fetch", href: href2, ...linkProps })), moduleHrefs.map((href2) => /* @__PURE__ */ React9.createElement("link", { key: href2, rel: "modulepreload", href: href2, ...linkProps })), keyedPrefetchLinks.map(({ key, link }) => (
|
|
6872
6871
|
// these don't spread `linkProps` because they are full link descriptors
|
|
6873
6872
|
// already with their own props
|
|
6874
6873
|
/* @__PURE__ */ React9.createElement("link", { key, ...link })
|
|
@@ -7108,7 +7107,7 @@ function mergeRefs(...refs) {
|
|
|
7108
7107
|
var isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
|
|
7109
7108
|
try {
|
|
7110
7109
|
if (isBrowser) {
|
|
7111
|
-
window.__reactRouterVersion = "7.2.0-pre.
|
|
7110
|
+
window.__reactRouterVersion = "7.2.0-pre.2";
|
|
7112
7111
|
}
|
|
7113
7112
|
} catch (e) {
|
|
7114
7113
|
}
|
|
@@ -7311,7 +7310,7 @@ var Link = React10.forwardRef(
|
|
|
7311
7310
|
}
|
|
7312
7311
|
}
|
|
7313
7312
|
}
|
|
7314
|
-
let
|
|
7313
|
+
let href2 = useHref(to, { relative });
|
|
7315
7314
|
let [shouldPrefetch, prefetchRef, prefetchHandlers] = usePrefetchBehavior(
|
|
7316
7315
|
prefetch,
|
|
7317
7316
|
rest
|
|
@@ -7337,7 +7336,7 @@ var Link = React10.forwardRef(
|
|
|
7337
7336
|
{
|
|
7338
7337
|
...rest,
|
|
7339
7338
|
...prefetchHandlers,
|
|
7340
|
-
href: absoluteHref ||
|
|
7339
|
+
href: absoluteHref || href2,
|
|
7341
7340
|
onClick: isExternal || reloadDocument ? onClick : handleClick,
|
|
7342
7341
|
ref: mergeRefs(forwardedRef, prefetchRef),
|
|
7343
7342
|
target,
|
|
@@ -7345,7 +7344,7 @@ var Link = React10.forwardRef(
|
|
|
7345
7344
|
}
|
|
7346
7345
|
)
|
|
7347
7346
|
);
|
|
7348
|
-
return shouldPrefetch && !isAbsolute ? /* @__PURE__ */ React10.createElement(React10.Fragment, null, link, /* @__PURE__ */ React10.createElement(PrefetchPageLinks, { page:
|
|
7347
|
+
return shouldPrefetch && !isAbsolute ? /* @__PURE__ */ React10.createElement(React10.Fragment, null, link, /* @__PURE__ */ React10.createElement(PrefetchPageLinks, { page: href2 })) : link;
|
|
7349
7348
|
}
|
|
7350
7349
|
);
|
|
7351
7350
|
Link.displayName = "Link";
|
|
@@ -7701,9 +7700,9 @@ function useFetcher({
|
|
|
7701
7700
|
return () => router.deleteFetcher(fetcherKey);
|
|
7702
7701
|
}, [router, fetcherKey]);
|
|
7703
7702
|
let load = React10.useCallback(
|
|
7704
|
-
async (
|
|
7703
|
+
async (href2, opts) => {
|
|
7705
7704
|
invariant(routeId, "No routeId available for fetcher.load()");
|
|
7706
|
-
await router.fetch(fetcherKey, routeId,
|
|
7705
|
+
await router.fetch(fetcherKey, routeId, href2, opts);
|
|
7707
7706
|
},
|
|
7708
7707
|
[fetcherKey, routeId, router]
|
|
7709
7708
|
);
|
|
@@ -8160,9 +8159,9 @@ function createHref(to) {
|
|
|
8160
8159
|
return typeof to === "string" ? to : createPath(to);
|
|
8161
8160
|
}
|
|
8162
8161
|
function encodeLocation(to) {
|
|
8163
|
-
let
|
|
8164
|
-
|
|
8165
|
-
let encoded = ABSOLUTE_URL_REGEX3.test(
|
|
8162
|
+
let href2 = typeof to === "string" ? to : createPath(to);
|
|
8163
|
+
href2 = href2.replace(/ $/, "%20");
|
|
8164
|
+
let encoded = ABSOLUTE_URL_REGEX3.test(href2) ? new URL(href2) : new URL(href2, "http://localhost");
|
|
8166
8165
|
return {
|
|
8167
8166
|
pathname: encoded.pathname,
|
|
8168
8167
|
search: encoded.search,
|
|
@@ -9638,6 +9637,24 @@ function createMemorySessionStorage({ cookie } = {}) {
|
|
|
9638
9637
|
});
|
|
9639
9638
|
}
|
|
9640
9639
|
|
|
9640
|
+
// lib/href.ts
|
|
9641
|
+
function href(path, ...args) {
|
|
9642
|
+
let params = args[0];
|
|
9643
|
+
return path.split("/").map((segment) => {
|
|
9644
|
+
const match = segment.match(/^:([\w-]+)(\?)?/);
|
|
9645
|
+
if (!match) return segment;
|
|
9646
|
+
const param = match[1];
|
|
9647
|
+
const value = params ? params[param] : void 0;
|
|
9648
|
+
const isRequired = match[2] === void 0;
|
|
9649
|
+
if (isRequired && value === void 0) {
|
|
9650
|
+
throw Error(
|
|
9651
|
+
`Path '${path}' requires param '${param}' but it was not provided`
|
|
9652
|
+
);
|
|
9653
|
+
}
|
|
9654
|
+
return value;
|
|
9655
|
+
}).filter((segment) => segment !== void 0).join("/");
|
|
9656
|
+
}
|
|
9657
|
+
|
|
9641
9658
|
// lib/dom/ssr/errors.ts
|
|
9642
9659
|
function deserializeErrors2(errors) {
|
|
9643
9660
|
if (!errors) return null;
|
|
@@ -9786,5 +9803,6 @@ export {
|
|
|
9786
9803
|
createSessionStorage,
|
|
9787
9804
|
createCookieSessionStorage,
|
|
9788
9805
|
createMemorySessionStorage,
|
|
9806
|
+
href,
|
|
9789
9807
|
deserializeErrors2 as deserializeErrors
|
|
9790
9808
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { R as RouterProviderProps$1 } from './fog-of-war-
|
|
3
|
-
import './route-data-
|
|
2
|
+
import { R as RouterProviderProps$1 } from './fog-of-war-yKFj2vdd.mjs';
|
|
3
|
+
import './route-data-CfLfC_Bh.mjs';
|
|
4
4
|
|
|
5
5
|
type RouterProviderProps = Omit<RouterProviderProps$1, "flushSync">;
|
|
6
6
|
declare function RouterProvider(props: Omit<RouterProviderProps, "flushSync">): React.JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { R as RouterProviderProps$1 } from './fog-of-war-
|
|
3
|
-
import './route-data-
|
|
2
|
+
import { R as RouterProviderProps$1 } from './fog-of-war-rn7nVSAv.js';
|
|
3
|
+
import './route-data-CfLfC_Bh.js';
|
|
4
4
|
|
|
5
5
|
type RouterProviderProps = Omit<RouterProviderProps$1, "flushSync">;
|
|
6
6
|
declare function RouterProvider(props: Omit<RouterProviderProps, "flushSync">): React.JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* react-router v7.2.0-pre.
|
|
2
|
+
* react-router v7.2.0-pre.2
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -4359,10 +4359,10 @@ function getSingleFetchDataStrategy(manifest, routeModules, ssr, getRouter) {
|
|
|
4359
4359
|
return singleFetchActionStrategy(request, matches);
|
|
4360
4360
|
}
|
|
4361
4361
|
if (!ssr) {
|
|
4362
|
-
let
|
|
4363
|
-
(m) => m.route.id
|
|
4362
|
+
let foundRevalidatingServerLoader = matches.some(
|
|
4363
|
+
(m) => m.shouldLoad && manifest.routes[m.route.id]?.hasLoader && !manifest.routes[m.route.id]?.hasClientLoader
|
|
4364
4364
|
);
|
|
4365
|
-
if (!
|
|
4365
|
+
if (!foundRevalidatingServerLoader) {
|
|
4366
4366
|
let matchesToLoad = matches.filter((m) => m.shouldLoad);
|
|
4367
4367
|
let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));
|
|
4368
4368
|
return results.reduce(
|
|
@@ -4817,13 +4817,7 @@ function createClientRoutesWithHMRRevalidationOptOut(needsRevalidation, manifest
|
|
|
4817
4817
|
needsRevalidation
|
|
4818
4818
|
);
|
|
4819
4819
|
}
|
|
4820
|
-
function preventInvalidServerHandlerCall(type, route
|
|
4821
|
-
if (isSpaMode) {
|
|
4822
|
-
let fn = type === "action" ? "serverAction()" : "serverLoader()";
|
|
4823
|
-
let msg = `You cannot call ${fn} in SPA Mode (routeId: "${route.id}")`;
|
|
4824
|
-
console.error(msg);
|
|
4825
|
-
throw new ErrorResponseImpl(400, "Bad Request", new Error(msg), true);
|
|
4826
|
-
}
|
|
4820
|
+
function preventInvalidServerHandlerCall(type, route) {
|
|
4827
4821
|
if (type === "loader" && !route.hasLoader || type === "action" && !route.hasAction) {
|
|
4828
4822
|
let fn = type === "action" ? "serverAction()" : "serverLoader()";
|
|
4829
4823
|
let msg = `You are trying to call ${fn} on a route that does not have a server ${type} (routeId: "${route.id}")`;
|
|
@@ -4917,7 +4911,7 @@ function createClientRoutes(manifest, routeModulesCache, initialState, ssr, isSp
|
|
|
4917
4911
|
request,
|
|
4918
4912
|
params,
|
|
4919
4913
|
async serverLoader() {
|
|
4920
|
-
preventInvalidServerHandlerCall("loader", route
|
|
4914
|
+
preventInvalidServerHandlerCall("loader", route);
|
|
4921
4915
|
if (isHydrationRequest) {
|
|
4922
4916
|
if (hasInitialData) {
|
|
4923
4917
|
return initialData;
|
|
@@ -4956,7 +4950,7 @@ function createClientRoutes(manifest, routeModulesCache, initialState, ssr, isSp
|
|
|
4956
4950
|
request,
|
|
4957
4951
|
params,
|
|
4958
4952
|
async serverAction() {
|
|
4959
|
-
preventInvalidServerHandlerCall("action", route
|
|
4953
|
+
preventInvalidServerHandlerCall("action", route);
|
|
4960
4954
|
return fetchServerAction(singleFetch);
|
|
4961
4955
|
}
|
|
4962
4956
|
});
|
|
@@ -4978,7 +4972,7 @@ function createClientRoutes(manifest, routeModulesCache, initialState, ssr, isSp
|
|
|
4978
4972
|
return clientLoader({
|
|
4979
4973
|
...args,
|
|
4980
4974
|
async serverLoader() {
|
|
4981
|
-
preventInvalidServerHandlerCall("loader", route
|
|
4975
|
+
preventInvalidServerHandlerCall("loader", route);
|
|
4982
4976
|
return fetchServerLoader(singleFetch);
|
|
4983
4977
|
}
|
|
4984
4978
|
});
|
|
@@ -5003,7 +4997,7 @@ function createClientRoutes(manifest, routeModulesCache, initialState, ssr, isSp
|
|
|
5003
4997
|
return clientAction({
|
|
5004
4998
|
...args,
|
|
5005
4999
|
async serverAction() {
|
|
5006
|
-
preventInvalidServerHandlerCall("action", route
|
|
5000
|
+
preventInvalidServerHandlerCall("action", route);
|
|
5007
5001
|
return fetchServerAction(singleFetch);
|
|
5008
5002
|
}
|
|
5009
5003
|
});
|
|
@@ -5025,7 +5019,7 @@ function createClientRoutes(manifest, routeModulesCache, initialState, ssr, isSp
|
|
|
5025
5019
|
lazyRoute.loader = (args, singleFetch) => clientLoader({
|
|
5026
5020
|
...args,
|
|
5027
5021
|
async serverLoader() {
|
|
5028
|
-
preventInvalidServerHandlerCall("loader", route
|
|
5022
|
+
preventInvalidServerHandlerCall("loader", route);
|
|
5029
5023
|
return fetchServerLoader(singleFetch);
|
|
5030
5024
|
}
|
|
5031
5025
|
});
|
|
@@ -5035,7 +5029,7 @@ function createClientRoutes(manifest, routeModulesCache, initialState, ssr, isSp
|
|
|
5035
5029
|
lazyRoute.action = (args, singleFetch) => clientAction({
|
|
5036
5030
|
...args,
|
|
5037
5031
|
async serverAction() {
|
|
5038
|
-
preventInvalidServerHandlerCall("action", route
|
|
5032
|
+
preventInvalidServerHandlerCall("action", route);
|
|
5039
5033
|
return fetchServerAction(singleFetch);
|
|
5040
5034
|
}
|
|
5041
5035
|
});
|
|
@@ -5080,8 +5074,13 @@ function getShouldRevalidateFunction(route, manifestRoute, ssr, needsRevalidatio
|
|
|
5080
5074
|
needsRevalidation
|
|
5081
5075
|
);
|
|
5082
5076
|
}
|
|
5083
|
-
if (!ssr && manifestRoute.
|
|
5084
|
-
|
|
5077
|
+
if (!ssr && manifestRoute.hasLoader && !manifestRoute.hasClientLoader) {
|
|
5078
|
+
if (route.shouldRevalidate) {
|
|
5079
|
+
let fn = route.shouldRevalidate;
|
|
5080
|
+
return (opts) => fn({ ...opts, defaultShouldRevalidate: false });
|
|
5081
|
+
} else {
|
|
5082
|
+
return () => false;
|
|
5083
|
+
}
|
|
5085
5084
|
}
|
|
5086
5085
|
if (ssr && route.shouldRevalidate) {
|
|
5087
5086
|
let fn = route.shouldRevalidate;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* react-router v7.2.0-pre.
|
|
2
|
+
* react-router v7.2.0-pre.2
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
matchRoutes,
|
|
26
26
|
shouldHydrateRouteLoader,
|
|
27
27
|
useFogOFWarDiscovery
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-ULARE4JK.mjs";
|
|
29
29
|
|
|
30
30
|
// lib/dom-export/dom-router-provider.tsx
|
|
31
31
|
import * as React from "react";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { j as RouteObject, F as FutureConfig$1, H as HydrationState, I as InitialEntry, D as DataStrategyFunction,
|
|
2
|
+
import { j as RouteObject, F as FutureConfig$1, H as HydrationState, I as InitialEntry, D as DataStrategyFunction, am as PatchRoutesOnNavigationFunction, a as Router$1, T as To, c as RelativeRoutingType, u as NonIndexRouteObject, a0 as LazyRouteFunction, q as IndexRouteObject, d as Location, e as Action, al as Navigator, ao as RouteMatch, o as StaticHandlerContext, b as RouteManifest, R as RouteModules, ak as DataRouteObject, aL as RouteModule, $ as HTMLFormMethod, Z as FormEncType, ax as PageLinkDescriptor, aM as History, w as GetScrollRestorationKeyFunction, N as NavigateOptions, x as Fetcher, m as SerializeFrom, B as BlockerFunction } from './route-data-CfLfC_Bh.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* @private
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { j as RouteObject, F as FutureConfig$1, H as HydrationState, I as InitialEntry, D as DataStrategyFunction,
|
|
2
|
+
import { j as RouteObject, F as FutureConfig$1, H as HydrationState, I as InitialEntry, D as DataStrategyFunction, am as PatchRoutesOnNavigationFunction, a as Router$1, T as To, c as RelativeRoutingType, u as NonIndexRouteObject, a0 as LazyRouteFunction, q as IndexRouteObject, d as Location, e as Action, al as Navigator, ao as RouteMatch, o as StaticHandlerContext, b as RouteManifest, R as RouteModules, ak as DataRouteObject, aL as RouteModule, $ as HTMLFormMethod, Z as FormEncType, ax as PageLinkDescriptor, aM as History, w as GetScrollRestorationKeyFunction, N as NavigateOptions, x as Fetcher, m as SerializeFrom, B as BlockerFunction } from './route-data-CfLfC_Bh.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* @private
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { R as RouteModules, a as Router, D as DataStrategyFunction, b as RouteManifest, S as ServerRouteModule, L as LoaderFunctionArgs, A as ActionFunctionArgs, T as To, c as RelativeRoutingType, d as Location, e as Action, P as ParamParseKey, f as Path, g as PathPattern, h as PathMatch, N as NavigateOptions, i as Params, j as RouteObject, k as Navigation, l as RevalidationState, U as UIMatch, m as SerializeFrom, B as BlockerFunction, n as Blocker, o as StaticHandlerContext, p as StaticHandler, F as FutureConfig$1, C as CreateStaticHandlerOptions$1, I as InitialEntry, H as HydrationState, q as IndexRouteObject, r as LoaderFunction, s as ActionFunction, M as MetaFunction, t as LinksFunction, u as NonIndexRouteObject, v as RouterState } from './route-data-
|
|
2
|
-
export {
|
|
3
|
-
import { A as AssetsManifest, a as Route, F as FutureConfig, E as EntryContext } from './fog-of-war-
|
|
4
|
-
export { f as Await, b as AwaitProps, J as BrowserRouter, B as BrowserRouterProps, v as FetcherFormProps, z as FetcherSubmitFunction, a4 as FetcherSubmitOptions, C as FetcherWithComponents, V as Form, w as FormProps, K as HashRouter, H as HashRouterProps, q as HistoryRouterProps, I as IndexRouteProps, L as LayoutRouteProps, Q as Link, s as LinkProps, ab as Links, g as MemoryRouter, M as MemoryRouterProps, aa as Meta, U as NavLink, t as NavLinkProps, u as NavLinkRenderProps, h as Navigate, N as NavigateProps, i as Outlet, O as OutletProps, a5 as ParamKeyValuePair, P as PathRouteProps, ad as PrefetchPageLinks, j as Route, c as RouteProps, k as Router, d as RouterProps, l as RouterProvider, R as RouterProviderProps, m as Routes, e as RoutesProps, ac as Scripts, ae as ScriptsProps, W as ScrollRestoration, S as ScrollRestorationProps, x as SetURLSearchParams, y as SubmitFunction, a6 as SubmitOptions, a8 as SubmitTarget, ag as UNSAFE_FrameworkContext, aj as UNSAFE_createClientRoutes, ak as UNSAFE_createClientRoutesWithHMRRevalidationOptOut, ah as UNSAFE_getPatchRoutesOnNavigationFunction, af as UNSAFE_mapRouteProperties, al as UNSAFE_shouldHydrateRouteLoader, ai as UNSAFE_useFogOFWarDiscovery, am as UNSAFE_useScrollRestoration, a7 as URLSearchParamsInit, D as createBrowserRouter, G as createHashRouter, n as createMemoryRouter, o as createRoutesFromChildren, p as createRoutesFromElements, a9 as createSearchParams, r as renderMatches, T as unstable_HistoryRouter, a2 as unstable_usePrompt, a1 as useBeforeUnload, $ as useFetcher, a0 as useFetchers, _ as useFormAction, X as useLinkClickHandler, Y as useSearchParams, Z as useSubmit, a3 as useViewTransitionState } from './fog-of-war-
|
|
1
|
+
import { R as RouteModules, a as Router, D as DataStrategyFunction, b as RouteManifest, S as ServerRouteModule, L as LoaderFunctionArgs, A as ActionFunctionArgs, T as To, c as RelativeRoutingType, d as Location, e as Action, P as ParamParseKey, f as Path, g as PathPattern, h as PathMatch, N as NavigateOptions, i as Params$1, j as RouteObject, k as Navigation, l as RevalidationState, U as UIMatch, m as SerializeFrom, B as BlockerFunction, n as Blocker, o as StaticHandlerContext, p as StaticHandler, F as FutureConfig$1, C as CreateStaticHandlerOptions$1, I as InitialEntry, H as HydrationState, q as IndexRouteObject, r as LoaderFunction, s as ActionFunction, M as MetaFunction, t as LinksFunction, u as NonIndexRouteObject, E as Equal, v as RouterState } from './route-data-CfLfC_Bh.mjs';
|
|
2
|
+
export { ap as ClientActionFunction, aq as ClientActionFunctionArgs, ar as ClientLoaderFunction, as as ClientLoaderFunctionArgs, aj as DataRouteMatch, ak as DataRouteObject, Q as DataStrategyFunctionArgs, V as DataStrategyMatch, W as DataStrategyResult, Y as ErrorResponse, x as Fetcher, Z as FormEncType, _ as FormMethod, G as GetScrollPositionFunction, w as GetScrollRestorationKeyFunction, $ as HTMLFormMethod, at as HeadersArgs, au as HeadersFunction, ay as HtmlLinkDescriptor, a9 as IDLE_BLOCKER, a8 as IDLE_FETCHER, a7 as IDLE_NAVIGATION, a0 as LazyRouteFunction, az as LinkDescriptor, av as MetaArgs, aw as MetaDescriptor, y as NavigationStates, al as Navigator, ax as PageLinkDescriptor, am as PatchRoutesOnNavigationFunction, an as PatchRoutesOnNavigationFunctionArgs, a1 as PathParam, a2 as RedirectFunction, ao as RouteMatch, O as RouterFetchOptions, z as RouterInit, K as RouterNavigateOptions, J as RouterSubscriber, a3 as ShouldRevalidateFunction, a4 as ShouldRevalidateFunctionArgs, aE as UNSAFE_DataRouterContext, aF as UNSAFE_DataRouterStateContext, X as UNSAFE_DataWithResponseInit, aD as UNSAFE_ErrorResponseImpl, aG as UNSAFE_FetchersContext, aH as UNSAFE_LocationContext, aI as UNSAFE_NavigationContext, aJ as UNSAFE_RouteContext, aK as UNSAFE_ViewTransitionContext, aA as UNSAFE_createBrowserHistory, aC as UNSAFE_createRouter, aB as UNSAFE_invariant, a5 as createPath, aa as data, ab as generatePath, ac as isRouteErrorResponse, ad as matchPath, ae as matchRoutes, a6 as parsePath, af as redirect, ag as redirectDocument, ah as replace, ai as resolvePath } from './route-data-CfLfC_Bh.mjs';
|
|
3
|
+
import { A as AssetsManifest, a as Route, F as FutureConfig, E as EntryContext } from './fog-of-war-yKFj2vdd.mjs';
|
|
4
|
+
export { f as Await, b as AwaitProps, J as BrowserRouter, B as BrowserRouterProps, v as FetcherFormProps, z as FetcherSubmitFunction, a4 as FetcherSubmitOptions, C as FetcherWithComponents, V as Form, w as FormProps, K as HashRouter, H as HashRouterProps, q as HistoryRouterProps, I as IndexRouteProps, L as LayoutRouteProps, Q as Link, s as LinkProps, ab as Links, g as MemoryRouter, M as MemoryRouterProps, aa as Meta, U as NavLink, t as NavLinkProps, u as NavLinkRenderProps, h as Navigate, N as NavigateProps, i as Outlet, O as OutletProps, a5 as ParamKeyValuePair, P as PathRouteProps, ad as PrefetchPageLinks, j as Route, c as RouteProps, k as Router, d as RouterProps, l as RouterProvider, R as RouterProviderProps, m as Routes, e as RoutesProps, ac as Scripts, ae as ScriptsProps, W as ScrollRestoration, S as ScrollRestorationProps, x as SetURLSearchParams, y as SubmitFunction, a6 as SubmitOptions, a8 as SubmitTarget, ag as UNSAFE_FrameworkContext, aj as UNSAFE_createClientRoutes, ak as UNSAFE_createClientRoutesWithHMRRevalidationOptOut, ah as UNSAFE_getPatchRoutesOnNavigationFunction, af as UNSAFE_mapRouteProperties, al as UNSAFE_shouldHydrateRouteLoader, ai as UNSAFE_useFogOFWarDiscovery, am as UNSAFE_useScrollRestoration, a7 as URLSearchParamsInit, D as createBrowserRouter, G as createHashRouter, n as createMemoryRouter, o as createRoutesFromChildren, p as createRoutesFromElements, a9 as createSearchParams, r as renderMatches, T as unstable_HistoryRouter, a2 as unstable_usePrompt, a1 as useBeforeUnload, $ as useFetcher, a0 as useFetchers, _ as useFormAction, X as useLinkClickHandler, Y as useSearchParams, Z as useSubmit, a3 as useViewTransitionState } from './fog-of-war-yKFj2vdd.mjs';
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import { ReactElement } from 'react';
|
|
7
7
|
import { ParseOptions, SerializeOptions } from 'cookie';
|
|
@@ -194,7 +194,7 @@ declare function useOutlet(context?: unknown): React.ReactElement | null;
|
|
|
194
194
|
*/
|
|
195
195
|
declare function useParams<ParamsOrKey extends string | Record<string, string | undefined> = string>(): Readonly<[
|
|
196
196
|
ParamsOrKey
|
|
197
|
-
] extends [string] ? Params<ParamsOrKey> : Partial<ParamsOrKey>>;
|
|
197
|
+
] extends [string] ? Params$1<ParamsOrKey> : Partial<ParamsOrKey>>;
|
|
198
198
|
/**
|
|
199
199
|
Resolves the pathname of the given `to` value against the current location. Similar to {@link useHref}, but returns a {@link Path} instead of a string.
|
|
200
200
|
|
|
@@ -782,6 +782,37 @@ type DevServerHooks = {
|
|
|
782
782
|
};
|
|
783
783
|
declare function setDevServerHooks(devServerHooks: DevServerHooks): void;
|
|
784
784
|
|
|
785
|
+
/**
|
|
786
|
+
* Apps can use this interface to "register" app-wide types for React Router via interface declaration merging and module augmentation.
|
|
787
|
+
* React Router should handle this for you via type generation.
|
|
788
|
+
*
|
|
789
|
+
* For more on declaration merging and module augmentation, see https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation .
|
|
790
|
+
*/
|
|
791
|
+
interface Register {
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
type AnyParams = Record<string, Record<string, string | undefined>>;
|
|
795
|
+
type Params = Register extends {
|
|
796
|
+
params: infer RegisteredParams extends AnyParams;
|
|
797
|
+
} ? RegisteredParams : AnyParams;
|
|
798
|
+
type Args = {
|
|
799
|
+
[K in keyof Params]: ToArgs<Params[K]>;
|
|
800
|
+
};
|
|
801
|
+
type ToArgs<T> = Equal<T, {}> extends true ? [] : Partial<T> extends T ? [T] | [] : [
|
|
802
|
+
T
|
|
803
|
+
];
|
|
804
|
+
/**
|
|
805
|
+
Returns a resolved URL path for the specified route.
|
|
806
|
+
|
|
807
|
+
```tsx
|
|
808
|
+
const h = href("/:lang?/about", { lang: "en" })
|
|
809
|
+
// -> `/en/about`
|
|
810
|
+
|
|
811
|
+
<Link to={href("/products/:id", { id: "abc123" })} />
|
|
812
|
+
```
|
|
813
|
+
*/
|
|
814
|
+
declare function href<Path extends keyof Args>(path: Path, ...args: Args[Path]): string;
|
|
815
|
+
|
|
785
816
|
declare function deserializeErrors(errors: RouterState["errors"]): RouterState["errors"];
|
|
786
817
|
|
|
787
818
|
type RemixErrorBoundaryProps = React.PropsWithChildren<{
|
|
@@ -805,4 +836,4 @@ declare class RemixErrorBoundary extends React.Component<RemixErrorBoundaryProps
|
|
|
805
836
|
render(): string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
|
|
806
837
|
}
|
|
807
838
|
|
|
808
|
-
export { ActionFunction, ActionFunctionArgs, AppLoadContext$1 as AppLoadContext, Blocker, BlockerFunction, type Cookie, type CookieOptions, type CookieSignatureOptions, type CreateRequestHandlerFunction, Router as DataRouter, DataStrategyFunction, EntryContext, type FlashSessionData, type HandleDataRequestFunction, type HandleDocumentRequestFunction, type HandleErrorFunction, HydrationState, IndexRouteObject, InitialEntry, type IsCookieFunction, type IsSessionFunction, LinksFunction, LoaderFunction, LoaderFunctionArgs, Location, MetaFunction, type NavigateFunction, NavigateOptions, Navigation, Action as NavigationType, NonIndexRouteObject, ParamParseKey, Params, Path, PathMatch, PathPattern, RelativeRoutingType, type RequestHandler, RevalidationState, RouteObject, RouterState, type RoutesTestStubProps, type ServerBuild, type ServerEntryModule, ServerRouter, type ServerRouterProps, type Session, type SessionData, type SessionIdStorageStrategy, type SessionStorage, StaticHandler, StaticHandlerContext, StaticRouter, type StaticRouterProps, StaticRouterProvider, type StaticRouterProviderProps, To, UIMatch, AssetsManifest as UNSAFE_AssetsManifest, RemixErrorBoundary as UNSAFE_RemixErrorBoundary, RouteModules as UNSAFE_RouteModules, ServerMode as UNSAFE_ServerMode, SingleFetchRedirectSymbol as UNSAFE_SingleFetchRedirectSymbol, decodeViaTurboStream as UNSAFE_decodeViaTurboStream, deserializeErrors as UNSAFE_deserializeErrors, getSingleFetchDataStrategy as UNSAFE_getSingleFetchDataStrategy, createCookie, createCookieSessionStorage, createMemorySessionStorage, createRequestHandler, createRoutesStub, createSession, createSessionStorage, createStaticHandler, createStaticRouter, isCookie, isSession, setDevServerHooks as unstable_setDevServerHooks, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes };
|
|
839
|
+
export { ActionFunction, ActionFunctionArgs, AppLoadContext$1 as AppLoadContext, Blocker, BlockerFunction, type Cookie, type CookieOptions, type CookieSignatureOptions, type CreateRequestHandlerFunction, Router as DataRouter, DataStrategyFunction, EntryContext, type FlashSessionData, type HandleDataRequestFunction, type HandleDocumentRequestFunction, type HandleErrorFunction, HydrationState, IndexRouteObject, InitialEntry, type IsCookieFunction, type IsSessionFunction, LinksFunction, LoaderFunction, LoaderFunctionArgs, Location, MetaFunction, type NavigateFunction, NavigateOptions, Navigation, Action as NavigationType, NonIndexRouteObject, ParamParseKey, Params$1 as Params, Path, PathMatch, PathPattern, type Register, RelativeRoutingType, type RequestHandler, RevalidationState, RouteObject, RouterState, type RoutesTestStubProps, type ServerBuild, type ServerEntryModule, ServerRouter, type ServerRouterProps, type Session, type SessionData, type SessionIdStorageStrategy, type SessionStorage, StaticHandler, StaticHandlerContext, StaticRouter, type StaticRouterProps, StaticRouterProvider, type StaticRouterProviderProps, To, UIMatch, AssetsManifest as UNSAFE_AssetsManifest, RemixErrorBoundary as UNSAFE_RemixErrorBoundary, RouteModules as UNSAFE_RouteModules, ServerMode as UNSAFE_ServerMode, SingleFetchRedirectSymbol as UNSAFE_SingleFetchRedirectSymbol, decodeViaTurboStream as UNSAFE_decodeViaTurboStream, deserializeErrors as UNSAFE_deserializeErrors, getSingleFetchDataStrategy as UNSAFE_getSingleFetchDataStrategy, createCookie, createCookieSessionStorage, createMemorySessionStorage, createRequestHandler, createRoutesStub, createSession, createSessionStorage, createStaticHandler, createStaticRouter, href, isCookie, isSession, setDevServerHooks as unstable_setDevServerHooks, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes };
|